diff --git a/.buildkite/scripts/steps/artifacts/build.sh b/.buildkite/scripts/steps/artifacts/build.sh index 8f928596f2574..2d7edf71c1ddb 100644 --- a/.buildkite/scripts/steps/artifacts/build.sh +++ b/.buildkite/scripts/steps/artifacts/build.sh @@ -17,3 +17,27 @@ node scripts/build "$RELEASE_ARG" --all-platforms --debug --docker-cross-compile echo "--- Build dependencies report" node scripts/licenses_csv_report "--csv=target/dependencies-$VERSION.csv" + +# Release verification +if [[ "${RELEASE_BUILD:-}" == "true" ]]; then + echo "--- Build and push Kibana Cloud Distribution" + # This doesn't meet the requirements for a release image, implementation TBD + # Beats artifacts will need to match a specific commit sha that matches other stack iamges + # For now this is a placeholder step that will allow us to run automated Cloud tests + # against a best guess approximation of a release image + echo "$KIBANA_DOCKER_PASSWORD" | docker login -u "$KIBANA_DOCKER_USERNAME" --password-stdin docker.elastic.co + trap 'docker logout docker.elastic.co' EXIT + + node scripts/build \ + "$RELEASE_ARG" \ + --skip-initialize \ + --skip-generic-folders \ + --skip-platform-folders \ + --skip-archives \ + --docker-images \ + --docker-tag-qualifier="$GIT_COMMIT" \ + --docker-push \ + --skip-docker-ubi \ + --skip-docker-ubuntu \ + --skip-docker-contexts +fi diff --git a/.buildkite/scripts/steps/es_snapshots/build.sh b/.buildkite/scripts/steps/es_snapshots/build.sh index c11f041836413..cdc1750e59bfc 100755 --- a/.buildkite/scripts/steps/es_snapshots/build.sh +++ b/.buildkite/scripts/steps/es_snapshots/build.sh @@ -69,6 +69,7 @@ echo "--- Build Elasticsearch" :distribution:archives:darwin-aarch64-tar:assemble \ :distribution:archives:darwin-tar:assemble \ :distribution:docker:docker-export:assemble \ + :distribution:docker:cloud-docker-export:assemble \ :distribution:archives:linux-aarch64-tar:assemble \ :distribution:archives:linux-tar:assemble \ :distribution:archives:windows-zip:assemble \ @@ -79,11 +80,26 @@ find distribution -type f \( -name 'elasticsearch-*-*-*-*.tar.gz' -o -name 'elas ls -alh "$destination" -echo "--- Create docker image archives" +echo "--- Create docker default image archives" docker images "docker.elastic.co/elasticsearch/elasticsearch" docker images "docker.elastic.co/elasticsearch/elasticsearch" --format "{{.Tag}}" | xargs -n1 echo 'docker save docker.elastic.co/elasticsearch/elasticsearch:${0} | gzip > ../es-build/elasticsearch-${0}-docker-image.tar.gz' docker images "docker.elastic.co/elasticsearch/elasticsearch" --format "{{.Tag}}" | xargs -n1 bash -c 'docker save docker.elastic.co/elasticsearch/elasticsearch:${0} | gzip > ../es-build/elasticsearch-${0}-docker-image.tar.gz' +echo "--- Create kibana-ci docker cloud image archives" +ES_CLOUD_ID=$(docker images "docker.elastic.co/elasticsearch-ci/elasticsearch-cloud" --format "{{.ID}}") +ES_CLOUD_VERSION=$(docker images "docker.elastic.co/elasticsearch-ci/elasticsearch-cloud" --format "{{.Tag}}") +KIBANA_ES_CLOUD_VERSION="$ES_CLOUD_VERSION-$ELASTICSEARCH_GIT_COMMIT" +KIBANA_ES_CLOUD_IMAGE="docker.elastic.co/kibana-ci/elasticsearch-cloud:$KIBANA_ES_CLOUD_VERSION" + +docker tag "$ES_CLOUD_ID" "$KIBANA_ES_CLOUD_IMAGE" + +echo "$KIBANA_DOCKER_PASSWORD" | docker login -u "$KIBANA_DOCKER_USERNAME" --password-stdin docker.elastic.co +trap 'docker logout docker.elastic.co' EXIT +docker image push "$KIBANA_ES_CLOUD_IMAGE" + +export ELASTICSEARCH_CLOUD_IMAGE="$KIBANA_ES_CLOUD_IMAGE" +export ELASTICSEARCH_CLOUD_IMAGE_CHECKSUM="$(docker images "$KIBANA_ES_CLOUD_IMAGE" --format "{{.Digest}}")" + echo "--- Create checksums for snapshot files" cd "$destination" find ./* -exec bash -c "shasum -a 512 {} > {}.sha512" \; diff --git a/.buildkite/scripts/steps/es_snapshots/create_manifest.js b/.buildkite/scripts/steps/es_snapshots/create_manifest.js index cb4ea29a9c534..9357cd72fff06 100644 --- a/.buildkite/scripts/steps/es_snapshots/create_manifest.js +++ b/.buildkite/scripts/steps/es_snapshots/create_manifest.js @@ -16,6 +16,8 @@ const { BASE_BUCKET_DAILY } = require('./bucket_config.js'); const destination = process.argv[2] || __dirname + '/test'; const ES_BRANCH = process.env.ELASTICSEARCH_BRANCH; + const ES_CLOUD_IMAGE = process.env.ELASTICSEARCH_CLOUD_IMAGE; + const ES_CLOUD_IMAGE_CHECKSUM = process.env.ELASTICSEARCH_CLOUD_IMAGE_CHECKSUM; const GIT_COMMIT = process.env.ELASTICSEARCH_GIT_COMMIT; const GIT_COMMIT_SHORT = process.env.ELASTICSEARCH_GIT_COMMIT_SHORT; @@ -59,6 +61,17 @@ const { BASE_BUCKET_DAILY } = require('./bucket_config.js'); }; }); + if (ES_CLOUD_IMAGE && ES_CLOUD_IMAGE_CHECKSUM) { + manifestEntries.push({ + checksum: ES_CLOUD_IMAGE_CHECKSUM, + url: ES_CLOUD_IMAGE, + version: VERSION, + platform: 'docker', + architecture: 'image', + license: 'default', + }); + } + const manifest = { id: SNAPSHOT_ID, bucket: `${BASE_BUCKET_DAILY}/${DESTINATION}`.toString(), diff --git a/.buildkite/scripts/steps/lint.sh b/.buildkite/scripts/steps/lint.sh index dace6c6f60aef..e94e7be4c7db2 100755 --- a/.buildkite/scripts/steps/lint.sh +++ b/.buildkite/scripts/steps/lint.sh @@ -9,7 +9,25 @@ source .buildkite/scripts/common/util.sh echo '--- Lint: stylelint' checks-reporter-with-killswitch "Lint: stylelint" \ node scripts/stylelint +echo "stylelint ✅" + +# disable "Exit immediately" mode so that we can run eslint, capture it's exit code, and respond appropriately +# after possibly commiting fixed files to the repo +set +e; echo '--- Lint: eslint' checks-reporter-with-killswitch "Lint: eslint" \ - node scripts/eslint --no-cache + node scripts/eslint --no-cache --fix + +eslint_exit=$? + +# re-enable "Exit immediately" mode +set -e; + +check_for_changed_files 'node scripts/eslint --no-cache --fix' true + +if [[ "${eslint_exit}" != "0" ]]; then + exit 1 +fi + +echo "eslint ✅" diff --git a/.eslintrc.js b/.eslintrc.js index af9d77c4a9662..37c951e7e0763 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -274,12 +274,7 @@ module.exports = { * Licence headers */ { - files: [ - '**/*.{js,mjs,ts,tsx}', - '!plugins/**/*', - '!packages/elastic-datemath/**/*', - '!packages/elastic-eslint-config-kibana/**/*', - ], + files: ['**/*.{js,mjs,ts,tsx}'], rules: { '@kbn/eslint/require-license-header': [ 'error', diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index c07121d3bc07f..83c0957d4ecbc 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -482,5 +482,6 @@ x-pack/plugins/session_view @elastic/awp-platform ## Shared UX /src/plugins/shared_ux/ @elastic/shared-ux +/packages/shared-ux-*/ @elastic/shared-ux /src/plugins/kibana_react/ @elastic/shared-ux -/src/plugins/kibana_react/public/code_editor @elastic/kibana-presentation +/src/plugins/kibana_react/public/code_editor @elastic/shared-ux @elastic/kibana-presentation diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index f4482b882e2e1..c329da6cfaa1c 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github summary: API docs for the actions plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions'] warning: 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. --- diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx index 6a905c58dd2d7..7e8b1d0e40130 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github summary: API docs for the advancedSettings plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings'] warning: 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. --- diff --git a/api_docs/alerting.devdocs.json b/api_docs/alerting.devdocs.json index 1506b960286a9..7f02f9bf4dae0 100644 --- a/api_docs/alerting.devdocs.json +++ b/api_docs/alerting.devdocs.json @@ -2792,7 +2792,7 @@ ">; getExecutionLogForRule: ({ id, dateStart, dateEnd, filter, page, perPage, sort, }: ", "GetExecutionLogByIdParams", ") => Promise<", - "IExecutionLogResult", + "IExecutionLogWithErrorsResult", ">; updateApiKey: ({ id }: { id: string; }) => Promise; snooze: ({ id, snoozeEndTime, }: { id: string; snoozeEndTime: string | -1; }) => Promise; unsnooze: ({ id }: { id: string; }) => Promise; unmuteAll: ({ id }: { id: string; }) => Promise; muteInstance: ({ alertId, alertInstanceId }: ", "MuteOptions", ") => Promise; unmuteInstance: ({ alertId, alertInstanceId }: ", @@ -3732,6 +3732,19 @@ "path": "x-pack/plugins/alerting/common/alert.ts", "deprecated": false }, + { + "parentPluginId": "alerting", + "id": "def-common.AlertExecutionStatus.numberOfScheduledActions", + "type": "number", + "tags": [], + "label": "numberOfScheduledActions", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "x-pack/plugins/alerting/common/alert.ts", + "deprecated": false + }, { "parentPluginId": "alerting", "id": "def-common.AlertExecutionStatus.metrics", @@ -4302,6 +4315,212 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog", + "type": "Interface", + "tags": [], + "label": "IExecutionLog", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog.timestamp", + "type": "string", + "tags": [], + "label": "timestamp", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog.duration_ms", + "type": "number", + "tags": [], + "label": "duration_ms", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog.status", + "type": "string", + "tags": [], + "label": "status", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog.message", + "type": "string", + "tags": [], + "label": "message", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog.num_active_alerts", + "type": "number", + "tags": [], + "label": "num_active_alerts", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog.num_new_alerts", + "type": "number", + "tags": [], + "label": "num_new_alerts", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog.num_recovered_alerts", + "type": "number", + "tags": [], + "label": "num_recovered_alerts", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog.num_triggered_actions", + "type": "number", + "tags": [], + "label": "num_triggered_actions", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog.num_succeeded_actions", + "type": "number", + "tags": [], + "label": "num_succeeded_actions", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog.num_errored_actions", + "type": "number", + "tags": [], + "label": "num_errored_actions", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog.total_search_duration_ms", + "type": "number", + "tags": [], + "label": "total_search_duration_ms", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog.es_search_duration_ms", + "type": "number", + "tags": [], + "label": "es_search_duration_ms", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog.schedule_delay_ms", + "type": "number", + "tags": [], + "label": "schedule_delay_ms", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog.timed_out", + "type": "boolean", + "tags": [], + "label": "timed_out", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLogResult", + "type": "Interface", + "tags": [], + "label": "IExecutionLogResult", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLogResult.total", + "type": "number", + "tags": [], + "label": "total", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLogResult.data", + "type": "Array", + "tags": [], + "label": "data", + "description": [], + "signature": [ + { + "pluginId": "alerting", + "scope": "common", + "docId": "kibAlertingPluginApi", + "section": "def-common.IExecutionLog", + "text": "IExecutionLog" + }, + "[]" + ], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "alerting", "id": "def-common.IntervalSchedule", @@ -4393,7 +4612,7 @@ "label": "state", "description": [], "signature": [ - "{ alertTypeState?: { [x: string]: unknown; } | undefined; alertInstances?: { [x: string]: { state?: { [x: string]: unknown; } | undefined; meta?: { lastScheduledActions?: ({ subgroup?: string | undefined; } & { group: string; date: Date; }) | undefined; } | undefined; }; } | undefined; previousStartedAt?: Date | null | undefined; } & { metrics: { numSearches?: number | undefined; totalSearchDurationMs?: number | undefined; esSearchDurationMs?: number | undefined; }; alertExecutionStore: { numberOfTriggeredActions?: number | undefined; triggeredActionsStatus?: string | undefined; }; }" + "{ alertTypeState?: { [x: string]: unknown; } | undefined; alertInstances?: { [x: string]: { state?: { [x: string]: unknown; } | undefined; meta?: { lastScheduledActions?: ({ subgroup?: string | undefined; } & { group: string; date: Date; }) | undefined; } | undefined; }; } | undefined; previousStartedAt?: Date | null | undefined; } & { metrics: { numSearches?: number | undefined; totalSearchDurationMs?: number | undefined; esSearchDurationMs?: number | undefined; }; alertExecutionStore: { numberOfTriggeredActions?: number | undefined; numberOfScheduledActions?: number | undefined; triggeredActionsStatus?: string | undefined; }; }" ], "path": "x-pack/plugins/alerting/common/rule_task_instance.ts", "deprecated": false @@ -5027,6 +5246,20 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "alerting", + "id": "def-common.ExecutionLogSortFields", + "type": "Type", + "tags": [], + "label": "ExecutionLogSortFields", + "description": [], + "signature": [ + "\"timestamp\" | \"execution_duration\" | \"total_search_duration\" | \"es_search_duration\" | \"schedule_delay\" | \"num_triggered_actions\"" + ], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "alerting", "id": "def-common.INTERNAL_BASE_ALERTING_API_PATH", @@ -5184,7 +5417,7 @@ "label": "RuleExecutionState", "description": [], "signature": [ - "{ alertTypeState?: { [x: string]: unknown; } | undefined; alertInstances?: { [x: string]: { state?: { [x: string]: unknown; } | undefined; meta?: { lastScheduledActions?: ({ subgroup?: string | undefined; } & { group: string; date: Date; }) | undefined; } | undefined; }; } | undefined; previousStartedAt?: Date | null | undefined; } & { metrics: { numSearches?: number | undefined; totalSearchDurationMs?: number | undefined; esSearchDurationMs?: number | undefined; }; alertExecutionStore: { numberOfTriggeredActions?: number | undefined; triggeredActionsStatus?: string | undefined; }; }" + "{ alertTypeState?: { [x: string]: unknown; } | undefined; alertInstances?: { [x: string]: { state?: { [x: string]: unknown; } | undefined; meta?: { lastScheduledActions?: ({ subgroup?: string | undefined; } & { group: string; date: Date; }) | undefined; } | undefined; }; } | undefined; previousStartedAt?: Date | null | undefined; } & { metrics: { numSearches?: number | undefined; totalSearchDurationMs?: number | undefined; esSearchDurationMs?: number | undefined; }; alertExecutionStore: { numberOfTriggeredActions?: number | undefined; numberOfScheduledActions?: number | undefined; triggeredActionsStatus?: string | undefined; }; }" ], "path": "x-pack/plugins/alerting/common/rule_task_instance.ts", "deprecated": false, @@ -5360,6 +5593,20 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "alerting", + "id": "def-common.executionLogSortableColumns", + "type": "Object", + "tags": [], + "label": "executionLogSortableColumns", + "description": [], + "signature": [ + "readonly [\"timestamp\", \"execution_duration\", \"total_search_duration\", \"es_search_duration\", \"schedule_delay\", \"num_triggered_actions\"]" + ], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "alerting", "id": "def-common.rawAlertInstance", diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index 3a8fa212dc877..75b6f8351c829 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github summary: API docs for the alerting plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Response Ops](https://github.com/orgs/elastic/teams/response-ops) for q | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 301 | 0 | 293 | 21 | +| 323 | 0 | 315 | 21 | ## Client diff --git a/api_docs/apm.devdocs.json b/api_docs/apm.devdocs.json index fc375a9769982..83b6db6d99ee0 100644 --- a/api_docs/apm.devdocs.json +++ b/api_docs/apm.devdocs.json @@ -1651,7 +1651,7 @@ "section": "def-common.PackagePolicy", "text": "PackagePolicy" }, - " | undefined; has_apm_integrations: boolean; }, ", + " | undefined; has_apm_integrations: boolean; latest_apm_package_version: string; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/fleet/apm_server_schema/unsupported\": ", "ServerRoute", @@ -2435,11 +2435,9 @@ "Type", "; }>, ", "PartialC", - "<{ comparisonStart: ", - "Type", - "; comparisonEnd: ", - "Type", - "; }>]>]>; }>, ", + "<{ offset: ", + "StringC", + "; }>]>]>; }>, ", { "pluginId": "apm", "scope": "server", @@ -2497,11 +2495,9 @@ "Type", "; }>, ", "PartialC", - "<{ comparisonStart: ", - "Type", - "; comparisonEnd: ", - "Type", - "; }>]>]>; }>, ", + "<{ offset: ", + "StringC", + "; }>]>]>; }>, ", { "pluginId": "apm", "scope": "server", @@ -2563,11 +2559,9 @@ "Type", "; }>, ", "PartialC", - "<{ comparisonStart: ", - "Type", - "; comparisonEnd: ", - "Type", - "; }>]>]>; }>, ", + "<{ offset: ", + "StringC", + "; }>]>]>; }>, ", { "pluginId": "apm", "scope": "server", @@ -2755,11 +2749,9 @@ "Type", "; }>, ", "PartialC", - "<{ comparisonStart: ", - "Type", - "; comparisonEnd: ", - "Type", - "; }>]>]>; }>, ", + "<{ offset: ", + "StringC", + "; }>]>]>; }>, ", { "pluginId": "apm", "scope": "server", @@ -2809,11 +2801,9 @@ "Type", "; }>, ", "PartialC", - "<{ comparisonStart: ", - "Type", - "; comparisonEnd: ", - "Type", - "; }>, ", + "<{ offset: ", + "StringC", + "; }>, ", "TypeC", "<{ transactionNames: ", "Type", @@ -3589,11 +3579,9 @@ "Type", "; }>, ", "PartialC", - "<{ comparisonStart: ", - "Type", - "; comparisonEnd: ", - "Type", - "; }>]>; }>, ", + "<{ offset: ", + "StringC", + "; }>]>; }>, ", { "pluginId": "apm", "scope": "server", @@ -3653,11 +3641,9 @@ "StringC", "; }>, ", "PartialC", - "<{ comparisonStart: ", - "Type", - "; comparisonEnd: ", - "Type", - "; }>, ", + "<{ offset: ", + "StringC", + "; }>, ", "TypeC", "<{ environment: ", "UnionC", @@ -3737,11 +3723,9 @@ "Type", "; }>, ", "PartialC", - "<{ comparisonStart: ", - "Type", - "; comparisonEnd: ", - "Type", - "; }>]>]>; }>, ", + "<{ offset: ", + "StringC", + "; }>]>]>; }>, ", { "pluginId": "apm", "scope": "server", @@ -4881,11 +4865,9 @@ "Type", "; }>, ", "PartialC", - "<{ comparisonStart: ", - "Type", - "; comparisonEnd: ", - "Type", - "; }>]>; }>, ", + "<{ offset: ", + "StringC", + "; }>]>; }>, ", { "pluginId": "apm", "scope": "server", @@ -4983,11 +4965,9 @@ "Type", "; }>, ", "PartialC", - "<{ comparisonStart: ", - "Type", - "; comparisonEnd: ", - "Type", - "; }>, ", + "<{ offset: ", + "StringC", + "; }>, ", "TypeC", "<{ numBuckets: ", "Type", diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index 57311e701350e..9fd26c77abba1 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github summary: API docs for the apm plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] warning: 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. --- diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index d264c99384935..ce939ff44c1fc 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github summary: API docs for the banners plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'banners'] warning: 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. --- diff --git a/api_docs/bfetch.mdx b/api_docs/bfetch.mdx index 4e9f494e826d3..1a53912eb6619 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github summary: API docs for the bfetch plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'bfetch'] warning: 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. --- diff --git a/api_docs/canvas.mdx b/api_docs/canvas.mdx index b4df6fb8b2f40..361e9bab39175 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github summary: API docs for the canvas plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] warning: 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. --- diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 8d6c10f212118..70347370f1943 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github summary: API docs for the cases plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] warning: 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. --- diff --git a/api_docs/charts.devdocs.json b/api_docs/charts.devdocs.json index 6acc863cb7a24..d65c1a3de92dc 100644 --- a/api_docs/charts.devdocs.json +++ b/api_docs/charts.devdocs.json @@ -108,9 +108,9 @@ "label": "EmptyPlaceholder", "description": [], "signature": [ - "({ icon, iconColor, message, dataTestSubj, }: { icon: ", + "({ icon, iconColor, message, dataTestSubj, className, }: { icon: ", "IconType", - "; iconColor?: string | undefined; message?: JSX.Element | undefined; dataTestSubj?: string | undefined; }) => JSX.Element" + "; iconColor?: string | undefined; message?: JSX.Element | undefined; dataTestSubj?: string | undefined; className?: string | undefined; }) => JSX.Element" ], "path": "src/plugins/charts/public/static/components/empty_placeholder.tsx", "deprecated": false, @@ -120,7 +120,7 @@ "id": "def-public.EmptyPlaceholder.$1", "type": "Object", "tags": [], - "label": "{\n icon,\n iconColor = 'subdued',\n message = ,\n dataTestSubj = 'emptyPlaceholder',\n}", + "label": "{\n icon,\n iconColor = 'subdued',\n message = ,\n dataTestSubj = 'emptyPlaceholder',\n className,\n}", "description": [], "path": "src/plugins/charts/public/static/components/empty_placeholder.tsx", "deprecated": false, @@ -176,6 +176,19 @@ ], "path": "src/plugins/charts/public/static/components/empty_placeholder.tsx", "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-public.EmptyPlaceholder.$1.className", + "type": "string", + "tags": [], + "label": "className", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/charts/public/static/components/empty_placeholder.tsx", + "deprecated": false } ] } diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 9b5f5c8a161ce..95308b8ba0f11 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github summary: API docs for the charts plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 321 | 2 | 288 | 4 | +| 322 | 2 | 289 | 4 | ## Client diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx index 7c59d31fb1ed5..e8a84efdfec23 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github summary: API docs for the cloud plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] warning: 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. --- diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx index b51d2afeb767b..799eac9d1ef47 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github summary: API docs for the cloudSecurityPosture plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture'] warning: 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. --- diff --git a/api_docs/console.mdx b/api_docs/console.mdx index 38b6093b24747..a8e8b042e932c 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github summary: API docs for the console plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] warning: 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. --- diff --git a/api_docs/controls.devdocs.json b/api_docs/controls.devdocs.json index 65ebe06c60961..f115f513fad2c 100644 --- a/api_docs/controls.devdocs.json +++ b/api_docs/controls.devdocs.json @@ -61,6 +61,81 @@ "path": "src/plugins/controls/public/control_group/embeddable/control_group_container.tsx", "deprecated": false }, + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupContainer.setLastUsedDataViewId", + "type": "Function", + "tags": [], + "label": "setLastUsedDataViewId", + "description": [], + "signature": [ + "(lastUsedDataViewId: string) => void" + ], + "path": "src/plugins/controls/public/control_group/embeddable/control_group_container.tsx", + "deprecated": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupContainer.setLastUsedDataViewId.$1", + "type": "string", + "tags": [], + "label": "lastUsedDataViewId", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/controls/public/control_group/embeddable/control_group_container.tsx", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupContainer.setRelevantDataViewId", + "type": "Function", + "tags": [], + "label": "setRelevantDataViewId", + "description": [], + "signature": [ + "(newRelevantDataViewId: string) => void" + ], + "path": "src/plugins/controls/public/control_group/embeddable/control_group_container.tsx", + "deprecated": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupContainer.setRelevantDataViewId.$1", + "type": "string", + "tags": [], + "label": "newRelevantDataViewId", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/controls/public/control_group/embeddable/control_group_container.tsx", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.ControlGroupContainer.getMostRelevantDataViewId", + "type": "Function", + "tags": [], + "label": "getMostRelevantDataViewId", + "description": [], + "signature": [ + "() => string | undefined" + ], + "path": "src/plugins/controls/public/control_group/embeddable/control_group_container.tsx", + "deprecated": false, + "children": [], + "returnComment": [] + }, { "parentPluginId": "controls", "id": "def-public.ControlGroupContainer.getCreateControlButton", @@ -887,8 +962,815 @@ "pluginId": "controls", "scope": "common", "docId": "kibControlsPluginApi", - "section": "def-common.OptionsListEmbeddableInput", - "text": "OptionsListEmbeddableInput" + "section": "def-common.OptionsListEmbeddableInput", + "text": "OptionsListEmbeddableInput" + }, + ", ", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlOutput", + "text": "ControlOutput" + }, + ">" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "deprecated": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddable.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"optionsListControl\"" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "deprecated": false + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddable.deferEmbeddableLoad", + "type": "boolean", + "tags": [], + "label": "deferEmbeddableLoad", + "description": [], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "deprecated": false + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddable.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "deprecated": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddable.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "input", + "description": [], + "signature": [ + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.OptionsListEmbeddableInput", + "text": "OptionsListEmbeddableInput" + } + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddable.Unnamed.$2", + "type": "CompoundType", + "tags": [], + "label": "output", + "description": [], + "signature": [ + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlOutput", + "text": "ControlOutput" + } + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddable.Unnamed.$3", + "type": "Object", + "tags": [], + "label": "parent", + "description": [], + "signature": [ + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.IContainer", + "text": "IContainer" + }, + "<{}, ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.ContainerInput", + "text": "ContainerInput" + }, + "<{}>, ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.ContainerOutput", + "text": "ContainerOutput" + }, + "> | undefined" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "deprecated": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddable.reload", + "type": "Function", + "tags": [], + "label": "reload", + "description": [], + "signature": [ + "() => void" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddable.destroy", + "type": "Function", + "tags": [], + "label": "destroy", + "description": [], + "signature": [ + "() => void" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddable.render", + "type": "Function", + "tags": [], + "label": "render", + "description": [], + "signature": [ + "(node: HTMLElement) => void" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "deprecated": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddable.render.$1", + "type": "Object", + "tags": [], + "label": "node", + "description": [], + "signature": [ + "HTMLElement" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory", + "type": "Class", + "tags": [], + "label": "OptionsListEmbeddableFactory", + "description": [], + "signature": [ + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.OptionsListEmbeddableFactory", + "text": "OptionsListEmbeddableFactory" + }, + " implements ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.EmbeddableFactoryDefinition", + "text": "EmbeddableFactoryDefinition" + }, + "<", + { + "pluginId": "embeddable", + "scope": "common", + "docId": "kibEmbeddablePluginApi", + "section": "def-common.EmbeddableInput", + "text": "EmbeddableInput" + }, + ", ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.EmbeddableOutput", + "text": "EmbeddableOutput" + }, + ", ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.IEmbeddable", + "text": "IEmbeddable" + }, + "<", + { + "pluginId": "embeddable", + "scope": "common", + "docId": "kibEmbeddablePluginApi", + "section": "def-common.EmbeddableInput", + "text": "EmbeddableInput" + }, + ", ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.EmbeddableOutput", + "text": "EmbeddableOutput" + }, + ">, ", + "SavedObjectAttributes", + ">,", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.IEditableControlFactory", + "text": "IEditableControlFactory" + }, + "<", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.OptionsListEmbeddableInput", + "text": "OptionsListEmbeddableInput" + }, + ">" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.canCreateNew", + "type": "Function", + "tags": [], + "label": "canCreateNew", + "description": [], + "signature": [ + "() => boolean" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.create", + "type": "Function", + "tags": [], + "label": "create", + "description": [], + "signature": [ + "(initialInput: ", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.OptionsListEmbeddableInput", + "text": "OptionsListEmbeddableInput" + }, + ", parent?: ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.IContainer", + "text": "IContainer" + }, + "<{}, ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.ContainerInput", + "text": "ContainerInput" + }, + "<{}>, ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.ContainerOutput", + "text": "ContainerOutput" + }, + "> | undefined) => Promise<", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.OptionsListEmbeddable", + "text": "OptionsListEmbeddable" + }, + ">" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.create.$1", + "type": "Object", + "tags": [], + "label": "initialInput", + "description": [], + "signature": [ + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.OptionsListEmbeddableInput", + "text": "OptionsListEmbeddableInput" + } + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.create.$2", + "type": "Object", + "tags": [], + "label": "parent", + "description": [], + "signature": [ + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.IContainer", + "text": "IContainer" + }, + "<{}, ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.ContainerInput", + "text": "ContainerInput" + }, + "<{}>, ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.ContainerOutput", + "text": "ContainerOutput" + }, + "> | undefined" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.presaveTransformFunction", + "type": "Function", + "tags": [], + "label": "presaveTransformFunction", + "description": [], + "signature": [ + "(newInput: Partial<", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.OptionsListEmbeddableInput", + "text": "OptionsListEmbeddableInput" + }, + ">, embeddable?: ", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlEmbeddable", + "text": "ControlEmbeddable" + }, + "<", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.OptionsListEmbeddableInput", + "text": "OptionsListEmbeddableInput" + }, + ", ", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlOutput", + "text": "ControlOutput" + }, + "> | undefined) => Partial<", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.OptionsListEmbeddableInput", + "text": "OptionsListEmbeddableInput" + }, + ">" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.presaveTransformFunction.$1", + "type": "Object", + "tags": [], + "label": "newInput", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.OptionsListEmbeddableInput", + "text": "OptionsListEmbeddableInput" + }, + ">" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.presaveTransformFunction.$2", + "type": "Object", + "tags": [], + "label": "embeddable", + "description": [], + "signature": [ + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlEmbeddable", + "text": "ControlEmbeddable" + }, + "<", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.OptionsListEmbeddableInput", + "text": "OptionsListEmbeddableInput" + }, + ", ", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlOutput", + "text": "ControlOutput" + }, + "> | undefined" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.controlEditorComponent", + "type": "Function", + "tags": [], + "label": "controlEditorComponent", + "description": [], + "signature": [ + "({ onChange, initialInput, setValidState, setDefaultTitle, getRelevantDataViewId, setLastUsedDataViewId, }: ", + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlEditorProps", + "text": "ControlEditorProps" + }, + "<", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.OptionsListEmbeddableInput", + "text": "OptionsListEmbeddableInput" + }, + ">) => JSX.Element" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.controlEditorComponent.$1", + "type": "Object", + "tags": [], + "label": "__0", + "description": [], + "signature": [ + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.ControlEditorProps", + "text": "ControlEditorProps" + }, + "<", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.OptionsListEmbeddableInput", + "text": "OptionsListEmbeddableInput" + }, + ">" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_editor.tsx", + "deprecated": false + } + ] + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.isEditable", + "type": "Function", + "tags": [], + "label": "isEditable", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.getDisplayName", + "type": "Function", + "tags": [], + "label": "getDisplayName", + "description": [], + "signature": [ + "() => string" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.getIconType", + "type": "Function", + "tags": [], + "label": "getIconType", + "description": [], + "signature": [ + "() => string" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.getDescription", + "type": "Function", + "tags": [], + "label": "getDescription", + "description": [], + "signature": [ + "() => string" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.inject", + "type": "Function", + "tags": [], + "label": "inject", + "description": [], + "signature": [ + "(state: ", + { + "pluginId": "embeddable", + "scope": "common", + "docId": "kibEmbeddablePluginApi", + "section": "def-common.EmbeddableStateWithType", + "text": "EmbeddableStateWithType" + }, + ", references: ", + "SavedObjectReference", + "[]) => ", + { + "pluginId": "embeddable", + "scope": "common", + "docId": "kibEmbeddablePluginApi", + "section": "def-common.EmbeddableStateWithType", + "text": "EmbeddableStateWithType" + } + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.inject.$1", + "type": "Uncategorized", + "tags": [], + "label": "state", + "description": [], + "signature": [ + "P" + ], + "path": "src/plugins/kibana_utils/common/persistable_state/types.ts", + "deprecated": false + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.inject.$2", + "type": "Array", + "tags": [], + "label": "references", + "description": [], + "signature": [ + "SavedObjectReference", + "[]" + ], + "path": "src/plugins/kibana_utils/common/persistable_state/types.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.extract", + "type": "Function", + "tags": [], + "label": "extract", + "description": [], + "signature": [ + "(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: ", + "SavedObjectReference", + "[]; }" + ], + "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.OptionsListEmbeddableFactory.extract.$1", + "type": "Uncategorized", + "tags": [], + "label": "state", + "description": [], + "signature": [ + "P" + ], + "path": "src/plugins/kibana_utils/common/persistable_state/types.ts", + "deprecated": false + } + ] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "controls", + "id": "def-public.RangeSliderEmbeddable", + "type": "Class", + "tags": [], + "label": "RangeSliderEmbeddable", + "description": [], + "signature": [ + { + "pluginId": "controls", + "scope": "public", + "docId": "kibControlsPluginApi", + "section": "def-public.RangeSliderEmbeddable", + "text": "RangeSliderEmbeddable" + }, + " extends ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.Embeddable", + "text": "Embeddable" + }, + "<", + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.RangeSliderEmbeddableInput", + "text": "RangeSliderEmbeddableInput" }, ", ", { @@ -900,35 +1782,35 @@ }, ">" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable.tsx", "deprecated": false, "children": [ { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddable.type", + "id": "def-public.RangeSliderEmbeddable.type", "type": "string", "tags": [], "label": "type", "description": [], "signature": [ - "\"optionsListControl\"" + "\"rangeSliderControl\"" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable.tsx", "deprecated": false }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddable.deferEmbeddableLoad", + "id": "def-public.RangeSliderEmbeddable.deferEmbeddableLoad", "type": "boolean", "tags": [], "label": "deferEmbeddableLoad", "description": [], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable.tsx", "deprecated": false }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddable.Unnamed", + "id": "def-public.RangeSliderEmbeddable.Unnamed", "type": "Function", "tags": [], "label": "Constructor", @@ -936,12 +1818,12 @@ "signature": [ "any" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable.tsx", "deprecated": false, "children": [ { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddable.Unnamed.$1", + "id": "def-public.RangeSliderEmbeddable.Unnamed.$1", "type": "Object", "tags": [], "label": "input", @@ -951,17 +1833,17 @@ "pluginId": "controls", "scope": "common", "docId": "kibControlsPluginApi", - "section": "def-common.OptionsListEmbeddableInput", - "text": "OptionsListEmbeddableInput" + "section": "def-common.RangeSliderEmbeddableInput", + "text": "RangeSliderEmbeddableInput" } ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable.tsx", "deprecated": false, "isRequired": true }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddable.Unnamed.$2", + "id": "def-public.RangeSliderEmbeddable.Unnamed.$2", "type": "CompoundType", "tags": [], "label": "output", @@ -975,13 +1857,13 @@ "text": "ControlOutput" } ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable.tsx", "deprecated": false, "isRequired": true }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddable.Unnamed.$3", + "id": "def-public.RangeSliderEmbeddable.Unnamed.$3", "type": "Object", "tags": [], "label": "parent", @@ -1012,7 +1894,7 @@ }, "> | undefined" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable.tsx", "deprecated": false, "isRequired": false } @@ -1021,7 +1903,7 @@ }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddable.reload", + "id": "def-public.RangeSliderEmbeddable.reload", "type": "Function", "tags": [], "label": "reload", @@ -1029,14 +1911,14 @@ "signature": [ "() => void" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable.tsx", "deprecated": false, "children": [], "returnComment": [] }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddable.destroy", + "id": "def-public.RangeSliderEmbeddable.destroy", "type": "Function", "tags": [], "label": "destroy", @@ -1044,14 +1926,14 @@ "signature": [ "() => void" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable.tsx", "deprecated": false, "children": [], "returnComment": [] }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddable.render", + "id": "def-public.RangeSliderEmbeddable.render", "type": "Function", "tags": [], "label": "render", @@ -1059,12 +1941,12 @@ "signature": [ "(node: HTMLElement) => void" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable.tsx", "deprecated": false, "children": [ { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddable.render.$1", + "id": "def-public.RangeSliderEmbeddable.render.$1", "type": "Object", "tags": [], "label": "node", @@ -1072,7 +1954,7 @@ "signature": [ "HTMLElement" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable.tsx", "deprecated": false, "isRequired": true } @@ -1084,18 +1966,18 @@ }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory", + "id": "def-public.RangeSliderEmbeddableFactory", "type": "Class", "tags": [], - "label": "OptionsListEmbeddableFactory", + "label": "RangeSliderEmbeddableFactory", "description": [], "signature": [ { "pluginId": "controls", "scope": "public", "docId": "kibControlsPluginApi", - "section": "def-public.OptionsListEmbeddableFactory", - "text": "OptionsListEmbeddableFactory" + "section": "def-public.RangeSliderEmbeddableFactory", + "text": "RangeSliderEmbeddableFactory" }, " implements ", { @@ -1160,27 +2042,27 @@ "pluginId": "controls", "scope": "common", "docId": "kibControlsPluginApi", - "section": "def-common.OptionsListEmbeddableInput", - "text": "OptionsListEmbeddableInput" + "section": "def-common.RangeSliderEmbeddableInput", + "text": "RangeSliderEmbeddableInput" }, ">" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false, "children": [ { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.type", + "id": "def-public.RangeSliderEmbeddableFactory.type", "type": "string", "tags": [], "label": "type", "description": [], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.canCreateNew", + "id": "def-public.RangeSliderEmbeddableFactory.canCreateNew", "type": "Function", "tags": [], "label": "canCreateNew", @@ -1188,14 +2070,14 @@ "signature": [ "() => boolean" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false, "children": [], "returnComment": [] }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.Unnamed", + "id": "def-public.RangeSliderEmbeddableFactory.Unnamed", "type": "Function", "tags": [], "label": "Constructor", @@ -1203,14 +2085,14 @@ "signature": [ "any" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false, "children": [], "returnComment": [] }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.create", + "id": "def-public.RangeSliderEmbeddableFactory.create", "type": "Function", "tags": [], "label": "create", @@ -1221,8 +2103,8 @@ "pluginId": "controls", "scope": "common", "docId": "kibControlsPluginApi", - "section": "def-common.OptionsListEmbeddableInput", - "text": "OptionsListEmbeddableInput" + "section": "def-common.RangeSliderEmbeddableInput", + "text": "RangeSliderEmbeddableInput" }, ", parent?: ", { @@ -1253,17 +2135,17 @@ "pluginId": "controls", "scope": "public", "docId": "kibControlsPluginApi", - "section": "def-public.OptionsListEmbeddable", - "text": "OptionsListEmbeddable" + "section": "def-public.RangeSliderEmbeddable", + "text": "RangeSliderEmbeddable" }, ">" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false, "children": [ { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.create.$1", + "id": "def-public.RangeSliderEmbeddableFactory.create.$1", "type": "Object", "tags": [], "label": "initialInput", @@ -1273,17 +2155,17 @@ "pluginId": "controls", "scope": "common", "docId": "kibControlsPluginApi", - "section": "def-common.OptionsListEmbeddableInput", - "text": "OptionsListEmbeddableInput" + "section": "def-common.RangeSliderEmbeddableInput", + "text": "RangeSliderEmbeddableInput" } ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false, "isRequired": true }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.create.$2", + "id": "def-public.RangeSliderEmbeddableFactory.create.$2", "type": "Object", "tags": [], "label": "parent", @@ -1314,7 +2196,7 @@ }, "> | undefined" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false, "isRequired": false } @@ -1323,7 +2205,7 @@ }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.presaveTransformFunction", + "id": "def-public.RangeSliderEmbeddableFactory.presaveTransformFunction", "type": "Function", "tags": [], "label": "presaveTransformFunction", @@ -1334,8 +2216,8 @@ "pluginId": "controls", "scope": "common", "docId": "kibControlsPluginApi", - "section": "def-common.OptionsListEmbeddableInput", - "text": "OptionsListEmbeddableInput" + "section": "def-common.RangeSliderEmbeddableInput", + "text": "RangeSliderEmbeddableInput" }, ">, embeddable?: ", { @@ -1350,8 +2232,8 @@ "pluginId": "controls", "scope": "common", "docId": "kibControlsPluginApi", - "section": "def-common.OptionsListEmbeddableInput", - "text": "OptionsListEmbeddableInput" + "section": "def-common.RangeSliderEmbeddableInput", + "text": "RangeSliderEmbeddableInput" }, ", ", { @@ -1366,17 +2248,17 @@ "pluginId": "controls", "scope": "common", "docId": "kibControlsPluginApi", - "section": "def-common.OptionsListEmbeddableInput", - "text": "OptionsListEmbeddableInput" + "section": "def-common.RangeSliderEmbeddableInput", + "text": "RangeSliderEmbeddableInput" }, ">" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false, "children": [ { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.presaveTransformFunction.$1", + "id": "def-public.RangeSliderEmbeddableFactory.presaveTransformFunction.$1", "type": "Object", "tags": [], "label": "newInput", @@ -1387,18 +2269,18 @@ "pluginId": "controls", "scope": "common", "docId": "kibControlsPluginApi", - "section": "def-common.OptionsListEmbeddableInput", - "text": "OptionsListEmbeddableInput" + "section": "def-common.RangeSliderEmbeddableInput", + "text": "RangeSliderEmbeddableInput" }, ">" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false, "isRequired": true }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.presaveTransformFunction.$2", + "id": "def-public.RangeSliderEmbeddableFactory.presaveTransformFunction.$2", "type": "Object", "tags": [], "label": "embeddable", @@ -1416,8 +2298,8 @@ "pluginId": "controls", "scope": "common", "docId": "kibControlsPluginApi", - "section": "def-common.OptionsListEmbeddableInput", - "text": "OptionsListEmbeddableInput" + "section": "def-common.RangeSliderEmbeddableInput", + "text": "RangeSliderEmbeddableInput" }, ", ", { @@ -1429,7 +2311,7 @@ }, "> | undefined" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false, "isRequired": false } @@ -1438,7 +2320,7 @@ }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.controlEditorComponent", + "id": "def-public.RangeSliderEmbeddableFactory.controlEditorComponent", "type": "Function", "tags": [], "label": "controlEditorComponent", @@ -1457,18 +2339,18 @@ "pluginId": "controls", "scope": "common", "docId": "kibControlsPluginApi", - "section": "def-common.OptionsListEmbeddableInput", - "text": "OptionsListEmbeddableInput" + "section": "def-common.RangeSliderEmbeddableInput", + "text": "RangeSliderEmbeddableInput" }, ">) => JSX.Element" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false, "returnComment": [], "children": [ { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.controlEditorComponent.$1", + "id": "def-public.RangeSliderEmbeddableFactory.controlEditorComponent.$1", "type": "Object", "tags": [], "label": "__0", @@ -1486,19 +2368,19 @@ "pluginId": "controls", "scope": "common", "docId": "kibControlsPluginApi", - "section": "def-common.OptionsListEmbeddableInput", - "text": "OptionsListEmbeddableInput" + "section": "def-common.RangeSliderEmbeddableInput", + "text": "RangeSliderEmbeddableInput" }, ">" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_editor.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_editor.tsx", "deprecated": false } ] }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.isEditable", + "id": "def-public.RangeSliderEmbeddableFactory.isEditable", "type": "Function", "tags": [], "label": "isEditable", @@ -1506,14 +2388,14 @@ "signature": [ "() => Promise" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false, "children": [], "returnComment": [] }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.getDisplayName", + "id": "def-public.RangeSliderEmbeddableFactory.getDisplayName", "type": "Function", "tags": [], "label": "getDisplayName", @@ -1521,14 +2403,14 @@ "signature": [ "() => string" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false, "children": [], "returnComment": [] }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.getIconType", + "id": "def-public.RangeSliderEmbeddableFactory.getIconType", "type": "Function", "tags": [], "label": "getIconType", @@ -1536,14 +2418,14 @@ "signature": [ "() => string" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false, "children": [], "returnComment": [] }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.getDescription", + "id": "def-public.RangeSliderEmbeddableFactory.getDescription", "type": "Function", "tags": [], "label": "getDescription", @@ -1551,14 +2433,14 @@ "signature": [ "() => string" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false, "children": [], "returnComment": [] }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.inject", + "id": "def-public.RangeSliderEmbeddableFactory.inject", "type": "Function", "tags": [], "label": "inject", @@ -1583,13 +2465,13 @@ "text": "EmbeddableStateWithType" } ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false, "returnComment": [], "children": [ { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.inject.$1", + "id": "def-public.RangeSliderEmbeddableFactory.inject.$1", "type": "Uncategorized", "tags": [], "label": "state", @@ -1602,7 +2484,7 @@ }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.inject.$2", + "id": "def-public.RangeSliderEmbeddableFactory.inject.$2", "type": "Array", "tags": [], "label": "references", @@ -1618,7 +2500,7 @@ }, { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.extract", + "id": "def-public.RangeSliderEmbeddableFactory.extract", "type": "Function", "tags": [], "label": "extract", @@ -1644,13 +2526,13 @@ "SavedObjectReference", "[]; }" ], - "path": "src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx", + "path": "src/plugins/controls/public/control_types/range_slider/range_slider_embeddable_factory.tsx", "deprecated": false, "returnComment": [], "children": [ { "parentPluginId": "controls", - "id": "def-public.OptionsListEmbeddableFactory.extract.$1", + "id": "def-public.RangeSliderEmbeddableFactory.extract.$1", "type": "Uncategorized", "tags": [], "label": "state", @@ -1824,6 +2706,51 @@ "path": "src/plugins/controls/public/types.ts", "deprecated": false }, + { + "parentPluginId": "controls", + "id": "def-public.ControlEditorProps.getRelevantDataViewId", + "type": "Function", + "tags": [], + "label": "getRelevantDataViewId", + "description": [], + "signature": [ + "(() => string | undefined) | undefined" + ], + "path": "src/plugins/controls/public/types.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "controls", + "id": "def-public.ControlEditorProps.setLastUsedDataViewId", + "type": "Function", + "tags": [], + "label": "setLastUsedDataViewId", + "description": [], + "signature": [ + "((newId: string) => void) | undefined" + ], + "path": "src/plugins/controls/public/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.ControlEditorProps.setLastUsedDataViewId.$1", + "type": "string", + "tags": [], + "label": "newId", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/controls/public/types.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "controls", "id": "def-public.ControlEditorProps.onChange", @@ -2306,6 +3233,63 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "controls", + "id": "def-public.RangeSliderEmbeddableInput", + "type": "Interface", + "tags": [], + "label": "RangeSliderEmbeddableInput", + "description": [], + "signature": [ + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.RangeSliderEmbeddableInput", + "text": "RangeSliderEmbeddableInput" + }, + " extends ", + "ControlInput" + ], + "path": "src/plugins/controls/common/control_types/range_slider/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-public.RangeSliderEmbeddableInput.fieldName", + "type": "string", + "tags": [], + "label": "fieldName", + "description": [], + "path": "src/plugins/controls/common/control_types/range_slider/types.ts", + "deprecated": false + }, + { + "parentPluginId": "controls", + "id": "def-public.RangeSliderEmbeddableInput.dataViewId", + "type": "string", + "tags": [], + "label": "dataViewId", + "description": [], + "path": "src/plugins/controls/common/control_types/range_slider/types.ts", + "deprecated": false + }, + { + "parentPluginId": "controls", + "id": "def-public.RangeSliderEmbeddableInput.value", + "type": "Object", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "[string, string]" + ], + "path": "src/plugins/controls/common/control_types/range_slider/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false } ], "enums": [], @@ -2530,6 +3514,34 @@ "path": "src/plugins/controls/common/control_types/options_list/types.ts", "deprecated": false, "initialIsOpen": false + }, + { + "parentPluginId": "controls", + "id": "def-public.RANGE_SLIDER_CONTROL", + "type": "string", + "tags": [], + "label": "RANGE_SLIDER_CONTROL", + "description": [], + "signature": [ + "\"rangeSliderControl\"" + ], + "path": "src/plugins/controls/common/control_types/range_slider/types.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "controls", + "id": "def-public.TIME_SLIDER_CONTROL", + "type": "string", + "tags": [], + "label": "TIME_SLIDER_CONTROL", + "description": [], + "signature": [ + "\"timeSlider\"" + ], + "path": "src/plugins/controls/common/control_types/time_slider/types.ts", + "deprecated": false, + "initialIsOpen": false } ], "objects": [] @@ -2840,6 +3852,63 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "controls", + "id": "def-common.RangeSliderEmbeddableInput", + "type": "Interface", + "tags": [], + "label": "RangeSliderEmbeddableInput", + "description": [], + "signature": [ + { + "pluginId": "controls", + "scope": "common", + "docId": "kibControlsPluginApi", + "section": "def-common.RangeSliderEmbeddableInput", + "text": "RangeSliderEmbeddableInput" + }, + " extends ", + "ControlInput" + ], + "path": "src/plugins/controls/common/control_types/range_slider/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "controls", + "id": "def-common.RangeSliderEmbeddableInput.fieldName", + "type": "string", + "tags": [], + "label": "fieldName", + "description": [], + "path": "src/plugins/controls/common/control_types/range_slider/types.ts", + "deprecated": false + }, + { + "parentPluginId": "controls", + "id": "def-common.RangeSliderEmbeddableInput.dataViewId", + "type": "string", + "tags": [], + "label": "dataViewId", + "description": [], + "path": "src/plugins/controls/common/control_types/range_slider/types.ts", + "deprecated": false + }, + { + "parentPluginId": "controls", + "id": "def-common.RangeSliderEmbeddableInput.value", + "type": "Object", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "[string, string]" + ], + "path": "src/plugins/controls/common/control_types/range_slider/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false } ], "enums": [], @@ -2885,6 +3954,34 @@ "path": "src/plugins/controls/common/control_types/options_list/types.ts", "deprecated": false, "initialIsOpen": false + }, + { + "parentPluginId": "controls", + "id": "def-common.RANGE_SLIDER_CONTROL", + "type": "string", + "tags": [], + "label": "RANGE_SLIDER_CONTROL", + "description": [], + "signature": [ + "\"rangeSliderControl\"" + ], + "path": "src/plugins/controls/common/control_types/range_slider/types.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "controls", + "id": "def-common.TIME_SLIDER_CONTROL", + "type": "string", + "tags": [], + "label": "TIME_SLIDER_CONTROL", + "description": [], + "signature": [ + "\"timeSlider\"" + ], + "path": "src/plugins/controls/common/control_types/time_slider/types.ts", + "deprecated": false, + "initialIsOpen": false } ], "objects": [] diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index ab0bdaa1562c8..da58bbe0f9871 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github summary: API docs for the controls plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-prese | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 133 | 0 | 127 | 4 | +| 185 | 0 | 179 | 4 | ## Client diff --git a/api_docs/core.devdocs.json b/api_docs/core.devdocs.json index d3e55ebe7e392..6a39eb50a7f3f 100644 --- a/api_docs/core.devdocs.json +++ b/api_docs/core.devdocs.json @@ -1336,10 +1336,6 @@ { "plugin": "visTypeVega", "path": "src/plugins/vis_types/vega/public/plugin.ts" - }, - { - "plugin": "visTypeVega", - "path": "src/plugins/vis_types/vega/target/types/public/data_model/search_api.d.ts" } ] } @@ -3119,6 +3115,19 @@ "path": "src/core/public/overlays/flyout/flyout_service.tsx", "deprecated": false }, + { + "parentPluginId": "core", + "id": "def-public.OverlayFlyoutOpenOptions.outsideClickCloses", + "type": "CompoundType", + "tags": [], + "label": "outsideClickCloses", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/core/public/overlays/flyout/flyout_service.tsx", + "deprecated": false + }, { "parentPluginId": "core", "id": "def-public.OverlayFlyoutOpenOptions.maskProps", @@ -6831,7 +6840,7 @@ "signature": [ "{ type?: ", "UiSettingsType", - " | undefined; description?: string | undefined; name?: string | undefined; options?: string[] | undefined; order?: number | undefined; value?: unknown; category?: string[] | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonly?: boolean | undefined; sensitive?: boolean | undefined; deprecation?: ", + " | undefined; value?: unknown; description?: string | undefined; name?: string | undefined; options?: string[] | undefined; order?: number | undefined; category?: string[] | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonly?: boolean | undefined; sensitive?: boolean | undefined; deprecation?: ", "DeprecationSettings", " | undefined; metric?: { type: string; name: string; } | undefined; }" ], @@ -6972,7 +6981,7 @@ "signature": [ "Pick<", "Toast", - ", \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"security\" | \"className\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"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\" | \"onError\" | \"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\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", + ", \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"className\" | \"security\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"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\" | \"onError\" | \"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\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", { "pluginId": "core", "scope": "public", @@ -7029,7 +7038,7 @@ "signature": [ "Pick<", "Toast", - ", \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"security\" | \"className\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"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\" | \"onError\" | \"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\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", + ", \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"className\" | \"security\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"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\" | \"onError\" | \"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\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", { "pluginId": "core", "scope": "public", @@ -8086,16 +8095,7 @@ "path": "src/core/server/plugins/types.ts", "deprecated": true, "removeBy": "8.8.0", - "references": [ - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/target/types/server/plugin.d.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/target/types/server/plugin.d.ts" - } - ], + "references": [], "children": [ { "parentPluginId": "core", @@ -24399,7 +24399,7 @@ "signature": [ "{ type?: ", "UiSettingsType", - " | undefined; description?: string | undefined; name?: string | undefined; options?: string[] | undefined; order?: number | undefined; value?: unknown; category?: string[] | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonly?: boolean | undefined; sensitive?: boolean | undefined; deprecation?: ", + " | undefined; value?: unknown; description?: string | undefined; name?: string | undefined; options?: string[] | undefined; order?: number | undefined; category?: string[] | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonly?: boolean | undefined; sensitive?: boolean | undefined; deprecation?: ", "DeprecationSettings", " | undefined; metric?: { type: string; name: string; } | undefined; }" ], diff --git a/api_docs/core.mdx b/api_docs/core.mdx index 9c7cd4378271e..2d7eb4254e5fc 100644 --- a/api_docs/core.mdx +++ b/api_docs/core.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/core title: "core" image: https://source.unsplash.com/400x175/?github summary: API docs for the core plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'core'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2374 | 15 | 969 | 33 | +| 2375 | 15 | 970 | 33 | ## Client diff --git a/api_docs/core_application.devdocs.json b/api_docs/core_application.devdocs.json index 481db4d605e5c..49b38022421a7 100644 --- a/api_docs/core_application.devdocs.json +++ b/api_docs/core_application.devdocs.json @@ -1385,21 +1385,9 @@ "plugin": "security", "path": "x-pack/plugins/security/public/authentication/logout/logout_app.test.ts" }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/target/types/public/applications/fleet/index.d.ts" - }, - { - "plugin": "fleet", - "path": "x-pack/plugins/fleet/target/types/public/applications/integrations/index.d.ts" - }, { "plugin": "kibanaOverview", "path": "src/plugins/kibana_overview/public/application.tsx" - }, - { - "plugin": "management", - "path": "src/plugins/management/target/types/public/application.d.ts" } ] }, @@ -1489,41 +1477,9 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/app/index.tsx" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/render_app.d.ts" - }, { "plugin": "security", "path": "x-pack/plugins/security/public/authentication/logout/logout_app.test.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_page.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/target/types/public/types.d.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/target/types/public/visualize_app/app.d.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/target/types/public/visualize_app/index.d.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/target/types/public/visualize_app/components/visualize_editor_common.d.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/target/types/public/visualize_app/components/visualize_top_nav.d.ts" } ], "children": [ diff --git a/api_docs/core_application.mdx b/api_docs/core_application.mdx index dd9fd27275fdb..a42c54aefe66c 100644 --- a/api_docs/core_application.mdx +++ b/api_docs/core_application.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/core-application title: "core.application" image: https://source.unsplash.com/400x175/?github summary: API docs for the core.application plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'core.application'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2374 | 15 | 969 | 33 | +| 2375 | 15 | 970 | 33 | ## Client diff --git a/api_docs/core_chrome.mdx b/api_docs/core_chrome.mdx index be217167a8488..e0c9186af9b80 100644 --- a/api_docs/core_chrome.mdx +++ b/api_docs/core_chrome.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/core-chrome title: "core.chrome" image: https://source.unsplash.com/400x175/?github summary: API docs for the core.chrome plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'core.chrome'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2374 | 15 | 969 | 33 | +| 2375 | 15 | 970 | 33 | ## Client diff --git a/api_docs/core_http.mdx b/api_docs/core_http.mdx index 995f67b0810bd..52432373b5fbe 100644 --- a/api_docs/core_http.mdx +++ b/api_docs/core_http.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/core-http title: "core.http" image: https://source.unsplash.com/400x175/?github summary: API docs for the core.http plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'core.http'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2374 | 15 | 969 | 33 | +| 2375 | 15 | 970 | 33 | ## Client diff --git a/api_docs/core_saved_objects.mdx b/api_docs/core_saved_objects.mdx index 1fe4aa1869bd5..b6cb35d2f1dd6 100644 --- a/api_docs/core_saved_objects.mdx +++ b/api_docs/core_saved_objects.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/core-savedObjects title: "core.savedObjects" image: https://source.unsplash.com/400x175/?github summary: API docs for the core.savedObjects plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'core.savedObjects'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2374 | 15 | 969 | 33 | +| 2375 | 15 | 970 | 33 | ## Client diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index 3eafb18871dcc..be6de7f17ddcf 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github summary: API docs for the customIntegrations plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] warning: 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. --- diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index 0c083d76e254d..165112486e57f 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github summary: API docs for the dashboard plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard'] warning: 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. --- diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx index 658e0d1100ebf..c9a328ba8dbc2 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github summary: API docs for the dashboardEnhanced plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] warning: 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. --- diff --git a/api_docs/data.devdocs.json b/api_docs/data.devdocs.json index 6b0ed841f0197..d5954d1d1dc76 100644 --- a/api_docs/data.devdocs.json +++ b/api_docs/data.devdocs.json @@ -2663,30 +2663,6 @@ "plugin": "dataViews", "path": "src/plugins/data_views/common/index.ts" }, - { - "plugin": "upgradeAssistant", - "path": "x-pack/plugins/upgrade_assistant/target/types/__jest__/client_integration/helpers/app_context.mock.d.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/target/types/public/application/lib/load_saved_dashboard_state.d.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/target/types/public/application/hooks/use_dashboard_app_state.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/main/utils/use_discover_state.d.ts" - }, { "plugin": "ux", "path": "x-pack/plugins/ux/public/components/app/rum_dashboard/local_uifilters/selected_filters.tsx" @@ -2695,30 +2671,6 @@ "plugin": "ux", "path": "x-pack/plugins/ux/public/components/app/rum_dashboard/local_uifilters/selected_filters.tsx" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/percentile_agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/percentile_agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, { "plugin": "ux", "path": "x-pack/plugins/ux/public/components/app/rum_dashboard/local_uifilters/selected_wildcards.tsx" @@ -2771,94 +2723,6 @@ "plugin": "dataViewEditor", "path": "src/plugins/data_view_editor/public/open_editor.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": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.sagas.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.sagas.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/persistence.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/persistence.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/inspect_panel.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/inspect_panel.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/workspace_layout/workspace_layout.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/workspace_layout/workspace_layout.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/workspace_layout/workspace_layout.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" - }, { "plugin": "uptime", "path": "x-pack/plugins/uptime/public/hooks/update_kuery_string.ts" @@ -2879,50 +2743,6 @@ "plugin": "uptime", "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.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": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.test.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.test.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" @@ -2931,38 +2751,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/es_search_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/es_search_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts" @@ -2971,14 +2759,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_index_pattern_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_index_pattern_select.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" @@ -2991,106 +2771,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/count_agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/count_agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/geo_line_form.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/geo_line_form.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/filter_editor/filter_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/filter_editor/filter_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/where_expression.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/where_expression.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" - }, { "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts" @@ -3143,66 +2823,6 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.test.ts" }, - { - "plugin": "dataViewFieldEditor", - "path": "src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts" - }, - { - "plugin": "dataViewFieldEditor", - "path": "src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts" - }, { "plugin": "dataViews", "path": "src/plugins/data_views/common/data_views/data_view.test.ts" @@ -3256,34 +2876,6 @@ "plugin": "dataViews", "path": "src/plugins/data_views/common/index.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" - }, { "plugin": "dataViews", "path": "src/plugins/data_views/public/index.ts" @@ -3478,223 +3070,15 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/es_doc_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/es_doc_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metrics_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metrics_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metric_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metric_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/top_hits_form.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/top_hits_form.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/top_hits_form.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, { "plugin": "visDefaultEditor", @@ -3780,30 +3164,6 @@ "plugin": "dataViewEditor", "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.test.ts" }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_param_props.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_param_props.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_field.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_field.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_sort_field.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_sort_field.d.ts" - }, { "plugin": "dataViews", "path": "src/plugins/data_views/common/data_views/data_view.test.ts" @@ -8397,14 +7757,6 @@ "plugin": "dataViews", "path": "src/plugins/data_views/common/data_views/data_view.ts" }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts" - }, { "plugin": "dataViews", "path": "src/plugins/data_views/server/utils.ts" @@ -8764,22 +8116,6 @@ { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/lib/kuery.ts" - }, - { - "plugin": "monitoring", - "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" - }, - { - "plugin": "monitoring", - "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" - }, - { - "plugin": "monitoring", - "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" - }, - { - "plugin": "monitoring", - "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" } ], "children": [ @@ -10709,14 +10045,6 @@ "deprecated": true, "removeBy": "8.1", "references": [ - { - "plugin": "discover", - "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" - }, { "plugin": "dashboard", "path": "src/plugins/dashboard/public/application/lib/filter_utils.ts" @@ -10777,14 +10105,6 @@ "plugin": "dashboard", "path": "src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx" }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts" - }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts" - }, { "plugin": "urlDrilldown", "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts" @@ -10801,18 +10121,6 @@ "plugin": "urlDrilldown", "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/url_drilldown.tsx" }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" - }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" - }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" - }, { "plugin": "urlDrilldown", "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/test/data.ts" @@ -10821,18 +10129,6 @@ "plugin": "urlDrilldown", "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/test/data.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" @@ -10848,42 +10144,6 @@ { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" } ], "initialIsOpen": false @@ -11339,38 +10599,6 @@ { "plugin": "maps", "path": "x-pack/plugins/maps/public/lazy_load_bundle/index.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/application.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/application.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" } ], "initialIsOpen": false @@ -11770,14 +10998,6 @@ { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts" - }, - { - "plugin": "dataEnhanced", - "path": "x-pack/plugins/data_enhanced/target/types/server/search/session/types.d.ts" - }, - { - "plugin": "dataEnhanced", - "path": "x-pack/plugins/data_enhanced/target/types/server/search/session/types.d.ts" } ], "initialIsOpen": false @@ -11876,16 +11096,7 @@ "path": "src/plugins/data/common/es_query/index.ts", "deprecated": true, "removeBy": "8.1", - "references": [ - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" - }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" - } - ], + "references": [], "initialIsOpen": false }, { @@ -12063,22 +11274,6 @@ "deprecated": true, "removeBy": "8.1", "references": [ - { - "plugin": "discover", - "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" - }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.ts" - }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/locators.test.ts" @@ -13630,18 +12825,6 @@ { "plugin": "apm", "path": "x-pack/plugins/apm/public/components/shared/kuery_bar/index.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" } ], "children": [ @@ -15647,10 +14830,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/kibana_services.ts" }, - { - "plugin": "fileUpload", - "path": "x-pack/plugins/file_upload/public/kibana_services.ts" - }, { "plugin": "infra", "path": "x-pack/plugins/infra/public/pages/link_to/redirect_to_node_logs.tsx" @@ -15801,10 +14980,6 @@ "path": "src/plugins/data/public/types.ts", "deprecated": true, "references": [ - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/main/components/chart/histogram.tsx" - }, { "plugin": "dashboard", "path": "src/plugins/dashboard/public/application/actions/export_csv_action.tsx" @@ -15837,10 +15012,6 @@ "plugin": "visTypeVislib", "path": "src/plugins/vis_types/vislib/public/plugin.ts" }, - { - "plugin": "dataViewFieldEditor", - "path": "src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts" - }, { "plugin": "expressionPartitionVis", "path": "src/plugins/chart_expressions/expression_partition_vis/public/utils/layers/get_layers.test.ts" @@ -17850,30 +17021,6 @@ "plugin": "dataViews", "path": "src/plugins/data_views/common/index.ts" }, - { - "plugin": "upgradeAssistant", - "path": "x-pack/plugins/upgrade_assistant/target/types/__jest__/client_integration/helpers/app_context.mock.d.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/target/types/public/application/lib/load_saved_dashboard_state.d.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/target/types/public/application/hooks/use_dashboard_app_state.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/main/utils/use_discover_state.d.ts" - }, { "plugin": "ux", "path": "x-pack/plugins/ux/public/components/app/rum_dashboard/local_uifilters/selected_filters.tsx" @@ -17882,30 +17029,6 @@ "plugin": "ux", "path": "x-pack/plugins/ux/public/components/app/rum_dashboard/local_uifilters/selected_filters.tsx" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/percentile_agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/percentile_agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, { "plugin": "ux", "path": "x-pack/plugins/ux/public/components/app/rum_dashboard/local_uifilters/selected_wildcards.tsx" @@ -17959,452 +17082,485 @@ "path": "src/plugins/data_view_editor/public/open_editor.tsx" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/types/app_state.ts" + "plugin": "uptime", + "path": "x-pack/plugins/uptime/public/hooks/update_kuery_string.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/types/app_state.ts" + "plugin": "uptime", + "path": "x-pack/plugins/uptime/public/hooks/update_kuery_string.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" + "plugin": "uptime", + "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.tsx" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" + "plugin": "uptime", + "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.tsx" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" + "plugin": "uptime", + "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.tsx" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" + "plugin": "maps", + "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.sagas.ts" + "plugin": "maps", + "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.sagas.ts" + "plugin": "maps", + "path": "x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/persistence.ts" + "plugin": "maps", + "path": "x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/persistence.ts" + "plugin": "maps", + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" + "plugin": "maps", + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" + "plugin": "maps", + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/inspect_panel.tsx" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/inspect_panel.tsx" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/utils/editor_config.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/workspace_layout/workspace_layout.tsx" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/utils/editor_config.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/workspace_layout/workspace_layout.tsx" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/workspace_layout/workspace_layout.tsx" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_select.tsx" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_select.tsx" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" }, { - "plugin": "uptime", - "path": "x-pack/plugins/uptime/public/hooks/update_kuery_string.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" }, { - "plugin": "uptime", - "path": "x-pack/plugins/uptime/public/hooks/update_kuery_string.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.test.ts" }, { - "plugin": "uptime", - "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.tsx" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.test.ts" }, { - "plugin": "uptime", - "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.tsx" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" }, { - "plugin": "uptime", - "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.tsx" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/mocks.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/mocks.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" + } + ], + "children": [], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-server.IndexPatternField", + "type": "Class", + "tags": [ + "deprecated" + ], + "label": "IndexPatternField", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.IndexPatternField", + "text": "IndexPatternField" }, + " extends ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + } + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": true, + "references": [ { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.test.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/index.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.test.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/public/index.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" + "plugin": "dataViewEditor", + "path": "src/plugins/data_view_editor/public/shared_imports.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" + "plugin": "dataViewEditor", + "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.ts" }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" + "plugin": "dataViewEditor", + "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.ts" }, { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts" + "plugin": "maps", + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts" + "plugin": "maps", + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" + "plugin": "maps", + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" + "plugin": "maps", + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/es_search_source.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/es_search_source.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "path": "x-pack/plugins/maps/public/components/metrics_editor/metric_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts" + "path": "x-pack/plugins/maps/public/components/metrics_editor/metric_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts" + "path": "x-pack/plugins/maps/public/components/metrics_editor/metric_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_index_pattern_select.d.ts" + "path": "x-pack/plugins/maps/public/classes/fields/es_doc_field.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_index_pattern_select.d.ts" + "path": "x-pack/plugins/maps/public/classes/fields/es_doc_field.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" + "path": "x-pack/plugins/maps/public/components/metrics_editor/metrics_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" + "path": "x-pack/plugins/maps/public/components/metrics_editor/metrics_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/update_source_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/count_agg_field.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/update_source_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/count_agg_field.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/top_hits_form.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/top_hits_form.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/top_hits_form.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/update_source_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/update_source_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/update_source_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/geo_line_form.d.ts" + "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/geo_line_form.d.ts" + "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/filter_editor/filter_editor.d.ts" + "path": "x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/filter_editor/filter_editor.d.ts" + "path": "x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" + "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" + "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" + "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" + "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" + "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/where_expression.d.ts" + "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/where_expression.d.ts" + "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" + "plugin": "maps", + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" + "plugin": "maps", + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts" + "plugin": "maps", + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts" + "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts" }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts" + "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts" }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/utils/editor_config.ts" + "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts" }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/utils/editor_config.ts" + "path": "src/plugins/vis_default_editor/public/components/agg_param_props.ts" }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" + "path": "src/plugins/vis_default_editor/public/components/agg_param_props.ts" }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" + "path": "src/plugins/vis_default_editor/public/components/controls/field.tsx" }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_select.tsx" + "path": "src/plugins/vis_default_editor/public/components/controls/field.tsx" }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_select.tsx" + "path": "src/plugins/vis_default_editor/public/components/controls/field.tsx" }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" + "path": "src/plugins/vis_default_editor/public/components/controls/field.tsx" }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" + "path": "src/plugins/vis_default_editor/public/components/controls/top_field.tsx" }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.test.ts" + "path": "src/plugins/vis_default_editor/public/components/controls/top_field.tsx" }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.test.ts" + "path": "src/plugins/vis_default_editor/public/components/controls/top_sort_field.tsx" }, { - "plugin": "dataViewFieldEditor", - "path": "src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/controls/top_sort_field.tsx" }, { - "plugin": "dataViewFieldEditor", - "path": "src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" + "plugin": "dataViewEditor", + "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.test.ts" }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" + "plugin": "dataViewEditor", + "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.test.ts" }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" + "plugin": "dataViewEditor", + "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.test.ts" }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" }, { "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" + "path": "src/plugins/data_views/common/fields/data_view_field.test.ts" }, { "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" + "path": "src/plugins/data_views/common/fields/data_view_field.test.ts" }, { "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" + "path": "src/plugins/data_views/common/fields/data_view_field.test.ts" }, { "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" + "path": "src/plugins/data_views/common/fields/data_view_field.test.ts" } ], "children": [], @@ -18412,6723 +17568,3700 @@ }, { "parentPluginId": "data", - "id": "def-server.IndexPatternField", + "id": "def-server.IndexPatternsFetcher", "type": "Class", - "tags": [ - "deprecated" - ], - "label": "IndexPatternField", + "tags": [], + "label": "IndexPatternsFetcher", "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.IndexPatternField", - "text": "IndexPatternField" - }, - " extends ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - } - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": true, - "references": [ - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/index.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false, + "children": [ { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "elasticsearchClient", + "description": [], + "signature": [ + { + "pluginId": "core", + "scope": "server", + "docId": "kibCorePluginApi", + "section": "def-server.ElasticsearchClient", + "text": "ElasticsearchClient" + } + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.Unnamed.$2", + "type": "boolean", + "tags": [], + "label": "allowNoIndices", + "description": [], + "signature": [ + "boolean" + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.getFieldsForWildcard", + "type": "Function", + "tags": [ + "property", + "property", + "return" + ], + "label": "getFieldsForWildcard", + "description": [ + "\n Get a list of field objects for an index pattern that may contain wildcards\n" + ], + "signature": [ + "(options: { pattern: string | string[]; metaFields?: string[] | undefined; fieldCapsOptions?: { allow_no_indices: boolean; } | undefined; type?: string | undefined; rollupIndex?: string | undefined; filter?: ", + "QueryDslQueryContainer", + " | undefined; }) => Promise<", + { + "pluginId": "dataViews", + "scope": "server", + "docId": "kibDataViewsPluginApi", + "section": "def-server.FieldDescriptor", + "text": "FieldDescriptor" + }, + "[]>" + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.getFieldsForWildcard.$1", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.getFieldsForWildcard.$1.pattern", + "type": "CompoundType", + "tags": [], + "label": "pattern", + "description": [], + "signature": [ + "string | string[]" + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.getFieldsForWildcard.$1.metaFields", + "type": "Array", + "tags": [], + "label": "metaFields", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.getFieldsForWildcard.$1.fieldCapsOptions", + "type": "Object", + "tags": [], + "label": "fieldCapsOptions", + "description": [], + "signature": [ + "{ allow_no_indices: boolean; } | undefined" + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.getFieldsForWildcard.$1.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.getFieldsForWildcard.$1.rollupIndex", + "type": "string", + "tags": [], + "label": "rollupIndex", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.getFieldsForWildcard.$1.filter", + "type": "Object", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "QueryDslQueryContainer", + " | undefined" + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false + } + ] + } + ], + "returnComment": [] }, { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/index.ts" - }, - { - "plugin": "dataViewEditor", - "path": "src/plugins/data_view_editor/public/shared_imports.ts" - }, - { - "plugin": "dataViewEditor", - "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.ts" - }, - { - "plugin": "dataViewEditor", - "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.ts" + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.getFieldsForTimePattern", + "type": "Function", + "tags": [ + "property", + "property", + "property", + "return" + ], + "label": "getFieldsForTimePattern", + "description": [ + "\n Get a list of field objects for a time pattern\n" + ], + "signature": [ + "(options: { pattern: string; metaFields: string[]; lookBack: number; interval: string; }) => Promise<", + { + "pluginId": "dataViews", + "scope": "server", + "docId": "kibDataViewsPluginApi", + "section": "def-server.FieldDescriptor", + "text": "FieldDescriptor" + }, + "[]>" + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.getFieldsForTimePattern.$1", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.getFieldsForTimePattern.$1.pattern", + "type": "string", + "tags": [], + "label": "pattern", + "description": [], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.getFieldsForTimePattern.$1.metaFields", + "type": "Array", + "tags": [], + "label": "metaFields", + "description": [], + "signature": [ + "string[]" + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.getFieldsForTimePattern.$1.lookBack", + "type": "number", + "tags": [], + "label": "lookBack", + "description": [], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.getFieldsForTimePattern.$1.interval", + "type": "string", + "tags": [], + "label": "interval", + "description": [], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false + } + ] + } + ], + "returnComment": [] }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" - }, + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.validatePatternListActive", + "type": "Function", + "tags": [ + "return" + ], + "label": "validatePatternListActive", + "description": [ + "\n Returns an index pattern list of only those index pattern strings in the given list that return indices\n" + ], + "signature": [ + "(patternList: string[]) => Promise" + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsFetcher.validatePatternListActive.$1", + "type": "Array", + "tags": [], + "label": "patternList", + "description": [ + "string[]" + ], + "signature": [ + "string[]" + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsService", + "type": "Class", + "tags": [ + "deprecated" + ], + "label": "IndexPatternsService", + "description": [], + "signature": [ { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.IndexPatternsService", + "text": "IndexPatternsService" }, + " extends ", { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" - }, + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewsService", + "text": "DataViewsService" + } + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": true, + "references": [ { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/index.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" + "path": "x-pack/plugins/maps/server/data_indexing/create_doc_source.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" + "path": "x-pack/plugins/maps/server/data_indexing/create_doc_source.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" - }, + "plugin": "dataViews", + "path": "src/plugins/data_views/public/index.ts" + } + ], + "children": [], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsService", + "type": "Class", + "tags": [ + "deprecated" + ], + "label": "IndexPatternsService", + "description": [], + "signature": [ { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.IndexPatternsService", + "text": "IndexPatternsService" }, + " extends ", { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" - }, + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewsService", + "text": "DataViewsService" + } + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": true, + "references": [ { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/index.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" + "path": "x-pack/plugins/maps/server/data_indexing/create_doc_source.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" + "path": "x-pack/plugins/maps/server/data_indexing/create_doc_source.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" - }, + "plugin": "dataViews", + "path": "src/plugins/data_views/public/index.ts" + } + ], + "children": [], + "initialIsOpen": false + } + ], + "functions": [ + { + "parentPluginId": "data", + "id": "def-server.getCapabilitiesForRollupIndices", + "type": "Function", + "tags": [], + "label": "getCapabilitiesForRollupIndices", + "description": [], + "signature": [ + "(indices: Record) => { [key: string]: any; }" + ], + "path": "src/plugins/data_views/server/fetcher/lib/map_capabilities.ts", + "deprecated": false, + "children": [ { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/metrics_editor/metric_editor.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/metrics_editor/metric_editor.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/metrics_editor/metric_editor.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/fields/es_doc_field.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/fields/es_doc_field.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/metrics_editor/metrics_editor.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/metrics_editor/metrics_editor.tsx" - }, + "parentPluginId": "data", + "id": "def-server.getCapabilitiesForRollupIndices.$1", + "type": "Object", + "tags": [], + "label": "indices", + "description": [], + "signature": [ + "Record" + ], + "path": "src/plugins/data_views/server/fetcher/lib/map_capabilities.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-server.getEsQueryConfig", + "type": "Function", + "tags": [], + "label": "getEsQueryConfig", + "description": [], + "signature": [ + "(config: KibanaConfig) => ", + "EsQueryConfig" + ], + "path": "src/plugins/data/common/es_query/get_es_query_config.ts", + "deprecated": false, + "children": [ { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/update_source_editor.tsx" - }, + "parentPluginId": "data", + "id": "def-server.getEsQueryConfig.$1", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + "KibanaConfig" + ], + "path": "src/plugins/data/common/es_query/get_es_query_config.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-server.getTime", + "type": "Function", + "tags": [], + "label": "getTime", + "description": [], + "signature": [ + "(indexPattern: ", { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/update_source_editor.tsx" + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.IIndexPattern", + "text": "IIndexPattern" }, + " | undefined, timeRange: ", { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/top_hits_form.tsx" + "pluginId": "data", + "scope": "common", + "docId": "kibDataQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" }, + ", options: { forceNow?: Date | undefined; fieldName?: string | undefined; } | undefined) => ", + "RangeFilter", + " | ", + "ScriptedRangeFilter", + " | MatchAllRangeFilter | undefined" + ], + "path": "src/plugins/data/common/query/timefilter/get_time.ts", + "deprecated": false, + "children": [ { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/top_hits_form.tsx" + "parentPluginId": "data", + "id": "def-server.getTime.$1", + "type": "Object", + "tags": [], + "label": "indexPattern", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.IIndexPattern", + "text": "IIndexPattern" + }, + " | undefined" + ], + "path": "src/plugins/data/common/query/timefilter/get_time.ts", + "deprecated": false, + "isRequired": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/top_hits_form.tsx" + "parentPluginId": "data", + "id": "def-server.getTime.$2", + "type": "Object", + "tags": [], + "label": "timeRange", + "description": [], + "signature": [ + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + } + ], + "path": "src/plugins/data/common/query/timefilter/get_time.ts", + "deprecated": false, + "isRequired": true }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/update_source_editor.tsx" - }, + "parentPluginId": "data", + "id": "def-server.getTime.$3", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "path": "src/plugins/data/common/query/timefilter/get_time.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-server.getTime.$3.forceNow", + "type": "Object", + "tags": [], + "label": "forceNow", + "description": [], + "signature": [ + "Date | undefined" + ], + "path": "src/plugins/data/common/query/timefilter/get_time.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.getTime.$3.fieldName", + "type": "string", + "tags": [], + "label": "fieldName", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data/common/query/timefilter/get_time.ts", + "deprecated": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-server.parseInterval", + "type": "Function", + "tags": [], + "label": "parseInterval", + "description": [], + "signature": [ + "(interval: string) => moment.Duration | null" + ], + "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_interval.ts", + "deprecated": false, + "children": [ { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/update_source_editor.tsx" - }, + "parentPluginId": "data", + "id": "def-server.parseInterval.$1", + "type": "string", + "tags": [], + "label": "interval", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_interval.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-server.shouldReadFieldFromDocValues", + "type": "Function", + "tags": [], + "label": "shouldReadFieldFromDocValues", + "description": [], + "signature": [ + "(aggregatable: boolean, esType: string) => boolean" + ], + "path": "src/plugins/data_views/server/fetcher/lib/field_capabilities/should_read_field_from_doc_values.ts", + "deprecated": false, + "children": [ { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/update_source_editor.tsx" + "parentPluginId": "data", + "id": "def-server.shouldReadFieldFromDocValues.$1", + "type": "boolean", + "tags": [], + "label": "aggregatable", + "description": [], + "signature": [ + "boolean" + ], + "path": "src/plugins/data_views/server/fetcher/lib/field_capabilities/should_read_field_from_doc_values.ts", + "deprecated": false, + "isRequired": true }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx" - }, + "parentPluginId": "data", + "id": "def-server.shouldReadFieldFromDocValues.$2", + "type": "string", + "tags": [], + "label": "esType", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/server/fetcher/lib/field_capabilities/should_read_field_from_doc_values.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "data", + "id": "def-server.FieldDescriptor", + "type": "Interface", + "tags": [], + "label": "FieldDescriptor", + "description": [], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false, + "children": [ { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx" + "parentPluginId": "data", + "id": "def-server.FieldDescriptor.aggregatable", + "type": "boolean", + "tags": [], + "label": "aggregatable", + "description": [], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.tsx" + "parentPluginId": "data", + "id": "def-server.FieldDescriptor.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.tsx" + "parentPluginId": "data", + "id": "def-server.FieldDescriptor.readFromDocValues", + "type": "boolean", + "tags": [], + "label": "readFromDocValues", + "description": [], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.tsx" + "parentPluginId": "data", + "id": "def-server.FieldDescriptor.searchable", + "type": "boolean", + "tags": [], + "label": "searchable", + "description": [], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.tsx" + "parentPluginId": "data", + "id": "def-server.FieldDescriptor.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" + "parentPluginId": "data", + "id": "def-server.FieldDescriptor.esTypes", + "type": "Array", + "tags": [], + "label": "esTypes", + "description": [], + "signature": [ + "string[]" + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" + "parentPluginId": "data", + "id": "def-server.FieldDescriptor.subType", + "type": "Object", + "tags": [], + "label": "subType", + "description": [], + "signature": [ + "FieldSubType | undefined" + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" - }, + "parentPluginId": "data", + "id": "def-server.FieldDescriptor.metadata_field", + "type": "CompoundType", + "tags": [], + "label": "metadata_field", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-server.IEsSearchRequest", + "type": "Interface", + "tags": [], + "label": "IEsSearchRequest", + "description": [], + "signature": [ { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.IEsSearchRequest", + "text": "IEsSearchRequest" }, + " extends ", { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.IKibanaSearchRequest", + "text": "IKibanaSearchRequest" }, + "<", { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.ISearchRequestParams", + "text": "ISearchRequestParams" }, + ">" + ], + "path": "src/plugins/data/common/search/strategies/es_search/types.ts", + "deprecated": false, + "children": [ { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" + "parentPluginId": "data", + "id": "def-server.IEsSearchRequest.indexType", + "type": "string", + "tags": [], + "label": "indexType", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data/common/search/strategies/es_search/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-server.IFieldType", + "type": "Interface", + "tags": [ + "deprecated" + ], + "label": "IFieldType", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.IFieldType", + "text": "IFieldType" }, + " extends ", + "DataViewFieldBase" + ], + "path": "src/plugins/data_views/common/fields/types.ts", + "deprecated": true, + "removeBy": "8.2", + "references": [ { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/fields/utils.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/fields/utils.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/fields/data_view_field.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/fields/data_view_field.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/fields/field_list.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/es_doc_field.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/fields/field_list.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/es_doc_field.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/fields/field_list.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/update_source_editor.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/fields/field_list.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/update_source_editor.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/types.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/update_source_editor.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/types.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/types.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/types.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/index.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/server/utils.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/server/utils.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metrics_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metrics_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metric_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metric_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/server/utils.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/utils.test.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/top_hits_form.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/utils.test.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/top_hits_form.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/fields/fields.mocks.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/top_hits_form.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/fields/fields.mocks.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" - }, + "plugin": "dataViews", + "path": "src/plugins/data_views/common/fields/fields.mocks.ts" + } + ], + "children": [ { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" + "parentPluginId": "data", + "id": "def-server.IFieldType.count", + "type": "number", + "tags": [], + "label": "count", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "src/plugins/data_views/common/fields/types.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.d.ts" + "parentPluginId": "data", + "id": "def-server.IFieldType.esTypes", + "type": "Array", + "tags": [], + "label": "esTypes", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "src/plugins/data_views/common/fields/types.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.d.ts" + "parentPluginId": "data", + "id": "def-server.IFieldType.aggregatable", + "type": "CompoundType", + "tags": [], + "label": "aggregatable", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data_views/common/fields/types.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.d.ts" + "parentPluginId": "data", + "id": "def-server.IFieldType.filterable", + "type": "CompoundType", + "tags": [], + "label": "filterable", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data_views/common/fields/types.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.d.ts" + "parentPluginId": "data", + "id": "def-server.IFieldType.searchable", + "type": "CompoundType", + "tags": [], + "label": "searchable", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data_views/common/fields/types.ts", + "deprecated": false }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts" + "parentPluginId": "data", + "id": "def-server.IFieldType.sortable", + "type": "CompoundType", + "tags": [], + "label": "sortable", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data_views/common/fields/types.ts", + "deprecated": false }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts" + "parentPluginId": "data", + "id": "def-server.IFieldType.visualizable", + "type": "CompoundType", + "tags": [], + "label": "visualizable", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data_views/common/fields/types.ts", + "deprecated": false }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts" + "parentPluginId": "data", + "id": "def-server.IFieldType.readFromDocValues", + "type": "CompoundType", + "tags": [], + "label": "readFromDocValues", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data_views/common/fields/types.ts", + "deprecated": false }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_param_props.ts" + "parentPluginId": "data", + "id": "def-server.IFieldType.displayName", + "type": "string", + "tags": [], + "label": "displayName", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/common/fields/types.ts", + "deprecated": false }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_param_props.ts" + "parentPluginId": "data", + "id": "def-server.IFieldType.customLabel", + "type": "string", + "tags": [], + "label": "customLabel", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/common/fields/types.ts", + "deprecated": false }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/controls/field.tsx" + "parentPluginId": "data", + "id": "def-server.IFieldType.format", + "type": "Any", + "tags": [], + "label": "format", + "description": [], + "signature": [ + "any" + ], + "path": "src/plugins/data_views/common/fields/types.ts", + "deprecated": false }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/controls/field.tsx" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/controls/field.tsx" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/controls/field.tsx" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/controls/top_field.tsx" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/controls/top_field.tsx" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/controls/top_sort_field.tsx" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/controls/top_sort_field.tsx" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" - }, - { - "plugin": "dataViewEditor", - "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.test.ts" - }, - { - "plugin": "dataViewEditor", - "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.test.ts" - }, - { - "plugin": "dataViewEditor", - "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.test.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_param_props.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_param_props.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_field.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_field.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_sort_field.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_sort_field.d.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/data_view_field.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/data_view_field.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/data_view_field.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/data_view_field.test.ts" - } - ], - "children": [], - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher", - "type": "Class", - "tags": [], - "label": "IndexPatternsFetcher", - "description": [], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false, - "children": [ { "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.Unnamed", + "id": "def-server.IFieldType.toSpec", "type": "Function", "tags": [], - "label": "Constructor", + "label": "toSpec", "description": [], "signature": [ - "any" - ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false, - "children": [ + "((options?: { getFormatterForField?: ((field: ", { - "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.Unnamed.$1", - "type": "Object", - "tags": [], - "label": "elasticsearchClient", - "description": [], - "signature": [ - { - "pluginId": "core", - "scope": "server", - "docId": "kibCorePluginApi", - "section": "def-server.ElasticsearchClient", - "text": "ElasticsearchClient" - } - ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false, - "isRequired": true + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.IFieldType", + "text": "IFieldType" }, + " | ", { - "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.Unnamed.$2", - "type": "boolean", - "tags": [], - "label": "allowNoIndices", - "description": [], - "signature": [ - "boolean" - ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.getFieldsForWildcard", - "type": "Function", - "tags": [ - "property", - "property", - "return" - ], - "label": "getFieldsForWildcard", - "description": [ - "\n Get a list of field objects for an index pattern that may contain wildcards\n" - ], - "signature": [ - "(options: { pattern: string | string[]; metaFields?: string[] | undefined; fieldCapsOptions?: { allow_no_indices: boolean; } | undefined; type?: string | undefined; rollupIndex?: string | undefined; filter?: ", - "QueryDslQueryContainer", - " | undefined; }) => Promise<", + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + " | ", { "pluginId": "dataViews", - "scope": "server", + "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-server.FieldDescriptor", - "text": "FieldDescriptor" + "section": "def-common.DataViewField", + "text": "DataViewField" }, - "[]>" + ") => ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormat", + "text": "FieldFormat" + }, + ") | undefined; } | undefined) => ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + ") | undefined" ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "path": "src/plugins/data_views/common/fields/types.ts", "deprecated": false, "children": [ { "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.getFieldsForWildcard.$1", + "id": "def-server.IFieldType.toSpec.$1", "type": "Object", "tags": [], "label": "options", "description": [], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "path": "src/plugins/data_views/common/fields/types.ts", "deprecated": false, "children": [ { "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.getFieldsForWildcard.$1.pattern", - "type": "CompoundType", - "tags": [], - "label": "pattern", - "description": [], - "signature": [ - "string | string[]" - ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.getFieldsForWildcard.$1.metaFields", - "type": "Array", + "id": "def-server.IFieldType.toSpec.$1.getFormatterForField", + "type": "Function", "tags": [], - "label": "metaFields", + "label": "getFormatterForField", "description": [], "signature": [ - "string[] | undefined" - ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.getFieldsForWildcard.$1.fieldCapsOptions", - "type": "Object", - "tags": [], - "label": "fieldCapsOptions", - "description": [], - "signature": [ - "{ allow_no_indices: boolean; } | undefined" - ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.getFieldsForWildcard.$1.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.getFieldsForWildcard.$1.rollupIndex", - "type": "string", - "tags": [], - "label": "rollupIndex", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.getFieldsForWildcard.$1.filter", - "type": "Object", - "tags": [], - "label": "filter", - "description": [], - "signature": [ - "QueryDslQueryContainer", - " | undefined" + "((field: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.IFieldType", + "text": "IFieldType" + }, + " | ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + " | ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + }, + ") => ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormat", + "text": "FieldFormat" + }, + ") | undefined" ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", + "path": "src/plugins/data_views/common/fields/types.ts", "deprecated": false } ] } ], "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-server.ISearchOptions", + "type": "Interface", + "tags": [], + "label": "ISearchOptions", + "description": [], + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-server.ISearchOptions.abortSignal", + "type": "Object", + "tags": [], + "label": "abortSignal", + "description": [ + "\nAn `AbortSignal` that allows the caller of `search` to abort a search request." + ], + "signature": [ + "AbortSignal | undefined" + ], + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false }, { "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.getFieldsForTimePattern", - "type": "Function", - "tags": [ - "property", - "property", - "property", - "return" + "id": "def-server.ISearchOptions.strategy", + "type": "string", + "tags": [], + "label": "strategy", + "description": [ + "\nUse this option to force using a specific server side search strategy. Leave empty to use the default strategy." ], - "label": "getFieldsForTimePattern", + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.ISearchOptions.legacyHitsTotal", + "type": "CompoundType", + "tags": [], + "label": "legacyHitsTotal", "description": [ - "\n Get a list of field objects for a time pattern\n" + "\nRequest the legacy format for the total number of hits. If sending `rest_total_hits_as_int` to\nsomething other than `true`, this should be set to `false`." ], "signature": [ - "(options: { pattern: string; metaFields: string[]; lookBack: number; interval: string; }) => Promise<", - { - "pluginId": "dataViews", - "scope": "server", - "docId": "kibDataViewsPluginApi", - "section": "def-server.FieldDescriptor", - "text": "FieldDescriptor" - }, - "[]>" + "boolean | undefined" ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.getFieldsForTimePattern.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.getFieldsForTimePattern.$1.pattern", - "type": "string", - "tags": [], - "label": "pattern", - "description": [], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.getFieldsForTimePattern.$1.metaFields", - "type": "Array", - "tags": [], - "label": "metaFields", - "description": [], - "signature": [ - "string[]" - ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.getFieldsForTimePattern.$1.lookBack", - "type": "number", - "tags": [], - "label": "lookBack", - "description": [], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.getFieldsForTimePattern.$1.interval", - "type": "string", - "tags": [], - "label": "interval", - "description": [], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false - } - ] - } + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.ISearchOptions.sessionId", + "type": "string", + "tags": [], + "label": "sessionId", + "description": [ + "\nA session ID, grouping multiple search requests into a single session." ], - "returnComment": [] + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false }, { "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.validatePatternListActive", - "type": "Function", - "tags": [ - "return" + "id": "def-server.ISearchOptions.isStored", + "type": "CompoundType", + "tags": [], + "label": "isStored", + "description": [ + "\nWhether the session is already saved (i.e. sent to background)" ], - "label": "validatePatternListActive", + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.ISearchOptions.isRestore", + "type": "CompoundType", + "tags": [], + "label": "isRestore", "description": [ - "\n Returns an index pattern list of only those index pattern strings in the given list that return indices\n" + "\nWhether the session is restored (i.e. search requests should re-use the stored search IDs,\nrather than starting from scratch)" ], "signature": [ - "(patternList: string[]) => Promise" + "boolean | undefined" ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false, - "children": [ + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.ISearchOptions.indexPattern", + "type": "Object", + "tags": [], + "label": "indexPattern", + "description": [ + "\nIndex pattern reference is used for better error messages" + ], + "signature": [ { - "parentPluginId": "data", - "id": "def-server.IndexPatternsFetcher.validatePatternListActive.$1", - "type": "Array", - "tags": [], - "label": "patternList", - "description": [ - "string[]" - ], - "signature": [ - "string[]" - ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false, - "isRequired": true - } + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.IndexPattern", + "text": "IndexPattern" + }, + " | undefined" ], - "returnComment": [] + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.ISearchOptions.inspector", + "type": "Object", + "tags": [], + "label": "inspector", + "description": [ + "\nInspector integration options" + ], + "signature": [ + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.IInspectorInfo", + "text": "IInspectorInfo" + }, + " | undefined" + ], + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.ISearchOptions.executionContext", + "type": "Object", + "tags": [], + "label": "executionContext", + "description": [], + "signature": [ + "KibanaExecutionContext", + " | undefined" + ], + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false } ], "initialIsOpen": false + } + ], + "enums": [ + { + "parentPluginId": "data", + "id": "def-server.ES_FIELD_TYPES", + "type": "Enum", + "tags": [], + "label": "ES_FIELD_TYPES", + "description": [], + "path": "node_modules/@types/kbn__field-types/index.d.ts", + "deprecated": false, + "initialIsOpen": false }, { "parentPluginId": "data", - "id": "def-server.IndexPatternsService", - "type": "Class", - "tags": [ - "deprecated" - ], - "label": "IndexPatternsService", + "id": "def-server.KBN_FIELD_TYPES", + "type": "Enum", + "tags": [], + "label": "KBN_FIELD_TYPES", "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.IndexPatternsService", - "text": "IndexPatternsService" - }, - " extends ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewsService", - "text": "DataViewsService" - } - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": true, - "references": [ - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/index.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/server/data_indexing/create_doc_source.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/server/data_indexing/create_doc_source.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/index.ts" - } - ], - "children": [], + "path": "node_modules/@types/kbn__field-types/index.d.ts", + "deprecated": false, "initialIsOpen": false }, { "parentPluginId": "data", - "id": "def-server.IndexPatternsService", - "type": "Class", - "tags": [ - "deprecated" - ], - "label": "IndexPatternsService", + "id": "def-server.METRIC_TYPES", + "type": "Enum", + "tags": [], + "label": "METRIC_TYPES", "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.IndexPatternsService", - "text": "IndexPatternsService" - }, - " extends ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewsService", - "text": "DataViewsService" - } - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": true, - "references": [ - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/index.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/server/data_indexing/create_doc_source.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/server/data_indexing/create_doc_source.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/index.ts" - } - ], - "children": [], + "path": "src/plugins/data/common/search/aggs/metrics/metric_agg_types.ts", + "deprecated": false, "initialIsOpen": false } ], - "functions": [ + "misc": [ { "parentPluginId": "data", - "id": "def-server.getCapabilitiesForRollupIndices", - "type": "Function", + "id": "def-server.DATA_VIEW_SAVED_OBJECT_TYPE", + "type": "string", "tags": [], - "label": "getCapabilitiesForRollupIndices", + "label": "DATA_VIEW_SAVED_OBJECT_TYPE", "description": [], "signature": [ - "(indices: Record) => { [key: string]: any; }" + "\"index-pattern\"" ], - "path": "src/plugins/data_views/server/fetcher/lib/map_capabilities.ts", + "path": "src/plugins/data_views/common/constants.ts", "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.getCapabilitiesForRollupIndices.$1", - "type": "Object", - "tags": [], - "label": "indices", - "description": [], - "signature": [ - "Record" - ], - "path": "src/plugins/data_views/server/fetcher/lib/map_capabilities.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [], "initialIsOpen": false }, { "parentPluginId": "data", - "id": "def-server.getEsQueryConfig", - "type": "Function", + "id": "def-server.DEFAULT_QUERY_LANGUAGE", + "type": "string", "tags": [], - "label": "getEsQueryConfig", + "label": "DEFAULT_QUERY_LANGUAGE", "description": [], "signature": [ - "(config: KibanaConfig) => ", - "EsQueryConfig" + "\"kuery\"" ], - "path": "src/plugins/data/common/es_query/get_es_query_config.ts", + "path": "src/plugins/data/common/constants.ts", "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.getEsQueryConfig.$1", - "type": "Object", - "tags": [], - "label": "config", - "description": [], - "signature": [ - "KibanaConfig" - ], - "path": "src/plugins/data/common/es_query/get_es_query_config.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [], "initialIsOpen": false }, { "parentPluginId": "data", - "id": "def-server.getTime", - "type": "Function", + "id": "def-server.ES_SEARCH_STRATEGY", + "type": "string", "tags": [], - "label": "getTime", + "label": "ES_SEARCH_STRATEGY", "description": [], "signature": [ - "(indexPattern: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.IIndexPattern", - "text": "IIndexPattern" - }, - " | undefined, timeRange: ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataQueryPluginApi", - "section": "def-common.TimeRange", - "text": "TimeRange" - }, - ", options: { forceNow?: Date | undefined; fieldName?: string | undefined; } | undefined) => ", - "RangeFilter", - " | ", - "ScriptedRangeFilter", - " | MatchAllRangeFilter | undefined" + "\"es\"" ], - "path": "src/plugins/data/common/query/timefilter/get_time.ts", + "path": "src/plugins/data/common/search/strategies/es_search/types.ts", "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.getTime.$1", - "type": "Object", - "tags": [], - "label": "indexPattern", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.IIndexPattern", - "text": "IIndexPattern" - }, - " | undefined" - ], - "path": "src/plugins/data/common/query/timefilter/get_time.ts", - "deprecated": false, - "isRequired": false - }, - { - "parentPluginId": "data", - "id": "def-server.getTime.$2", - "type": "Object", - "tags": [], - "label": "timeRange", - "description": [], - "signature": [ - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataQueryPluginApi", - "section": "def-common.TimeRange", - "text": "TimeRange" - } - ], - "path": "src/plugins/data/common/query/timefilter/get_time.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-server.getTime.$3", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "path": "src/plugins/data/common/query/timefilter/get_time.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.getTime.$3.forceNow", - "type": "Object", - "tags": [], - "label": "forceNow", - "description": [], - "signature": [ - "Date | undefined" - ], - "path": "src/plugins/data/common/query/timefilter/get_time.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.getTime.$3.fieldName", - "type": "string", - "tags": [], - "label": "fieldName", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/data/common/query/timefilter/get_time.ts", - "deprecated": false - } - ] - } - ], - "returnComment": [], "initialIsOpen": false }, { "parentPluginId": "data", - "id": "def-server.parseInterval", - "type": "Function", - "tags": [], - "label": "parseInterval", + "id": "def-server.EsQueryConfig", + "type": "Type", + "tags": [ + "deprecated" + ], + "label": "EsQueryConfig", "description": [], "signature": [ - "(interval: string) => moment.Duration | null" - ], - "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_interval.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.parseInterval.$1", - "type": "string", - "tags": [], - "label": "interval", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_interval.ts", - "deprecated": false, - "isRequired": true - } + "KueryQueryOptions", + " & { allowLeadingWildcards: boolean; queryStringOptions: ", + "SerializableRecord", + "; ignoreFilterIfFieldNotInIndex: boolean; }" ], - "returnComment": [], + "path": "src/plugins/data/common/es_query/index.ts", + "deprecated": true, + "removeBy": "8.1", + "references": [], "initialIsOpen": false }, { "parentPluginId": "data", - "id": "def-server.shouldReadFieldFromDocValues", - "type": "Function", - "tags": [], - "label": "shouldReadFieldFromDocValues", + "id": "def-server.Filter", + "type": "Type", + "tags": [ + "deprecated" + ], + "label": "Filter", "description": [], "signature": [ - "(aggregatable: boolean, esType: string) => boolean" + "{ $state?: { store: ", + "FilterStateStore", + "; } | undefined; meta: ", + "FilterMeta", + "; query?: Record | undefined; }" ], - "path": "src/plugins/data_views/server/fetcher/lib/field_capabilities/should_read_field_from_doc_values.ts", - "deprecated": false, - "children": [ + "path": "src/plugins/data/common/es_query/index.ts", + "deprecated": true, + "removeBy": "8.1", + "references": [ { - "parentPluginId": "data", - "id": "def-server.shouldReadFieldFromDocValues.$1", - "type": "boolean", - "tags": [], - "label": "aggregatable", - "description": [], - "signature": [ - "boolean" - ], - "path": "src/plugins/data_views/server/fetcher/lib/field_capabilities/should_read_field_from_doc_values.ts", - "deprecated": false, - "isRequired": true + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/application/lib/filter_utils.ts" }, { - "parentPluginId": "data", - "id": "def-server.shouldReadFieldFromDocValues.$2", - "type": "string", - "tags": [], - "label": "esType", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/server/fetcher/lib/field_capabilities/should_read_field_from_doc_values.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - } - ], - "interfaces": [ - { - "parentPluginId": "data", - "id": "def-server.FieldDescriptor", - "type": "Interface", - "tags": [], - "label": "FieldDescriptor", - "description": [], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.FieldDescriptor.aggregatable", - "type": "boolean", - "tags": [], - "label": "aggregatable", - "description": [], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/application/lib/filter_utils.ts" }, { - "parentPluginId": "data", - "id": "def-server.FieldDescriptor.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/application/lib/filter_utils.ts" }, { - "parentPluginId": "data", - "id": "def-server.FieldDescriptor.readFromDocValues", - "type": "boolean", - "tags": [], - "label": "readFromDocValues", - "description": [], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/application/lib/filter_utils.ts" }, { - "parentPluginId": "data", - "id": "def-server.FieldDescriptor.searchable", - "type": "boolean", - "tags": [], - "label": "searchable", - "description": [], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/application/lib/filter_utils.ts" }, { - "parentPluginId": "data", - "id": "def-server.FieldDescriptor.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts" }, { - "parentPluginId": "data", - "id": "def-server.FieldDescriptor.esTypes", - "type": "Array", - "tags": [], - "label": "esTypes", - "description": [], - "signature": [ - "string[]" - ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts" }, { - "parentPluginId": "data", - "id": "def-server.FieldDescriptor.subType", - "type": "Object", - "tags": [], - "label": "subType", - "description": [], - "signature": [ - "FieldSubType | undefined" - ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/application/state/dashboard_state_slice.ts" }, { - "parentPluginId": "data", - "id": "def-server.FieldDescriptor.metadata_field", - "type": "CompoundType", - "tags": [], - "label": "metadata_field", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts", - "deprecated": false + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/application/state/dashboard_state_slice.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/application/state/dashboard_state_slice.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/application/lib/sync_dashboard_filter_state.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/application/lib/sync_dashboard_filter_state.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/application/lib/sync_dashboard_filter_state.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx" + }, + { + "plugin": "urlDrilldown", + "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts" + }, + { + "plugin": "urlDrilldown", + "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts" + }, + { + "plugin": "urlDrilldown", + "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/url_drilldown.tsx" + }, + { + "plugin": "urlDrilldown", + "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/url_drilldown.tsx" + }, + { + "plugin": "urlDrilldown", + "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/test/data.ts" + }, + { + "plugin": "urlDrilldown", + "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/test/data.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" } ], "initialIsOpen": false }, { "parentPluginId": "data", - "id": "def-server.IEsSearchRequest", - "type": "Interface", + "id": "def-server.IEsSearchResponse", + "type": "Type", "tags": [], - "label": "IEsSearchRequest", + "label": "IEsSearchResponse", "description": [], "signature": [ { "pluginId": "data", "scope": "common", "docId": "kibDataSearchPluginApi", - "section": "def-common.IEsSearchRequest", - "text": "IEsSearchRequest" - }, - " extends ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.IKibanaSearchRequest", - "text": "IKibanaSearchRequest" + "section": "def-common.IKibanaSearchResponse", + "text": "IKibanaSearchResponse" }, "<", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.ISearchRequestParams", - "text": "ISearchRequestParams" - }, - ">" + "SearchResponse", + ">>" ], "path": "src/plugins/data/common/search/strategies/es_search/types.ts", "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.IEsSearchRequest.indexType", - "type": "string", - "tags": [], - "label": "indexType", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/data/common/search/strategies/es_search/types.ts", - "deprecated": false - } - ], "initialIsOpen": false }, { "parentPluginId": "data", - "id": "def-server.IFieldType", - "type": "Interface", + "id": "def-server.IndexPatternAttributes", + "type": "Type", "tags": [ "deprecated" ], - "label": "IFieldType", + "label": "IndexPatternAttributes", "description": [], "signature": [ { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.IFieldType", - "text": "IFieldType" - }, - " extends ", - "DataViewFieldBase" + "section": "def-common.DataViewAttributes", + "text": "DataViewAttributes" + } ], - "path": "src/plugins/data_views/common/fields/types.ts", + "path": "src/plugins/data_views/common/types.ts", "deprecated": true, - "removeBy": "8.2", "references": [ { "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/utils.ts" + "path": "src/plugins/data_views/common/index.ts" }, { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/utils.ts" + "plugin": "canvas", + "path": "x-pack/plugins/canvas/public/lib/es_service.ts" }, { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/data_view_field.ts" + "plugin": "canvas", + "path": "x-pack/plugins/canvas/public/lib/es_service.ts" }, { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/data_view_field.ts" - }, + "plugin": "canvas", + "path": "x-pack/plugins/canvas/public/lib/es_service.ts" + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-server.IndexPatternsServiceStart", + "type": "Type", + "tags": [], + "label": "IndexPatternsServiceStart", + "description": [], + "signature": [ { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/field_list.ts" - }, + "pluginId": "dataViews", + "scope": "server", + "docId": "kibDataViewsPluginApi", + "section": "def-server.DataViewsServerPluginStart", + "text": "DataViewsServerPluginStart" + } + ], + "path": "src/plugins/data_views/server/types.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-server.KueryNode", + "type": "Type", + "tags": [ + "deprecated" + ], + "label": "KueryNode", + "description": [], + "path": "src/plugins/data/common/es_query/index.ts", + "deprecated": true, + "removeBy": "8.1", + "references": [ { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/field_list.ts" + "plugin": "dataEnhanced", + "path": "x-pack/plugins/data_enhanced/server/search/session/types.ts" }, { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/field_list.ts" + "plugin": "dataEnhanced", + "path": "x-pack/plugins/data_enhanced/server/search/session/types.ts" }, { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/field_list.ts" + "plugin": "dataEnhanced", + "path": "x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts" }, { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/types.ts" + "plugin": "dataEnhanced", + "path": "x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts" }, { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/types.ts" + "plugin": "dataEnhanced", + "path": "x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts" }, { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/types.ts" + "plugin": "dataEnhanced", + "path": "x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts" }, { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/types.ts" + "plugin": "dataEnhanced", + "path": "x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts" }, { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/index.ts" + "plugin": "dataEnhanced", + "path": "x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts" }, { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.ts" + "plugin": "dataEnhanced", + "path": "x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts" }, { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.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": "dataViews", - "path": "src/plugins/data_views/common/utils.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/utils.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/fields.mocks.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/fields.mocks.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/fields.mocks.ts" + "plugin": "dataEnhanced", + "path": "x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts" } ], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-server.ParsedInterval", + "type": "Type", + "tags": [], + "label": "ParsedInterval", + "description": [], + "signature": [ + "{ value: number; unit: ", + "Unit", + "; type: \"calendar\" | \"fixed\"; }" + ], + "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_es_interval.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-server.Query", + "type": "Type", + "tags": [], + "label": "Query", + "description": [], + "signature": [ + "{ query: string | { [key: string]: any; }; language: string; }" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-server.TimeRange", + "type": "Type", + "tags": [], + "label": "TimeRange", + "description": [], + "signature": [ + "{ from: string; to: string; mode?: \"absolute\" | \"relative\" | undefined; }" + ], + "path": "src/plugins/data/common/query/timefilter/types.ts", + "deprecated": false, + "initialIsOpen": false + } + ], + "objects": [ + { + "parentPluginId": "data", + "id": "def-server.esFilters", + "type": "Object", + "tags": [], + "label": "esFilters", + "description": [], + "path": "src/plugins/data/server/deprecated.ts", + "deprecated": false, "children": [ { "parentPluginId": "data", - "id": "def-server.IFieldType.count", - "type": "number", + "id": "def-server.esFilters.buildQueryFilter", + "type": "Function", "tags": [], - "label": "count", + "label": "buildQueryFilter", "description": [], "signature": [ - "number | undefined" + "(query: (Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined, index: string, alias?: string | undefined, meta?: ", + "FilterMeta", + " | undefined) => { query: (Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined; meta: { alias: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index: string; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; }" ], - "path": "src/plugins/data_views/common/fields/types.ts", - "deprecated": false + "path": "src/plugins/data/server/deprecated.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildQueryFilter.$1", + "type": "CompoundType", + "tags": [], + "label": "query", + "description": [], + "signature": [ + "(Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildQueryFilter.$2", + "type": "string", + "tags": [], + "label": "index", + "description": [], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildQueryFilter.$3", + "type": "string", + "tags": [], + "label": "alias", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildQueryFilter.$4", + "type": "Object", + "tags": [], + "label": "meta", + "description": [], + "signature": [ + "FilterMeta", + " | undefined" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + } + ] }, { "parentPluginId": "data", - "id": "def-server.IFieldType.esTypes", - "type": "Array", + "id": "def-server.esFilters.buildCustomFilter", + "type": "Function", "tags": [], - "label": "esTypes", + "label": "buildCustomFilter", "description": [], "signature": [ - "string[] | undefined" + "(indexPatternString: string, queryDsl: ", + "QueryDslQueryContainer", + ", disabled: boolean, negate: boolean, alias: string | null, store: ", + "FilterStateStore", + ") => ", + "Filter" ], - "path": "src/plugins/data_views/common/fields/types.ts", - "deprecated": false + "path": "src/plugins/data/server/deprecated.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildCustomFilter.$1", + "type": "string", + "tags": [], + "label": "indexPatternString", + "description": [], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildCustomFilter.$2", + "type": "Object", + "tags": [], + "label": "queryDsl", + "description": [], + "signature": [ + "QueryDslQueryContainer" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildCustomFilter.$3", + "type": "boolean", + "tags": [], + "label": "disabled", + "description": [], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildCustomFilter.$4", + "type": "boolean", + "tags": [], + "label": "negate", + "description": [], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildCustomFilter.$5", + "type": "CompoundType", + "tags": [], + "label": "alias", + "description": [], + "signature": [ + "string | null" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildCustomFilter.$6", + "type": "Enum", + "tags": [], + "label": "store", + "description": [], + "signature": [ + "FilterStateStore" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + } + ] }, { "parentPluginId": "data", - "id": "def-server.IFieldType.aggregatable", - "type": "CompoundType", + "id": "def-server.esFilters.buildEmptyFilter", + "type": "Function", "tags": [], - "label": "aggregatable", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "src/plugins/data_views/common/fields/types.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.IFieldType.filterable", - "type": "CompoundType", - "tags": [], - "label": "filterable", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "src/plugins/data_views/common/fields/types.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.IFieldType.searchable", - "type": "CompoundType", - "tags": [], - "label": "searchable", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "src/plugins/data_views/common/fields/types.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.IFieldType.sortable", - "type": "CompoundType", - "tags": [], - "label": "sortable", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "src/plugins/data_views/common/fields/types.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.IFieldType.visualizable", - "type": "CompoundType", - "tags": [], - "label": "visualizable", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "src/plugins/data_views/common/fields/types.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.IFieldType.readFromDocValues", - "type": "CompoundType", - "tags": [], - "label": "readFromDocValues", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "src/plugins/data_views/common/fields/types.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.IFieldType.displayName", - "type": "string", - "tags": [], - "label": "displayName", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/data_views/common/fields/types.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.IFieldType.customLabel", - "type": "string", - "tags": [], - "label": "customLabel", + "label": "buildEmptyFilter", "description": [], "signature": [ - "string | undefined" + "(isPinned: boolean, index?: string | undefined) => ", + "Filter" ], - "path": "src/plugins/data_views/common/fields/types.ts", - "deprecated": false + "path": "src/plugins/data/server/deprecated.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildEmptyFilter.$1", + "type": "boolean", + "tags": [], + "label": "isPinned", + "description": [], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildEmptyFilter.$2", + "type": "string", + "tags": [], + "label": "index", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + } + ] }, { "parentPluginId": "data", - "id": "def-server.IFieldType.format", - "type": "Any", + "id": "def-server.esFilters.buildExistsFilter", + "type": "Function", "tags": [], - "label": "format", + "label": "buildExistsFilter", "description": [], "signature": [ - "any" + "(field: ", + "DataViewFieldBase", + ", indexPattern: ", + "DataViewBase", + ") => ", + "ExistsFilter" ], - "path": "src/plugins/data_views/common/fields/types.ts", - "deprecated": false + "path": "src/plugins/data/server/deprecated.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildExistsFilter.$1", + "type": "Object", + "tags": [], + "label": "field", + "description": [], + "signature": [ + "DataViewFieldBase" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildExistsFilter.$2", + "type": "Object", + "tags": [], + "label": "indexPattern", + "description": [], + "signature": [ + "DataViewBase" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + } + ] }, { "parentPluginId": "data", - "id": "def-server.IFieldType.toSpec", + "id": "def-server.esFilters.buildFilter", "type": "Function", "tags": [], - "label": "toSpec", + "label": "buildFilter", "description": [], "signature": [ - "((options?: { getFormatterForField?: ((field: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.IFieldType", - "text": "IFieldType" - }, - " | ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" - }, - " | ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - }, - ") => ", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FieldFormat", - "text": "FieldFormat" - }, - ") | undefined; } | undefined) => ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" - }, - ") | undefined" + "(indexPattern: ", + "DataViewBase", + ", field: ", + "DataViewFieldBase", + ", type: ", + "FILTERS", + ", negate: boolean, disabled: boolean, params: ", + "Serializable", + ", alias: string | null, store?: ", + "FilterStateStore", + " | undefined) => ", + "Filter" ], - "path": "src/plugins/data_views/common/fields/types.ts", + "path": "src/plugins/data/server/deprecated.ts", "deprecated": false, + "returnComment": [], "children": [ { "parentPluginId": "data", - "id": "def-server.IFieldType.toSpec.$1", + "id": "def-server.esFilters.buildFilter.$1", "type": "Object", "tags": [], - "label": "options", + "label": "indexPattern", "description": [], - "path": "src/plugins/data_views/common/fields/types.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.IFieldType.toSpec.$1.getFormatterForField", - "type": "Function", - "tags": [], - "label": "getFormatterForField", - "description": [], - "signature": [ - "((field: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.IFieldType", - "text": "IFieldType" - }, - " | ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" - }, - " | ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - }, - ") => ", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FieldFormat", - "text": "FieldFormat" - }, - ") | undefined" - ], - "path": "src/plugins/data_views/common/fields/types.ts", - "deprecated": false - } - ] + "signature": [ + "DataViewBase" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildFilter.$2", + "type": "Object", + "tags": [], + "label": "field", + "description": [], + "signature": [ + "DataViewFieldBase" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildFilter.$3", + "type": "Enum", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "FILTERS" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildFilter.$4", + "type": "boolean", + "tags": [], + "label": "negate", + "description": [], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildFilter.$5", + "type": "boolean", + "tags": [], + "label": "disabled", + "description": [], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildFilter.$6", + "type": "CompoundType", + "tags": [], + "label": "params", + "description": [], + "signature": [ + "string | number | boolean | ", + "SerializableRecord", + " | SerializableArray | null | undefined" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildFilter.$7", + "type": "CompoundType", + "tags": [], + "label": "alias", + "description": [], + "signature": [ + "string | null" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildFilter.$8", + "type": "CompoundType", + "tags": [], + "label": "store", + "description": [], + "signature": [ + "FilterStateStore", + " | undefined" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-server.ISearchOptions", - "type": "Interface", - "tags": [], - "label": "ISearchOptions", - "description": [], - "path": "src/plugins/data/common/search/types.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.ISearchOptions.abortSignal", - "type": "Object", - "tags": [], - "label": "abortSignal", - "description": [ - "\nAn `AbortSignal` that allows the caller of `search` to abort a search request." - ], - "signature": [ - "AbortSignal | undefined" - ], - "path": "src/plugins/data/common/search/types.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.ISearchOptions.strategy", - "type": "string", - "tags": [], - "label": "strategy", - "description": [ - "\nUse this option to force using a specific server side search strategy. Leave empty to use the default strategy." - ], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/data/common/search/types.ts", - "deprecated": false + ] }, { "parentPluginId": "data", - "id": "def-server.ISearchOptions.legacyHitsTotal", - "type": "CompoundType", + "id": "def-server.esFilters.buildPhraseFilter", + "type": "Function", "tags": [], - "label": "legacyHitsTotal", - "description": [ - "\nRequest the legacy format for the total number of hits. If sending `rest_total_hits_as_int` to\nsomething other than `true`, this should be set to `false`." - ], + "label": "buildPhraseFilter", + "description": [], "signature": [ - "boolean | undefined" + "(field: ", + "DataViewFieldBase", + ", value: PhraseFilterValue, indexPattern: ", + "DataViewBase", + ") => ", + "PhraseFilter", + " | ", + "ScriptedPhraseFilter" ], - "path": "src/plugins/data/common/search/types.ts", - "deprecated": false + "path": "src/plugins/data/server/deprecated.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildPhraseFilter.$1", + "type": "Object", + "tags": [], + "label": "field", + "description": [], + "signature": [ + "DataViewFieldBase" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildPhraseFilter.$2", + "type": "CompoundType", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "string | number | boolean" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildPhraseFilter.$3", + "type": "Object", + "tags": [], + "label": "indexPattern", + "description": [], + "signature": [ + "DataViewBase" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + } + ] }, { "parentPluginId": "data", - "id": "def-server.ISearchOptions.sessionId", - "type": "string", + "id": "def-server.esFilters.buildPhrasesFilter", + "type": "Function", "tags": [], - "label": "sessionId", - "description": [ - "\nA session ID, grouping multiple search requests into a single session." - ], + "label": "buildPhrasesFilter", + "description": [], "signature": [ - "string | undefined" + "(field: ", + "DataViewFieldBase", + ", params: PhraseFilterValue[], indexPattern: ", + "DataViewBase", + ") => ", + "PhrasesFilter" ], - "path": "src/plugins/data/common/search/types.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.ISearchOptions.isStored", - "type": "CompoundType", - "tags": [], - "label": "isStored", - "description": [ - "\nWhether the session is already saved (i.e. sent to background)" - ], - "signature": [ - "boolean | undefined" - ], - "path": "src/plugins/data/common/search/types.ts", - "deprecated": false + "path": "src/plugins/data/server/deprecated.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildPhrasesFilter.$1", + "type": "Object", + "tags": [], + "label": "field", + "description": [], + "signature": [ + "DataViewFieldBase" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildPhrasesFilter.$2", + "type": "Array", + "tags": [], + "label": "params", + "description": [], + "signature": [ + "PhraseFilterValue[]" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildPhrasesFilter.$3", + "type": "Object", + "tags": [], + "label": "indexPattern", + "description": [], + "signature": [ + "DataViewBase" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + } + ] }, { "parentPluginId": "data", - "id": "def-server.ISearchOptions.isRestore", - "type": "CompoundType", + "id": "def-server.esFilters.buildRangeFilter", + "type": "Function", "tags": [], - "label": "isRestore", - "description": [ - "\nWhether the session is restored (i.e. search requests should re-use the stored search IDs,\nrather than starting from scratch)" - ], + "label": "buildRangeFilter", + "description": [], "signature": [ - "boolean | undefined" - ], - "path": "src/plugins/data/common/search/types.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.ISearchOptions.indexPattern", - "type": "Object", - "tags": [], - "label": "indexPattern", - "description": [ - "\nIndex pattern reference is used for better error messages" + "(field: ", + "DataViewFieldBase", + ", params: ", + "RangeFilterParams", + ", indexPattern: ", + "DataViewBase", + ", formattedValue?: string | undefined) => ", + "RangeFilter", + " | ", + "ScriptedRangeFilter", + " | MatchAllRangeFilter" ], - "signature": [ + "path": "src/plugins/data/server/deprecated.ts", + "deprecated": false, + "returnComment": [], + "children": [ { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.IndexPattern", - "text": "IndexPattern" + "parentPluginId": "data", + "id": "def-server.esFilters.buildRangeFilter.$1", + "type": "Object", + "tags": [], + "label": "field", + "description": [], + "signature": [ + "DataViewFieldBase" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false }, - " | undefined" - ], - "path": "src/plugins/data/common/search/types.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.ISearchOptions.inspector", - "type": "Object", - "tags": [], - "label": "inspector", - "description": [ - "\nInspector integration options" - ], - "signature": [ { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.IInspectorInfo", - "text": "IInspectorInfo" + "parentPluginId": "data", + "id": "def-server.esFilters.buildRangeFilter.$2", + "type": "Object", + "tags": [], + "label": "params", + "description": [], + "signature": [ + "RangeFilterParams" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false }, - " | undefined" - ], - "path": "src/plugins/data/common/search/types.ts", - "deprecated": false + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildRangeFilter.$3", + "type": "Object", + "tags": [], + "label": "indexPattern", + "description": [], + "signature": [ + "DataViewBase" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esFilters.buildRangeFilter.$4", + "type": "string", + "tags": [], + "label": "formattedValue", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + } + ] }, { "parentPluginId": "data", - "id": "def-server.ISearchOptions.executionContext", - "type": "Object", + "id": "def-server.esFilters.isFilterDisabled", + "type": "Function", "tags": [], - "label": "executionContext", + "label": "isFilterDisabled", "description": [], "signature": [ - "KibanaExecutionContext", - " | undefined" + "(filter: ", + "Filter", + ") => boolean" ], - "path": "src/plugins/data/common/search/types.ts", - "deprecated": false + "path": "src/plugins/data/server/deprecated.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-server.esFilters.isFilterDisabled.$1", + "type": "Object", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "{ $state?: { store: ", + "FilterStateStore", + "; } | undefined; meta: ", + "FilterMeta", + "; query?: Record | undefined; }" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + } + ] } ], "initialIsOpen": false - } - ], - "enums": [ - { - "parentPluginId": "data", - "id": "def-server.ES_FIELD_TYPES", - "type": "Enum", - "tags": [], - "label": "ES_FIELD_TYPES", - "description": [], - "path": "node_modules/@types/kbn__field-types/index.d.ts", - "deprecated": false, - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-server.KBN_FIELD_TYPES", - "type": "Enum", - "tags": [], - "label": "KBN_FIELD_TYPES", - "description": [], - "path": "node_modules/@types/kbn__field-types/index.d.ts", - "deprecated": false, - "initialIsOpen": false }, { "parentPluginId": "data", - "id": "def-server.METRIC_TYPES", - "type": "Enum", - "tags": [], - "label": "METRIC_TYPES", - "description": [], - "path": "src/plugins/data/common/search/aggs/metrics/metric_agg_types.ts", - "deprecated": false, - "initialIsOpen": false - } - ], - "misc": [ - { - "parentPluginId": "data", - "id": "def-server.DATA_VIEW_SAVED_OBJECT_TYPE", - "type": "string", + "id": "def-server.esKuery", + "type": "Object", "tags": [], - "label": "DATA_VIEW_SAVED_OBJECT_TYPE", + "label": "esKuery", "description": [], - "signature": [ - "\"index-pattern\"" - ], - "path": "src/plugins/data_views/common/constants.ts", + "path": "src/plugins/data/server/deprecated.ts", "deprecated": false, - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-server.DEFAULT_QUERY_LANGUAGE", - "type": "string", - "tags": [], - "label": "DEFAULT_QUERY_LANGUAGE", - "description": [], - "signature": [ - "\"kuery\"" + "children": [ + { + "parentPluginId": "data", + "id": "def-server.esKuery.nodeTypes", + "type": "Object", + "tags": [], + "label": "nodeTypes", + "description": [], + "signature": [ + "NodeTypes" + ], + "path": "src/plugins/data/server/deprecated.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esKuery.fromKueryExpression", + "type": "Function", + "tags": [], + "label": "fromKueryExpression", + "description": [], + "signature": [ + "(expression: string | ", + "QueryDslQueryContainer", + ", parseOptions?: Partial<", + "KueryParseOptions", + "> | undefined) => ", + "KueryNode" + ], + "path": "src/plugins/data/server/deprecated.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-server.esKuery.fromKueryExpression.$1", + "type": "CompoundType", + "tags": [], + "label": "expression", + "description": [], + "signature": [ + "string | ", + "QueryDslQueryContainer" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esKuery.fromKueryExpression.$2", + "type": "Object", + "tags": [], + "label": "parseOptions", + "description": [], + "signature": [ + "Partial<", + "KueryParseOptions", + "> | undefined" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "data", + "id": "def-server.esKuery.toElasticsearchQuery", + "type": "Function", + "tags": [], + "label": "toElasticsearchQuery", + "description": [], + "signature": [ + "(node: ", + "KueryNode", + ", indexPattern?: ", + "DataViewBase", + " | undefined, config?: ", + "KueryQueryOptions", + " | undefined, context?: Record | undefined) => ", + "QueryDslQueryContainer" + ], + "path": "src/plugins/data/server/deprecated.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-server.esKuery.toElasticsearchQuery.$1", + "type": "Object", + "tags": [], + "label": "node", + "description": [], + "signature": [ + "KueryNode" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esKuery.toElasticsearchQuery.$2", + "type": "Object", + "tags": [], + "label": "indexPattern", + "description": [], + "signature": [ + "DataViewBase", + " | undefined" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esKuery.toElasticsearchQuery.$3", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + "KueryQueryOptions", + " | undefined" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esKuery.toElasticsearchQuery.$4", + "type": "Object", + "tags": [], + "label": "context", + "description": [], + "signature": [ + "Record | undefined" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + } + ] + } ], - "path": "src/plugins/data/common/constants.ts", - "deprecated": false, "initialIsOpen": false }, { "parentPluginId": "data", - "id": "def-server.ES_SEARCH_STRATEGY", - "type": "string", + "id": "def-server.esQuery", + "type": "Object", "tags": [], - "label": "ES_SEARCH_STRATEGY", + "label": "esQuery", "description": [], - "signature": [ - "\"es\"" - ], - "path": "src/plugins/data/common/search/strategies/es_search/types.ts", + "path": "src/plugins/data/server/deprecated.ts", "deprecated": false, - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-server.EsQueryConfig", - "type": "Type", - "tags": [ - "deprecated" - ], - "label": "EsQueryConfig", - "description": [], - "signature": [ - "KueryQueryOptions", - " & { allowLeadingWildcards: boolean; queryStringOptions: ", - "SerializableRecord", - "; ignoreFilterIfFieldNotInIndex: boolean; }" - ], - "path": "src/plugins/data/common/es_query/index.ts", - "deprecated": true, - "removeBy": "8.1", - "references": [], - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-server.Filter", - "type": "Type", - "tags": [ - "deprecated" - ], - "label": "Filter", - "description": [], - "signature": [ - "{ $state?: { store: ", - "FilterStateStore", - "; } | undefined; meta: ", - "FilterMeta", - "; query?: Record | undefined; }" - ], - "path": "src/plugins/data/common/es_query/index.ts", - "deprecated": true, - "removeBy": "8.1", - "references": [ - { - "plugin": "discover", - "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/application/lib/filter_utils.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/application/lib/filter_utils.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/application/lib/filter_utils.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/application/lib/filter_utils.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/application/lib/filter_utils.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/application/state/dashboard_state_slice.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/application/state/dashboard_state_slice.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/application/state/dashboard_state_slice.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/application/lib/sync_dashboard_filter_state.ts" - }, + "children": [ { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/application/lib/sync_dashboard_filter_state.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/application/lib/sync_dashboard_filter_state.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx" + "parentPluginId": "data", + "id": "def-server.esQuery.buildQueryFromFilters", + "type": "Function", + "tags": [], + "label": "buildQueryFromFilters", + "description": [], + "signature": [ + "(filters: ", + "Filter", + "[] | undefined, indexPattern: ", + "DataViewBase", + " | undefined, ignoreFilterIfFieldNotInIndex?: boolean | undefined) => ", + "BoolQuery" + ], + "path": "src/plugins/data/server/deprecated.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-server.esQuery.buildQueryFromFilters.$1", + "type": "Array", + "tags": [], + "label": "filters", + "description": [], + "signature": [ + "Filter", + "[] | undefined" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esQuery.buildQueryFromFilters.$2", + "type": "Object", + "tags": [], + "label": "indexPattern", + "description": [], + "signature": [ + "DataViewBase", + " | undefined" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esQuery.buildQueryFromFilters.$3", + "type": "CompoundType", + "tags": [], + "label": "ignoreFilterIfFieldNotInIndex", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + } + ] }, { - "plugin": "dashboard", - "path": "src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx" + "parentPluginId": "data", + "id": "def-server.esQuery.getEsQueryConfig", + "type": "Function", + "tags": [], + "label": "getEsQueryConfig", + "description": [], + "signature": [ + "(config: KibanaConfig) => ", + "EsQueryConfig" + ], + "path": "src/plugins/data/server/deprecated.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-server.esQuery.getEsQueryConfig.$1", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + "KibanaConfig" + ], + "path": "src/plugins/data/common/es_query/get_es_query_config.ts", + "deprecated": false + } + ] }, { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts" - }, + "parentPluginId": "data", + "id": "def-server.esQuery.buildEsQuery", + "type": "Function", + "tags": [], + "label": "buildEsQuery", + "description": [], + "signature": [ + "(indexPattern: ", + "DataViewBase", + " | undefined, queries: ", + "Query", + " | ", + "Query", + "[], filters: ", + "Filter", + " | ", + "Filter", + "[], config?: ", + "EsQueryConfig", + " | undefined) => { bool: ", + "BoolQuery", + "; }" + ], + "path": "src/plugins/data/server/deprecated.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-server.esQuery.buildEsQuery.$1", + "type": "Object", + "tags": [], + "label": "indexPattern", + "description": [], + "signature": [ + "DataViewBase", + " | undefined" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esQuery.buildEsQuery.$2", + "type": "CompoundType", + "tags": [], + "label": "queries", + "description": [], + "signature": [ + "Query", + " | ", + "Query", + "[]" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esQuery.buildEsQuery.$3", + "type": "CompoundType", + "tags": [], + "label": "filters", + "description": [], + "signature": [ + "Filter", + " | ", + "Filter", + "[]" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.esQuery.buildEsQuery.$4", + "type": "CompoundType", + "tags": [], + "label": "config", + "description": [], + "signature": [ + "EsQueryConfig", + " | undefined" + ], + "path": "node_modules/@types/kbn__es-query/index.d.ts", + "deprecated": false + } + ] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-server.exporters", + "type": "Object", + "tags": [], + "label": "exporters", + "description": [], + "path": "src/plugins/data/server/index.ts", + "deprecated": false, + "children": [ { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts" + "parentPluginId": "data", + "id": "def-server.exporters.datatableToCSV", + "type": "Function", + "tags": [], + "label": "datatableToCSV", + "description": [], + "signature": [ + "({ columns, rows }: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.Datatable", + "text": "Datatable" + }, + ", { csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues }: CSVOptions) => string" + ], + "path": "src/plugins/data/server/index.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-server.exporters.datatableToCSV.$1", + "type": "Object", + "tags": [], + "label": "__0", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.Datatable", + "text": "Datatable" + } + ], + "path": "src/plugins/data/common/exports/export_csv.tsx", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.exporters.datatableToCSV.$2", + "type": "Object", + "tags": [], + "label": "__1", + "description": [], + "signature": [ + "CSVOptions" + ], + "path": "src/plugins/data/common/exports/export_csv.tsx", + "deprecated": false + } + ] }, { - "plugin": "urlDrilldown", - "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts" - }, - { - "plugin": "urlDrilldown", - "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts" - }, - { - "plugin": "urlDrilldown", - "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/url_drilldown.tsx" - }, - { - "plugin": "urlDrilldown", - "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/url_drilldown.tsx" - }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" - }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" - }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" - }, - { - "plugin": "urlDrilldown", - "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/test/data.ts" - }, - { - "plugin": "urlDrilldown", - "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/test/data.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" + "parentPluginId": "data", + "id": "def-server.exporters.CSV_MIME_TYPE", + "type": "string", + "tags": [], + "label": "CSV_MIME_TYPE", + "description": [], + "path": "src/plugins/data/server/index.ts", + "deprecated": false } ], "initialIsOpen": false }, { "parentPluginId": "data", - "id": "def-server.IEsSearchResponse", - "type": "Type", + "id": "def-server.search", + "type": "Object", "tags": [], - "label": "IEsSearchResponse", + "label": "search", "description": [], - "signature": [ + "path": "src/plugins/data/server/index.ts", + "deprecated": false, + "children": [ { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.IKibanaSearchResponse", - "text": "IKibanaSearchResponse" - }, - "<", - "SearchResponse", - ">>" + "parentPluginId": "data", + "id": "def-server.search.aggs", + "type": "Object", + "tags": [], + "label": "aggs", + "description": [], + "path": "src/plugins/data/server/index.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-server.search.aggs.CidrMask", + "type": "Object", + "tags": [], + "label": "CidrMask", + "description": [], + "signature": [ + "typeof ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.CidrMask", + "text": "CidrMask" + } + ], + "path": "src/plugins/data/server/index.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.search.aggs.dateHistogramInterval", + "type": "Function", + "tags": [], + "label": "dateHistogramInterval", + "description": [], + "signature": [ + "(interval: string) => Interval" + ], + "path": "src/plugins/data/server/index.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-server.search.aggs.dateHistogramInterval.$1", + "type": "string", + "tags": [], + "label": "interval", + "description": [], + "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/date_histogram_interval.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "data", + "id": "def-server.search.aggs.IpAddress", + "type": "Object", + "tags": [], + "label": "IpAddress", + "description": [], + "signature": [ + "typeof ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.IpAddress", + "text": "IpAddress" + } + ], + "path": "src/plugins/data/server/index.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.search.aggs.parseInterval", + "type": "Function", + "tags": [], + "label": "parseInterval", + "description": [], + "signature": [ + "(interval: string) => moment.Duration | null" + ], + "path": "src/plugins/data/server/index.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-server.search.aggs.parseInterval.$1", + "type": "string", + "tags": [], + "label": "interval", + "description": [], + "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_interval.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "data", + "id": "def-server.search.aggs.calcAutoIntervalLessThan", + "type": "Function", + "tags": [], + "label": "calcAutoIntervalLessThan", + "description": [], + "signature": [ + "(maxBucketCount: number, duration: number) => moment.Duration" + ], + "path": "src/plugins/data/server/index.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-server.search.aggs.calcAutoIntervalLessThan.$1", + "type": "number", + "tags": [], + "label": "maxBucketCount", + "description": [], + "path": "src/plugins/data/common/search/aggs/buckets/lib/time_buckets/calc_auto_interval.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.search.aggs.calcAutoIntervalLessThan.$2", + "type": "number", + "tags": [], + "label": "duration", + "description": [], + "path": "src/plugins/data/common/search/aggs/buckets/lib/time_buckets/calc_auto_interval.ts", + "deprecated": false + } + ] + } + ] + } ], - "path": "src/plugins/data/common/search/strategies/es_search/types.ts", - "deprecated": false, "initialIsOpen": false }, { "parentPluginId": "data", - "id": "def-server.IndexPatternAttributes", - "type": "Type", - "tags": [ - "deprecated" - ], - "label": "IndexPatternAttributes", + "id": "def-server.UI_SETTINGS", + "type": "Object", + "tags": [], + "label": "UI_SETTINGS", "description": [], "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewAttributes", - "text": "DataViewAttributes" - } - ], - "path": "src/plugins/data_views/common/types.ts", - "deprecated": true, - "references": [ - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/index.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/lib/es_service.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/lib/es_service.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/public/lib/es_service.ts" - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-server.IndexPatternsServiceStart", - "type": "Type", - "tags": [], - "label": "IndexPatternsServiceStart", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "server", - "docId": "kibDataViewsPluginApi", - "section": "def-server.DataViewsServerPluginStart", - "text": "DataViewsServerPluginStart" - } - ], - "path": "src/plugins/data_views/server/types.ts", - "deprecated": false, - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-server.KueryNode", - "type": "Type", - "tags": [ - "deprecated" - ], - "label": "KueryNode", - "description": [], - "path": "src/plugins/data/common/es_query/index.ts", - "deprecated": true, - "removeBy": "8.1", - "references": [ - { - "plugin": "dataEnhanced", - "path": "x-pack/plugins/data_enhanced/server/search/session/types.ts" - }, - { - "plugin": "dataEnhanced", - "path": "x-pack/plugins/data_enhanced/server/search/session/types.ts" - }, - { - "plugin": "dataEnhanced", - "path": "x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts" - }, - { - "plugin": "dataEnhanced", - "path": "x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts" - }, - { - "plugin": "dataEnhanced", - "path": "x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts" - }, - { - "plugin": "dataEnhanced", - "path": "x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts" - }, - { - "plugin": "dataEnhanced", - "path": "x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts" - }, - { - "plugin": "dataEnhanced", - "path": "x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts" - }, - { - "plugin": "dataEnhanced", - "path": "x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts" - }, - { - "plugin": "dataEnhanced", - "path": "x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts" - }, - { - "plugin": "dataEnhanced", - "path": "x-pack/plugins/data_enhanced/target/types/server/search/session/types.d.ts" - }, - { - "plugin": "dataEnhanced", - "path": "x-pack/plugins/data_enhanced/target/types/server/search/session/types.d.ts" - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-server.ParsedInterval", - "type": "Type", - "tags": [], - "label": "ParsedInterval", - "description": [], - "signature": [ - "{ value: number; unit: ", - "Unit", - "; type: \"calendar\" | \"fixed\"; }" - ], - "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_es_interval.ts", - "deprecated": false, - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-server.Query", - "type": "Type", - "tags": [], - "label": "Query", - "description": [], - "signature": [ - "{ query: string | { [key: string]: any; }; language: string; }" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false, - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-server.TimeRange", - "type": "Type", - "tags": [], - "label": "TimeRange", - "description": [], - "signature": [ - "{ from: string; to: string; mode?: \"absolute\" | \"relative\" | undefined; }" + "{ readonly META_FIELDS: \"metaFields\"; readonly DOC_HIGHLIGHT: \"doc_table:highlight\"; readonly QUERY_STRING_OPTIONS: \"query:queryString:options\"; readonly QUERY_ALLOW_LEADING_WILDCARDS: \"query:allowLeadingWildcards\"; readonly SEARCH_QUERY_LANGUAGE: \"search:queryLanguage\"; readonly SORT_OPTIONS: \"sort:options\"; readonly COURIER_IGNORE_FILTER_IF_FIELD_NOT_IN_INDEX: \"courier:ignoreFilterIfFieldNotInIndex\"; readonly COURIER_SET_REQUEST_PREFERENCE: \"courier:setRequestPreference\"; readonly COURIER_CUSTOM_REQUEST_PREFERENCE: \"courier:customRequestPreference\"; readonly COURIER_MAX_CONCURRENT_SHARD_REQUESTS: \"courier:maxConcurrentShardRequests\"; readonly SEARCH_INCLUDE_FROZEN: \"search:includeFrozen\"; readonly SEARCH_TIMEOUT: \"search:timeout\"; readonly HISTOGRAM_BAR_TARGET: \"histogram:barTarget\"; readonly HISTOGRAM_MAX_BARS: \"histogram:maxBars\"; readonly HISTORY_LIMIT: \"history:limit\"; readonly TIMEPICKER_REFRESH_INTERVAL_DEFAULTS: \"timepicker:refreshIntervalDefaults\"; readonly TIMEPICKER_QUICK_RANGES: \"timepicker:quickRanges\"; readonly TIMEPICKER_TIME_DEFAULTS: \"timepicker:timeDefaults\"; readonly FILTERS_PINNED_BY_DEFAULT: \"filters:pinnedByDefault\"; readonly FILTERS_EDITOR_SUGGEST_VALUES: \"filterEditor:suggestValues\"; readonly AUTOCOMPLETE_USE_TIMERANGE: \"autocomplete:useTimeRange\"; readonly AUTOCOMPLETE_VALUE_SUGGESTION_METHOD: \"autocomplete:valueSuggestionMethod\"; readonly DATE_FORMAT: \"dateFormat\"; readonly DATEFORMAT_TZ: \"dateFormat:tz\"; }" ], - "path": "src/plugins/data/common/query/timefilter/types.ts", + "path": "src/plugins/data/common/constants.ts", "deprecated": false, "initialIsOpen": false } ], - "objects": [ - { - "parentPluginId": "data", - "id": "def-server.esFilters", - "type": "Object", - "tags": [], - "label": "esFilters", - "description": [], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildQueryFilter", - "type": "Function", - "tags": [], - "label": "buildQueryFilter", - "description": [], - "signature": [ - "(query: (Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined, index: string, alias?: string | undefined, meta?: ", - "FilterMeta", - " | undefined) => { query: (Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined; meta: { alias: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index: string; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; }" - ], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildQueryFilter.$1", - "type": "CompoundType", - "tags": [], - "label": "query", - "description": [], - "signature": [ - "(Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildQueryFilter.$2", - "type": "string", - "tags": [], - "label": "index", - "description": [], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildQueryFilter.$3", - "type": "string", - "tags": [], - "label": "alias", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildQueryFilter.$4", - "type": "Object", - "tags": [], - "label": "meta", - "description": [], - "signature": [ - "FilterMeta", - " | undefined" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - } - ] - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildCustomFilter", - "type": "Function", - "tags": [], - "label": "buildCustomFilter", - "description": [], - "signature": [ - "(indexPatternString: string, queryDsl: ", - "QueryDslQueryContainer", - ", disabled: boolean, negate: boolean, alias: string | null, store: ", - "FilterStateStore", - ") => ", - "Filter" - ], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildCustomFilter.$1", - "type": "string", - "tags": [], - "label": "indexPatternString", - "description": [], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildCustomFilter.$2", - "type": "Object", - "tags": [], - "label": "queryDsl", - "description": [], - "signature": [ - "QueryDslQueryContainer" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildCustomFilter.$3", - "type": "boolean", - "tags": [], - "label": "disabled", - "description": [], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildCustomFilter.$4", - "type": "boolean", - "tags": [], - "label": "negate", - "description": [], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildCustomFilter.$5", - "type": "CompoundType", - "tags": [], - "label": "alias", - "description": [], - "signature": [ - "string | null" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildCustomFilter.$6", - "type": "Enum", - "tags": [], - "label": "store", - "description": [], - "signature": [ - "FilterStateStore" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - } - ] - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildEmptyFilter", - "type": "Function", - "tags": [], - "label": "buildEmptyFilter", - "description": [], - "signature": [ - "(isPinned: boolean, index?: string | undefined) => ", - "Filter" - ], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildEmptyFilter.$1", - "type": "boolean", - "tags": [], - "label": "isPinned", - "description": [], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildEmptyFilter.$2", - "type": "string", - "tags": [], - "label": "index", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - } - ] - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildExistsFilter", - "type": "Function", - "tags": [], - "label": "buildExistsFilter", - "description": [], - "signature": [ - "(field: ", - "DataViewFieldBase", - ", indexPattern: ", - "DataViewBase", - ") => ", - "ExistsFilter" - ], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildExistsFilter.$1", - "type": "Object", - "tags": [], - "label": "field", - "description": [], - "signature": [ - "DataViewFieldBase" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildExistsFilter.$2", - "type": "Object", - "tags": [], - "label": "indexPattern", - "description": [], - "signature": [ - "DataViewBase" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - } - ] - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildFilter", - "type": "Function", - "tags": [], - "label": "buildFilter", - "description": [], - "signature": [ - "(indexPattern: ", - "DataViewBase", - ", field: ", - "DataViewFieldBase", - ", type: ", - "FILTERS", - ", negate: boolean, disabled: boolean, params: ", - "Serializable", - ", alias: string | null, store?: ", - "FilterStateStore", - " | undefined) => ", - "Filter" - ], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildFilter.$1", - "type": "Object", - "tags": [], - "label": "indexPattern", - "description": [], - "signature": [ - "DataViewBase" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildFilter.$2", - "type": "Object", - "tags": [], - "label": "field", - "description": [], - "signature": [ - "DataViewFieldBase" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildFilter.$3", - "type": "Enum", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "FILTERS" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildFilter.$4", - "type": "boolean", - "tags": [], - "label": "negate", - "description": [], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildFilter.$5", - "type": "boolean", - "tags": [], - "label": "disabled", - "description": [], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildFilter.$6", - "type": "CompoundType", - "tags": [], - "label": "params", - "description": [], - "signature": [ - "string | number | boolean | ", - "SerializableRecord", - " | SerializableArray | null | undefined" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildFilter.$7", - "type": "CompoundType", - "tags": [], - "label": "alias", - "description": [], - "signature": [ - "string | null" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildFilter.$8", - "type": "CompoundType", - "tags": [], - "label": "store", - "description": [], - "signature": [ - "FilterStateStore", - " | undefined" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - } - ] - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildPhraseFilter", - "type": "Function", - "tags": [], - "label": "buildPhraseFilter", - "description": [], - "signature": [ - "(field: ", - "DataViewFieldBase", - ", value: PhraseFilterValue, indexPattern: ", - "DataViewBase", - ") => ", - "PhraseFilter", - " | ", - "ScriptedPhraseFilter" - ], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildPhraseFilter.$1", - "type": "Object", - "tags": [], - "label": "field", - "description": [], - "signature": [ - "DataViewFieldBase" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildPhraseFilter.$2", - "type": "CompoundType", - "tags": [], - "label": "value", - "description": [], - "signature": [ - "string | number | boolean" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildPhraseFilter.$3", - "type": "Object", - "tags": [], - "label": "indexPattern", - "description": [], - "signature": [ - "DataViewBase" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - } - ] - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildPhrasesFilter", - "type": "Function", - "tags": [], - "label": "buildPhrasesFilter", - "description": [], - "signature": [ - "(field: ", - "DataViewFieldBase", - ", params: PhraseFilterValue[], indexPattern: ", - "DataViewBase", - ") => ", - "PhrasesFilter" - ], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildPhrasesFilter.$1", - "type": "Object", - "tags": [], - "label": "field", - "description": [], - "signature": [ - "DataViewFieldBase" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildPhrasesFilter.$2", - "type": "Array", - "tags": [], - "label": "params", - "description": [], - "signature": [ - "PhraseFilterValue[]" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildPhrasesFilter.$3", - "type": "Object", - "tags": [], - "label": "indexPattern", - "description": [], - "signature": [ - "DataViewBase" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - } - ] - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildRangeFilter", - "type": "Function", - "tags": [], - "label": "buildRangeFilter", - "description": [], - "signature": [ - "(field: ", - "DataViewFieldBase", - ", params: ", - "RangeFilterParams", - ", indexPattern: ", - "DataViewBase", - ", formattedValue?: string | undefined) => ", - "RangeFilter", - " | ", - "ScriptedRangeFilter", - " | MatchAllRangeFilter" - ], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildRangeFilter.$1", - "type": "Object", - "tags": [], - "label": "field", - "description": [], - "signature": [ - "DataViewFieldBase" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildRangeFilter.$2", - "type": "Object", - "tags": [], - "label": "params", - "description": [], - "signature": [ - "RangeFilterParams" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildRangeFilter.$3", - "type": "Object", - "tags": [], - "label": "indexPattern", - "description": [], - "signature": [ - "DataViewBase" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.buildRangeFilter.$4", - "type": "string", - "tags": [], - "label": "formattedValue", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - } - ] - }, - { - "parentPluginId": "data", - "id": "def-server.esFilters.isFilterDisabled", - "type": "Function", - "tags": [], - "label": "isFilterDisabled", - "description": [], - "signature": [ - "(filter: ", - "Filter", - ") => boolean" - ], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esFilters.isFilterDisabled.$1", - "type": "Object", - "tags": [], - "label": "filter", - "description": [], - "signature": [ - "{ $state?: { store: ", - "FilterStateStore", - "; } | undefined; meta: ", - "FilterMeta", - "; query?: Record | undefined; }" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - } - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-server.esKuery", - "type": "Object", - "tags": [], - "label": "esKuery", - "description": [], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esKuery.nodeTypes", - "type": "Object", - "tags": [], - "label": "nodeTypes", - "description": [], - "signature": [ - "NodeTypes" - ], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esKuery.fromKueryExpression", - "type": "Function", - "tags": [], - "label": "fromKueryExpression", - "description": [], - "signature": [ - "(expression: string | ", - "QueryDslQueryContainer", - ", parseOptions?: Partial<", - "KueryParseOptions", - "> | undefined) => ", - "KueryNode" - ], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esKuery.fromKueryExpression.$1", - "type": "CompoundType", - "tags": [], - "label": "expression", - "description": [], - "signature": [ - "string | ", - "QueryDslQueryContainer" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esKuery.fromKueryExpression.$2", - "type": "Object", - "tags": [], - "label": "parseOptions", - "description": [], - "signature": [ - "Partial<", - "KueryParseOptions", - "> | undefined" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - } - ] - }, - { - "parentPluginId": "data", - "id": "def-server.esKuery.toElasticsearchQuery", - "type": "Function", - "tags": [], - "label": "toElasticsearchQuery", - "description": [], - "signature": [ - "(node: ", - "KueryNode", - ", indexPattern?: ", - "DataViewBase", - " | undefined, config?: ", - "KueryQueryOptions", - " | undefined, context?: Record | undefined) => ", - "QueryDslQueryContainer" - ], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esKuery.toElasticsearchQuery.$1", - "type": "Object", - "tags": [], - "label": "node", - "description": [], - "signature": [ - "KueryNode" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esKuery.toElasticsearchQuery.$2", - "type": "Object", - "tags": [], - "label": "indexPattern", - "description": [], - "signature": [ - "DataViewBase", - " | undefined" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esKuery.toElasticsearchQuery.$3", - "type": "Object", - "tags": [], - "label": "config", - "description": [], - "signature": [ - "KueryQueryOptions", - " | undefined" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esKuery.toElasticsearchQuery.$4", - "type": "Object", - "tags": [], - "label": "context", - "description": [], - "signature": [ - "Record | undefined" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - } - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-server.esQuery", - "type": "Object", - "tags": [], - "label": "esQuery", - "description": [], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esQuery.buildQueryFromFilters", - "type": "Function", - "tags": [], - "label": "buildQueryFromFilters", - "description": [], - "signature": [ - "(filters: ", - "Filter", - "[] | undefined, indexPattern: ", - "DataViewBase", - " | undefined, ignoreFilterIfFieldNotInIndex?: boolean | undefined) => ", - "BoolQuery" - ], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esQuery.buildQueryFromFilters.$1", - "type": "Array", - "tags": [], - "label": "filters", - "description": [], - "signature": [ - "Filter", - "[] | undefined" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esQuery.buildQueryFromFilters.$2", - "type": "Object", - "tags": [], - "label": "indexPattern", - "description": [], - "signature": [ - "DataViewBase", - " | undefined" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esQuery.buildQueryFromFilters.$3", - "type": "CompoundType", - "tags": [], - "label": "ignoreFilterIfFieldNotInIndex", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - } - ] - }, - { - "parentPluginId": "data", - "id": "def-server.esQuery.getEsQueryConfig", - "type": "Function", - "tags": [], - "label": "getEsQueryConfig", - "description": [], - "signature": [ - "(config: KibanaConfig) => ", - "EsQueryConfig" - ], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esQuery.getEsQueryConfig.$1", - "type": "Object", - "tags": [], - "label": "config", - "description": [], - "signature": [ - "KibanaConfig" - ], - "path": "src/plugins/data/common/es_query/get_es_query_config.ts", - "deprecated": false - } - ] - }, - { - "parentPluginId": "data", - "id": "def-server.esQuery.buildEsQuery", - "type": "Function", - "tags": [], - "label": "buildEsQuery", - "description": [], - "signature": [ - "(indexPattern: ", - "DataViewBase", - " | undefined, queries: ", - "Query", - " | ", - "Query", - "[], filters: ", - "Filter", - " | ", - "Filter", - "[], config?: ", - "EsQueryConfig", - " | undefined) => { bool: ", - "BoolQuery", - "; }" - ], - "path": "src/plugins/data/server/deprecated.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.esQuery.buildEsQuery.$1", - "type": "Object", - "tags": [], - "label": "indexPattern", - "description": [], - "signature": [ - "DataViewBase", - " | undefined" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esQuery.buildEsQuery.$2", - "type": "CompoundType", - "tags": [], - "label": "queries", - "description": [], - "signature": [ - "Query", - " | ", - "Query", - "[]" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esQuery.buildEsQuery.$3", - "type": "CompoundType", - "tags": [], - "label": "filters", - "description": [], - "signature": [ - "Filter", - " | ", - "Filter", - "[]" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.esQuery.buildEsQuery.$4", - "type": "CompoundType", - "tags": [], - "label": "config", - "description": [], - "signature": [ - "EsQueryConfig", - " | undefined" - ], - "path": "node_modules/@types/kbn__es-query/index.d.ts", - "deprecated": false - } - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-server.exporters", - "type": "Object", - "tags": [], - "label": "exporters", - "description": [], - "path": "src/plugins/data/server/index.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.exporters.datatableToCSV", - "type": "Function", - "tags": [], - "label": "datatableToCSV", - "description": [], - "signature": [ - "({ columns, rows }: ", - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.Datatable", - "text": "Datatable" - }, - ", { csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues }: CSVOptions) => string" - ], - "path": "src/plugins/data/server/index.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.exporters.datatableToCSV.$1", - "type": "Object", - "tags": [], - "label": "__0", - "description": [], - "signature": [ - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.Datatable", - "text": "Datatable" - } - ], - "path": "src/plugins/data/common/exports/export_csv.tsx", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.exporters.datatableToCSV.$2", - "type": "Object", - "tags": [], - "label": "__1", - "description": [], - "signature": [ - "CSVOptions" - ], - "path": "src/plugins/data/common/exports/export_csv.tsx", - "deprecated": false - } - ] - }, - { - "parentPluginId": "data", - "id": "def-server.exporters.CSV_MIME_TYPE", - "type": "string", - "tags": [], - "label": "CSV_MIME_TYPE", - "description": [], - "path": "src/plugins/data/server/index.ts", - "deprecated": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-server.search", - "type": "Object", - "tags": [], - "label": "search", - "description": [], - "path": "src/plugins/data/server/index.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.search.aggs", - "type": "Object", - "tags": [], - "label": "aggs", - "description": [], - "path": "src/plugins/data/server/index.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.search.aggs.CidrMask", - "type": "Object", - "tags": [], - "label": "CidrMask", - "description": [], - "signature": [ - "typeof ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.CidrMask", - "text": "CidrMask" - } - ], - "path": "src/plugins/data/server/index.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.search.aggs.dateHistogramInterval", - "type": "Function", - "tags": [], - "label": "dateHistogramInterval", - "description": [], - "signature": [ - "(interval: string) => Interval" - ], - "path": "src/plugins/data/server/index.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.search.aggs.dateHistogramInterval.$1", - "type": "string", - "tags": [], - "label": "interval", - "description": [], - "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/date_histogram_interval.ts", - "deprecated": false - } - ] - }, - { - "parentPluginId": "data", - "id": "def-server.search.aggs.IpAddress", - "type": "Object", - "tags": [], - "label": "IpAddress", - "description": [], - "signature": [ - "typeof ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.IpAddress", - "text": "IpAddress" - } - ], - "path": "src/plugins/data/server/index.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.search.aggs.parseInterval", - "type": "Function", - "tags": [], - "label": "parseInterval", - "description": [], - "signature": [ - "(interval: string) => moment.Duration | null" - ], - "path": "src/plugins/data/server/index.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.search.aggs.parseInterval.$1", - "type": "string", - "tags": [], - "label": "interval", - "description": [], - "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_interval.ts", - "deprecated": false - } - ] - }, - { - "parentPluginId": "data", - "id": "def-server.search.aggs.calcAutoIntervalLessThan", - "type": "Function", - "tags": [], - "label": "calcAutoIntervalLessThan", - "description": [], - "signature": [ - "(maxBucketCount: number, duration: number) => moment.Duration" - ], - "path": "src/plugins/data/server/index.ts", - "deprecated": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-server.search.aggs.calcAutoIntervalLessThan.$1", - "type": "number", - "tags": [], - "label": "maxBucketCount", - "description": [], - "path": "src/plugins/data/common/search/aggs/buckets/lib/time_buckets/calc_auto_interval.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.search.aggs.calcAutoIntervalLessThan.$2", - "type": "number", - "tags": [], - "label": "duration", - "description": [], - "path": "src/plugins/data/common/search/aggs/buckets/lib/time_buckets/calc_auto_interval.ts", - "deprecated": false - } - ] - } - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-server.UI_SETTINGS", - "type": "Object", - "tags": [], - "label": "UI_SETTINGS", - "description": [], - "signature": [ - "{ readonly META_FIELDS: \"metaFields\"; readonly DOC_HIGHLIGHT: \"doc_table:highlight\"; readonly QUERY_STRING_OPTIONS: \"query:queryString:options\"; readonly QUERY_ALLOW_LEADING_WILDCARDS: \"query:allowLeadingWildcards\"; readonly SEARCH_QUERY_LANGUAGE: \"search:queryLanguage\"; readonly SORT_OPTIONS: \"sort:options\"; readonly COURIER_IGNORE_FILTER_IF_FIELD_NOT_IN_INDEX: \"courier:ignoreFilterIfFieldNotInIndex\"; readonly COURIER_SET_REQUEST_PREFERENCE: \"courier:setRequestPreference\"; readonly COURIER_CUSTOM_REQUEST_PREFERENCE: \"courier:customRequestPreference\"; readonly COURIER_MAX_CONCURRENT_SHARD_REQUESTS: \"courier:maxConcurrentShardRequests\"; readonly SEARCH_INCLUDE_FROZEN: \"search:includeFrozen\"; readonly SEARCH_TIMEOUT: \"search:timeout\"; readonly HISTOGRAM_BAR_TARGET: \"histogram:barTarget\"; readonly HISTOGRAM_MAX_BARS: \"histogram:maxBars\"; readonly HISTORY_LIMIT: \"history:limit\"; readonly TIMEPICKER_REFRESH_INTERVAL_DEFAULTS: \"timepicker:refreshIntervalDefaults\"; readonly TIMEPICKER_QUICK_RANGES: \"timepicker:quickRanges\"; readonly TIMEPICKER_TIME_DEFAULTS: \"timepicker:timeDefaults\"; readonly FILTERS_PINNED_BY_DEFAULT: \"filters:pinnedByDefault\"; readonly FILTERS_EDITOR_SUGGEST_VALUES: \"filterEditor:suggestValues\"; readonly AUTOCOMPLETE_USE_TIMERANGE: \"autocomplete:useTimeRange\"; readonly AUTOCOMPLETE_VALUE_SUGGESTION_METHOD: \"autocomplete:valueSuggestionMethod\"; readonly DATE_FORMAT: \"dateFormat\"; readonly DATEFORMAT_TZ: \"dateFormat:tz\"; }" - ], - "path": "src/plugins/data/common/constants.ts", - "deprecated": false, - "initialIsOpen": false - } - ], - "setup": { - "parentPluginId": "data", - "id": "def-server.DataPluginSetup", - "type": "Interface", - "tags": [], - "label": "DataPluginSetup", - "description": [], - "path": "src/plugins/data/server/plugin.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.DataPluginSetup.autocomplete", - "type": "Object", - "tags": [], - "label": "autocomplete", - "description": [], - "signature": [ - "{ getAutocompleteSettings: () => { terminateAfter: number; timeout: number; }; }" - ], - "path": "src/plugins/data/server/plugin.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.DataPluginSetup.search", - "type": "Object", - "tags": [], - "label": "search", - "description": [], - "signature": [ - "ISearchSetup" - ], - "path": "src/plugins/data/server/plugin.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.DataPluginSetup.query", - "type": "Object", - "tags": [], - "label": "query", - "description": [], - "signature": [ - "{ filterManager: { extract: (filters: ", - "Filter", - "[]) => { state: ", - "Filter", - "[]; references: ", - "SavedObjectReference", - "[]; }; inject: (filters: ", - "Filter", - "[], references: ", - "SavedObjectReference", - "[]) => ", - "Filter", - "[]; telemetry: (filters: ", - "Filter", - "[], collector: unknown) => {}; getAllMigrations: () => ", - { - "pluginId": "kibanaUtils", - "scope": "common", - "docId": "kibKibanaUtilsPluginApi", - "section": "def-common.MigrateFunctionsObject", - "text": "MigrateFunctionsObject" - }, - "; }; }" - ], - "path": "src/plugins/data/server/plugin.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.DataPluginSetup.fieldFormats", - "type": "Object", - "tags": [ - "deprecated" - ], - "label": "fieldFormats", - "description": [], - "signature": [ - { - "pluginId": "fieldFormats", - "scope": "server", - "docId": "kibFieldFormatsPluginApi", - "section": "def-server.FieldFormatsSetup", - "text": "FieldFormatsSetup" - } - ], - "path": "src/plugins/data/server/plugin.ts", - "deprecated": true, - "references": [] - } - ], - "lifecycle": "setup", - "initialIsOpen": true - }, - "start": { - "parentPluginId": "data", - "id": "def-server.DataPluginStart", - "type": "Interface", - "tags": [], - "label": "DataPluginStart", - "description": [], - "path": "src/plugins/data/server/plugin.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-server.DataPluginStart.search", - "type": "Object", - "tags": [], - "label": "search", - "description": [], - "signature": [ - "ISearchStart", - "<", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.IEsSearchRequest", - "text": "IEsSearchRequest" - }, - ", ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.IEsSearchResponse", - "text": "IEsSearchResponse" - }, - ">" - ], - "path": "src/plugins/data/server/plugin.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.DataPluginStart.fieldFormats", - "type": "Object", - "tags": [ - "deprecated" - ], - "label": "fieldFormats", - "description": [], - "signature": [ - { - "pluginId": "fieldFormats", - "scope": "server", - "docId": "kibFieldFormatsPluginApi", - "section": "def-server.FieldFormatsStart", - "text": "FieldFormatsStart" - } - ], - "path": "src/plugins/data/server/plugin.ts", - "deprecated": true, - "references": [ - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/server/plugin.ts" - } - ] - }, - { - "parentPluginId": "data", - "id": "def-server.DataPluginStart.indexPatterns", - "type": "Object", - "tags": [], - "label": "indexPatterns", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "server", - "docId": "kibDataViewsPluginApi", - "section": "def-server.DataViewsServerPluginStart", - "text": "DataViewsServerPluginStart" - } - ], - "path": "src/plugins/data/server/plugin.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-server.DataPluginStart.datatableUtilities", - "type": "Object", - "tags": [], - "label": "datatableUtilities", - "description": [ - "\nDatatable type utility functions." - ], - "signature": [ - "DatatableUtilitiesService" - ], - "path": "src/plugins/data/server/plugin.ts", - "deprecated": false - } - ], - "lifecycle": "start", - "initialIsOpen": true - } - }, - "common": { - "classes": [ - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService", - "type": "Class", - "tags": [], - "label": "DatatableUtilitiesService", - "description": [], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.Unnamed", - "type": "Function", - "tags": [], - "label": "Constructor", - "description": [], - "signature": [ - "any" - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.Unnamed.$1", - "type": "Object", - "tags": [], - "label": "aggs", - "description": [], - "signature": [ - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.AggsCommonStart", - "text": "AggsCommonStart" - } - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.Unnamed.$2", - "type": "Object", - "tags": [], - "label": "dataViews", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewsContract", - "text": "DataViewsContract" - } - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.Unnamed.$3", - "type": "Object", - "tags": [], - "label": "fieldFormats", - "description": [], - "signature": [ - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FieldFormatsStartCommon", - "text": "FieldFormatsStartCommon" - } - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.clearField", - "type": "Function", - "tags": [], - "label": "clearField", - "description": [], - "signature": [ - "(column: ", - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - }, - ") => void" - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.clearField.$1", - "type": "Object", - "tags": [], - "label": "column", - "description": [], - "signature": [ - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - } - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.clearFieldFormat", - "type": "Function", - "tags": [], - "label": "clearFieldFormat", - "description": [], - "signature": [ - "(column: ", - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - }, - ") => void" - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.clearFieldFormat.$1", - "type": "Object", - "tags": [], - "label": "column", - "description": [], - "signature": [ - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - } - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.getAggConfig", - "type": "Function", - "tags": [], - "label": "getAggConfig", - "description": [], - "signature": [ - "(column: ", - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - }, - ") => Promise<", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.AggConfig", - "text": "AggConfig" - }, - " | undefined>" - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.getAggConfig.$1", - "type": "Object", - "tags": [], - "label": "column", - "description": [], - "signature": [ - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - } - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.getDataView", - "type": "Function", - "tags": [], - "label": "getDataView", - "description": [], - "signature": [ - "(column: ", - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - }, - ") => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - " | undefined>" - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.getDataView.$1", - "type": "Object", - "tags": [], - "label": "column", - "description": [], - "signature": [ - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - } - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.getField", - "type": "Function", - "tags": [], - "label": "getField", - "description": [], - "signature": [ - "(column: ", - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - }, - ") => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - }, - " | undefined>" - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.getField.$1", - "type": "Object", - "tags": [], - "label": "column", - "description": [], - "signature": [ - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - } - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.getFieldFormat", - "type": "Function", - "tags": [], - "label": "getFieldFormat", - "description": [], - "signature": [ - "(column: ", - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - }, - ") => ", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FieldFormat", - "text": "FieldFormat" - }, - " | undefined" - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.getFieldFormat.$1", - "type": "Object", - "tags": [], - "label": "column", - "description": [], - "signature": [ - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - } - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.getInterval", - "type": "Function", - "tags": [], - "label": "getInterval", - "description": [], - "signature": [ - "(column: ", - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - }, - ") => string | undefined" - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.getInterval.$1", - "type": "Object", - "tags": [], - "label": "column", - "description": [], - "signature": [ - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - } - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.getTotalCount", - "type": "Function", - "tags": [], - "label": "getTotalCount", - "description": [], - "signature": [ - "(table: ", - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.Datatable", - "text": "Datatable" - }, - ") => number | undefined" - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.getTotalCount.$1", - "type": "Object", - "tags": [], - "label": "table", - "description": [], - "signature": [ - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.Datatable", - "text": "Datatable" - } - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.isFilterable", - "type": "Function", - "tags": [], - "label": "isFilterable", - "description": [], - "signature": [ - "(column: ", - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - }, - ") => boolean" - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.isFilterable.$1", - "type": "Object", - "tags": [], - "label": "column", - "description": [], - "signature": [ - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - } - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.setFieldFormat", - "type": "Function", - "tags": [], - "label": "setFieldFormat", - "description": [], - "signature": [ - "(column: ", - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - }, - ", fieldFormat: ", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FieldFormat", - "text": "FieldFormat" - }, - ") => void" - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.setFieldFormat.$1", - "type": "Object", - "tags": [], - "label": "column", - "description": [], - "signature": [ - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.DatatableColumn", - "text": "DatatableColumn" - } - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DatatableUtilitiesService.setFieldFormat.$2", - "type": "Object", - "tags": [], - "label": "fieldFormat", - "description": [], - "signature": [ - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FieldFormat", - "text": "FieldFormat" - } - ], - "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataView", - "type": "Class", - "tags": [], - "label": "DataView", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - " implements ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.IIndexPattern", - "text": "IIndexPattern" - } - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.id", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.title", - "type": "string", - "tags": [], - "label": "title", - "description": [], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.fieldFormatMap", - "type": "Object", - "tags": [], - "label": "fieldFormatMap", - "description": [], - "signature": [ - "{ [x: string]: any; }" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.typeMeta", - "type": "Object", - "tags": [], - "label": "typeMeta", - "description": [ - "\nOnly used by rollup indices, used by rollup specific endpoint to load field list" - ], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.TypeMeta", - "text": "TypeMeta" - }, - " | undefined" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.fields", - "type": "CompoundType", - "tags": [], - "label": "fields", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.IIndexPatternFieldList", - "text": "IIndexPatternFieldList" - }, - " & { toSpec: () => ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewFieldMap", - "text": "DataViewFieldMap" - }, - "; }" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.timeFieldName", - "type": "string", - "tags": [], - "label": "timeFieldName", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.type", - "type": "string", - "tags": [], - "label": "type", - "description": [ - "\nType is used to identify rollup index patterns" - ], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.flattenHit", - "type": "Function", - "tags": [ - "deprecated" - ], - "label": "flattenHit", - "description": [], - "signature": [ - "(hit: Record, deep?: boolean | undefined) => Record" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": true, - "references": [ - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx" - } - ], - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.flattenHit.$1", - "type": "Object", - "tags": [], - "label": "hit", - "description": [], - "signature": [ - "{ [x: string]: any; }" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.flattenHit.$2", - "type": "CompoundType", - "tags": [], - "label": "deep", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false - } - ] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.metaFields", - "type": "Array", - "tags": [], - "label": "metaFields", - "description": [], - "signature": [ - "string[]" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.version", - "type": "string", - "tags": [], - "label": "version", - "description": [ - "\nSavedObject version" - ], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.sourceFilters", - "type": "Array", - "tags": [], - "label": "sourceFilters", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.SourceFilter", - "text": "SourceFilter" - }, - "[] | undefined" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.namespaces", - "type": "Array", - "tags": [], - "label": "namespaces", - "description": [], - "signature": [ - "string[]" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.allowNoIndex", - "type": "boolean", - "tags": [], - "label": "allowNoIndex", - "description": [ - "\nprevents errors when index pattern exists before indices" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.Unnamed", - "type": "Function", - "tags": [], - "label": "Constructor", - "description": [], - "signature": [ - "any" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.Unnamed.$1", - "type": "Object", - "tags": [], - "label": "{ spec = {}, fieldFormats, shortDotsEnable = false, metaFields = [] }", - "description": [], - "signature": [ - "DataViewDeps" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.getOriginalSavedObjectBody", - "type": "Function", - "tags": [], - "label": "getOriginalSavedObjectBody", - "description": [ - "\nGet last saved saved object fields" - ], - "signature": [ - "() => { fieldAttrs?: string | undefined; title?: string | undefined; timeFieldName?: string | undefined; fields?: string | undefined; sourceFilters?: string | undefined; fieldFormatMap?: string | undefined; typeMeta?: string | undefined; type?: string | undefined; }" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.resetOriginalSavedObjectBody", - "type": "Function", - "tags": [], - "label": "resetOriginalSavedObjectBody", - "description": [ - "\nReset last saved saved object fields. used after saving" - ], - "signature": [ - "() => void" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.getFieldAttrs", - "type": "Function", - "tags": [], - "label": "getFieldAttrs", - "description": [], - "signature": [ - "() => { [x: string]: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldAttrSet", - "text": "FieldAttrSet" - }, - "; }" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.getComputedFields", - "type": "Function", - "tags": [], - "label": "getComputedFields", - "description": [], - "signature": [ - "() => { storedFields: string[]; scriptFields: Record; docvalueFields: { field: string; format: string; }[]; runtimeFields: ", - "MappingRuntimeFields", - "; }" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.toSpec", - "type": "Function", - "tags": [], - "label": "toSpec", - "description": [ - "\nCreate static representation of index pattern" - ], - "signature": [ - "() => ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" - } - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.getSourceFiltering", - "type": "Function", - "tags": [], - "label": "getSourceFiltering", - "description": [ - "\nGet the source filtering configuration for that index." - ], - "signature": [ - "() => { excludes: string[]; }" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.removeScriptedField", - "type": "Function", - "tags": [ - "deprecated" - ], - "label": "removeScriptedField", - "description": [ - "\nRemove scripted field from field list" - ], - "signature": [ - "(fieldName: string) => void" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": true, - "references": [ - { - "plugin": "dataViewManagement", - "path": "src/plugins/data_view_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx" - }, - { - "plugin": "dataViewManagement", - "path": "src/plugins/data_view_management/public/components/field_editor/field_editor.tsx" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" - } - ], - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.removeScriptedField.$1", - "type": "string", - "tags": [], - "label": "fieldName", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.getNonScriptedFields", - "type": "Function", - "tags": [ - "deprecated" - ], - "label": "getNonScriptedFields", - "description": [ - "\n" - ], - "signature": [ - "() => ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - }, - "[]" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": true, - "references": [ - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.test.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" - }, - { - "plugin": "dataViewManagement", - "path": "src/plugins/data_view_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx" - }, - { - "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": "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" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts" - } - ], - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.getScriptedFields", - "type": "Function", - "tags": [ - "deprecated" - ], - "label": "getScriptedFields", - "description": [ - "\n" - ], - "signature": [ - "() => ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - }, - "[]" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": true, - "references": [ - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_views.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/server/register_index_pattern_usage_collection.ts" - }, - { - "plugin": "dataViewManagement", - "path": "src/plugins/data_view_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" - } - ], - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.isTimeBased", - "type": "Function", - "tags": [], - "label": "isTimeBased", - "description": [], - "signature": [ - "() => this is ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.TimeBasedDataView", - "text": "TimeBasedDataView" - } - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.isTimeNanosBased", - "type": "Function", - "tags": [], - "label": "isTimeNanosBased", - "description": [], - "signature": [ - "() => this is ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.TimeBasedDataView", - "text": "TimeBasedDataView" - } - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.getTimeField", - "type": "Function", - "tags": [], - "label": "getTimeField", - "description": [], - "signature": [ - "() => ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - }, - " | undefined" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.getFieldByName", - "type": "Function", - "tags": [], - "label": "getFieldByName", - "description": [], - "signature": [ - "(name: string) => ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - }, - " | undefined" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.getFieldByName.$1", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.getAggregationRestrictions", - "type": "Function", - "tags": [], - "label": "getAggregationRestrictions", - "description": [], - "signature": [ - "() => Record | undefined" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.getAsSavedObjectBody", - "type": "Function", - "tags": [], - "label": "getAsSavedObjectBody", - "description": [ - "\nReturns index pattern as saved object body for saving" - ], - "signature": [ - "() => ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewAttributes", - "text": "DataViewAttributes" - } - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.getFormatterForField", - "type": "Function", - "tags": [], - "label": "getFormatterForField", - "description": [ - "\nProvide a field, get its formatter" - ], - "signature": [ - "(field: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.IFieldType", - "text": "IFieldType" - }, - " | ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" - }, - " | ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - }, - ") => ", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FieldFormat", - "text": "FieldFormat" - } - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.getFormatterForField.$1", - "type": "CompoundType", - "tags": [], - "label": "field", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.IFieldType", - "text": "IFieldType" - }, - " | ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" - }, - " | ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - } - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.addRuntimeField", - "type": "Function", - "tags": [], - "label": "addRuntimeField", - "description": [ - "\nAdd a runtime field - Appended to existing mapped field or a new field is\ncreated as appropriate." - ], - "signature": [ - "(name: string, runtimeField: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.RuntimeField", - "text": "RuntimeField" - }, - ") => ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - }, - "[]" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.addRuntimeField.$1", - "type": "string", - "tags": [], - "label": "name", - "description": [ - "Field name" - ], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.addRuntimeField.$2", - "type": "Object", - "tags": [], - "label": "runtimeField", - "description": [ - "Runtime field definition" - ], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.RuntimeField", - "text": "RuntimeField" - } - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.hasRuntimeField", - "type": "Function", - "tags": [], - "label": "hasRuntimeField", - "description": [ - "\nChecks if runtime field exists" - ], - "signature": [ - "(name: string) => boolean" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.hasRuntimeField.$1", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.getRuntimeField", - "type": "Function", - "tags": [], - "label": "getRuntimeField", - "description": [ - "\nReturns runtime field if exists" - ], - "signature": [ - "(name: string) => ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.RuntimeField", - "text": "RuntimeField" - }, - " | null" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.getRuntimeField.$1", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.getAllRuntimeFields", - "type": "Function", - "tags": [], - "label": "getAllRuntimeFields", - "description": [], - "signature": [ - "() => Record" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.getFieldsByRuntimeFieldName", - "type": "Function", - "tags": [], - "label": "getFieldsByRuntimeFieldName", - "description": [], - "signature": [ - "(name: string) => Record | undefined" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.getFieldsByRuntimeFieldName.$1", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.replaceAllRuntimeFields", - "type": "Function", - "tags": [], - "label": "replaceAllRuntimeFields", - "description": [ - "\nReplaces all existing runtime fields with new fields" - ], - "signature": [ - "(newFields: Record) => void" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.replaceAllRuntimeFields.$1", - "type": "Object", - "tags": [], - "label": "newFields", - "description": [], - "signature": [ - "Record" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.removeRuntimeField", - "type": "Function", - "tags": [], - "label": "removeRuntimeField", - "description": [ - "\nRemove a runtime field - removed from mapped field or removed unmapped\nfield as appropriate. Doesn't clear associated field attributes." - ], - "signature": [ - "(name: string) => void" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.removeRuntimeField.$1", - "type": "string", - "tags": [], - "label": "name", - "description": [ - "- Field name to remove" - ], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.getRuntimeMappings", - "type": "Function", - "tags": [], - "label": "getRuntimeMappings", - "description": [ - "\nReturn the \"runtime_mappings\" section of the ES search query" - ], - "signature": [ - "() => ", - "MappingRuntimeFields" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.getFormatterForFieldNoDefault", - "type": "Function", - "tags": [], - "label": "getFormatterForFieldNoDefault", - "description": [ - "\nGet formatter for a given field name. Return undefined if none exists" - ], - "signature": [ - "(fieldname: string) => ", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FieldFormat", - "text": "FieldFormat" - }, - " | undefined" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.getFormatterForFieldNoDefault.$1", - "type": "string", - "tags": [], - "label": "fieldname", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.setFieldAttrs", - "type": "Function", - "tags": [], - "label": "setFieldAttrs", - "description": [], - "signature": [ - "(fieldName: string, attrName: K, value: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldAttrSet", - "text": "FieldAttrSet" - }, - "[K]) => void" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.setFieldAttrs.$1", - "type": "string", - "tags": [], - "label": "fieldName", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.setFieldAttrs.$2", - "type": "Uncategorized", - "tags": [], - "label": "attrName", - "description": [], - "signature": [ - "K" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.setFieldAttrs.$3", - "type": "Uncategorized", - "tags": [], - "label": "value", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldAttrSet", - "text": "FieldAttrSet" - }, - "[K]" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.setFieldCustomLabel", - "type": "Function", - "tags": [], - "label": "setFieldCustomLabel", - "description": [], - "signature": [ - "(fieldName: string, customLabel: string | null | undefined) => void" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.setFieldCustomLabel.$1", - "type": "string", - "tags": [], - "label": "fieldName", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.setFieldCustomLabel.$2", - "type": "CompoundType", - "tags": [], - "label": "customLabel", - "description": [], - "signature": [ - "string | null | undefined" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.setFieldCount", - "type": "Function", - "tags": [], - "label": "setFieldCount", - "description": [], - "signature": [ - "(fieldName: string, count: number | null | undefined) => void" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.setFieldCount.$1", - "type": "string", - "tags": [], - "label": "fieldName", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.setFieldCount.$2", - "type": "CompoundType", - "tags": [], - "label": "count", - "description": [], - "signature": [ - "number | null | undefined" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.setFieldFormat", - "type": "Function", - "tags": [], - "label": "setFieldFormat", - "description": [], - "signature": [ - "(fieldName: string, format: ", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.SerializedFieldFormat", - "text": "SerializedFieldFormat" - }, - "<", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FieldFormatParams", - "text": "FieldFormatParams" - }, - ">) => void" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.setFieldFormat.$1", - "type": "string", - "tags": [], - "label": "fieldName", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.setFieldFormat.$2", - "type": "Object", - "tags": [], - "label": "format", - "description": [], - "signature": [ - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.SerializedFieldFormat", - "text": "SerializedFieldFormat" - }, - "<", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FieldFormatParams", - "text": "FieldFormatParams" - }, - ">" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataView.deleteFieldFormat", - "type": "Function", - "tags": [], - "label": "deleteFieldFormat", - "description": [], - "signature": [ - "(fieldName: string) => void" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataView.deleteFieldFormat.$1", - "type": "string", - "tags": [], - "label": "fieldName", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField", - "type": "Class", - "tags": [], - "label": "DataViewField", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - }, - " implements ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.IFieldType", - "text": "IFieldType" - } - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataViewField.spec", - "type": "Object", - "tags": [], - "label": "spec", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" - } - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.Unnamed", - "type": "Function", - "tags": [], - "label": "Constructor", - "description": [], - "signature": [ - "any" - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataViewField.Unnamed.$1", - "type": "Object", - "tags": [], - "label": "spec", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" - } - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.count", - "type": "number", - "tags": [], - "label": "count", - "description": [ - "\nCount is used for field popularity" - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.count", - "type": "number", - "tags": [], - "label": "count", - "description": [], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.runtimeField", - "type": "Object", - "tags": [], - "label": "runtimeField", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.RuntimeFieldSpec", - "text": "RuntimeFieldSpec" - }, - " | undefined" - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.runtimeField", - "type": "Object", - "tags": [], - "label": "runtimeField", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.RuntimeFieldSpec", - "text": "RuntimeFieldSpec" - }, - " | undefined" - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.script", - "type": "string", - "tags": [], - "label": "script", - "description": [ - "\nScript field code" - ], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.script", - "type": "string", - "tags": [], - "label": "script", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.lang", - "type": "string", - "tags": [], - "label": "lang", - "description": [ - "\nScript field language" - ], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.lang", - "type": "string", - "tags": [], - "label": "lang", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.customLabel", - "type": "string", - "tags": [], - "label": "customLabel", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.customLabel", - "type": "string", - "tags": [], - "label": "customLabel", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.conflictDescriptions", - "type": "Object", - "tags": [], - "label": "conflictDescriptions", - "description": [ - "\nDescription of field type conflicts across different indices in the same index pattern" - ], - "signature": [ - "Record | undefined" - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.conflictDescriptions", - "type": "Object", - "tags": [], - "label": "conflictDescriptions", - "description": [], - "signature": [ - "Record | undefined" - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.displayName", - "type": "string", - "tags": [], - "label": "displayName", - "description": [], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.esTypes", - "type": "Array", - "tags": [], - "label": "esTypes", - "description": [], - "signature": [ - "string[] | undefined" - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.scripted", - "type": "boolean", - "tags": [], - "label": "scripted", - "description": [], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.searchable", - "type": "boolean", - "tags": [], - "label": "searchable", - "description": [], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.aggregatable", - "type": "boolean", - "tags": [], - "label": "aggregatable", - "description": [], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.readFromDocValues", - "type": "boolean", - "tags": [], - "label": "readFromDocValues", - "description": [], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.subType", - "type": "CompoundType", - "tags": [], - "label": "subType", - "description": [], - "signature": [ - "IFieldSubType", - " | undefined" - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.isMapped", - "type": "CompoundType", - "tags": [], - "label": "isMapped", - "description": [ - "\nIs the field part of the index mapping?" - ], - "signature": [ - "boolean | undefined" - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.isRuntimeField", - "type": "boolean", - "tags": [], - "label": "isRuntimeField", - "description": [], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.sortable", - "type": "boolean", - "tags": [], - "label": "sortable", - "description": [], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.filterable", - "type": "boolean", - "tags": [], - "label": "filterable", - "description": [], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.visualizable", - "type": "boolean", - "tags": [], - "label": "visualizable", - "description": [], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false - }, + "setup": { + "parentPluginId": "data", + "id": "def-server.DataPluginSetup", + "type": "Interface", + "tags": [], + "label": "DataPluginSetup", + "description": [], + "path": "src/plugins/data/server/plugin.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-server.DataPluginSetup.autocomplete", + "type": "Object", + "tags": [], + "label": "autocomplete", + "description": [], + "signature": [ + "{ getAutocompleteSettings: () => { terminateAfter: number; timeout: number; }; }" + ], + "path": "src/plugins/data/server/plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.DataPluginSetup.search", + "type": "Object", + "tags": [], + "label": "search", + "description": [], + "signature": [ + "ISearchSetup" + ], + "path": "src/plugins/data/server/plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.DataPluginSetup.query", + "type": "Object", + "tags": [], + "label": "query", + "description": [], + "signature": [ + "{ filterManager: { extract: (filters: ", + "Filter", + "[]) => { state: ", + "Filter", + "[]; references: ", + "SavedObjectReference", + "[]; }; inject: (filters: ", + "Filter", + "[], references: ", + "SavedObjectReference", + "[]) => ", + "Filter", + "[]; telemetry: (filters: ", + "Filter", + "[], collector: unknown) => {}; getAllMigrations: () => ", + { + "pluginId": "kibanaUtils", + "scope": "common", + "docId": "kibKibanaUtilsPluginApi", + "section": "def-common.MigrateFunctionsObject", + "text": "MigrateFunctionsObject" + }, + "; }; }" + ], + "path": "src/plugins/data/server/plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.DataPluginSetup.fieldFormats", + "type": "Object", + "tags": [ + "deprecated" + ], + "label": "fieldFormats", + "description": [], + "signature": [ + { + "pluginId": "fieldFormats", + "scope": "server", + "docId": "kibFieldFormatsPluginApi", + "section": "def-server.FieldFormatsSetup", + "text": "FieldFormatsSetup" + } + ], + "path": "src/plugins/data/server/plugin.ts", + "deprecated": true, + "references": [] + } + ], + "lifecycle": "setup", + "initialIsOpen": true + }, + "start": { + "parentPluginId": "data", + "id": "def-server.DataPluginStart", + "type": "Interface", + "tags": [], + "label": "DataPluginStart", + "description": [], + "path": "src/plugins/data/server/plugin.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-server.DataPluginStart.search", + "type": "Object", + "tags": [], + "label": "search", + "description": [], + "signature": [ + "ISearchStart", + "<", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.IEsSearchRequest", + "text": "IEsSearchRequest" + }, + ", ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.IEsSearchResponse", + "text": "IEsSearchResponse" + }, + ">" + ], + "path": "src/plugins/data/server/plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.DataPluginStart.fieldFormats", + "type": "Object", + "tags": [ + "deprecated" + ], + "label": "fieldFormats", + "description": [], + "signature": [ + { + "pluginId": "fieldFormats", + "scope": "server", + "docId": "kibFieldFormatsPluginApi", + "section": "def-server.FieldFormatsStart", + "text": "FieldFormatsStart" + } + ], + "path": "src/plugins/data/server/plugin.ts", + "deprecated": true, + "references": [ + { + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/server/plugin.ts" + } + ] + }, + { + "parentPluginId": "data", + "id": "def-server.DataPluginStart.indexPatterns", + "type": "Object", + "tags": [], + "label": "indexPatterns", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "server", + "docId": "kibDataViewsPluginApi", + "section": "def-server.DataViewsServerPluginStart", + "text": "DataViewsServerPluginStart" + } + ], + "path": "src/plugins/data/server/plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-server.DataPluginStart.datatableUtilities", + "type": "Object", + "tags": [], + "label": "datatableUtilities", + "description": [ + "\nDatatable type utility functions." + ], + "signature": [ + "DatatableUtilitiesService" + ], + "path": "src/plugins/data/server/plugin.ts", + "deprecated": false + } + ], + "lifecycle": "start", + "initialIsOpen": true + } + }, + "common": { + "classes": [ + { + "parentPluginId": "data", + "id": "def-common.DatatableUtilitiesService", + "type": "Class", + "tags": [], + "label": "DatatableUtilitiesService", + "description": [], + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", + "deprecated": false, + "children": [ { "parentPluginId": "data", - "id": "def-common.DataViewField.isSubtypeNested", + "id": "def-common.DatatableUtilitiesService.Unnamed", "type": "Function", "tags": [], - "label": "isSubtypeNested", + "label": "Constructor", "description": [], "signature": [ - "() => boolean" + "any" ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", "deprecated": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.isSubtypeMulti", - "type": "Function", - "tags": [], - "label": "isSubtypeMulti", - "description": [], - "signature": [ - "() => boolean" + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DatatableUtilitiesService.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "aggs", + "description": [], + "signature": [ + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.AggsCommonStart", + "text": "AggsCommonStart" + } + ], + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DatatableUtilitiesService.Unnamed.$2", + "type": "Object", + "tags": [], + "label": "dataViews", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewsContract", + "text": "DataViewsContract" + } + ], + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DatatableUtilitiesService.Unnamed.$3", + "type": "Object", + "tags": [], + "label": "fieldFormats", + "description": [], + "signature": [ + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormatsStartCommon", + "text": "FieldFormatsStartCommon" + } + ], + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", + "deprecated": false, + "isRequired": true + } ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false, - "children": [], "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewField.getSubtypeNested", + "id": "def-common.DatatableUtilitiesService.clearField", "type": "Function", "tags": [], - "label": "getSubtypeNested", + "label": "clearField", "description": [], "signature": [ - "() => ", - "IFieldSubTypeNested", - " | undefined" + "(column: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + }, + ") => void" ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", "deprecated": false, - "children": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DatatableUtilitiesService.clearField.$1", + "type": "Object", + "tags": [], + "label": "column", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + } + ], + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", + "deprecated": false, + "isRequired": true + } + ], "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewField.getSubtypeMulti", + "id": "def-common.DatatableUtilitiesService.clearFieldFormat", "type": "Function", "tags": [], - "label": "getSubtypeMulti", + "label": "clearFieldFormat", "description": [], "signature": [ - "() => ", - "IFieldSubTypeMulti", - " | undefined" + "(column: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + }, + ") => void" ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", "deprecated": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewField.deleteCount", - "type": "Function", - "tags": [], - "label": "deleteCount", - "description": [], - "signature": [ - "() => void" + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DatatableUtilitiesService.clearFieldFormat.$1", + "type": "Object", + "tags": [], + "label": "column", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + } + ], + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", + "deprecated": false, + "isRequired": true + } ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false, - "children": [], "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewField.toJSON", + "id": "def-common.DatatableUtilitiesService.getAggConfig", "type": "Function", "tags": [], - "label": "toJSON", + "label": "getAggConfig", "description": [], "signature": [ - "() => { count: number; script: string | undefined; lang: string | undefined; conflictDescriptions: Record | undefined; name: string; type: string; esTypes: string[] | undefined; scripted: boolean; searchable: boolean; aggregatable: boolean; readFromDocValues: boolean; subType: ", - "IFieldSubType", - " | undefined; customLabel: string | undefined; }" + "(column: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + }, + ") => Promise<", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.AggConfig", + "text": "AggConfig" + }, + " | undefined>" ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", "deprecated": false, - "children": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DatatableUtilitiesService.getAggConfig.$1", + "type": "Object", + "tags": [], + "label": "column", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + } + ], + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", + "deprecated": false, + "isRequired": true + } + ], "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewField.toSpec", + "id": "def-common.DatatableUtilitiesService.getDataView", "type": "Function", "tags": [], - "label": "toSpec", + "label": "getDataView", "description": [], "signature": [ - "({ getFormatterForField, }?: { getFormatterForField?: ((field: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.IFieldType", - "text": "IFieldType" - }, - " | ", + "(column: ", { - "pluginId": "dataViews", + "pluginId": "expressions", "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" }, - " | ", + ") => Promise<", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - }, - ") => ", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FieldFormat", - "text": "FieldFormat" + "section": "def-common.DataView", + "text": "DataView" }, - ") | undefined; }) => ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" - } + " | undefined>" ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", "deprecated": false, "children": [ { "parentPluginId": "data", - "id": "def-common.DataViewField.toSpec.$1", + "id": "def-common.DatatableUtilitiesService.getDataView.$1", "type": "Object", "tags": [], - "label": "{\n getFormatterForField,\n }", + "label": "column", "description": [], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false, - "children": [ + "signature": [ { - "parentPluginId": "data", - "id": "def-common.DataViewField.toSpec.$1.getFormatterForField", - "type": "Function", - "tags": [], - "label": "getFormatterForField", - "description": [], - "signature": [ - "((field: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.IFieldType", - "text": "IFieldType" - }, - " | ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" - }, - " | ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" - }, - ") => ", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FieldFormat", - "text": "FieldFormat" - }, - ") | undefined" - ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", - "deprecated": false + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" } - ] + ], + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", + "deprecated": false, + "isRequired": true } ], "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewField.isRuntimeCompositeSubField", + "id": "def-common.DatatableUtilitiesService.getField", "type": "Function", "tags": [], - "label": "isRuntimeCompositeSubField", + "label": "getField", "description": [], "signature": [ - "() => boolean" + "(column: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + }, + ") => Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + }, + " | undefined>" ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", "deprecated": false, - "children": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DatatableUtilitiesService.getField.$1", + "type": "Object", + "tags": [], + "label": "column", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + } + ], + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", + "deprecated": false, + "isRequired": true + } + ], "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewSavedObjectConflictError", - "type": "Class", - "tags": [], - "label": "DataViewSavedObjectConflictError", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSavedObjectConflictError", - "text": "DataViewSavedObjectConflictError" }, - " extends Error" - ], - "path": "src/plugins/data_views/common/errors/data_view_saved_object_conflict.ts", - "deprecated": false, - "children": [ { "parentPluginId": "data", - "id": "def-common.DataViewSavedObjectConflictError.Unnamed", + "id": "def-common.DatatableUtilitiesService.getFieldFormat", "type": "Function", "tags": [], - "label": "Constructor", + "label": "getFieldFormat", "description": [], "signature": [ - "any" + "(column: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + }, + ") => ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormat", + "text": "FieldFormat" + }, + " | undefined" ], - "path": "src/plugins/data_views/common/errors/data_view_saved_object_conflict.ts", + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", "deprecated": false, "children": [ { "parentPluginId": "data", - "id": "def-common.DataViewSavedObjectConflictError.Unnamed.$1", - "type": "string", + "id": "def-common.DatatableUtilitiesService.getFieldFormat.$1", + "type": "Object", "tags": [], - "label": "savedObjectId", + "label": "column", "description": [], "signature": [ - "string" + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + } ], - "path": "src/plugins/data_views/common/errors/data_view_saved_object_conflict.ts", + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", "deprecated": false, "isRequired": true } ], "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewsService", - "type": "Class", - "tags": [], - "label": "DataViewsService", - "description": [], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "children": [ + }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.getCanSave", + "id": "def-common.DatatableUtilitiesService.getInterval", "type": "Function", "tags": [], - "label": "getCanSave", + "label": "getInterval", "description": [], "signature": [ - "() => Promise" + "(column: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + }, + ") => string | undefined" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", "deprecated": false, - "returnComment": [], - "children": [] + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DatatableUtilitiesService.getInterval.$1", + "type": "Object", + "tags": [], + "label": "column", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + } + ], + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.ensureDefaultDataView", + "id": "def-common.DatatableUtilitiesService.getTotalCount", "type": "Function", - "tags": [ - "deprecated" - ], - "label": "ensureDefaultDataView", + "tags": [], + "label": "getTotalCount", "description": [], "signature": [ - "() => Promise | undefined" + "(table: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.Datatable", + "text": "Datatable" + }, + ") => number | undefined" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": true, - "references": [ + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", + "deprecated": false, + "children": [ { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_views.ts" + "parentPluginId": "data", + "id": "def-common.DatatableUtilitiesService.getTotalCount.$1", + "type": "Object", + "tags": [], + "label": "table", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.Datatable", + "text": "Datatable" + } + ], + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", + "deprecated": false, + "isRequired": true } ], - "returnComment": [], - "children": [] + "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.Unnamed", + "id": "def-common.DatatableUtilitiesService.isFilterable", "type": "Function", "tags": [], - "label": "Constructor", + "label": "isFilterable", "description": [], "signature": [ - "any" + "(column: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + }, + ") => boolean" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", "deprecated": false, "children": [ { "parentPluginId": "data", - "id": "def-common.DataViewsService.Unnamed.$1", + "id": "def-common.DatatableUtilitiesService.isFilterable.$1", "type": "Object", "tags": [], - "label": "{\n uiSettings,\n savedObjectsClient,\n apiClient,\n fieldFormats,\n onNotification,\n onError,\n onRedirectNoIndexPattern = () => {},\n getCanSave = () => Promise.resolve(false),\n }", + "label": "column", "description": [], "signature": [ - "DataViewsServiceDeps" + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + } ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", "deprecated": false, "isRequired": true } @@ -25137,305 +21270,375 @@ }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.getIds", + "id": "def-common.DatatableUtilitiesService.setFieldFormat", "type": "Function", "tags": [], - "label": "getIds", - "description": [ - "\nGet list of index pattern ids" - ], + "label": "setFieldFormat", + "description": [], "signature": [ - "(refresh?: boolean) => Promise" + "(column: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + }, + ", fieldFormat: ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormat", + "text": "FieldFormat" + }, + ") => void" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", "deprecated": false, "children": [ { "parentPluginId": "data", - "id": "def-common.DataViewsService.getIds.$1", - "type": "boolean", + "id": "def-common.DatatableUtilitiesService.setFieldFormat.$1", + "type": "Object", "tags": [], - "label": "refresh", - "description": [ - "Force refresh of index pattern list" + "label": "column", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + } ], + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DatatableUtilitiesService.setFieldFormat.$2", + "type": "Object", + "tags": [], + "label": "fieldFormat", + "description": [], "signature": [ - "boolean" + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormat", + "text": "FieldFormat" + } ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", + "path": "src/plugins/data/common/datatable_utilities/datatable_utilities_service.ts", "deprecated": false, "isRequired": true } ], - "returnComment": [] + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-common.DataView", + "type": "Class", + "tags": [], + "label": "DataView", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + " implements ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.IIndexPattern", + "text": "IIndexPattern" + } + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataView.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.getTitles", - "type": "Function", + "id": "def-common.DataView.title", + "type": "string", "tags": [], - "label": "getTitles", - "description": [ - "\nGet list of index pattern titles" - ], + "label": "title", + "description": [], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-common.DataView.fieldFormatMap", + "type": "Object", + "tags": [], + "label": "fieldFormatMap", + "description": [], "signature": [ - "(refresh?: boolean) => Promise" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.getTitles.$1", - "type": "boolean", - "tags": [], - "label": "refresh", - "description": [ - "Force refresh of index pattern list" - ], - "signature": [ - "boolean" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true - } + "{ [x: string]: any; }" ], - "returnComment": [] + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.find", - "type": "Function", + "id": "def-common.DataView.typeMeta", + "type": "Object", "tags": [], - "label": "find", + "label": "typeMeta", "description": [ - "\nFind and load index patterns by title" + "\nOnly used by rollup indices, used by rollup specific endpoint to load field list" ], "signature": [ - "(search: string, size?: number) => Promise<", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - "[]>" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.find.$1", - "type": "string", - "tags": [], - "label": "search", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true + "section": "def-common.TypeMeta", + "text": "TypeMeta" }, - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.find.$2", - "type": "number", - "tags": [], - "label": "size", - "description": [], - "signature": [ - "number" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true - } + " | undefined" ], - "returnComment": [ - "IndexPattern[]" - ] + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.getIdsWithTitle", - "type": "Function", + "id": "def-common.DataView.fields", + "type": "CompoundType", "tags": [], - "label": "getIdsWithTitle", - "description": [ - "\nGet list of index pattern ids with titles" - ], + "label": "fields", + "description": [], "signature": [ - "(refresh?: boolean) => Promise<", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewListItem", - "text": "DataViewListItem" + "section": "def-common.IIndexPatternFieldList", + "text": "IIndexPatternFieldList" }, - "[]>" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "children": [ + " & { toSpec: () => ", { - "parentPluginId": "data", - "id": "def-common.DataViewsService.getIdsWithTitle.$1", - "type": "boolean", - "tags": [], - "label": "refresh", - "description": [ - "Force refresh of index pattern list" - ], - "signature": [ - "boolean" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true - } + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewFieldMap", + "text": "DataViewFieldMap" + }, + "; }" ], - "returnComment": [] + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.clearCache", - "type": "Function", + "id": "def-common.DataView.timeFieldName", + "type": "string", "tags": [], - "label": "clearCache", + "label": "timeFieldName", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-common.DataView.type", + "type": "string", + "tags": [], + "label": "type", "description": [ - "\nClear index pattern list cache" + "\nType is used to identify rollup index patterns" ], "signature": [ - "(id?: string | undefined) => void" + "string | undefined" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-common.DataView.flattenHit", + "type": "Function", + "tags": [ + "deprecated" + ], + "label": "flattenHit", + "description": [], + "signature": [ + "(hit: Record, deep?: boolean | undefined) => Record" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": true, + "references": [ + { + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx" + } + ], + "returnComment": [], "children": [ { "parentPluginId": "data", - "id": "def-common.DataViewsService.clearCache.$1", - "type": "string", + "id": "def-common.DataView.flattenHit.$1", + "type": "Object", "tags": [], - "label": "id", - "description": [ - "optionally clear a single id" + "label": "hit", + "description": [], + "signature": [ + "{ [x: string]: any; }" ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-common.DataView.flattenHit.$2", + "type": "CompoundType", + "tags": [], + "label": "deep", + "description": [], "signature": [ - "string | undefined" + "boolean | undefined" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": false + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false } - ], - "returnComment": [] + ] }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.getCache", - "type": "Function", + "id": "def-common.DataView.metaFields", + "type": "Array", "tags": [], - "label": "getCache", + "label": "metaFields", "description": [], "signature": [ - "() => Promise<", - "SavedObject", - "<", - "IndexPatternSavedObjectAttrs", - ">[] | null | undefined>" + "string[]" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "children": [], - "returnComment": [] + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.getDefault", - "type": "Function", + "id": "def-common.DataView.version", + "type": "string", "tags": [], - "label": "getDefault", + "label": "version", "description": [ - "\nGet default index pattern" + "\nSavedObject version" ], "signature": [ - "() => Promise<", + "string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-common.DataView.sourceFilters", + "type": "Array", + "tags": [], + "label": "sourceFilters", + "description": [], + "signature": [ { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" + "section": "def-common.SourceFilter", + "text": "SourceFilter" }, - " | null>" + "[] | undefined" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "children": [], - "returnComment": [] + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.getDefaultId", - "type": "Function", + "id": "def-common.DataView.namespaces", + "type": "Array", "tags": [], - "label": "getDefaultId", - "description": [ - "\nGet default index pattern id" - ], + "label": "namespaces", + "description": [], "signature": [ - "() => Promise" + "string[]" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "children": [], - "returnComment": [] + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.setDefault", - "type": "Function", + "id": "def-common.DataView.allowNoIndex", + "type": "boolean", "tags": [], - "label": "setDefault", + "label": "allowNoIndex", "description": [ - "\nOptionally set default index pattern, unless force = true" + "\nprevents errors when index pattern exists before indices" ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false + }, + { + "parentPluginId": "data", + "id": "def-common.DataView.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], "signature": [ - "(id: string | null, force?: boolean) => Promise" + "any" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", + "path": "src/plugins/data_views/common/data_views/data_view.ts", "deprecated": false, "children": [ { "parentPluginId": "data", - "id": "def-common.DataViewsService.setDefault.$1", - "type": "CompoundType", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "string | null" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": false - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.setDefault.$2", - "type": "boolean", + "id": "def-common.DataView.Unnamed.$1", + "type": "Object", "tags": [], - "label": "force", + "label": "{ spec = {}, fieldFormats, shortDotsEnable = false, metaFields = [] }", "description": [], "signature": [ - "boolean" + "DataViewDeps" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", + "path": "src/plugins/data_views/common/data_views/data_view.ts", "deprecated": false, "isRequired": true } @@ -25444,633 +21647,410 @@ }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.hasUserDataView", + "id": "def-common.DataView.getOriginalSavedObjectBody", "type": "Function", "tags": [], - "label": "hasUserDataView", + "label": "getOriginalSavedObjectBody", "description": [ - "\nChecks if current user has a user created index pattern ignoring fleet's server default index patterns" + "\nGet last saved saved object fields" ], "signature": [ - "() => Promise" + "() => { fieldAttrs?: string | undefined; title?: string | undefined; timeFieldName?: string | undefined; fields?: string | undefined; sourceFilters?: string | undefined; fieldFormatMap?: string | undefined; typeMeta?: string | undefined; type?: string | undefined; }" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", + "path": "src/plugins/data_views/common/data_views/data_view.ts", "deprecated": false, "children": [], "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.getFieldsForWildcard", + "id": "def-common.DataView.resetOriginalSavedObjectBody", "type": "Function", "tags": [], - "label": "getFieldsForWildcard", + "label": "resetOriginalSavedObjectBody", "description": [ - "\nGet field list by providing { pattern }" + "\nReset last saved saved object fields. used after saving" ], "signature": [ - "(options: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.GetFieldsOptions", - "text": "GetFieldsOptions" - }, - ") => Promise<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" - }, - "[]>" + "() => void" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", + "path": "src/plugins/data_views/common/data_views/data_view.ts", "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.getFieldsForWildcard.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.GetFieldsOptions", - "text": "GetFieldsOptions" - } - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [ - "FieldSpec[]" - ] + "children": [], + "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.getFieldsForIndexPattern", + "id": "def-common.DataView.getFieldAttrs", "type": "Function", "tags": [], - "label": "getFieldsForIndexPattern", - "description": [ - "\nGet field list by providing an index patttern (or spec)" - ], + "label": "getFieldAttrs", + "description": [], "signature": [ - "(indexPattern: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - " | ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" - }, - ", options?: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.GetFieldsOptions", - "text": "GetFieldsOptions" - }, - " | undefined) => Promise<", + "() => { [x: string]: ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "section": "def-common.FieldAttrSet", + "text": "FieldAttrSet" }, - "[]>" + "; }" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", + "path": "src/plugins/data_views/common/data_views/data_view.ts", "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.getFieldsForIndexPattern.$1", - "type": "CompoundType", - "tags": [], - "label": "indexPattern", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - " | ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" - } - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.getFieldsForIndexPattern.$2", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.GetFieldsOptions", - "text": "GetFieldsOptions" - }, - " | undefined" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": false - } + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "data", + "id": "def-common.DataView.getComputedFields", + "type": "Function", + "tags": [], + "label": "getComputedFields", + "description": [], + "signature": [ + "() => { storedFields: string[]; scriptFields: Record; docvalueFields: { field: string; format: string; }[]; runtimeFields: ", + "MappingRuntimeFields", + "; }" ], - "returnComment": [ - "FieldSpec[]" - ] + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [], + "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.refreshFields", + "id": "def-common.DataView.toSpec", "type": "Function", "tags": [], - "label": "refreshFields", + "label": "toSpec", "description": [ - "\nRefresh field list for a given index pattern" + "\nCreate static representation of index pattern" ], "signature": [ - "(indexPattern: ", + "() => ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - ") => Promise" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.refreshFields.$1", - "type": "Object", - "tags": [], - "label": "indexPattern", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - } - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true + "section": "def-common.DataViewSpec", + "text": "DataViewSpec" } ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [], "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.fieldArrayToMap", + "id": "def-common.DataView.getSourceFiltering", "type": "Function", "tags": [], - "label": "fieldArrayToMap", + "label": "getSourceFiltering", "description": [ - "\nConverts field array to map" + "\nGet the source filtering configuration for that index." ], "signature": [ - "(fields: ", + "() => { excludes: string[]; }" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "data", + "id": "def-common.DataView.removeScriptedField", + "type": "Function", + "tags": [ + "deprecated" + ], + "label": "removeScriptedField", + "description": [ + "\nRemove scripted field from field list" + ], + "signature": [ + "(fieldName: string) => void" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": true, + "references": [ { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" + "plugin": "dataViewManagement", + "path": "src/plugins/data_view_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx" }, - "[], fieldAttrs?: ", { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldAttrs", - "text": "FieldAttrs" + "plugin": "dataViewManagement", + "path": "src/plugins/data_view_management/public/components/field_editor/field_editor.tsx" }, - " | undefined) => ", { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewFieldMap", - "text": "DataViewFieldMap" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" } ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, "children": [ { "parentPluginId": "data", - "id": "def-common.DataViewsService.fieldArrayToMap.$1", - "type": "Array", + "id": "def-common.DataView.removeScriptedField.$1", + "type": "string", "tags": [], - "label": "fields", - "description": [ - ": FieldSpec[]" - ], + "label": "fieldName", + "description": [], "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldSpec", - "text": "FieldSpec" - }, - "[]" + "string" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", + "path": "src/plugins/data_views/common/data_views/data_view.ts", "deprecated": false, "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.fieldArrayToMap.$2", - "type": "Object", - "tags": [], - "label": "fieldAttrs", - "description": [ - ": FieldAttrs" - ], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.FieldAttrs", - "text": "FieldAttrs" - }, - " | undefined" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": false } ], - "returnComment": [ - "Record" - ] + "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.savedObjectToSpec", + "id": "def-common.DataView.getNonScriptedFields", "type": "Function", - "tags": [], - "label": "savedObjectToSpec", + "tags": [ + "deprecated" + ], + "label": "getNonScriptedFields", "description": [ - "\nConverts index pattern saved object to index pattern spec" + "\n" ], "signature": [ - "(savedObject: ", - "SavedObject", - "<", + "() => ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewAttributes", - "text": "DataViewAttributes" + "section": "def-common.DataViewField", + "text": "DataViewField" }, - ">) => ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" - } + "[]" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "children": [ + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": true, + "references": [ { - "parentPluginId": "data", - "id": "def-common.DataViewsService.savedObjectToSpec.$1", - "type": "Object", - "tags": [], - "label": "savedObject", - "description": [], - "signature": [ - "SavedObject", - "<", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewAttributes", - "text": "DataViewAttributes" - }, - ">" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts" + }, + { + "plugin": "graph", + "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" + }, + { + "plugin": "graph", + "path": "x-pack/plugins/graph/public/state_management/datasource.test.ts" + }, + { + "plugin": "graph", + "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" + }, + { + "plugin": "graph", + "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" + }, + { + "plugin": "dataViewManagement", + "path": "src/plugins/data_view_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx" + }, + { + "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": "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" + }, + { + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts" } ], - "returnComment": [ - "DataViewSpec" - ] + "children": [], + "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.get", + "id": "def-common.DataView.getScriptedFields", "type": "Function", - "tags": [], - "label": "get", + "tags": [ + "deprecated" + ], + "label": "getScriptedFields", "description": [ - "\nGet an index pattern by id. Cache optimized" + "\n" ], "signature": [ - "(id: string) => Promise<", + "() => ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" + "section": "def-common.DataViewField", + "text": "DataViewField" }, - ">" + "[]" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "children": [ + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": true, + "references": [ { - "parentPluginId": "data", - "id": "def-common.DataViewsService.get.$1", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.ts" + }, + { + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.ts" + }, + { + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_views.ts" + }, + { + "plugin": "dataViews", + "path": "src/plugins/data_views/server/register_index_pattern_usage_collection.ts" + }, + { + "plugin": "dataViewManagement", + "path": "src/plugins/data_view_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx" + }, + { + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" + }, + { + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" + }, + { + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" + }, + { + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" + }, + { + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" } ], + "children": [], "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.create", + "id": "def-common.DataView.isTimeBased", "type": "Function", "tags": [], - "label": "create", - "description": [ - "\nCreate a new index pattern instance" - ], + "label": "isTimeBased", + "description": [], "signature": [ - "(spec: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" - }, - ", skipFetchFields?: boolean) => Promise<", + "() => this is ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - ">" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.create.$1", - "type": "Object", - "tags": [], - "label": "spec", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" - } - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.create.$2", - "type": "boolean", - "tags": [], - "label": "skipFetchFields", - "description": [], - "signature": [ - "boolean" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true + "section": "def-common.TimeBasedDataView", + "text": "TimeBasedDataView" } ], - "returnComment": [ - "IndexPattern" - ] + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [], + "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.createAndSave", + "id": "def-common.DataView.isTimeNanosBased", "type": "Function", "tags": [], - "label": "createAndSave", - "description": [ - "\nCreate a new index pattern and save it right away" - ], + "label": "isTimeNanosBased", + "description": [], "signature": [ - "(spec: ", + "() => this is ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" - }, - ", override?: boolean, skipFetchFields?: boolean) => Promise<", + "section": "def-common.TimeBasedDataView", + "text": "TimeBasedDataView" + } + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "data", + "id": "def-common.DataView.getTimeField", + "type": "Function", + "tags": [], + "label": "getTimeField", + "description": [], + "signature": [ + "() => ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" + "section": "def-common.DataViewField", + "text": "DataViewField" }, - ">" + " | undefined" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", + "path": "src/plugins/data_views/common/data_views/data_view.ts", "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.createAndSave.$1", - "type": "Object", - "tags": [], - "label": "spec", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewSpec", - "text": "DataViewSpec" - } - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.createAndSave.$2", - "type": "boolean", - "tags": [], - "label": "override", - "description": [ - "Overwrite if existing index pattern exists." - ], - "signature": [ - "boolean" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.createAndSave.$3", - "type": "boolean", - "tags": [], - "label": "skipFetchFields", - "description": [ - "Whether to skip field refresh step." - ], - "signature": [ - "boolean" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true - } - ], + "children": [], "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.createSavedObject", + "id": "def-common.DataView.getFieldByName", "type": "Function", - "tags": [], - "label": "createSavedObject", - "description": [ - "\nSave a new index pattern" - ], + "tags": [], + "label": "getFieldByName", + "description": [], "signature": [ - "(indexPattern: ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - }, - ", override?: boolean) => Promise<", + "(name: string) => ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" + "section": "def-common.DataViewField", + "text": "DataViewField" }, - ">" + " | undefined" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", + "path": "src/plugins/data_views/common/data_views/data_view.ts", "deprecated": false, "children": [ { "parentPluginId": "data", - "id": "def-common.DataViewsService.createSavedObject.$1", - "type": "Object", + "id": "def-common.DataView.getFieldByName.$1", + "type": "string", "tags": [], - "label": "indexPattern", + "label": "name", "description": [], "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - } - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.createSavedObject.$2", - "type": "boolean", - "tags": [], - "label": "override", - "description": [ - "Overwrite if existing index pattern exists" - ], - "signature": [ - "boolean" + "string" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", + "path": "src/plugins/data_views/common/data_views/data_view.ts", "deprecated": false, "isRequired": true } @@ -26079,815 +22059,2681 @@ }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.updateSavedObject", + "id": "def-common.DataView.getAggregationRestrictions", "type": "Function", "tags": [], - "label": "updateSavedObject", - "description": [ - "\nSave existing index pattern. Will attempt to merge differences if there are conflicts" - ], + "label": "getAggregationRestrictions", + "description": [], "signature": [ - "(indexPattern: ", + "() => Record Promise" + "> | undefined" ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", + "path": "src/plugins/data_views/common/data_views/data_view.ts", "deprecated": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.updateSavedObject.$1", - "type": "Object", - "tags": [], - "label": "indexPattern", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - } - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.updateSavedObject.$2", - "type": "number", - "tags": [], - "label": "saveAttempts", - "description": [], - "signature": [ - "number" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "data", - "id": "def-common.DataViewsService.updateSavedObject.$3", - "type": "boolean", - "tags": [], - "label": "ignoreErrors", - "description": [], - "signature": [ - "boolean" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true - } - ], + "children": [], "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.delete", + "id": "def-common.DataView.getAsSavedObjectBody", "type": "Function", "tags": [], - "label": "delete", + "label": "getAsSavedObjectBody", "description": [ - "\nDeletes an index pattern from .kibana index" + "\nReturns index pattern as saved object body for saving" ], "signature": [ - "(indexPatternId: string) => Promise<{}>" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "children": [ + "() => ", { - "parentPluginId": "data", - "id": "def-common.DataViewsService.delete.$1", - "type": "string", - "tags": [], - "label": "indexPatternId", - "description": [ - ": Id of kibana Index Pattern to delete" - ], - "signature": [ - "string" - ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", - "deprecated": false, - "isRequired": true + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewAttributes", + "text": "DataViewAttributes" } ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [], "returnComment": [] }, { "parentPluginId": "data", - "id": "def-common.DataViewsService.getDefaultDataView", + "id": "def-common.DataView.getFormatterForField", "type": "Function", "tags": [], - "label": "getDefaultDataView", + "label": "getFormatterForField", "description": [ - "\nReturns the default data view as an object.\nIf no default is found, or it is missing\nanother data view is selected as default and returned.\nIf no possible data view found to become a default returns null\n" + "\nProvide a field, get its formatter" ], "signature": [ - "() => Promise<", + "(field: ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" + "section": "def-common.IFieldType", + "text": "IFieldType" }, - " | null>" + " | ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + " | ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + }, + ") => ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormat", + "text": "FieldFormat" + } ], - "path": "src/plugins/data_views/common/data_views/data_views.ts", + "path": "src/plugins/data_views/common/data_views/data_view.ts", "deprecated": false, - "children": [], - "returnComment": [ - "default data view" - ] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-common.DuplicateDataViewError", - "type": "Class", - "tags": [], - "label": "DuplicateDataViewError", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DuplicateDataViewError", - "text": "DuplicateDataViewError" + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataView.getFormatterForField.$1", + "type": "CompoundType", + "tags": [], + "label": "field", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.IFieldType", + "text": "IFieldType" + }, + " | ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + " | ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + } + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, - " extends Error" - ], - "path": "src/plugins/data_views/common/errors/duplicate_index_pattern.ts", - "deprecated": false, - "children": [ { "parentPluginId": "data", - "id": "def-common.DuplicateDataViewError.Unnamed", + "id": "def-common.DataView.addRuntimeField", "type": "Function", "tags": [], - "label": "Constructor", - "description": [], + "label": "addRuntimeField", + "description": [ + "\nAdd a runtime field - Appended to existing mapped field or a new field is\ncreated as appropriate." + ], "signature": [ - "any" + "(name: string, runtimeField: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.RuntimeField", + "text": "RuntimeField" + }, + ") => ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + }, + "[]" ], - "path": "src/plugins/data_views/common/errors/duplicate_index_pattern.ts", + "path": "src/plugins/data_views/common/data_views/data_view.ts", "deprecated": false, "children": [ { "parentPluginId": "data", - "id": "def-common.DuplicateDataViewError.Unnamed.$1", + "id": "def-common.DataView.addRuntimeField.$1", "type": "string", "tags": [], - "label": "message", - "description": [], + "label": "name", + "description": [ + "Field name" + ], "signature": [ "string" ], - "path": "src/plugins/data_views/common/errors/duplicate_index_pattern.ts", + "path": "src/plugins/data_views/common/data_views/data_view.ts", "deprecated": false, "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "data", - "id": "def-common.IndexPattern", - "type": "Class", - "tags": [ - "deprecated" - ], - "label": "IndexPattern", - "description": [], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.IndexPattern", - "text": "IndexPattern" - }, - " extends ", - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - } - ], - "path": "src/plugins/data_views/common/data_views/data_view.ts", - "deprecated": true, - "references": [ - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/index.ts" - }, - { - "plugin": "upgradeAssistant", - "path": "x-pack/plugins/upgrade_assistant/target/types/__jest__/client_integration/helpers/app_context.mock.d.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/target/types/public/application/lib/load_saved_dashboard_state.d.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/target/types/public/application/hooks/use_dashboard_app_state.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/main/utils/use_discover_state.d.ts" - }, - { - "plugin": "ux", - "path": "x-pack/plugins/ux/public/components/app/rum_dashboard/local_uifilters/selected_filters.tsx" - }, - { - "plugin": "ux", - "path": "x-pack/plugins/ux/public/components/app/rum_dashboard/local_uifilters/selected_filters.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/percentile_agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/percentile_agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "ux", - "path": "x-pack/plugins/ux/public/components/app/rum_dashboard/local_uifilters/selected_wildcards.tsx" - }, - { - "plugin": "ux", - "path": "x-pack/plugins/ux/public/components/app/rum_dashboard/local_uifilters/selected_wildcards.tsx" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/data_view_field.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/fields/data_view_field.test.ts" - }, - { - "plugin": "dataViews", - "path": "src/plugins/data_views/public/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/saved_object/helpers/apply_es_resp.ts" - }, - { - "plugin": "savedObjects", - "path": "src/plugins/saved_objects/public/saved_object/helpers/apply_es_resp.ts" - }, - { - "plugin": "dataViewEditor", - "path": "src/plugins/data_view_editor/public/shared_imports.ts" - }, - { - "plugin": "dataViewEditor", - "path": "src/plugins/data_view_editor/public/open_editor.tsx" - }, - { - "plugin": "dataViewEditor", - "path": "src/plugins/data_view_editor/public/open_editor.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": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.sagas.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.sagas.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/persistence.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/persistence.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/inspect_panel.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/inspect_panel.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/workspace_layout/workspace_layout.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/workspace_layout/workspace_layout.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/workspace_layout/workspace_layout.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" - }, - { - "plugin": "uptime", - "path": "x-pack/plugins/uptime/public/hooks/update_kuery_string.ts" - }, - { - "plugin": "uptime", - "path": "x-pack/plugins/uptime/public/hooks/update_kuery_string.ts" - }, - { - "plugin": "uptime", - "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.tsx" - }, - { - "plugin": "uptime", - "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.tsx" - }, - { - "plugin": "uptime", - "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.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": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.test.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.test.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" + }, + { + "parentPluginId": "data", + "id": "def-common.DataView.addRuntimeField.$2", + "type": "Object", + "tags": [], + "label": "runtimeField", + "description": [ + "Runtime field definition" + ], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.RuntimeField", + "text": "RuntimeField" + } + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" + "parentPluginId": "data", + "id": "def-common.DataView.hasRuntimeField", + "type": "Function", + "tags": [], + "label": "hasRuntimeField", + "description": [ + "\nChecks if runtime field exists" + ], + "signature": [ + "(name: string) => boolean" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataView.hasRuntimeField.$1", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" + "parentPluginId": "data", + "id": "def-common.DataView.getRuntimeField", + "type": "Function", + "tags": [], + "label": "getRuntimeField", + "description": [ + "\nReturns runtime field if exists" + ], + "signature": [ + "(name: string) => ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.RuntimeField", + "text": "RuntimeField" + }, + " | null" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataView.getRuntimeField.$1", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts" + "parentPluginId": "data", + "id": "def-common.DataView.getAllRuntimeFields", + "type": "Function", + "tags": [], + "label": "getAllRuntimeFields", + "description": [], + "signature": [ + "() => Record" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [], + "returnComment": [] }, { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts" + "parentPluginId": "data", + "id": "def-common.DataView.getFieldsByRuntimeFieldName", + "type": "Function", + "tags": [], + "label": "getFieldsByRuntimeFieldName", + "description": [], + "signature": [ + "(name: string) => Record | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataView.getFieldsByRuntimeFieldName.$1", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" + "parentPluginId": "data", + "id": "def-common.DataView.replaceAllRuntimeFields", + "type": "Function", + "tags": [], + "label": "replaceAllRuntimeFields", + "description": [ + "\nReplaces all existing runtime fields with new fields" + ], + "signature": [ + "(newFields: Record) => void" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataView.replaceAllRuntimeFields.$1", + "type": "Object", + "tags": [], + "label": "newFields", + "description": [], + "signature": [ + "Record" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" + "parentPluginId": "data", + "id": "def-common.DataView.removeRuntimeField", + "type": "Function", + "tags": [], + "label": "removeRuntimeField", + "description": [ + "\nRemove a runtime field - removed from mapped field or removed unmapped\nfield as appropriate. Doesn't clear associated field attributes." + ], + "signature": [ + "(name: string) => void" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataView.removeRuntimeField.$1", + "type": "string", + "tags": [], + "label": "name", + "description": [ + "- Field name to remove" + ], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" + "parentPluginId": "data", + "id": "def-common.DataView.getRuntimeMappings", + "type": "Function", + "tags": [], + "label": "getRuntimeMappings", + "description": [ + "\nReturn the \"runtime_mappings\" section of the ES search query" + ], + "signature": [ + "() => ", + "MappingRuntimeFields" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [], + "returnComment": [] }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" + "parentPluginId": "data", + "id": "def-common.DataView.getFormatterForFieldNoDefault", + "type": "Function", + "tags": [], + "label": "getFormatterForFieldNoDefault", + "description": [ + "\nGet formatter for a given field name. Return undefined if none exists" + ], + "signature": [ + "(fieldname: string) => ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormat", + "text": "FieldFormat" + }, + " | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataView.getFormatterForFieldNoDefault.$1", + "type": "string", + "tags": [], + "label": "fieldname", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" + "parentPluginId": "data", + "id": "def-common.DataView.setFieldAttrs", + "type": "Function", + "tags": [], + "label": "setFieldAttrs", + "description": [], + "signature": [ + "(fieldName: string, attrName: K, value: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldAttrSet", + "text": "FieldAttrSet" + }, + "[K]) => void" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataView.setFieldAttrs.$1", + "type": "string", + "tags": [], + "label": "fieldName", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DataView.setFieldAttrs.$2", + "type": "Uncategorized", + "tags": [], + "label": "attrName", + "description": [], + "signature": [ + "K" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DataView.setFieldAttrs.$3", + "type": "Uncategorized", + "tags": [], + "label": "value", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldAttrSet", + "text": "FieldAttrSet" + }, + "[K]" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" + "parentPluginId": "data", + "id": "def-common.DataView.setFieldCustomLabel", + "type": "Function", + "tags": [], + "label": "setFieldCustomLabel", + "description": [], + "signature": [ + "(fieldName: string, customLabel: string | null | undefined) => void" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataView.setFieldCustomLabel.$1", + "type": "string", + "tags": [], + "label": "fieldName", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DataView.setFieldCustomLabel.$2", + "type": "CompoundType", + "tags": [], + "label": "customLabel", + "description": [], + "signature": [ + "string | null | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": false + } + ], + "returnComment": [] }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" + "parentPluginId": "data", + "id": "def-common.DataView.setFieldCount", + "type": "Function", + "tags": [], + "label": "setFieldCount", + "description": [], + "signature": [ + "(fieldName: string, count: number | null | undefined) => void" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataView.setFieldCount.$1", + "type": "string", + "tags": [], + "label": "fieldName", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DataView.setFieldCount.$2", + "type": "CompoundType", + "tags": [], + "label": "count", + "description": [], + "signature": [ + "number | null | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": false + } + ], + "returnComment": [] }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" + "parentPluginId": "data", + "id": "def-common.DataView.setFieldFormat", + "type": "Function", + "tags": [], + "label": "setFieldFormat", + "description": [], + "signature": [ + "(fieldName: string, format: ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.SerializedFieldFormat", + "text": "SerializedFieldFormat" + }, + "<", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormatParams", + "text": "FieldFormatParams" + }, + ">) => void" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataView.setFieldFormat.$1", + "type": "string", + "tags": [], + "label": "fieldName", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DataView.setFieldFormat.$2", + "type": "Object", + "tags": [], + "label": "format", + "description": [], + "signature": [ + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.SerializedFieldFormat", + "text": "SerializedFieldFormat" + }, + "<", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormatParams", + "text": "FieldFormatParams" + }, + ">" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/es_search_source.d.ts" - }, + "parentPluginId": "data", + "id": "def-common.DataView.deleteFieldFormat", + "type": "Function", + "tags": [], + "label": "deleteFieldFormat", + "description": [], + "signature": [ + "(fieldName: string) => void" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataView.deleteFieldFormat.$1", + "type": "string", + "tags": [], + "label": "fieldName", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-common.DataViewField", + "type": "Class", + "tags": [], + "label": "DataViewField", + "description": [], + "signature": [ { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/es_search_source.d.ts" + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" }, + " implements ", { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.IFieldType", + "text": "IFieldType" + } + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false, + "children": [ { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.spec", + "type": "Object", + "tags": [], + "label": "spec", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + } + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewField.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "spec", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + } + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.count", + "type": "number", + "tags": [], + "label": "count", + "description": [ + "\nCount is used for field popularity" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_index_pattern_select.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.count", + "type": "number", + "tags": [], + "label": "count", + "description": [], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_index_pattern_select.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.runtimeField", + "type": "Object", + "tags": [], + "label": "runtimeField", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.RuntimeFieldSpec", + "text": "RuntimeFieldSpec" + }, + " | undefined" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.runtimeField", + "type": "Object", + "tags": [], + "label": "runtimeField", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.RuntimeFieldSpec", + "text": "RuntimeFieldSpec" + }, + " | undefined" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.script", + "type": "string", + "tags": [], + "label": "script", + "description": [ + "\nScript field code" + ], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.script", + "type": "string", + "tags": [], + "label": "script", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/count_agg_field.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.lang", + "type": "string", + "tags": [], + "label": "lang", + "description": [ + "\nScript field language" + ], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/count_agg_field.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.lang", + "type": "string", + "tags": [], + "label": "lang", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.customLabel", + "type": "string", + "tags": [], + "label": "customLabel", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.customLabel", + "type": "string", + "tags": [], + "label": "customLabel", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.conflictDescriptions", + "type": "Object", + "tags": [], + "label": "conflictDescriptions", + "description": [ + "\nDescription of field type conflicts across different indices in the same index pattern" + ], + "signature": [ + "Record | undefined" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.conflictDescriptions", + "type": "Object", + "tags": [], + "label": "conflictDescriptions", + "description": [], + "signature": [ + "Record | undefined" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/geo_line_form.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.displayName", + "type": "string", + "tags": [], + "label": "displayName", + "description": [], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/geo_line_form.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.esTypes", + "type": "Array", + "tags": [], + "label": "esTypes", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.scripted", + "type": "boolean", + "tags": [], + "label": "scripted", + "description": [], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/filter_editor/filter_editor.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.searchable", + "type": "boolean", + "tags": [], + "label": "searchable", + "description": [], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/filter_editor/filter_editor.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.aggregatable", + "type": "boolean", + "tags": [], + "label": "aggregatable", + "description": [], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.readFromDocValues", + "type": "boolean", + "tags": [], + "label": "readFromDocValues", + "description": [], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.subType", + "type": "CompoundType", + "tags": [], + "label": "subType", + "description": [], + "signature": [ + "IFieldSubType", + " | undefined" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.isMapped", + "type": "CompoundType", + "tags": [], + "label": "isMapped", + "description": [ + "\nIs the field part of the index mapping?" + ], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.isRuntimeField", + "type": "boolean", + "tags": [], + "label": "isRuntimeField", + "description": [], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.sortable", + "type": "boolean", + "tags": [], + "label": "sortable", + "description": [], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.filterable", + "type": "boolean", + "tags": [], + "label": "filterable", + "description": [], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.visualizable", + "type": "boolean", + "tags": [], + "label": "visualizable", + "description": [], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.isSubtypeNested", + "type": "Function", + "tags": [], + "label": "isSubtypeNested", + "description": [], + "signature": [ + "() => boolean" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false, + "children": [], + "returnComment": [] }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/where_expression.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.isSubtypeMulti", + "type": "Function", + "tags": [], + "label": "isSubtypeMulti", + "description": [], + "signature": [ + "() => boolean" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false, + "children": [], + "returnComment": [] }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/where_expression.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.getSubtypeNested", + "type": "Function", + "tags": [], + "label": "getSubtypeNested", + "description": [], + "signature": [ + "() => ", + "IFieldSubTypeNested", + " | undefined" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false, + "children": [], + "returnComment": [] }, { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.getSubtypeMulti", + "type": "Function", + "tags": [], + "label": "getSubtypeMulti", + "description": [], + "signature": [ + "() => ", + "IFieldSubTypeMulti", + " | undefined" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false, + "children": [], + "returnComment": [] }, { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.deleteCount", + "type": "Function", + "tags": [], + "label": "deleteCount", + "description": [], + "signature": [ + "() => void" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false, + "children": [], + "returnComment": [] }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.toJSON", + "type": "Function", + "tags": [], + "label": "toJSON", + "description": [], + "signature": [ + "() => { count: number; script: string | undefined; lang: string | undefined; conflictDescriptions: Record | undefined; name: string; type: string; esTypes: string[] | undefined; scripted: boolean; searchable: boolean; aggregatable: boolean; readFromDocValues: boolean; subType: ", + "IFieldSubType", + " | undefined; customLabel: string | undefined; }" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false, + "children": [], + "returnComment": [] }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts" + "parentPluginId": "data", + "id": "def-common.DataViewField.toSpec", + "type": "Function", + "tags": [], + "label": "toSpec", + "description": [], + "signature": [ + "({ getFormatterForField, }?: { getFormatterForField?: ((field: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.IFieldType", + "text": "IFieldType" + }, + " | ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + " | ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + }, + ") => ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormat", + "text": "FieldFormat" + }, + ") | undefined; }) => ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + } + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewField.toSpec.$1", + "type": "Object", + "tags": [], + "label": "{\n getFormatterForField,\n }", + "description": [], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewField.toSpec.$1.getFormatterForField", + "type": "Function", + "tags": [], + "label": "getFormatterForField", + "description": [], + "signature": [ + "((field: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.IFieldType", + "text": "IFieldType" + }, + " | ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + " | ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + }, + ") => ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormat", + "text": "FieldFormat" + }, + ") | undefined" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false + } + ] + } + ], + "returnComment": [] }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts" - }, + "parentPluginId": "data", + "id": "def-common.DataViewField.isRuntimeCompositeSubField", + "type": "Function", + "tags": [], + "label": "isRuntimeCompositeSubField", + "description": [], + "signature": [ + "() => boolean" + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-common.DataViewSavedObjectConflictError", + "type": "Class", + "tags": [], + "label": "DataViewSavedObjectConflictError", + "description": [], + "signature": [ { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/utils/editor_config.ts" + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewSavedObjectConflictError", + "text": "DataViewSavedObjectConflictError" }, + " extends Error" + ], + "path": "src/plugins/data_views/common/errors/data_view_saved_object_conflict.ts", + "deprecated": false, + "children": [ { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/utils/editor_config.ts" - }, + "parentPluginId": "data", + "id": "def-common.DataViewSavedObjectConflictError.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "src/plugins/data_views/common/errors/data_view_saved_object_conflict.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewSavedObjectConflictError.Unnamed.$1", + "type": "string", + "tags": [], + "label": "savedObjectId", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/common/errors/data_view_saved_object_conflict.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-common.DataViewsService", + "type": "Class", + "tags": [], + "label": "DataViewsService", + "description": [], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.getCanSave", + "type": "Function", + "tags": [], + "label": "getCanSave", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "returnComment": [], + "children": [] }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.ensureDefaultDataView", + "type": "Function", + "tags": [ + "deprecated" + ], + "label": "ensureDefaultDataView", + "description": [], + "signature": [ + "() => Promise | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": true, + "references": [ + { + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_views.ts" + } + ], + "returnComment": [], + "children": [] }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_select.tsx" + "parentPluginId": "data", + "id": "def-common.DataViewsService.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "{\n uiSettings,\n savedObjectsClient,\n apiClient,\n fieldFormats,\n onNotification,\n onError,\n onRedirectNoIndexPattern = () => {},\n getCanSave = () => Promise.resolve(false),\n }", + "description": [], + "signature": [ + "DataViewsServiceDeps" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_select.tsx" + "parentPluginId": "data", + "id": "def-common.DataViewsService.getIds", + "type": "Function", + "tags": [], + "label": "getIds", + "description": [ + "\nGet list of index pattern ids" + ], + "signature": [ + "(refresh?: boolean) => Promise" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.getIds.$1", + "type": "boolean", + "tags": [], + "label": "refresh", + "description": [ + "Force refresh of index pattern list" + ], + "signature": [ + "boolean" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" + "parentPluginId": "data", + "id": "def-common.DataViewsService.getTitles", + "type": "Function", + "tags": [], + "label": "getTitles", + "description": [ + "\nGet list of index pattern titles" + ], + "signature": [ + "(refresh?: boolean) => Promise" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.getTitles.$1", + "type": "boolean", + "tags": [], + "label": "refresh", + "description": [ + "Force refresh of index pattern list" + ], + "signature": [ + "boolean" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" + "parentPluginId": "data", + "id": "def-common.DataViewsService.find", + "type": "Function", + "tags": [], + "label": "find", + "description": [ + "\nFind and load index patterns by title" + ], + "signature": [ + "(search: string, size?: number) => Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[]>" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.find.$1", + "type": "string", + "tags": [], + "label": "search", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.find.$2", + "type": "number", + "tags": [], + "label": "size", + "description": [], + "signature": [ + "number" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [ + "IndexPattern[]" + ] }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.test.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.getIdsWithTitle", + "type": "Function", + "tags": [], + "label": "getIdsWithTitle", + "description": [ + "\nGet list of index pattern ids with titles" + ], + "signature": [ + "(refresh?: boolean) => Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewListItem", + "text": "DataViewListItem" + }, + "[]>" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.getIdsWithTitle.$1", + "type": "boolean", + "tags": [], + "label": "refresh", + "description": [ + "Force refresh of index pattern list" + ], + "signature": [ + "boolean" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.test.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.clearCache", + "type": "Function", + "tags": [], + "label": "clearCache", + "description": [ + "\nClear index pattern list cache" + ], + "signature": [ + "(id?: string | undefined) => void" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.clearCache.$1", + "type": "string", + "tags": [], + "label": "id", + "description": [ + "optionally clear a single id" + ], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": false + } + ], + "returnComment": [] }, { - "plugin": "dataViewFieldEditor", - "path": "src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.getCache", + "type": "Function", + "tags": [], + "label": "getCache", + "description": [], + "signature": [ + "() => Promise<", + "SavedObject", + "<", + "IndexPatternSavedObjectAttrs", + ">[] | null | undefined>" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [], + "returnComment": [] }, { - "plugin": "dataViewFieldEditor", - "path": "src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.getDefault", + "type": "Function", + "tags": [], + "label": "getDefault", + "description": [ + "\nGet default index pattern" + ], + "signature": [ + "() => Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + " | null>" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [], + "returnComment": [] }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.getDefaultId", + "type": "Function", + "tags": [], + "label": "getDefaultId", + "description": [ + "\nGet default index pattern id" + ], + "signature": [ + "() => Promise" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [], + "returnComment": [] }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.setDefault", + "type": "Function", + "tags": [], + "label": "setDefault", + "description": [ + "\nOptionally set default index pattern, unless force = true" + ], + "signature": [ + "(id: string | null, force?: boolean) => Promise" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.setDefault.$1", + "type": "CompoundType", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string | null" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": false + }, + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.setDefault.$2", + "type": "boolean", + "tags": [], + "label": "force", + "description": [], + "signature": [ + "boolean" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.hasUserDataView", + "type": "Function", + "tags": [], + "label": "hasUserDataView", + "description": [ + "\nChecks if current user has a user created index pattern ignoring fleet's server default index patterns" + ], + "signature": [ + "() => Promise" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [], + "returnComment": [] }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.getFieldsForWildcard", + "type": "Function", + "tags": [], + "label": "getFieldsForWildcard", + "description": [ + "\nGet field list by providing { pattern }" + ], + "signature": [ + "(options: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.GetFieldsOptions", + "text": "GetFieldsOptions" + }, + ") => Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + "[]>" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.getFieldsForWildcard.$1", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.GetFieldsOptions", + "text": "GetFieldsOptions" + } + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [ + "FieldSpec[]" + ] }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.getFieldsForIndexPattern", + "type": "Function", + "tags": [], + "label": "getFieldsForIndexPattern", + "description": [ + "\nGet field list by providing an index patttern (or spec)" + ], + "signature": [ + "(indexPattern: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + " | ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewSpec", + "text": "DataViewSpec" + }, + ", options?: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.GetFieldsOptions", + "text": "GetFieldsOptions" + }, + " | undefined) => Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + "[]>" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.getFieldsForIndexPattern.$1", + "type": "CompoundType", + "tags": [], + "label": "indexPattern", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + " | ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewSpec", + "text": "DataViewSpec" + } + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.getFieldsForIndexPattern.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.GetFieldsOptions", + "text": "GetFieldsOptions" + }, + " | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": false + } + ], + "returnComment": [ + "FieldSpec[]" + ] }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.refreshFields", + "type": "Function", + "tags": [], + "label": "refreshFields", + "description": [ + "\nRefresh field list for a given index pattern" + ], + "signature": [ + "(indexPattern: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + ") => Promise" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.refreshFields.$1", + "type": "Object", + "tags": [], + "label": "indexPattern", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + } + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.fieldArrayToMap", + "type": "Function", + "tags": [], + "label": "fieldArrayToMap", + "description": [ + "\nConverts field array to map" + ], + "signature": [ + "(fields: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + "[], fieldAttrs?: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldAttrs", + "text": "FieldAttrs" + }, + " | undefined) => ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewFieldMap", + "text": "DataViewFieldMap" + } + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.fieldArrayToMap.$1", + "type": "Array", + "tags": [], + "label": "fields", + "description": [ + ": FieldSpec[]" + ], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + "[]" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.fieldArrayToMap.$2", + "type": "Object", + "tags": [], + "label": "fieldAttrs", + "description": [ + ": FieldAttrs" + ], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldAttrs", + "text": "FieldAttrs" + }, + " | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": false + } + ], + "returnComment": [ + "Record" + ] }, { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.savedObjectToSpec", + "type": "Function", + "tags": [], + "label": "savedObjectToSpec", + "description": [ + "\nConverts index pattern saved object to index pattern spec" + ], + "signature": [ + "(savedObject: ", + "SavedObject", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewAttributes", + "text": "DataViewAttributes" + }, + ">) => ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewSpec", + "text": "DataViewSpec" + } + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.savedObjectToSpec.$1", + "type": "Object", + "tags": [], + "label": "savedObject", + "description": [], + "signature": [ + "SavedObject", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewAttributes", + "text": "DataViewAttributes" + }, + ">" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [ + "DataViewSpec" + ] }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.get", + "type": "Function", + "tags": [], + "label": "get", + "description": [ + "\nGet an index pattern by id. Cache optimized" + ], + "signature": [ + "(id: string) => Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + ">" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.get.$1", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.create", + "type": "Function", + "tags": [], + "label": "create", + "description": [ + "\nCreate a new index pattern instance" + ], + "signature": [ + "(spec: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewSpec", + "text": "DataViewSpec" + }, + ", skipFetchFields?: boolean) => Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + ">" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.create.$1", + "type": "Object", + "tags": [], + "label": "spec", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewSpec", + "text": "DataViewSpec" + } + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.create.$2", + "type": "boolean", + "tags": [], + "label": "skipFetchFields", + "description": [], + "signature": [ + "boolean" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [ + "IndexPattern" + ] }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.createAndSave", + "type": "Function", + "tags": [], + "label": "createAndSave", + "description": [ + "\nCreate a new index pattern and save it right away" + ], + "signature": [ + "(spec: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewSpec", + "text": "DataViewSpec" + }, + ", override?: boolean, skipFetchFields?: boolean) => Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + ">" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.createAndSave.$1", + "type": "Object", + "tags": [], + "label": "spec", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewSpec", + "text": "DataViewSpec" + } + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.createAndSave.$2", + "type": "boolean", + "tags": [], + "label": "override", + "description": [ + "Overwrite if existing index pattern exists." + ], + "signature": [ + "boolean" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.createAndSave.$3", + "type": "boolean", + "tags": [], + "label": "skipFetchFields", + "description": [ + "Whether to skip field refresh step." + ], + "signature": [ + "boolean" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.createSavedObject", + "type": "Function", + "tags": [], + "label": "createSavedObject", + "description": [ + "\nSave a new index pattern" + ], + "signature": [ + "(indexPattern: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + ", override?: boolean) => Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + ">" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.createSavedObject.$1", + "type": "Object", + "tags": [], + "label": "indexPattern", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + } + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.createSavedObject.$2", + "type": "boolean", + "tags": [], + "label": "override", + "description": [ + "Overwrite if existing index pattern exists" + ], + "signature": [ + "boolean" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.updateSavedObject", + "type": "Function", + "tags": [], + "label": "updateSavedObject", + "description": [ + "\nSave existing index pattern. Will attempt to merge differences if there are conflicts" + ], + "signature": [ + "(indexPattern: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + ", saveAttempts?: number, ignoreErrors?: boolean) => Promise" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.updateSavedObject.$1", + "type": "Object", + "tags": [], + "label": "indexPattern", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + } + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.updateSavedObject.$2", + "type": "number", + "tags": [], + "label": "saveAttempts", + "description": [], + "signature": [ + "number" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.updateSavedObject.$3", + "type": "boolean", + "tags": [], + "label": "ignoreErrors", + "description": [], + "signature": [ + "boolean" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" + "parentPluginId": "data", + "id": "def-common.DataViewsService.delete", + "type": "Function", + "tags": [], + "label": "delete", + "description": [ + "\nDeletes an index pattern from .kibana index" + ], + "signature": [ + "(indexPatternId: string) => Promise<{}>" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.delete.$1", + "type": "string", + "tags": [], + "label": "indexPatternId", + "description": [ + ": Id of kibana Index Pattern to delete" + ], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] }, { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" - }, + "parentPluginId": "data", + "id": "def-common.DataViewsService.getDefaultDataView", + "type": "Function", + "tags": [], + "label": "getDefaultDataView", + "description": [ + "\nReturns the default data view as an object.\nIf no default is found, or it is missing\nanother data view is selected as default and returned.\nIf no possible data view found to become a default returns null\n" + ], + "signature": [ + "() => Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + " | null>" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "children": [], + "returnComment": [ + "default data view" + ] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-common.DuplicateDataViewError", + "type": "Class", + "tags": [], + "label": "DuplicateDataViewError", + "description": [], + "signature": [ { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DuplicateDataViewError", + "text": "DuplicateDataViewError" }, + " extends Error" + ], + "path": "src/plugins/data_views/common/errors/duplicate_index_pattern.ts", + "deprecated": false, + "children": [ { - "plugin": "dataViews", - "path": "src/plugins/data_views/common/data_views/data_view.test.ts" + "parentPluginId": "data", + "id": "def-common.DuplicateDataViewError.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "src/plugins/data_views/common/errors/duplicate_index_pattern.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DuplicateDataViewError.Unnamed.$1", + "type": "string", + "tags": [], + "label": "message", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/common/errors/duplicate_index_pattern.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] } ], - "children": [], "initialIsOpen": false }, { "parentPluginId": "data", - "id": "def-common.IndexPatternField", + "id": "def-common.IndexPattern", "type": "Class", "tags": [ "deprecated" ], - "label": "IndexPatternField", + "label": "IndexPattern", "description": [], "signature": [ { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.IndexPatternField", - "text": "IndexPatternField" + "section": "def-common.IndexPattern", + "text": "IndexPattern" }, " extends ", { "pluginId": "dataViews", "scope": "common", "docId": "kibDataViewsPluginApi", - "section": "def-common.DataViewField", - "text": "DataViewField" + "section": "def-common.DataView", + "text": "DataView" } ], - "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "path": "src/plugins/data_views/common/data_views/data_view.ts", "deprecated": true, "references": [ { @@ -26895,444 +24741,421 @@ "path": "src/plugins/data_views/common/index.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" + "plugin": "ux", + "path": "x-pack/plugins/ux/public/components/app/rum_dashboard/local_uifilters/selected_filters.tsx" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" + "plugin": "ux", + "path": "x-pack/plugins/ux/public/components/app/rum_dashboard/local_uifilters/selected_filters.tsx" }, { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" + "plugin": "ux", + "path": "x-pack/plugins/ux/public/components/app/rum_dashboard/local_uifilters/selected_wildcards.tsx" }, { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" + "plugin": "ux", + "path": "x-pack/plugins/ux/public/components/app/rum_dashboard/local_uifilters/selected_wildcards.tsx" }, { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/fields/data_view_field.test.ts" }, { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/fields/data_view_field.test.ts" }, { "plugin": "dataViews", "path": "src/plugins/data_views/public/index.ts" }, { - "plugin": "dataViewEditor", - "path": "src/plugins/data_view_editor/public/shared_imports.ts" - }, - { - "plugin": "dataViewEditor", - "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.ts" - }, - { - "plugin": "dataViewEditor", - "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/types.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/types.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/types.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/metrics_editor/metric_editor.tsx" + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/apply_es_resp.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/metrics_editor/metric_editor.tsx" + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/apply_es_resp.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/metrics_editor/metric_editor.tsx" + "plugin": "dataViewEditor", + "path": "src/plugins/data_view_editor/public/shared_imports.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/fields/es_doc_field.ts" + "plugin": "dataViewEditor", + "path": "src/plugins/data_view_editor/public/open_editor.tsx" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/fields/es_doc_field.ts" + "plugin": "dataViewEditor", + "path": "src/plugins/data_view_editor/public/open_editor.tsx" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/metrics_editor/metrics_editor.tsx" + "plugin": "uptime", + "path": "x-pack/plugins/uptime/public/hooks/update_kuery_string.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/metrics_editor/metrics_editor.tsx" + "plugin": "uptime", + "path": "x-pack/plugins/uptime/public/hooks/update_kuery_string.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/update_source_editor.tsx" + "plugin": "uptime", + "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.tsx" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/update_source_editor.tsx" + "plugin": "uptime", + "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.tsx" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/top_hits_form.tsx" + "plugin": "uptime", + "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/top_hits_form.tsx" + "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/top_hits_form.tsx" + "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/update_source_editor.tsx" + "path": "x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/update_source_editor.tsx" + "path": "x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/update_source_editor.tsx" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.tsx" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.tsx" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.tsx" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.tsx" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/utils/editor_config.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/utils/editor_config.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_select.tsx" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_select.tsx" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.test.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.test.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/es_doc_field.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/common/data_views/data_view.test.ts" + } + ], + "children": [], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-common.IndexPatternField", + "type": "Class", + "tags": [ + "deprecated" + ], + "label": "IndexPatternField", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.IndexPatternField", + "text": "IndexPatternField" }, + " extends ", { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/es_doc_field.d.ts" + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + } + ], + "path": "src/plugins/data_views/common/fields/data_view_field.ts", + "deprecated": true, + "references": [ + { + "plugin": "dataViews", + "path": "src/plugins/data_views/common/index.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/update_source_editor.d.ts" + "plugin": "dataViews", + "path": "src/plugins/data_views/public/index.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/update_source_editor.d.ts" + "plugin": "dataViewEditor", + "path": "src/plugins/data_view_editor/public/shared_imports.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/update_source_editor.d.ts" + "plugin": "dataViewEditor", + "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.ts" }, { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "plugin": "dataViewEditor", + "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "path": "x-pack/plugins/maps/public/components/single_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" + "path": "x-pack/plugins/maps/public/components/metrics_editor/metric_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_field_select.d.ts" + "path": "x-pack/plugins/maps/public/components/metrics_editor/metric_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_field_select.d.ts" + "path": "x-pack/plugins/maps/public/components/metrics_editor/metric_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" + "path": "x-pack/plugins/maps/public/classes/fields/es_doc_field.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" + "path": "x-pack/plugins/maps/public/classes/fields/es_doc_field.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" + "path": "x-pack/plugins/maps/public/components/metrics_editor/metrics_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" + "path": "x-pack/plugins/maps/public/components/metrics_editor/metrics_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/update_source_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/update_source_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/top_hits_form.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/top_hits_form.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metrics_editor.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/top_hits_form.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metrics_editor.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/update_source_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metric_editor.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/update_source_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metric_editor.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/update_source_editor.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" + "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" + "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" + "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" + "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/top_hits_form.d.ts" + "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/top_hits_form.d.ts" + "path": "x-pack/plugins/maps/public/index_pattern_util.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/top_hits_form.d.ts" + "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" + "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" + "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.d.ts" + "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.d.ts" + "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, { "plugin": "visDefaultEditor", @@ -27418,30 +25241,6 @@ "plugin": "dataViewEditor", "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.test.ts" }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_param_props.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_param_props.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_field.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_field.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_sort_field.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_sort_field.d.ts" - }, { "plugin": "dataViews", "path": "src/plugins/data_views/common/data_views/data_view.test.ts" @@ -31428,14 +29227,6 @@ "plugin": "dataViews", "path": "src/plugins/data_views/common/data_views/data_view.ts" }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts" - }, { "plugin": "dataViews", "path": "src/plugins/data_views/server/utils.ts" @@ -31795,22 +29586,6 @@ { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/lib/kuery.ts" - }, - { - "plugin": "monitoring", - "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" - }, - { - "plugin": "monitoring", - "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" - }, - { - "plugin": "monitoring", - "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" - }, - { - "plugin": "monitoring", - "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" } ], "children": [ @@ -33801,14 +31576,6 @@ "deprecated": true, "removeBy": "8.1", "references": [ - { - "plugin": "discover", - "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" - }, { "plugin": "dashboard", "path": "src/plugins/dashboard/public/application/lib/filter_utils.ts" @@ -33869,14 +31636,6 @@ "plugin": "dashboard", "path": "src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx" }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts" - }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts" - }, { "plugin": "urlDrilldown", "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts" @@ -33893,18 +31652,6 @@ "plugin": "urlDrilldown", "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/url_drilldown.tsx" }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" - }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" - }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" - }, { "plugin": "urlDrilldown", "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/test/data.ts" @@ -33913,18 +31660,6 @@ "plugin": "urlDrilldown", "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/test/data.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" @@ -33940,42 +31675,6 @@ { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" } ], "initialIsOpen": false @@ -34371,38 +32070,6 @@ { "plugin": "maps", "path": "x-pack/plugins/maps/public/lazy_load_bundle/index.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/application.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/application.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" } ], "initialIsOpen": false @@ -34473,14 +32140,6 @@ { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts" - }, - { - "plugin": "dataEnhanced", - "path": "x-pack/plugins/data_enhanced/target/types/server/search/session/types.d.ts" - }, - { - "plugin": "dataEnhanced", - "path": "x-pack/plugins/data_enhanced/target/types/server/search/session/types.d.ts" } ], "initialIsOpen": false @@ -34609,7 +32268,7 @@ "signature": [ "Pick<", "Toast", - ", \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"security\" | \"className\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"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\" | \"onError\" | \"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\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", + ", \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"className\" | \"security\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"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\" | \"onError\" | \"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\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", { "pluginId": "core", "scope": "public", @@ -34690,16 +32349,7 @@ "path": "src/plugins/data/common/es_query/index.ts", "deprecated": true, "removeBy": "8.1", - "references": [ - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" - }, - { - "plugin": "discoverEnhanced", - "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" - } - ], + "references": [], "initialIsOpen": false }, { diff --git a/api_docs/data.mdx b/api_docs/data.mdx index 9e7b7f168c494..770726e84a903 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github summary: API docs for the data plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] warning: 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. --- diff --git a/api_docs/data_autocomplete.mdx b/api_docs/data_autocomplete.mdx index 95abf32f9f316..b771bfd505eef 100644 --- a/api_docs/data_autocomplete.mdx +++ b/api_docs/data_autocomplete.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/data-autocomplete title: "data.autocomplete" image: https://source.unsplash.com/400x175/?github summary: API docs for the data.autocomplete plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.autocomplete'] warning: 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. --- diff --git a/api_docs/data_enhanced.mdx b/api_docs/data_enhanced.mdx index e6bb1d274c201..f49a0ee7dc602 100644 --- a/api_docs/data_enhanced.mdx +++ b/api_docs/data_enhanced.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/dataEnhanced title: "dataEnhanced" image: https://source.unsplash.com/400x175/?github summary: API docs for the dataEnhanced plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataEnhanced'] warning: 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. --- diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 6f33e6164e9df..26894aa01c9f0 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github summary: API docs for the data.query plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] warning: 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. --- diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index f6162ff2019eb..4f90b53517a83 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github summary: API docs for the data.search plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search'] warning: 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. --- diff --git a/api_docs/data_ui.mdx b/api_docs/data_ui.mdx index c0ba389b9048c..117b512111038 100644 --- a/api_docs/data_ui.mdx +++ b/api_docs/data_ui.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/data-ui title: "data.ui" image: https://source.unsplash.com/400x175/?github summary: API docs for the data.ui plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.ui'] warning: 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. --- diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx index 00c3b7b34f0ea..3351beb7f082a 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github summary: API docs for the dataViewEditor plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewEditor'] warning: 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. --- diff --git a/api_docs/data_view_field_editor.mdx b/api_docs/data_view_field_editor.mdx index 3225daacfdec2..58c5db4568e42 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github summary: API docs for the dataViewFieldEditor plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewFieldEditor'] warning: 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. --- diff --git a/api_docs/data_view_management.mdx b/api_docs/data_view_management.mdx index a1bab5c7ddf82..cd712b59e9895 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github summary: API docs for the dataViewManagement plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] warning: 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. --- diff --git a/api_docs/data_views.devdocs.json b/api_docs/data_views.devdocs.json index 0eec355af5566..c68539c65f84a 100644 --- a/api_docs/data_views.devdocs.json +++ b/api_docs/data_views.devdocs.json @@ -3655,30 +3655,6 @@ "path": "src/plugins/data_views/common/data_views/data_view.ts", "deprecated": true, "references": [ - { - "plugin": "upgradeAssistant", - "path": "x-pack/plugins/upgrade_assistant/target/types/__jest__/client_integration/helpers/app_context.mock.d.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/target/types/public/application/lib/load_saved_dashboard_state.d.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/target/types/public/application/hooks/use_dashboard_app_state.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/main/utils/use_discover_state.d.ts" - }, { "plugin": "data", "path": "src/plugins/data/common/index.ts" @@ -3811,30 +3787,6 @@ "plugin": "ux", "path": "x-pack/plugins/ux/public/components/app/rum_dashboard/local_uifilters/selected_filters.tsx" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/percentile_agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/percentile_agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, { "plugin": "data", "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" @@ -4095,10 +4047,6 @@ "plugin": "data", "path": "src/plugins/data/public/index.ts" }, - { - "plugin": "data", - "path": "src/plugins/data/target/types/common/search/aggs/agg_config.d.ts" - }, { "plugin": "data", "path": "src/plugins/data/public/search/errors/painless_error.tsx" @@ -4151,94 +4099,6 @@ "plugin": "dataViewEditor", "path": "src/plugins/data_view_editor/public/open_editor.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": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.sagas.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.sagas.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/persistence.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/persistence.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/inspect_panel.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/inspect_panel.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/workspace_layout/workspace_layout.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/workspace_layout/workspace_layout.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/workspace_layout/workspace_layout.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" - }, { "plugin": "uptime", "path": "x-pack/plugins/uptime/public/hooks/update_kuery_string.ts" @@ -4259,50 +4119,6 @@ "plugin": "uptime", "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.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": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.test.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.test.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" @@ -4311,38 +4127,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/es_search_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/es_search_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts" @@ -4351,14 +4135,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_index_pattern_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_index_pattern_select.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" @@ -4371,106 +4147,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/count_agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/count_agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/geo_line_form.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/geo_line_form.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/filter_editor/filter_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/filter_editor/filter_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/where_expression.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/where_expression.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" - }, { "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts" @@ -4522,66 +4198,6 @@ { "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.test.ts" - }, - { - "plugin": "dataViewFieldEditor", - "path": "src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts" - }, - { - "plugin": "dataViewFieldEditor", - "path": "src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts" } ], "children": [], @@ -4660,34 +4276,6 @@ "plugin": "data", "path": "src/plugins/data/server/index.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" - }, { "plugin": "data", "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" @@ -4936,122 +4524,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/es_doc_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/es_doc_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" @@ -5064,98 +4536,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metrics_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metrics_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metric_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metric_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/top_hits_form.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/top_hits_form.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/top_hits_form.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.d.ts" - }, { "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts" @@ -5239,30 +4619,6 @@ { "plugin": "dataViewEditor", "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.test.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_param_props.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_param_props.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_field.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_field.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_sort_field.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_sort_field.d.ts" } ], "children": [], @@ -7770,71 +7126,23 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/lazy_load_bundle/index.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/application.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/application.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/public/actions/filters/create_filters_from_range_select.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/public/actions/filters/create_filters_from_range_select.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/public/actions/filters/create_filters_from_value_click.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/public/actions/filters/create_filters_from_value_click.test.ts" + "path": "x-pack/plugins/maps/public/lazy_load_bundle/index.ts" }, { "plugin": "data", - "path": "src/plugins/data/target/types/public/ui/index_pattern_select/index_pattern_select.d.ts" + "path": "src/plugins/data/public/actions/filters/create_filters_from_range_select.test.ts" }, { "plugin": "data", - "path": "src/plugins/data/target/types/public/ui/index_pattern_select/index_pattern_select.d.ts" + "path": "src/plugins/data/public/actions/filters/create_filters_from_range_select.test.ts" }, { "plugin": "data", - "path": "src/plugins/data/target/types/public/ui/index_pattern_select/create_index_pattern_select.d.ts" + "path": "src/plugins/data/public/actions/filters/create_filters_from_value_click.test.ts" }, { "plugin": "data", - "path": "src/plugins/data/target/types/public/ui/index_pattern_select/create_index_pattern_select.d.ts" + "path": "src/plugins/data/public/actions/filters/create_filters_from_value_click.test.ts" } ], "initialIsOpen": false @@ -16011,30 +15319,6 @@ "path": "src/plugins/data_views/common/data_views/data_view.ts", "deprecated": true, "references": [ - { - "plugin": "upgradeAssistant", - "path": "x-pack/plugins/upgrade_assistant/target/types/__jest__/client_integration/helpers/app_context.mock.d.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/target/types/public/application/lib/load_saved_dashboard_state.d.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts" - }, - { - "plugin": "visualizations", - "path": "src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts" - }, - { - "plugin": "dashboard", - "path": "src/plugins/dashboard/target/types/public/application/hooks/use_dashboard_app_state.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/main/utils/use_discover_state.d.ts" - }, { "plugin": "data", "path": "src/plugins/data/common/index.ts" @@ -16167,30 +15451,6 @@ "plugin": "ux", "path": "x-pack/plugins/ux/public/components/app/rum_dashboard/local_uifilters/selected_filters.tsx" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/percentile_agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/percentile_agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" - }, { "plugin": "data", "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" @@ -16451,10 +15711,6 @@ "plugin": "data", "path": "src/plugins/data/public/index.ts" }, - { - "plugin": "data", - "path": "src/plugins/data/target/types/common/search/aggs/agg_config.d.ts" - }, { "plugin": "data", "path": "src/plugins/data/public/search/errors/painless_error.tsx" @@ -16507,94 +15763,6 @@ "plugin": "dataViewEditor", "path": "src/plugins/data_view_editor/public/open_editor.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": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.sagas.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.sagas.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/persistence.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/persistence.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/search_bar.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/inspect_panel.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/inspect_panel.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/workspace_layout/workspace_layout.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/workspace_layout/workspace_layout.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/components/workspace_layout/workspace_layout.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" - }, { "plugin": "uptime", "path": "x-pack/plugins/uptime/public/hooks/update_kuery_string.ts" @@ -16615,50 +15783,6 @@ "plugin": "uptime", "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.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": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.test.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/state_management/datasource.test.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/services/persistence/deserialize.test.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" @@ -16667,38 +15791,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/es_search_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/es_search_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts" @@ -16707,14 +15799,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_index_pattern_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_index_pattern_select.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" @@ -16727,106 +15811,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/count_agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/count_agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/geo_line_form.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/geo_line_form.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/filter_editor/filter_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/filter_editor/filter_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/where_expression.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/where_expression.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" - }, { "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts" @@ -16845,99 +15829,39 @@ }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/utils/editor_config.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_select.tsx" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_select.tsx" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.test.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.test.ts" - }, - { - "plugin": "dataViewFieldEditor", - "path": "src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts" - }, - { - "plugin": "dataViewFieldEditor", - "path": "src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" + "path": "src/plugins/vis_default_editor/public/components/utils/editor_config.ts" }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.ts" }, { "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" + "path": "src/plugins/vis_default_editor/public/components/agg_select.tsx" }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_select.tsx" }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.test.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/public/components/agg_params_helper.test.ts" } ], "children": [], @@ -17016,34 +15940,6 @@ "plugin": "data", "path": "src/plugins/data/server/index.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" - }, { "plugin": "data", "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" @@ -17292,122 +16188,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/es_doc_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/fields/es_doc_field.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/index_pattern_util.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/geo_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/single_field_select.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" @@ -17420,98 +16200,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metrics_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metrics_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metric_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/components/metrics_editor/metric_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/top_hits_form.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/top_hits_form.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/top_hits_form.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/join_expression.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/connected_components/edit_layer_panel/join_editor/resources/metrics_expression.d.ts" - }, { "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts" @@ -17595,30 +16283,6 @@ { "plugin": "dataViewEditor", "path": "src/plugins/data_view_editor/public/lib/extract_time_fields.test.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_param_props.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_param_props.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_field.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_field.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_sort_field.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/controls/top_sort_field.d.ts" } ], "children": [], @@ -20395,10 +19059,6 @@ "plugin": "data", "path": "src/plugins/data/public/autocomplete/providers/kql_query_suggestion/field.tsx" }, - { - "plugin": "data", - "path": "src/plugins/data/public/autocomplete/providers/kql_query_suggestion/field.tsx" - }, { "plugin": "data", "path": "src/plugins/data/public/autocomplete/providers/kql_query_suggestion/value.ts" @@ -20431,14 +19091,6 @@ "plugin": "data", "path": "src/plugins/data/public/ui/filter_bar/filter_editor/index.tsx" }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts" - }, { "plugin": "data", "path": "src/plugins/data/server/autocomplete/terms_enum.ts" @@ -21063,22 +19715,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/lib/kuery.ts" }, - { - "plugin": "monitoring", - "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" - }, - { - "plugin": "monitoring", - "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" - }, - { - "plugin": "monitoring", - "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" - }, - { - "plugin": "monitoring", - "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" - }, { "plugin": "data", "path": "src/plugins/data/common/query/timefilter/get_time.test.ts" @@ -23534,38 +22170,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/lazy_load_bundle/index.ts" }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/application.tsx" - }, - { - "plugin": "graph", - "path": "x-pack/plugins/graph/public/application.tsx" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/utils.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts" - }, { "plugin": "data", "path": "src/plugins/data/public/actions/filters/create_filters_from_range_select.test.ts" @@ -23581,22 +22185,6 @@ { "plugin": "data", "path": "src/plugins/data/public/actions/filters/create_filters_from_value_click.test.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/target/types/public/ui/index_pattern_select/index_pattern_select.d.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/target/types/public/ui/index_pattern_select/index_pattern_select.d.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/target/types/public/ui/index_pattern_select/create_index_pattern_select.d.ts" - }, - { - "plugin": "data", - "path": "src/plugins/data/target/types/public/ui/index_pattern_select/create_index_pattern_select.d.ts" } ], "initialIsOpen": false @@ -23704,7 +22292,7 @@ "signature": [ "Pick<", "Toast", - ", \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"security\" | \"className\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"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\" | \"onError\" | \"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\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", + ", \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"className\" | \"security\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"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\" | \"onError\" | \"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\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", { "pluginId": "core", "scope": "public", diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index 4c71562979145..c9e3051f812bb 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github summary: API docs for the dataViews plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews'] warning: 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. --- diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx index 0ca7eaa1ebd7a..0a22c0738d2ea 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github summary: API docs for the dataVisualizer plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer'] warning: 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. --- diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index 4443dcb6ff4b0..ba50f7d222e9e 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -3,7 +3,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API summary: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana'] warning: This document is auto-generated and is meant to be viewed inside our experimental, new docs system. --- @@ -14,44 +14,36 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Referencing plugin(s) | Remove By | | ---------------|-----------|-----------| | | dataViews, maps, data | - | -| | dataViews, maps, graph, lens, stackAlerts, data | - | -| | dataViews, upgradeAssistant, dashboard, visualizations, discover, ux, maps, savedObjects, dataViewEditor, graph, uptime, lens, stackAlerts, visDefaultEditor, dataViewFieldEditor, inputControlVis, visTypeTimeseries, data | - | -| | dataViews, maps, lens, dataViewEditor, visDefaultEditor, data | - | +| | dataViews, maps, data | - | +| | dataViews, ux, savedObjects, dataViewEditor, uptime, maps, visDefaultEditor, data | - | +| | dataViews, dataViewEditor, maps, visDefaultEditor, data | - | | | dataViews, monitoring | - | | | dataViews, canvas | - | | | dataViews, monitoring, data | - | | | dataViews, canvas, data | - | -| | dataViews, maps, graph, lens, stackAlerts, data | - | +| | dataViews, maps, data | - | | | dataViews, data | - | -| | dataViews, maps, lens, dataViewEditor, visDefaultEditor, data | - | +| | dataViews, dataViewEditor, maps, visDefaultEditor, data | - | | | dataViews, maps, data | - | | | dataViews | - | -| | dataViews, upgradeAssistant, dashboard, visualizations, discover, ux, maps, savedObjects, dataViewEditor, graph, uptime, lens, stackAlerts, visDefaultEditor, dataViewFieldEditor, inputControlVis, visTypeTimeseries, data | - | +| | dataViews, ux, savedObjects, dataViewEditor, uptime, maps, visDefaultEditor, data | - | | | dataViews, maps | - | | | dataViewManagement, dataViews | - | | | visTypeTimeseries, graph, dataViewManagement, dataViews | - | | | dataViews, dataViewManagement | - | | | dataViews, canvas | - | -| | dataViews, maps, lens, dataViewEditor, visDefaultEditor | - | -| | dataViews, upgradeAssistant, dashboard, visualizations, discover, ux, maps, savedObjects, dataViewEditor, graph, uptime, lens, stackAlerts, visDefaultEditor, dataViewFieldEditor, inputControlVis, visTypeTimeseries | - | +| | dataViews, dataViewEditor, maps, visDefaultEditor | - | +| | dataViews, ux, savedObjects, dataViewEditor, uptime, maps, visDefaultEditor | - | | | dataViews, maps | - | | | dataViews, maps | - | | | dataViewManagement, dataViews | - | | | visTypeTimeseries, graph, dataViewManagement, dataViews | - | | | dataViews, dataViewManagement | - | -| | discover, maps, fileUpload, infra, graph, monitoring, securitySolution, stackAlerts, uptime, inputControlVis, savedObjects | - | +| | discover, maps, infra, graph, monitoring, securitySolution, stackAlerts, uptime, inputControlVis, savedObjects | - | | | maps | - | | | data, infra, maps | - | | | dashboard, maps | - | -| | visTypeTimeseries, graph, dataViewManagement | - | -| | discover, dashboard, lens, stackAlerts, visTypeTable, visTypeTimeseries, visTypeXy, visTypeVislib, dataViewFieldEditor, expressionPartitionVis | - | | | esUiShared, home, spaces, fleet, visualizations, lens, observability, dataEnhanced, ml, apm, cloudSecurityPosture, indexLifecycleManagement, upgradeAssistant, uptime, ux, kibanaOverview, savedObjectsManagement | - | -| | discover | - | -| | discover | - | -| | data, discover, embeddable | - | -| | advancedSettings, discover | - | -| | advancedSettings, discover | - | -| | visTypeTimeseries | - | | | canvas, visTypeXy | - | | | canvas | - | | | canvas | - | @@ -62,7 +54,15 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | canvas | - | | | canvas | - | | | canvas, visTypeXy | - | +| | discover | - | +| | discover | - | +| | data, discover, embeddable | - | +| | advancedSettings, discover | - | +| | advancedSettings, discover | - | +| | visTypeTimeseries, graph, dataViewManagement | - | | | encryptedSavedObjects, actions, cloud, ml, dataEnhanced, logstash, securitySolution | - | +| | dashboard, lens, stackAlerts, visTypeTable, visTypeTimeseries, visTypeXy, visTypeVislib, expressionPartitionVis | - | +| | visTypeTimeseries | - | | | dataViewManagement | - | | | dataViewManagement | - | | | spaces, savedObjectsManagement | - | @@ -74,33 +74,31 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | actions, alerting | - | | | console | - | | | discover, maps, inputControlVis | 8.1 | -| | discover, discoverEnhanced, maps | 8.1 | -| | discover, dashboard, discoverEnhanced, urlDrilldown, maps | 8.1 | -| | discover, dashboard, discoverEnhanced, urlDrilldown, maps | 8.1 | +| | maps | 8.1 | +| | dashboard, urlDrilldown, maps | 8.1 | +| | dashboard, urlDrilldown, maps | 8.1 | | | discover, maps, inputControlVis | 8.1 | -| | discover, dashboard, discoverEnhanced, urlDrilldown, maps | 8.1 | -| | apm, graph | 8.1 | -| | discoverEnhanced | 8.1 | -| | discoverEnhanced | 8.1 | +| | dashboard, urlDrilldown, maps | 8.1 | | | dataEnhanced | 8.1 | | | dataEnhanced | 8.1 | | | dataEnhanced | 8.1 | | | dataEnhanced | 8.1 | -| | dataViews, stackAlerts | 8.2 | -| | dataViews, stackAlerts, data | 8.2 | -| | dataViews, stackAlerts | 8.2 | +| | apm | 8.1 | +| | dataViews | 8.2 | +| | dataViews, data | 8.2 | +| | dataViews | 8.2 | | | visualizations, dashboard, maps, graph | 8.8.0 | | | visualizations, dashboard, lens, maps, ml, securitySolution, security | 8.8.0 | | | lens, dashboard, maps | 8.8.0 | -| | embeddable, presentationUtil, discover, dashboard, graph | 8.8.0 | -| | spaces, security, actions, alerting, ml, remoteClusters, graph, indexLifecycleManagement, mapsEms, painlessLab, rollup, searchprofiler, snapshotRestore, transform, upgradeAssistant | 8.8.0 | -| | savedObjectsTaggingOss, visualizations, dashboard, lens | 8.8.0 | -| | dashboard | 8.8.0 | | | monitoring, visTypeVega | 8.8.0 | | | monitoring, kibanaUsageCollection | 8.8.0 | +| | embeddable, presentationUtil, discover, dashboard, graph | 8.8.0 | +| | spaces, security, actions, alerting, ml, remoteClusters, graph, indexLifecycleManagement, mapsEms, painlessLab, rollup, searchprofiler, snapshotRestore, transform, upgradeAssistant | 8.8.0 | | | apm, security, securitySolution | 8.8.0 | | | apm, security, securitySolution | 8.8.0 | | | securitySolution | 8.8.0 | +| | savedObjectsTaggingOss, visualizations, dashboard, lens | 8.8.0 | +| | dashboard | 8.8.0 | | | cloud, apm | 8.8.0 | | | security, licenseManagement, ml, apm, crossClusterReplication, logstash, painlessLab, searchprofiler, watcher | 8.8.0 | | | spaces, security, alerting | 8.8.0 | @@ -108,7 +106,6 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | security, fleet | 8.8.0 | | | security, fleet | 8.8.0 | | | management, fleet, security, kibanaOverview | 8.8.0 | -| | fleet | 8.8.0 | | | security | 8.8.0 | | | mapsEms | 8.8.0 | | | visTypeVega | 8.8.0 | @@ -134,6 +131,7 @@ Safe to remove. | ---------------|------------| | | data | | | data | +| | data | | | data | | | data | | | data | @@ -182,6 +180,7 @@ Safe to remove. | | data | | | data | | | data | +| | data | | | data | | | data | | | data | @@ -212,4 +211,5 @@ Safe to remove. | | reporting | | | taskManager | | | core | +| | core | | | core | \ No newline at end of file diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 1a9c18eec9eac..314442fe4cab5 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -3,7 +3,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin summary: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana'] warning: This document is auto-generated and is meant to be viewed inside our experimental, new docs system. --- @@ -63,7 +63,7 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [setup_expressions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/setup_expressions.ts#:~:text=getFunction) | - | | | [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/application.tsx#:~:text=getFunctions), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getFunctions), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getFunctions), [functions.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.test.ts#:~:text=getFunctions) | - | | | [setup_expressions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/setup_expressions.ts#:~:text=getTypes), [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/application.tsx#:~:text=getTypes), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getTypes) | - | -| | [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/target/types/public/functions/index.d.ts#:~:text=Render), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/target/types/public/functions/index.d.ts#:~:text=Render), [state.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/types/state.ts#:~:text=Render), [state.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/types/state.ts#:~:text=Render), [state.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/target/types/types/state.d.ts#:~:text=Render), [state.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/target/types/types/state.d.ts#:~:text=Render), [markdown.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.ts#:~:text=Render), [markdown.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.ts#:~:text=Render), [timefilterControl.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/timefilterControl.ts#:~:text=Render), [timefilterControl.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/timefilterControl.ts#:~:text=Render)+ 8 more | - | +| | [state.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/types/state.ts#:~:text=Render), [state.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/types/state.ts#:~:text=Render), [markdown.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.ts#:~:text=Render), [markdown.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.ts#:~:text=Render), [timefilterControl.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/timefilterControl.ts#:~:text=Render), [timefilterControl.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/timefilterControl.ts#:~:text=Render), [pie.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/pie.ts#:~:text=Render), [pie.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/pie.ts#:~:text=Render), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/plot/index.ts#:~:text=Render), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/plot/index.ts#:~:text=Render)+ 2 more | - | | | [embeddable.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts#:~:text=context), [filters.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/common/functions/filters.ts#:~:text=context), [escount.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/escount.ts#:~:text=context), [esdocs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/esdocs.ts#:~:text=context), [essql.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/essql.ts#:~:text=context), [neq.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/neq.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/pointseries/index.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts#:~:text=context) | - | | | [setup_expressions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/setup_expressions.ts#:~:text=getFunction) | - | | | [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/application.tsx#:~:text=getFunctions), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getFunctions), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getFunctions), [functions.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.test.ts#:~:text=getFunctions) | - | @@ -109,19 +109,16 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [load_saved_dashboard_state.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/target/types/public/application/lib/load_saved_dashboard_state.d.ts#:~:text=IndexPattern), [use_dashboard_app_state.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/target/types/public/application/hooks/use_dashboard_app_state.d.ts#:~:text=IndexPattern), [load_saved_dashboard_state.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/target/types/public/application/lib/load_saved_dashboard_state.d.ts#:~:text=IndexPattern), [use_dashboard_app_state.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/target/types/public/application/hooks/use_dashboard_app_state.d.ts#:~:text=IndexPattern) | - | | | [export_csv_action.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/actions/export_csv_action.tsx#:~:text=fieldFormats) | - | | | [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter)+ 5 more | 8.1 | | | [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter)+ 5 more | 8.1 | -| | [load_saved_dashboard_state.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/target/types/public/application/lib/load_saved_dashboard_state.d.ts#:~:text=IndexPattern), [use_dashboard_app_state.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/target/types/public/application/hooks/use_dashboard_app_state.d.ts#:~:text=IndexPattern), [load_saved_dashboard_state.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/target/types/public/application/lib/load_saved_dashboard_state.d.ts#:~:text=IndexPattern), [use_dashboard_app_state.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/target/types/public/application/hooks/use_dashboard_app_state.d.ts#:~:text=IndexPattern) | - | -| | [load_saved_dashboard_state.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/target/types/public/application/lib/load_saved_dashboard_state.d.ts#:~:text=IndexPattern), [use_dashboard_app_state.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/target/types/public/application/hooks/use_dashboard_app_state.d.ts#:~:text=IndexPattern) | - | | | [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter)+ 5 more | 8.1 | | | [kibana_react.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/services/kibana_react.ts#:~:text=ExitFullScreenButton), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/plugin.tsx#:~:text=ExitFullScreenButton), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/plugin.tsx#:~:text=ExitFullScreenButton), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/plugin.tsx#:~:text=ExitFullScreenButton) | - | | | [saved_objects.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/services/saved_objects.ts#:~:text=SavedObjectSaveModal), [save_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/top_nav/save_modal.tsx#:~:text=SavedObjectSaveModal), [save_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/top_nav/save_modal.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | | | [saved_object_loader.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/services/saved_object_loader.ts#:~:text=SavedObject), [saved_object_loader.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/services/saved_object_loader.ts#:~:text=SavedObject), [saved_object_loader.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/services/saved_object_loader.ts#:~:text=SavedObject), [saved_objects.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/services/saved_objects.ts#:~:text=SavedObject), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=SavedObject), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=SavedObject), [dashboard_tagging.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/dashboard_tagging.ts#:~:text=SavedObject), [dashboard_tagging.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/dashboard_tagging.ts#:~:text=SavedObject), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx#:~:text=SavedObject), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx#:~:text=SavedObject)+ 1 more | 8.8.0 | | | [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=SavedObjectClass) | 8.8.0 | | | [dashboard_listing.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/listing/dashboard_listing.tsx#:~:text=settings), [dashboard_listing.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/listing/dashboard_listing.tsx#:~:text=settings) | 8.8.0 | -| | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/types.ts#:~:text=onAppLeave), [dashboard_router.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/dashboard_router.tsx#:~:text=onAppLeave), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/plugin.tsx#:~:text=onAppLeave), [types.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/target/types/public/types.d.ts#:~:text=onAppLeave) | 8.8.0 | +| | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/types.ts#:~:text=onAppLeave), [dashboard_router.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/dashboard_router.tsx#:~:text=onAppLeave), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/plugin.tsx#:~:text=onAppLeave) | 8.8.0 | | | [migrations_730.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/migrations_730.ts#:~:text=warning), [migrations_730.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/migrations_730.ts#:~:text=warning) | 8.8.0 | @@ -131,17 +128,17 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/param_types/field.ts#:~:text=IndexPatternField), [field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/param_types/field.ts#:~:text=IndexPatternField), [field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/param_types/field.ts#:~:text=IndexPatternField), [field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/param_types/field.ts#:~:text=IndexPatternField), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternField), [kibana_context_type.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/kibana_context_type.ts#:~:text=IndexPatternField), [kibana_context_type.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/kibana_context_type.ts#:~:text=IndexPatternField), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPatternField), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPatternField), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPatternField)+ 16 more | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsContract), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.ts#:~:text=IndexPatternsContract), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.ts#:~:text=IndexPatternsContract), [search_source_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source_service.ts#:~:text=IndexPatternsContract), [search_source_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source_service.ts#:~:text=IndexPatternsContract), [esaggs_fn.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/esaggs/esaggs_fn.ts#:~:text=IndexPatternsContract), [esaggs_fn.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/esaggs/esaggs_fn.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/search/types.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/search/types.ts#:~:text=IndexPatternsContract), [create_search_source.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.test.ts#:~:text=IndexPatternsContract)+ 29 more | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsContract), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.ts#:~:text=IndexPatternsContract), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.ts#:~:text=IndexPatternsContract), [search_source_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source_service.ts#:~:text=IndexPatternsContract), [search_source_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source_service.ts#:~:text=IndexPatternsContract), [esaggs_fn.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/esaggs/esaggs_fn.ts#:~:text=IndexPatternsContract), [esaggs_fn.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/esaggs/esaggs_fn.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/search/types.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/search/types.ts#:~:text=IndexPatternsContract), [create_search_source.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.test.ts#:~:text=IndexPatternsContract)+ 25 more | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternsService) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern)+ 90 more | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern)+ 89 more | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IFieldType), [date_histogram.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/buckets/date_histogram.ts#:~:text=IFieldType), [date_histogram.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/buckets/date_histogram.ts#:~:text=IFieldType), [filter_editor_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_editor_utils.ts#:~:text=IFieldType), [filter_editor_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_editor_utils.ts#:~:text=IFieldType), [filter_editor_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_editor_utils.ts#:~:text=IFieldType), [filter_editor_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_editor_utils.ts#:~:text=IFieldType), [generate_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/query/filter_manager/lib/generate_filters.ts#:~:text=IFieldType), [generate_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/query/filter_manager/lib/generate_filters.ts#:~:text=IFieldType), [generate_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/query/filter_manager/lib/generate_filters.ts#:~:text=IFieldType)+ 43 more | 8.2 | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IFieldType), [date_histogram.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/buckets/date_histogram.ts#:~:text=IFieldType), [date_histogram.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/buckets/date_histogram.ts#:~:text=IFieldType), [filter_editor_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_editor_utils.ts#:~:text=IFieldType), [filter_editor_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_editor_utils.ts#:~:text=IFieldType), [filter_editor_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_editor_utils.ts#:~:text=IFieldType), [filter_editor_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_editor_utils.ts#:~:text=IFieldType), [generate_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/query/filter_manager/lib/generate_filters.ts#:~:text=IFieldType), [generate_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/query/filter_manager/lib/generate_filters.ts#:~:text=IFieldType), [generate_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/query/filter_manager/lib/generate_filters.ts#:~:text=IFieldType)+ 42 more | 8.2 | | | [field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/param_types/field.ts#:~:text=IndexPatternField), [field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/param_types/field.ts#:~:text=IndexPatternField), [field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/param_types/field.ts#:~:text=IndexPatternField), [field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/param_types/field.ts#:~:text=IndexPatternField), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternField), [kibana_context_type.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/kibana_context_type.ts#:~:text=IndexPatternField), [kibana_context_type.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/kibana_context_type.ts#:~:text=IndexPatternField), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPatternField), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPatternField), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPatternField)+ 16 more | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IIndexPattern), [get_time.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/query/timefilter/get_time.ts#:~:text=IIndexPattern), [get_time.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/query/timefilter/get_time.ts#:~:text=IIndexPattern), [get_time.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/query/timefilter/get_time.ts#:~:text=IIndexPattern), [get_time.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/query/timefilter/get_time.ts#:~:text=IIndexPattern), [normalize_sort_request.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/normalize_sort_request.ts#:~:text=IIndexPattern), [normalize_sort_request.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/normalize_sort_request.ts#:~:text=IIndexPattern), [normalize_sort_request.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/normalize_sort_request.ts#:~:text=IIndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IIndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IIndexPattern)+ 64 more | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternAttributes), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternAttributes), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternAttributes) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsContract), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.ts#:~:text=IndexPatternsContract), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.ts#:~:text=IndexPatternsContract), [search_source_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source_service.ts#:~:text=IndexPatternsContract), [search_source_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source_service.ts#:~:text=IndexPatternsContract), [esaggs_fn.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/esaggs/esaggs_fn.ts#:~:text=IndexPatternsContract), [esaggs_fn.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/esaggs/esaggs_fn.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/search/types.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/search/types.ts#:~:text=IndexPatternsContract), [create_search_source.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.test.ts#:~:text=IndexPatternsContract)+ 29 more | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsContract), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.ts#:~:text=IndexPatternsContract), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.ts#:~:text=IndexPatternsContract), [search_source_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source_service.ts#:~:text=IndexPatternsContract), [search_source_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source_service.ts#:~:text=IndexPatternsContract), [esaggs_fn.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/esaggs/esaggs_fn.ts#:~:text=IndexPatternsContract), [esaggs_fn.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/esaggs/esaggs_fn.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/search/types.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/search/types.ts#:~:text=IndexPatternsContract), [create_search_source.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.test.ts#:~:text=IndexPatternsContract)+ 25 more | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternsService) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern)+ 90 more | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern)+ 89 more | - | | | [aggs_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/search/aggs/aggs_service.ts#:~:text=indexPatternsServiceFactory), [esaggs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/search/expressions/esaggs.ts#:~:text=indexPatternsServiceFactory), [search_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/search/search_service.ts#:~:text=indexPatternsServiceFactory) | - | | | [data_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/utils/table_inspector_view/components/data_table.tsx#:~:text=executeTriggerActions), [data_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/utils/table_inspector_view/components/data_table.tsx#:~:text=executeTriggerActions) | - | @@ -151,10 +148,10 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode)+ 2 more | 8.1 | +| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode) | 8.1 | | | [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=nodeBuilder), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder)+ 2 more | 8.1 | -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode)+ 2 more | 8.1 | -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode)+ 2 more | 8.1 | +| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode) | 8.1 | +| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode) | 8.1 | | | [get_columns.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/lib/get_columns.tsx#:~:text=RedirectAppLinks), [get_columns.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/lib/get_columns.tsx#:~:text=RedirectAppLinks), [get_columns.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/lib/get_columns.tsx#:~:text=RedirectAppLinks), [connected_search_session_indicator.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/public/search/ui/connected_search_session_indicator/connected_search_session_indicator.tsx#:~:text=RedirectAppLinks), [connected_search_session_indicator.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/public/search/ui/connected_search_session_indicator/connected_search_session_indicator.tsx#:~:text=RedirectAppLinks), [connected_search_session_indicator.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/public/search/ui/connected_search_session_indicator/connected_search_session_indicator.tsx#:~:text=RedirectAppLinks) | - | | | [session_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/session_service.ts#:~:text=authc) | - | @@ -173,17 +170,6 @@ warning: This document is auto-generated and is meant to be viewed inside our ex -## dataViewFieldEditor - -| Deprecated API | Reference location(s) | Remove By | -| ---------------|-----------|-----------| -| | [field_format_editor.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts#:~:text=IndexPattern), [field_format_editor.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts#:~:text=IndexPattern), [field_format_editor.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts#:~:text=IndexPattern), [field_format_editor.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts#:~:text=IndexPattern) | - | -| | [field_format_editor.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts#:~:text=fieldFormats) | - | -| | [field_format_editor.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts#:~:text=IndexPattern), [field_format_editor.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts#:~:text=IndexPattern), [field_format_editor.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts#:~:text=IndexPattern), [field_format_editor.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts#:~:text=IndexPattern) | - | -| | [field_format_editor.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts#:~:text=IndexPattern), [field_format_editor.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_view_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts#:~:text=IndexPattern) | - | - - - ## dataViewManagement | Deprecated API | Reference location(s) | Remove By | @@ -240,39 +226,18 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [use_discover_state.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/utils/use_discover_state.d.ts#:~:text=IndexPattern), [use_discover_state.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/utils/use_discover_state.d.ts#:~:text=IndexPattern) | - | | | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create) | - | | | [anchor.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/anchor.ts#:~:text=fetch), [fetch_hits_in_interval.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/utils/fetch_hits_in_interval.ts#:~:text=fetch) | 8.1 | | | [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/plugin.tsx#:~:text=indexPatterns) | - | -| | [histogram.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/chart/histogram.tsx#:~:text=fieldFormats) | - | -| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=esFilters), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=esFilters) | 8.1 | -| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=Filter), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter) | 8.1 | -| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=Filter), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter) | 8.1 | -| | [use_discover_state.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/utils/use_discover_state.d.ts#:~:text=IndexPattern), [use_discover_state.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/utils/use_discover_state.d.ts#:~:text=IndexPattern) | - | | | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create) | - | | | [anchor.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/anchor.ts#:~:text=fetch), [fetch_hits_in_interval.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/utils/fetch_hits_in_interval.ts#:~:text=fetch) | 8.1 | -| | [use_discover_state.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/utils/use_discover_state.d.ts#:~:text=IndexPattern) | - | -| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=Filter), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter) | 8.1 | | | [on_save_search.tsx](https://github.com/elastic/kibana/tree/master/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/master/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/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=executeTriggerActions), [search_embeddable_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/search_embeddable_factory.ts#:~:text=executeTriggerActions), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/plugin.tsx#:~:text=executeTriggerActions), [search_embeddable_factory.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/embeddable/search_embeddable_factory.d.ts#:~:text=executeTriggerActions) | - | +| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=executeTriggerActions), [search_embeddable_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/search_embeddable_factory.ts#:~:text=executeTriggerActions), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/plugin.tsx#:~:text=executeTriggerActions) | - | | | [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric) | - | | | [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric) | - | -## discoverEnhanced - -| Deprecated API | Reference location(s) | Remove By | -| ---------------|-----------|-----------| -| | [explore_data_chart_action.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.ts#:~:text=esFilters), [explore_data_chart_action.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.ts#:~:text=esFilters) | 8.1 | -| | [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=RangeFilter), [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=RangeFilter) | 8.1 | -| | [explore_data_context_menu_action.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts#:~:text=Filter), [explore_data_context_menu_action.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts#:~:text=Filter), [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=Filter), [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=Filter), [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=Filter) | 8.1 | -| | [explore_data_context_menu_action.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts#:~:text=Filter), [explore_data_context_menu_action.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts#:~:text=Filter), [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=Filter), [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=Filter), [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=Filter) | 8.1 | -| | [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=RangeFilter), [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=RangeFilter) | 8.1 | -| | [explore_data_context_menu_action.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts#:~:text=Filter), [explore_data_context_menu_action.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts#:~:text=Filter), [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=Filter), [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=Filter), [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=Filter) | 8.1 | - - - ## embeddable | Deprecated API | Reference location(s) | Remove By | @@ -314,14 +279,6 @@ warning: This document is auto-generated and is meant to be viewed inside our ex -## fileUpload - -| Deprecated API | Reference location(s) | Remove By | -| ---------------|-----------|-----------| -| | [kibana_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/file_upload/public/kibana_services.ts#:~:text=indexPatterns) | - | - - - ## fleet | Deprecated API | Reference location(s) | Remove By | @@ -330,8 +287,7 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/server/plugin.ts#:~:text=disabled) | 8.8.0 | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/server/plugin.ts#:~:text=disabled) | 8.8.0 | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/server/plugin.ts#:~:text=disabled) | 8.8.0 | -| | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/public/applications/integrations/index.tsx#:~:text=appBasePath), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/target/types/public/applications/fleet/index.d.ts#:~:text=appBasePath), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/target/types/public/applications/integrations/index.d.ts#:~:text=appBasePath) | 8.8.0 | -| | [plugin.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/target/types/server/plugin.d.ts#:~:text=AsyncPlugin), [plugin.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/target/types/server/plugin.d.ts#:~:text=AsyncPlugin) | 8.8.0 | +| | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/public/applications/integrations/index.tsx#:~:text=appBasePath) | 8.8.0 | @@ -339,14 +295,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/application.tsx#:~:text=IndexPatternsContract), [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/application.tsx#:~:text=IndexPatternsContract), [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/application.tsx#:~:text=IndexPatternsContract), [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/application.tsx#:~:text=IndexPatternsContract) | - | -| | [app_state.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/types/app_state.ts#:~:text=IndexPattern), [app_state.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/types/app_state.ts#:~:text=IndexPattern), [deserialize.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=IndexPattern), [deserialize.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=IndexPattern), [deserialize.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=IndexPattern), [deserialize.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=IndexPattern), [datasource.sagas.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/state_management/datasource.sagas.ts#:~:text=IndexPattern), [datasource.sagas.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/state_management/datasource.sagas.ts#:~:text=IndexPattern), [persistence.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/state_management/persistence.ts#:~:text=IndexPattern), [persistence.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/state_management/persistence.ts#:~:text=IndexPattern)+ 48 more | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/plugin.ts#:~:text=indexPatterns) | - | -| | [search_bar.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/components/search_bar.tsx#:~:text=esKuery), [search_bar.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/components/search_bar.tsx#:~:text=esKuery), [search_bar.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/components/search_bar.tsx#:~:text=esKuery) | 8.1 | -| | [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/application.tsx#:~:text=IndexPatternsContract), [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/application.tsx#:~:text=IndexPatternsContract), [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/application.tsx#:~:text=IndexPatternsContract), [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/application.tsx#:~:text=IndexPatternsContract) | - | -| | [app_state.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/types/app_state.ts#:~:text=IndexPattern), [app_state.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/types/app_state.ts#:~:text=IndexPattern), [deserialize.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=IndexPattern), [deserialize.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=IndexPattern), [deserialize.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=IndexPattern), [deserialize.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=IndexPattern), [datasource.sagas.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/state_management/datasource.sagas.ts#:~:text=IndexPattern), [datasource.sagas.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/state_management/datasource.sagas.ts#:~:text=IndexPattern), [persistence.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/state_management/persistence.ts#:~:text=IndexPattern), [persistence.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/state_management/persistence.ts#:~:text=IndexPattern)+ 48 more | - | | | [deserialize.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=getNonScriptedFields), [datasource.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/state_management/datasource.test.ts#:~:text=getNonScriptedFields), [deserialize.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.test.ts#:~:text=getNonScriptedFields), [deserialize.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.test.ts#:~:text=getNonScriptedFields), [deserialize.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=getNonScriptedFields), [datasource.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/state_management/datasource.test.ts#:~:text=getNonScriptedFields), [deserialize.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.test.ts#:~:text=getNonScriptedFields), [deserialize.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.test.ts#:~:text=getNonScriptedFields) | - | -| | [app_state.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/types/app_state.ts#:~:text=IndexPattern), [app_state.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/types/app_state.ts#:~:text=IndexPattern), [deserialize.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=IndexPattern), [deserialize.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=IndexPattern), [deserialize.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=IndexPattern), [deserialize.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=IndexPattern), [datasource.sagas.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/state_management/datasource.sagas.ts#:~:text=IndexPattern), [datasource.sagas.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/state_management/datasource.sagas.ts#:~:text=IndexPattern), [persistence.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/state_management/persistence.ts#:~:text=IndexPattern), [persistence.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/state_management/persistence.ts#:~:text=IndexPattern)+ 19 more | - | | | [deserialize.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=getNonScriptedFields), [datasource.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/state_management/datasource.test.ts#:~:text=getNonScriptedFields), [deserialize.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.test.ts#:~:text=getNonScriptedFields), [deserialize.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.test.ts#:~:text=getNonScriptedFields) | - | | | [deserialize.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=getNonScriptedFields), [datasource.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/state_management/datasource.test.ts#:~:text=getNonScriptedFields), [deserialize.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.test.ts#:~:text=getNonScriptedFields), [deserialize.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/services/persistence/deserialize.test.ts#:~:text=getNonScriptedFields) | - | | | [save_modal.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/components/save_modal.tsx#:~:text=SavedObjectSaveModal), [save_modal.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/components/save_modal.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | @@ -385,12 +335,9 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [create_search_source.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts#:~:text=IndexPattern), [create_search_source.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts#:~:text=IndexPattern), [get_index_pattern_mock.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts#:~:text=IndexPattern), [get_index_pattern_mock.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts#:~:text=IndexPattern), [controls_tab.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts#:~:text=IndexPattern), [controls_tab.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts#:~:text=IndexPattern), [create_search_source.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts#:~:text=IndexPattern), [create_search_source.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts#:~:text=IndexPattern), [get_index_pattern_mock.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts#:~:text=IndexPattern), [get_index_pattern_mock.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts#:~:text=IndexPattern)+ 2 more | - | | | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=fetch), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=fetch) | 8.1 | | | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=indexPatterns), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=indexPatterns), [controls_tab.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/controls_tab.tsx#:~:text=indexPatterns) | - | -| | [create_search_source.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts#:~:text=IndexPattern), [create_search_source.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts#:~:text=IndexPattern), [get_index_pattern_mock.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts#:~:text=IndexPattern), [get_index_pattern_mock.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts#:~:text=IndexPattern), [controls_tab.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts#:~:text=IndexPattern), [controls_tab.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts#:~:text=IndexPattern), [create_search_source.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts#:~:text=IndexPattern), [create_search_source.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts#:~:text=IndexPattern), [get_index_pattern_mock.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts#:~:text=IndexPattern), [get_index_pattern_mock.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts#:~:text=IndexPattern)+ 2 more | - | | | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=fetch), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=fetch) | 8.1 | -| | [create_search_source.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts#:~:text=IndexPattern), [create_search_source.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts#:~:text=IndexPattern), [get_index_pattern_mock.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts#:~:text=IndexPattern), [get_index_pattern_mock.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts#:~:text=IndexPattern), [controls_tab.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts#:~:text=IndexPattern), [controls_tab.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts#:~:text=IndexPattern) | - | @@ -415,17 +362,9 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPatternsContract), [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPatternsContract), [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPatternsContract), [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPatternsContract) | - | -| | [embeddable.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts#:~:text=IndexPattern), [embeddable.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts#:~:text=IndexPattern), [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPattern), [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPattern), [embeddable.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts#:~:text=IndexPattern), [embeddable.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts#:~:text=IndexPattern), [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPattern), [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPattern) | - | -| | [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField) | - | | | [ranges.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.tsx#:~:text=fieldFormats), [droppable.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/droppable.test.ts#:~:text=fieldFormats) | - | -| | [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPatternsContract), [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPatternsContract), [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPatternsContract), [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPatternsContract) | - | -| | [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField) | - | -| | [embeddable.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts#:~:text=IndexPattern), [embeddable.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts#:~:text=IndexPattern), [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPattern), [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPattern), [embeddable.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts#:~:text=IndexPattern), [embeddable.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts#:~:text=IndexPattern), [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPattern), [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPattern) | - | -| | [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField) | - | -| | [embeddable.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts#:~:text=IndexPattern), [embeddable.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/embeddable/embeddable.d.ts#:~:text=IndexPattern), [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPattern), [utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/utils.d.ts#:~:text=IndexPattern) | - | | | [workspace_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.tsx#:~:text=RedirectAppLinks), [workspace_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.tsx#:~:text=RedirectAppLinks), [workspace_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.tsx#:~:text=RedirectAppLinks) | - | -| | [display_duplicate_title_confirm_modal.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/persistence/saved_objects_utils/display_duplicate_title_confirm_modal.ts#:~:text=SavedObject), [display_duplicate_title_confirm_modal.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/persistence/saved_objects_utils/display_duplicate_title_confirm_modal.ts#:~:text=SavedObject), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/persistence/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObject), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/persistence/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObject), [check_for_duplicate_title.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/persistence/saved_objects_utils/check_for_duplicate_title.d.ts#:~:text=SavedObject), [check_for_duplicate_title.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/persistence/saved_objects_utils/check_for_duplicate_title.d.ts#:~:text=SavedObject), [display_duplicate_title_confirm_modal.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/persistence/saved_objects_utils/display_duplicate_title_confirm_modal.d.ts#:~:text=SavedObject), [display_duplicate_title_confirm_modal.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/persistence/saved_objects_utils/display_duplicate_title_confirm_modal.d.ts#:~:text=SavedObject) | 8.8.0 | +| | [display_duplicate_title_confirm_modal.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/persistence/saved_objects_utils/display_duplicate_title_confirm_modal.ts#:~:text=SavedObject), [display_duplicate_title_confirm_modal.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/persistence/saved_objects_utils/display_duplicate_title_confirm_modal.ts#:~:text=SavedObject), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/persistence/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObject), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/persistence/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObject) | 8.8.0 | | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/app_plugin/types.ts#:~:text=onAppLeave), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/app_plugin/types.ts#:~:text=onAppLeave), [mounter.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/app_plugin/mounter.tsx#:~:text=onAppLeave) | 8.8.0 | | | [saved_object_migrations.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/migrations/saved_object_migrations.ts#:~:text=warning), [saved_object_migrations.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/migrations/saved_object_migrations.ts#:~:text=warning) | 8.8.0 | @@ -452,7 +391,7 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [application.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/management/public/application.tsx#:~:text=appBasePath), [application.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/management/target/types/public/application.d.ts#:~:text=appBasePath) | 8.8.0 | +| | [application.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/management/public/application.tsx#:~:text=appBasePath) | 8.8.0 | @@ -461,30 +400,30 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract) | - | -| | [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPattern), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPattern), [percentile_agg_field.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/classes/fields/agg/percentile_agg_field.d.ts#:~:text=IndexPattern), [percentile_agg_field.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/classes/fields/agg/percentile_agg_field.d.ts#:~:text=IndexPattern), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=IndexPattern), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=IndexPattern), [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=IndexPattern), [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=IndexPattern), [es_source.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts#:~:text=IndexPattern), [es_source.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts#:~:text=IndexPattern)+ 82 more | - | -| | [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField)+ 194 more | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract) | - | +| | [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=IndexPattern), [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=IndexPattern), [percentile_agg_field.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts#:~:text=IndexPattern), [percentile_agg_field.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts#:~:text=IndexPattern), [get_docvalue_source_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts#:~:text=IndexPattern), [get_docvalue_source_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts#:~:text=IndexPattern), [get_docvalue_source_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts#:~:text=IndexPattern), [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=IndexPattern), [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=IndexPattern), [percentile_agg_field.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts#:~:text=IndexPattern)+ 4 more | - | +| | [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField)+ 84 more | - | | | [es_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_source/es_source.ts#:~:text=fetch), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=fetch), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=fetch) | 8.1 | | | [kibana_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/kibana_services.ts#:~:text=indexPatterns) | - | | | [locators.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/locators.test.ts#:~:text=esFilters), [locators.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/locators.test.ts#:~:text=esFilters) | 8.1 | -| | [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter) | 8.1 | -| | [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter) | 8.1 | -| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract) | - | -| | [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField)+ 194 more | - | +| | [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter) | 8.1 | +| | [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter) | 8.1 | +| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract) | - | +| | [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField)+ 84 more | - | | | [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService) | - | -| | [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPattern), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPattern), [percentile_agg_field.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/classes/fields/agg/percentile_agg_field.d.ts#:~:text=IndexPattern), [percentile_agg_field.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/classes/fields/agg/percentile_agg_field.d.ts#:~:text=IndexPattern), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=IndexPattern), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=IndexPattern), [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=IndexPattern), [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=IndexPattern), [es_source.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts#:~:text=IndexPattern), [es_source.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts#:~:text=IndexPattern)+ 82 more | - | +| | [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=IndexPattern), [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=IndexPattern), [percentile_agg_field.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts#:~:text=IndexPattern), [percentile_agg_field.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts#:~:text=IndexPattern), [get_docvalue_source_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts#:~:text=IndexPattern), [get_docvalue_source_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts#:~:text=IndexPattern), [get_docvalue_source_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts#:~:text=IndexPattern), [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=IndexPattern), [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=IndexPattern), [percentile_agg_field.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts#:~:text=IndexPattern)+ 4 more | - | | | [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/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/master/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/master/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/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit) | - | | | [es_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_source/es_source.ts#:~:text=fetch), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=fetch), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=fetch) | 8.1 | -| | [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField)+ 92 more | - | -| | [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPattern), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPattern), [percentile_agg_field.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/classes/fields/agg/percentile_agg_field.d.ts#:~:text=IndexPattern), [percentile_agg_field.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/classes/fields/agg/percentile_agg_field.d.ts#:~:text=IndexPattern), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=IndexPattern), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=IndexPattern), [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=IndexPattern), [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=IndexPattern), [es_source.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts#:~:text=IndexPattern), [es_source.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/classes/sources/es_source/es_source.d.ts#:~:text=IndexPattern)+ 36 more | - | +| | [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField)+ 37 more | - | +| | [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=IndexPattern), [es_tooltip_property.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts#:~:text=IndexPattern), [percentile_agg_field.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts#:~:text=IndexPattern), [percentile_agg_field.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.test.ts#:~:text=IndexPattern), [get_docvalue_source_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts#:~:text=IndexPattern), [get_docvalue_source_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts#:~:text=IndexPattern), [get_docvalue_source_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/util/get_docvalue_source_fields.test.ts#:~:text=IndexPattern) | - | | | [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService) | - | | | [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/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/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit) | - | -| | [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter) | 8.1 | +| | [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter) | 8.1 | | | [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/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/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit) | - | | | [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=indexPatternsServiceFactory), [indexing_routes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/indexing_routes.ts#:~:text=indexPatternsServiceFactory) | - | | | [map_container.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/connected_components/map_container/map_container.tsx#:~:text=ExitFullScreenButton), [map_container.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/connected_components/map_container/map_container.tsx#:~:text=ExitFullScreenButton) | - | | | [maps_list_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=settings), [maps_list_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=settings), [maps_list_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=settings) | 8.8.0 | -| | [render_app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/render_app.tsx#:~:text=onAppLeave), [map_app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/map_page/map_app/map_app.tsx#:~:text=onAppLeave), [map_page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/map_page/map_page.tsx#:~:text=onAppLeave), [render_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/render_app.d.ts#:~:text=onAppLeave), [map_page.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_page.d.ts#:~:text=onAppLeave), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=onAppLeave) | 8.8.0 | +| | [render_app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/render_app.tsx#:~:text=onAppLeave), [map_app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/map_page/map_app/map_app.tsx#:~:text=onAppLeave), [map_page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/map_page/map_page.tsx#:~:text=onAppLeave) | 8.8.0 | | | [saved_object_migrations.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/saved_objects/saved_object_migrations.ts#:~:text=warning) | 8.8.0 | @@ -519,9 +458,9 @@ so TS and code-reference navigation might not highlight them. | | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [use_derived_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx#:~:text=IIndexPattern), [use_derived_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx#:~:text=IIndexPattern), [with_kuery_autocompletion.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/components/kuery_bar/with_kuery_autocompletion.tsx#:~:text=IIndexPattern), [with_kuery_autocompletion.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/components/kuery_bar/with_kuery_autocompletion.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/components/kuery_bar/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/components/kuery_bar/index.tsx#:~:text=IIndexPattern), [kuery.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/lib/kuery.ts#:~:text=IIndexPattern), [kuery.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/lib/kuery.ts#:~:text=IIndexPattern), [with_kuery_autocompletion.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts#:~:text=IIndexPattern), [with_kuery_autocompletion.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts#:~:text=IIndexPattern)+ 2 more | - | +| | [use_derived_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx#:~:text=IIndexPattern), [use_derived_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx#:~:text=IIndexPattern), [with_kuery_autocompletion.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/components/kuery_bar/with_kuery_autocompletion.tsx#:~:text=IIndexPattern), [with_kuery_autocompletion.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/components/kuery_bar/with_kuery_autocompletion.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/components/kuery_bar/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/components/kuery_bar/index.tsx#:~:text=IIndexPattern), [kuery.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/lib/kuery.ts#:~:text=IIndexPattern), [kuery.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/lib/kuery.ts#:~:text=IIndexPattern) | - | | | [use_derived_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx#:~:text=indexPatterns), [use_derived_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx#:~:text=indexPatterns) | - | -| | [use_derived_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx#:~:text=IIndexPattern), [use_derived_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx#:~:text=IIndexPattern), [with_kuery_autocompletion.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/components/kuery_bar/with_kuery_autocompletion.tsx#:~:text=IIndexPattern), [with_kuery_autocompletion.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/components/kuery_bar/with_kuery_autocompletion.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/components/kuery_bar/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/components/kuery_bar/index.tsx#:~:text=IIndexPattern), [kuery.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/lib/kuery.ts#:~:text=IIndexPattern), [kuery.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/lib/kuery.ts#:~:text=IIndexPattern), [with_kuery_autocompletion.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts#:~:text=IIndexPattern), [with_kuery_autocompletion.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts#:~:text=IIndexPattern)+ 14 more | - | +| | [use_derived_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx#:~:text=IIndexPattern), [use_derived_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx#:~:text=IIndexPattern), [with_kuery_autocompletion.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/components/kuery_bar/with_kuery_autocompletion.tsx#:~:text=IIndexPattern), [with_kuery_autocompletion.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/components/kuery_bar/with_kuery_autocompletion.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/components/kuery_bar/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/components/kuery_bar/index.tsx#:~:text=IIndexPattern), [kuery.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/lib/kuery.ts#:~:text=IIndexPattern), [kuery.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/lib/kuery.ts#:~:text=IIndexPattern), [use_derived_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx#:~:text=IIndexPattern), [use_derived_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx#:~:text=IIndexPattern)+ 6 more | - | | | [legacy_shims.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/public/legacy_shims.ts#:~:text=injectedMetadata) | 8.8.0 | | | [bulk_uploader.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/monitoring/server/kibana_monitoring/bulk_uploader.ts#:~:text=process) | 8.8.0 | @@ -677,16 +616,8 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPatternsContract), [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPatternsContract), [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPatternsContract), [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPatternsContract) | - | -| | [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPattern), [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPattern), [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPattern), [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPattern) | - | -| | [single_field_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts#:~:text=IFieldType), [single_field_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts#:~:text=IFieldType) | 8.2 | | | [entity_index_expression.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/expressions/entity_index_expression.tsx#:~:text=indexPatterns), [boundary_index_expression.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/expressions/boundary_index_expression.tsx#:~:text=indexPatterns), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/index.tsx#:~:text=indexPatterns), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/index.tsx#:~:text=indexPatterns), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/index.tsx#:~:text=indexPatterns) | - | | | [expression.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/public/alert_types/threshold/expression.tsx#:~:text=fieldFormats) | - | -| | [single_field_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts#:~:text=IFieldType), [single_field_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts#:~:text=IFieldType), [single_field_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts#:~:text=IFieldType), [single_field_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts#:~:text=IFieldType) | 8.2 | -| | [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPatternsContract), [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPatternsContract), [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPatternsContract), [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPatternsContract) | - | -| | [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPattern), [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPattern), [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPattern), [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPattern) | - | -| | [single_field_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts#:~:text=IFieldType), [single_field_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts#:~:text=IFieldType) | 8.2 | -| | [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPattern), [geo_index_pattern_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.d.ts#:~:text=IndexPattern) | - | @@ -702,9 +633,6 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [app_context.mock.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/target/types/__jest__/client_integration/helpers/app_context.mock.d.ts#:~:text=IndexPattern), [app_context.mock.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/target/types/__jest__/client_integration/helpers/app_context.mock.d.ts#:~:text=IndexPattern) | - | -| | [app_context.mock.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/target/types/__jest__/client_integration/helpers/app_context.mock.d.ts#:~:text=IndexPattern), [app_context.mock.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/target/types/__jest__/client_integration/helpers/app_context.mock.d.ts#:~:text=IndexPattern) | - | -| | [app_context.mock.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/target/types/__jest__/client_integration/helpers/app_context.mock.d.ts#:~:text=IndexPattern) | - | | | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/public/shared_imports.ts#:~:text=RedirectAppLinks), [app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/public/application/app.tsx#:~:text=RedirectAppLinks), [app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/public/application/app.tsx#:~:text=RedirectAppLinks), [app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/public/application/app.tsx#:~:text=RedirectAppLinks) | - | | | [reindex_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.ts#:~:text=license%24), [reindex_service.test.ts](https://github.com/elastic/kibana/tree/master/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/master/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.test.ts#:~:text=license%24) | 8.8.0 | @@ -747,12 +675,12 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [editor_config.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/utils/editor_config.ts#:~:text=IndexPattern), [editor_config.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/utils/editor_config.ts#:~:text=IndexPattern), [agg_params_helper.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params_helper.ts#:~:text=IndexPattern), [agg_params_helper.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params_helper.ts#:~:text=IndexPattern), [agg_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_select.tsx#:~:text=IndexPattern), [agg_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_select.tsx#:~:text=IndexPattern), [agg_params.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params.tsx#:~:text=IndexPattern)+ 24 more | - | -| | [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_param_props.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_param_props.ts#:~:text=IndexPatternField), [agg_param_props.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_param_props.ts#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [top_field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/top_field.tsx#:~:text=IndexPatternField)+ 38 more | - | -| | [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_param_props.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_param_props.ts#:~:text=IndexPatternField), [agg_param_props.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_param_props.ts#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [top_field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/top_field.tsx#:~:text=IndexPatternField)+ 38 more | - | -| | [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [editor_config.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/utils/editor_config.ts#:~:text=IndexPattern), [editor_config.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/utils/editor_config.ts#:~:text=IndexPattern), [agg_params_helper.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params_helper.ts#:~:text=IndexPattern), [agg_params_helper.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params_helper.ts#:~:text=IndexPattern), [agg_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_select.tsx#:~:text=IndexPattern), [agg_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_select.tsx#:~:text=IndexPattern), [agg_params.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params.tsx#:~:text=IndexPattern)+ 24 more | - | -| | [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_param_props.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_param_props.ts#:~:text=IndexPatternField), [agg_param_props.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_param_props.ts#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [top_field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/top_field.tsx#:~:text=IndexPatternField)+ 14 more | - | -| | [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [editor_config.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/utils/editor_config.ts#:~:text=IndexPattern), [editor_config.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/utils/editor_config.ts#:~:text=IndexPattern), [agg_params_helper.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params_helper.ts#:~:text=IndexPattern), [agg_params_helper.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params_helper.ts#:~:text=IndexPattern), [agg_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_select.tsx#:~:text=IndexPattern), [agg_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_select.tsx#:~:text=IndexPattern), [agg_params.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params.tsx#:~:text=IndexPattern)+ 7 more | - | +| | [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [editor_config.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/utils/editor_config.ts#:~:text=IndexPattern), [editor_config.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/utils/editor_config.ts#:~:text=IndexPattern), [agg_params_helper.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params_helper.ts#:~:text=IndexPattern), [agg_params_helper.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params_helper.ts#:~:text=IndexPattern), [agg_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_select.tsx#:~:text=IndexPattern), [agg_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_select.tsx#:~:text=IndexPattern), [agg_params.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params.tsx#:~:text=IndexPattern)+ 16 more | - | +| | [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_param_props.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_param_props.ts#:~:text=IndexPatternField), [agg_param_props.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_param_props.ts#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [top_field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/top_field.tsx#:~:text=IndexPatternField)+ 26 more | - | +| | [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_param_props.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_param_props.ts#:~:text=IndexPatternField), [agg_param_props.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_param_props.ts#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [top_field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/top_field.tsx#:~:text=IndexPatternField)+ 26 more | - | +| | [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [editor_config.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/utils/editor_config.ts#:~:text=IndexPattern), [editor_config.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/utils/editor_config.ts#:~:text=IndexPattern), [agg_params_helper.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params_helper.ts#:~:text=IndexPattern), [agg_params_helper.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params_helper.ts#:~:text=IndexPattern), [agg_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_select.tsx#:~:text=IndexPattern), [agg_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_select.tsx#:~:text=IndexPattern), [agg_params.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params.tsx#:~:text=IndexPattern)+ 16 more | - | +| | [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_type_field_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_field_filters.ts#:~:text=IndexPatternField), [agg_param_props.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_param_props.ts#:~:text=IndexPatternField), [agg_param_props.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_param_props.ts#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/field.tsx#:~:text=IndexPatternField), [top_field.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/controls/top_field.tsx#:~:text=IndexPatternField)+ 8 more | - | +| | [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [agg_type_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/agg_filters/agg_type_filters.ts#:~:text=IndexPattern), [editor_config.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/utils/editor_config.ts#:~:text=IndexPattern), [editor_config.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/utils/editor_config.ts#:~:text=IndexPattern), [agg_params_helper.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params_helper.ts#:~:text=IndexPattern), [agg_params_helper.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params_helper.ts#:~:text=IndexPattern), [agg_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_select.tsx#:~:text=IndexPattern), [agg_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_select.tsx#:~:text=IndexPattern), [agg_params.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_default_editor/public/components/agg_params.tsx#:~:text=IndexPattern)+ 3 more | - | @@ -785,11 +713,8 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [convert_series_to_datatable.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts#:~:text=IndexPattern), [convert_series_to_datatable.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts#:~:text=IndexPattern), [convert_series_to_datatable.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts#:~:text=IndexPattern), [convert_series_to_datatable.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts#:~:text=IndexPattern), [convert_series_to_datatable.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts#:~:text=IndexPattern), [convert_series_to_datatable.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts#:~:text=IndexPattern) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/plugin.ts#:~:text=fieldFormats) | - | -| | [convert_series_to_datatable.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts#:~:text=IndexPattern), [convert_series_to_datatable.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts#:~:text=IndexPattern), [convert_series_to_datatable.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts#:~:text=IndexPattern), [convert_series_to_datatable.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts#:~:text=IndexPattern), [convert_series_to_datatable.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts#:~:text=IndexPattern), [convert_series_to_datatable.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts#:~:text=IndexPattern) | - | | | [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/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/master/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=getNonScriptedFields), [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/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/master/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=getNonScriptedFields) | - | -| | [convert_series_to_datatable.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts#:~:text=IndexPattern), [convert_series_to_datatable.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts#:~:text=IndexPattern), [convert_series_to_datatable.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/target/types/public/application/components/lib/convert_series_to_datatable.d.ts#:~:text=IndexPattern) | - | | | [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/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/master/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=getNonScriptedFields) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/plugin.ts#:~:text=fieldFormats) | - | | | [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/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/master/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=getNonScriptedFields) | - | @@ -801,7 +726,7 @@ 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/master/src/plugins/vis_types/vega/public/plugin.ts#:~:text=injectedMetadata) | 8.8.0 | -| | [search_api.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/vega/public/data_model/search_api.ts#:~:text=injectedMetadata), [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/vega/public/plugin.ts#:~:text=injectedMetadata), [search_api.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/vega/target/types/public/data_model/search_api.d.ts#:~:text=injectedMetadata) | 8.8.0 | +| | [search_api.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/vega/public/data_model/search_api.ts#:~:text=injectedMetadata), [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/vega/public/plugin.ts#:~:text=injectedMetadata) | 8.8.0 | @@ -829,13 +754,10 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [base_vis_type.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts#:~:text=IndexPattern), [base_vis_type.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts#:~:text=IndexPattern), [base_vis_type.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts#:~:text=IndexPattern), [base_vis_type.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts#:~:text=IndexPattern) | - | -| | [base_vis_type.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts#:~:text=IndexPattern), [base_vis_type.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts#:~:text=IndexPattern), [base_vis_type.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts#:~:text=IndexPattern), [base_vis_type.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts#:~:text=IndexPattern) | - | -| | [base_vis_type.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts#:~:text=IndexPattern), [base_vis_type.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/vis_types/base_vis_type.d.ts#:~:text=IndexPattern) | - | | | [get_table_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/utils/get_table_columns.tsx#:~:text=RedirectAppLinks), [get_table_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/utils/get_table_columns.tsx#:~:text=RedirectAppLinks), [get_table_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/utils/get_table_columns.tsx#:~:text=RedirectAppLinks) | - | | | [display_duplicate_title_confirm_modal.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/utils/saved_objects_utils/display_duplicate_title_confirm_modal.ts#:~:text=SavedObject), [display_duplicate_title_confirm_modal.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/utils/saved_objects_utils/display_duplicate_title_confirm_modal.ts#:~:text=SavedObject), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/utils/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObject), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/utils/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObject) | 8.8.0 | | | [visualize_listing.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/components/visualize_listing.tsx#:~:text=settings), [visualize_listing.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/components/visualize_listing.tsx#:~:text=settings) | 8.8.0 | -| | [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/components/visualize_top_nav.tsx#:~:text=onAppLeave), [visualize_editor_common.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/components/visualize_editor_common.tsx#:~:text=onAppLeave), [app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/app.tsx#:~:text=onAppLeave), [index.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/index.tsx#:~:text=onAppLeave), [app.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/visualize_app/app.d.ts#:~:text=onAppLeave), [index.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/visualize_app/index.d.ts#:~:text=onAppLeave), [visualize_editor_common.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/visualize_app/components/visualize_editor_common.d.ts#:~:text=onAppLeave), [visualize_top_nav.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/visualize_app/components/visualize_top_nav.d.ts#:~:text=onAppLeave) | 8.8.0 | +| | [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/components/visualize_top_nav.tsx#:~:text=onAppLeave), [visualize_editor_common.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/components/visualize_editor_common.tsx#:~:text=onAppLeave), [app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/app.tsx#:~:text=onAppLeave), [index.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/index.tsx#:~:text=onAppLeave) | 8.8.0 | diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index eab23cbf89f85..5cebd18ea1cfb 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -3,7 +3,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team summary: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana'] warning: This document is auto-generated and is meant to be viewed inside our experimental, new docs system. --- @@ -26,12 +26,12 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| | dataViews | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType)+ 13 more | 8.2 | -| dataViews | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType)+ 66 more | 8.2 | +| dataViews | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType)+ 65 more | 8.2 | | dataViews | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType)+ 13 more | 8.2 | -| dataEnhanced | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode)+ 2 more | 8.1 | +| dataEnhanced | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode) | 8.1 | | dataEnhanced | | [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=nodeBuilder), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder)+ 2 more | 8.1 | -| dataEnhanced | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode)+ 2 more | 8.1 | -| dataEnhanced | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode)+ 2 more | 8.1 | +| dataEnhanced | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode) | 8.1 | +| dataEnhanced | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode) | 8.1 | | urlDrilldown | | [context_variables.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts#:~:text=Filter), [context_variables.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts#:~:text=Filter), [url_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/url_drilldown.tsx#:~:text=Filter), [url_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/url_drilldown.tsx#:~:text=Filter), [data.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/test/data.ts#:~:text=Filter), [data.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/test/data.ts#:~:text=Filter) | 8.1 | | urlDrilldown | | [context_variables.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts#:~:text=Filter), [context_variables.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts#:~:text=Filter), [url_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/url_drilldown.tsx#:~:text=Filter), [url_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/url_drilldown.tsx#:~:text=Filter), [data.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/test/data.ts#:~:text=Filter), [data.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/test/data.ts#:~:text=Filter) | 8.1 | | urlDrilldown | | [context_variables.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts#:~:text=Filter), [context_variables.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts#:~:text=Filter), [url_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/url_drilldown.tsx#:~:text=Filter), [url_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/url_drilldown.tsx#:~:text=Filter), [data.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/test/data.ts#:~:text=Filter), [data.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/drilldowns/url_drilldown/public/lib/test/data.ts#:~:text=Filter) | 8.1 | @@ -43,18 +43,11 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| -| graph | | [search_bar.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/components/search_bar.tsx#:~:text=esKuery), [search_bar.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/components/search_bar.tsx#:~:text=esKuery), [search_bar.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/components/search_bar.tsx#:~:text=esKuery) | 8.1 | -| graph | | [save_modal.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/components/save_modal.tsx#:~:text=SavedObjectSaveModal), [save_modal.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/components/save_modal.tsx#:~:text=SavedObjectSaveModal), [on_save_search.tsx](https://github.com/elastic/kibana/tree/master/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/master/src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | -| graph | | [listing_route.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/apps/listing_route.tsx#:~:text=settings), [listing_route.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/apps/listing_route.tsx#:~:text=settings) | 8.8.0 | -| graph | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/server/plugin.ts#:~:text=license%24) | 8.8.0 | | discover | | [anchor.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/anchor.ts#:~:text=fetch), [fetch_hits_in_interval.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/utils/fetch_hits_in_interval.ts#:~:text=fetch) | 8.1 | -| discover | | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=esFilters), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=esFilters), [explore_data_chart_action.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.ts#:~:text=esFilters), [explore_data_chart_action.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.ts#:~:text=esFilters) | 8.1 | -| discover | | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=Filter), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [explore_data_context_menu_action.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts#:~:text=Filter)+ 4 more | 8.1 | -| discover | | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=Filter), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [explore_data_context_menu_action.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts#:~:text=Filter)+ 4 more | 8.1 | | discover | | [anchor.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/anchor.ts#:~:text=fetch), [fetch_hits_in_interval.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/utils/fetch_hits_in_interval.ts#:~:text=fetch) | 8.1 | -| discover | | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=Filter), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context_state.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/context_state.test.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [context.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/context/services/context.d.ts#:~:text=Filter), [explore_data_context_menu_action.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts#:~:text=Filter)+ 4 more | 8.1 | -| discoverEnhanced | | [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=RangeFilter), [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=RangeFilter) | 8.1 | -| discoverEnhanced | | [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=RangeFilter), [explore_data_chart_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts#:~:text=RangeFilter) | 8.1 | +| discover | | [on_save_search.tsx](https://github.com/elastic/kibana/tree/master/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/master/src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal), [save_modal.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/components/save_modal.tsx#:~:text=SavedObjectSaveModal), [save_modal.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/components/save_modal.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | +| graph | | [listing_route.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/apps/listing_route.tsx#:~:text=settings), [listing_route.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/public/apps/listing_route.tsx#:~:text=settings) | 8.8.0 | +| graph | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/graph/server/plugin.ts#:~:text=license%24) | 8.8.0 | @@ -65,8 +58,7 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | fleet | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/server/plugin.ts#:~:text=disabled) | 8.8.0 | | fleet | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/server/plugin.ts#:~:text=disabled) | 8.8.0 | | fleet | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/server/plugin.ts#:~:text=disabled) | 8.8.0 | -| fleet | | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/public/applications/integrations/index.tsx#:~:text=appBasePath), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/target/types/public/applications/fleet/index.d.ts#:~:text=appBasePath), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/target/types/public/applications/integrations/index.d.ts#:~:text=appBasePath) | 8.8.0 | -| fleet | | [plugin.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/target/types/server/plugin.d.ts#:~:text=AsyncPlugin), [plugin.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/target/types/server/plugin.d.ts#:~:text=AsyncPlugin) | 8.8.0 | +| fleet | | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/fleet/public/applications/integrations/index.tsx#:~:text=appBasePath) | 8.8.0 | @@ -76,12 +68,12 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | --------|-------|-----------|-----------| | maps | | [es_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_source/es_source.ts#:~:text=fetch), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=fetch), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=fetch) | 8.1 | | maps | | [locators.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/locators.test.ts#:~:text=esFilters), [locators.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/locators.test.ts#:~:text=esFilters) | 8.1 | -| maps | | [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter) | 8.1 | -| maps | | [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter) | 8.1 | +| maps | | [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter) | 8.1 | +| maps | | [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter) | 8.1 | | maps | | [es_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_source/es_source.ts#:~:text=fetch), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=fetch), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=fetch) | 8.1 | -| maps | | [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=Filter) | 8.1 | +| maps | | [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter), [can_skip_fetch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts#:~:text=Filter) | 8.1 | | maps | | [maps_list_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=settings), [maps_list_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=settings), [maps_list_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=settings) | 8.8.0 | -| maps | | [render_app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/render_app.tsx#:~:text=onAppLeave), [map_app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/map_page/map_app/map_app.tsx#:~:text=onAppLeave), [map_page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/map_page/map_page.tsx#:~:text=onAppLeave), [render_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/render_app.d.ts#:~:text=onAppLeave), [map_page.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_page.d.ts#:~:text=onAppLeave), [map_app.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts#:~:text=onAppLeave) | 8.8.0 | +| maps | | [render_app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/render_app.tsx#:~:text=onAppLeave), [map_app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/map_page/map_app/map_app.tsx#:~:text=onAppLeave), [map_page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/map_page/map_page.tsx#:~:text=onAppLeave) | 8.8.0 | | maps | | [saved_object_migrations.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/saved_objects/saved_object_migrations.ts#:~:text=warning) | 8.8.0 | | mapsEms | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/maps_ems/server/index.ts#:~:text=license%24) | 8.8.0 | | mapsEms | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/maps_ems/server/index.ts#:~:text=refresh) | 8.8.0 | @@ -102,6 +94,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| +| inputControlVis | | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=fetch), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=fetch) | 8.1 | +| inputControlVis | | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=fetch), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=fetch) | 8.1 | | dashboard | | [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter)+ 5 more | 8.1 | | dashboard | | [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter)+ 5 more | 8.1 | | dashboard | | [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter)+ 5 more | 8.1 | @@ -109,10 +103,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | dashboard | | [saved_object_loader.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/services/saved_object_loader.ts#:~:text=SavedObject), [saved_object_loader.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/services/saved_object_loader.ts#:~:text=SavedObject), [saved_object_loader.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/services/saved_object_loader.ts#:~:text=SavedObject), [saved_objects.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/services/saved_objects.ts#:~:text=SavedObject), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=SavedObject), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=SavedObject), [dashboard_tagging.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/dashboard_tagging.ts#:~:text=SavedObject), [dashboard_tagging.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/dashboard_tagging.ts#:~:text=SavedObject), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx#:~:text=SavedObject), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx#:~:text=SavedObject)+ 1 more | 8.8.0 | | dashboard | | [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=SavedObjectClass) | 8.8.0 | | dashboard | | [dashboard_listing.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/listing/dashboard_listing.tsx#:~:text=settings), [dashboard_listing.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/listing/dashboard_listing.tsx#:~:text=settings) | 8.8.0 | -| dashboard | | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/types.ts#:~:text=onAppLeave), [dashboard_router.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/dashboard_router.tsx#:~:text=onAppLeave), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/plugin.tsx#:~:text=onAppLeave), [types.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/target/types/public/types.d.ts#:~:text=onAppLeave) | 8.8.0 | +| dashboard | | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/types.ts#:~:text=onAppLeave), [dashboard_router.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/dashboard_router.tsx#:~:text=onAppLeave), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/plugin.tsx#:~:text=onAppLeave) | 8.8.0 | | dashboard | | [migrations_730.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/migrations_730.ts#:~:text=warning), [migrations_730.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/migrations_730.ts#:~:text=warning) | 8.8.0 | -| inputControlVis | | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=fetch), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=fetch) | 8.1 | -| inputControlVis | | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=fetch), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=fetch) | 8.1 | @@ -176,9 +168,6 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| -| stackAlerts | | [single_field_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts#:~:text=IFieldType), [single_field_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts#:~:text=IFieldType) | 8.2 | -| stackAlerts | | [single_field_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts#:~:text=IFieldType), [single_field_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts#:~:text=IFieldType), [single_field_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts#:~:text=IFieldType), [single_field_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts#:~:text=IFieldType) | 8.2 | -| stackAlerts | | [single_field_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts#:~:text=IFieldType), [single_field_select.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/stack_alerts/target/types/public/alert_types/geo_containment/query_builder/util_components/single_field_select.d.ts#:~:text=IFieldType) | 8.2 | | alerting | | [plugin.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/plugin.test.ts#:~:text=getKibanaFeatures) | 8.8.0 | | alerting | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/plugin.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/actions/server/plugin.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/actions/server/lib/license_state.test.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/actions/server/lib/license_state.test.ts#:~:text=license%24) | 8.8.0 | @@ -199,7 +188,7 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| -| upgradeAssistant | | [reindex_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.ts#:~:text=license%24), [reindex_service.test.ts](https://github.com/elastic/kibana/tree/master/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/master/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.test.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/index_lifecycle_management/server/services/license.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/painless_lab/server/services/license.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/searchprofiler/server/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/remote_clusters/server/plugin.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/rollup/server/services/license.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/snapshot_restore/server/services/license.ts#:~:text=license%24) | 8.8.0 | +| indexLifecycleManagement | | [license.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/index_lifecycle_management/server/services/license.ts#:~:text=license%24), [reindex_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.ts#:~:text=license%24), [reindex_service.test.ts](https://github.com/elastic/kibana/tree/master/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/master/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.test.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/painless_lab/server/services/license.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/searchprofiler/server/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/remote_clusters/server/plugin.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/rollup/server/services/license.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/snapshot_restore/server/services/license.ts#:~:text=license%24) | 8.8.0 | | licenseManagement | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/license_management/public/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cross_cluster_replication/public/plugin.ts#:~:text=license%24), [plugin.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/painless_lab/public/plugin.tsx#:~:text=license%24), [plugin.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/painless_lab/public/plugin.tsx#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/searchprofiler/public/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/searchprofiler/public/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/watcher/public/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/watcher/public/plugin.ts#:~:text=license%24) | 8.8.0 | @@ -217,10 +206,10 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| -| lens | | [display_duplicate_title_confirm_modal.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/persistence/saved_objects_utils/display_duplicate_title_confirm_modal.ts#:~:text=SavedObject), [display_duplicate_title_confirm_modal.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/persistence/saved_objects_utils/display_duplicate_title_confirm_modal.ts#:~:text=SavedObject), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/persistence/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObject), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/persistence/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObject), [check_for_duplicate_title.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/persistence/saved_objects_utils/check_for_duplicate_title.d.ts#:~:text=SavedObject), [check_for_duplicate_title.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/persistence/saved_objects_utils/check_for_duplicate_title.d.ts#:~:text=SavedObject), [display_duplicate_title_confirm_modal.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/persistence/saved_objects_utils/display_duplicate_title_confirm_modal.d.ts#:~:text=SavedObject), [display_duplicate_title_confirm_modal.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/public/persistence/saved_objects_utils/display_duplicate_title_confirm_modal.d.ts#:~:text=SavedObject), [display_duplicate_title_confirm_modal.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/utils/saved_objects_utils/display_duplicate_title_confirm_modal.ts#:~:text=SavedObject), [display_duplicate_title_confirm_modal.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/utils/saved_objects_utils/display_duplicate_title_confirm_modal.ts#:~:text=SavedObject)+ 2 more | 8.8.0 | -| lens | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/app_plugin/types.ts#:~:text=onAppLeave), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/app_plugin/types.ts#:~:text=onAppLeave), [mounter.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/app_plugin/mounter.tsx#:~:text=onAppLeave), [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/components/visualize_top_nav.tsx#:~:text=onAppLeave), [visualize_editor_common.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/components/visualize_editor_common.tsx#:~:text=onAppLeave), [app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/app.tsx#:~:text=onAppLeave), [index.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/index.tsx#:~:text=onAppLeave), [app.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/visualize_app/app.d.ts#:~:text=onAppLeave), [index.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/visualize_app/index.d.ts#:~:text=onAppLeave), [visualize_editor_common.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/target/types/public/visualize_app/components/visualize_editor_common.d.ts#:~:text=onAppLeave)+ 1 more | 8.8.0 | +| lens | | [display_duplicate_title_confirm_modal.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/persistence/saved_objects_utils/display_duplicate_title_confirm_modal.ts#:~:text=SavedObject), [display_duplicate_title_confirm_modal.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/persistence/saved_objects_utils/display_duplicate_title_confirm_modal.ts#:~:text=SavedObject), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/persistence/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObject), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/persistence/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObject), [display_duplicate_title_confirm_modal.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/utils/saved_objects_utils/display_duplicate_title_confirm_modal.ts#:~:text=SavedObject), [display_duplicate_title_confirm_modal.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/utils/saved_objects_utils/display_duplicate_title_confirm_modal.ts#:~:text=SavedObject), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/utils/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObject), [check_for_duplicate_title.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/utils/saved_objects_utils/check_for_duplicate_title.ts#:~:text=SavedObject) | 8.8.0 | +| lens | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/app_plugin/types.ts#:~:text=onAppLeave), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/app_plugin/types.ts#:~:text=onAppLeave), [mounter.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/app_plugin/mounter.tsx#:~:text=onAppLeave), [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/components/visualize_top_nav.tsx#:~:text=onAppLeave), [visualize_editor_common.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/components/visualize_editor_common.tsx#:~:text=onAppLeave), [app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/app.tsx#:~:text=onAppLeave), [index.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/index.tsx#:~:text=onAppLeave) | 8.8.0 | | lens | | [saved_object_migrations.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/migrations/saved_object_migrations.ts#:~:text=warning), [saved_object_migrations.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/migrations/saved_object_migrations.ts#:~:text=warning) | 8.8.0 | | visualizations | | [visualize_listing.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/components/visualize_listing.tsx#:~:text=settings), [visualize_listing.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualizations/public/visualize_app/components/visualize_listing.tsx#:~:text=settings) | 8.8.0 | -| management | | [application.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/management/public/application.tsx#:~:text=appBasePath), [application.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/management/target/types/public/application.d.ts#:~:text=appBasePath) | 8.8.0 | +| management | | [application.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/management/public/application.tsx#:~:text=appBasePath) | 8.8.0 | | visTypeVega | | [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/vega/public/plugin.ts#:~:text=injectedMetadata) | 8.8.0 | -| visTypeVega | | [search_api.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/vega/public/data_model/search_api.ts#:~:text=injectedMetadata), [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/vega/public/plugin.ts#:~:text=injectedMetadata), [search_api.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/vega/target/types/public/data_model/search_api.d.ts#:~:text=injectedMetadata) | 8.8.0 | \ No newline at end of file +| visTypeVega | | [search_api.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/vega/public/data_model/search_api.ts#:~:text=injectedMetadata), [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/vega/public/plugin.ts#:~:text=injectedMetadata) | 8.8.0 | \ No newline at end of file diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index fcec20c8c9ba2..057a01b87b2af 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github summary: API docs for the devTools plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'devTools'] warning: 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. --- diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index e09a657d79b33..454eed31db655 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github summary: API docs for the discover plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discover'] warning: 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. --- diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx index c22a1a2bbca20..1f365f7e3bf52 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github summary: API docs for the discoverEnhanced plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] warning: 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. --- diff --git a/api_docs/elastic_apm_synthtrace.devdocs.json b/api_docs/elastic_apm_synthtrace.devdocs.json index a83c1fb08444c..fea30b403b0b9 100644 --- a/api_docs/elastic_apm_synthtrace.devdocs.json +++ b/api_docs/elastic_apm_synthtrace.devdocs.json @@ -205,6 +205,179 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SpanArrayIterable", + "type": "Class", + "tags": [], + "label": "SpanArrayIterable", + "description": [], + "signature": [ + { + "pluginId": "@elastic/apm-synthtrace", + "scope": "server", + "docId": "kibElasticApmSynthtracePluginApi", + "section": "def-server.SpanArrayIterable", + "text": "SpanArrayIterable" + }, + " implements ", + { + "pluginId": "@elastic/apm-synthtrace", + "scope": "server", + "docId": "kibElasticApmSynthtracePluginApi", + "section": "def-server.SpanIterable", + "text": "SpanIterable" + } + ], + "path": "packages/elastic-apm-synthtrace/src/lib/span_iterable.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SpanArrayIterable.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/span_iterable.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SpanArrayIterable.Unnamed.$1", + "type": "Array", + "tags": [], + "label": "fields", + "description": [], + "signature": [ + "ApmFields", + "[]" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/span_iterable.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SpanArrayIterable.order", + "type": "Function", + "tags": [], + "label": "order", + "description": [], + "signature": [ + "() => \"asc\" | \"desc\"" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/span_iterable.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SpanArrayIterable.Symbol.asyncIterator", + "type": "Function", + "tags": [], + "label": "[Symbol.asyncIterator]", + "description": [], + "signature": [ + "() => AsyncIterator<", + "ApmFields", + ", any, undefined>" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/span_iterable.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SpanArrayIterable.Symbol.iterator", + "type": "Function", + "tags": [], + "label": "[Symbol.iterator]", + "description": [], + "signature": [ + "() => Iterator<", + "ApmFields", + ", any, undefined>" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/span_iterable.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SpanArrayIterable.concat", + "type": "Function", + "tags": [], + "label": "concat", + "description": [], + "signature": [ + "(...iterables: ", + { + "pluginId": "@elastic/apm-synthtrace", + "scope": "server", + "docId": "kibElasticApmSynthtracePluginApi", + "section": "def-server.SpanIterable", + "text": "SpanIterable" + }, + "[]) => ", + "SpanGeneratorsUnion" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/span_iterable.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SpanArrayIterable.concat.$1", + "type": "Array", + "tags": [], + "label": "iterables", + "description": [], + "signature": [ + { + "pluginId": "@elastic/apm-synthtrace", + "scope": "server", + "docId": "kibElasticApmSynthtracePluginApi", + "section": "def-server.SpanIterable", + "text": "SpanIterable" + }, + "[]" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/span_iterable.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SpanArrayIterable.toArray", + "type": "Function", + "tags": [], + "label": "toArray", + "description": [], + "signature": [ + "() => ", + "ApmFields", + "[]" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/span_iterable.ts", + "deprecated": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false } ], "functions": [ diff --git a/api_docs/elastic_apm_synthtrace.mdx b/api_docs/elastic_apm_synthtrace.mdx index 4620947c33e95..adc81c10d554e 100644 --- a/api_docs/elastic_apm_synthtrace.mdx +++ b/api_docs/elastic_apm_synthtrace.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/elastic-apm-synthtrace title: "@elastic/apm-synthtrace" image: https://source.unsplash.com/400x175/?github summary: API docs for the @elastic/apm-synthtrace plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@elastic/apm-synthtrace'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 53 | 0 | 53 | 9 | +| 62 | 0 | 62 | 9 | ## Server diff --git a/api_docs/elastic_datemath.mdx b/api_docs/elastic_datemath.mdx index b4776e2692e2d..603fcf30aee95 100644 --- a/api_docs/elastic_datemath.mdx +++ b/api_docs/elastic_datemath.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/elastic-datemath title: "@elastic/datemath" image: https://source.unsplash.com/400x175/?github summary: API docs for the @elastic/datemath plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@elastic/datemath'] warning: 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. --- diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 624934540cabb..860e9899adfae 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github summary: API docs for the embeddable plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable'] warning: 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. --- diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx index bb6a0292ce768..2bc4c277cd901 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github summary: API docs for the embeddableEnhanced plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddableEnhanced'] warning: 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. --- diff --git a/api_docs/encrypted_saved_objects.mdx b/api_docs/encrypted_saved_objects.mdx index 8b4e95d4a1a28..1e6eea778efdf 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github summary: API docs for the encryptedSavedObjects plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'encryptedSavedObjects'] warning: 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. --- diff --git a/api_docs/enterprise_search.mdx b/api_docs/enterprise_search.mdx index fafa78ee311f4..e97f98b8b403e 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github summary: API docs for the enterpriseSearch plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch'] warning: 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. --- diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx index ad34313432e51..e722fbb7d81d3 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github summary: API docs for the esUiShared plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared'] warning: 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. --- diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx index e980e894ec9c8..cf43a56980cb7 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github summary: API docs for the eventAnnotation plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation'] warning: 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. --- diff --git a/api_docs/event_log.devdocs.json b/api_docs/event_log.devdocs.json index 5bed6025a0b48..b90aee758878d 100644 --- a/api_docs/event_log.devdocs.json +++ b/api_docs/event_log.devdocs.json @@ -1047,7 +1047,7 @@ "label": "data", "description": [], "signature": [ - "(Readonly<{ user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; error?: Readonly<{ message?: string | undefined; type?: string | undefined; id?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: number | undefined; number_of_searches?: number | undefined; total_indexing_duration_ms?: number | undefined; es_search_duration_ms?: number | undefined; total_search_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: 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; scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; outcome?: string | undefined; end?: string | undefined; category?: string[] | undefined; url?: string | undefined; original?: string | undefined; duration?: number | undefined; code?: string | undefined; action?: string | undefined; kind?: string | undefined; hash?: string | undefined; dataset?: string | undefined; severity?: number | undefined; created?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; } & {}> | undefined)[]" + "(Readonly<{ user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; error?: Readonly<{ message?: string | undefined; type?: string | undefined; id?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: number | undefined; number_of_scheduled_actions?: number | undefined; number_of_searches?: number | undefined; total_indexing_duration_ms?: number | undefined; es_search_duration_ms?: number | undefined; total_search_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: 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?: number | undefined; scheduled?: string | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; outcome?: string | undefined; end?: string | undefined; category?: string[] | undefined; url?: string | undefined; original?: string | undefined; duration?: number | undefined; code?: string | undefined; action?: string | undefined; kind?: string | undefined; hash?: string | undefined; dataset?: string | undefined; severity?: number | undefined; created?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; } & {}> | undefined)[]" ], "path": "x-pack/plugins/event_log/server/es/cluster_client_adapter.ts", "deprecated": false @@ -1066,7 +1066,7 @@ "label": "IEvent", "description": [], "signature": [ - "DeepPartial | undefined; message?: string | undefined; error?: Readonly<{ message?: string | undefined; type?: string | undefined; id?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: number | undefined; number_of_searches?: number | undefined; total_indexing_duration_ms?: number | undefined; es_search_duration_ms?: number | undefined; total_search_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: 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; scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; outcome?: string | undefined; end?: string | undefined; category?: string[] | undefined; url?: string | undefined; original?: string | undefined; duration?: number | undefined; code?: string | undefined; action?: string | undefined; kind?: string | undefined; hash?: string | undefined; dataset?: string | undefined; severity?: number | undefined; created?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; } & {}>>> | undefined" + "DeepPartial | undefined; message?: string | undefined; error?: Readonly<{ message?: string | undefined; type?: string | undefined; id?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: number | undefined; number_of_scheduled_actions?: number | undefined; number_of_searches?: number | undefined; total_indexing_duration_ms?: number | undefined; es_search_duration_ms?: number | undefined; total_search_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: 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?: number | undefined; scheduled?: string | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; outcome?: string | undefined; end?: string | undefined; category?: string[] | undefined; url?: string | undefined; original?: string | undefined; duration?: number | undefined; code?: string | undefined; action?: string | undefined; kind?: string | undefined; hash?: string | undefined; dataset?: string | undefined; severity?: number | undefined; created?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, @@ -1080,7 +1080,7 @@ "label": "IValidatedEvent", "description": [], "signature": [ - "Readonly<{ user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; error?: Readonly<{ message?: string | undefined; type?: string | undefined; id?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: number | undefined; number_of_searches?: number | undefined; total_indexing_duration_ms?: number | undefined; es_search_duration_ms?: number | undefined; total_search_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: 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; scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; outcome?: string | undefined; end?: string | undefined; category?: string[] | undefined; url?: string | undefined; original?: string | undefined; duration?: number | undefined; code?: string | undefined; action?: string | undefined; kind?: string | undefined; hash?: string | undefined; dataset?: string | undefined; severity?: number | undefined; created?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; } & {}> | undefined" + "Readonly<{ user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; error?: Readonly<{ message?: string | undefined; type?: string | undefined; id?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: number | undefined; number_of_scheduled_actions?: number | undefined; number_of_searches?: number | undefined; total_indexing_duration_ms?: number | undefined; es_search_duration_ms?: number | undefined; total_search_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: 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?: number | undefined; scheduled?: string | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; outcome?: string | undefined; end?: string | undefined; category?: string[] | undefined; url?: string | undefined; original?: string | undefined; duration?: number | undefined; code?: string | undefined; action?: string | undefined; kind?: string | undefined; hash?: string | undefined; dataset?: string | undefined; severity?: number | undefined; created?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; '@timestamp'?: string | 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 ac70e7c4b98ea..838c79855d025 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github summary: API docs for the eventLog plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] warning: 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. --- diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index 6698e7e0748a5..38f020b62092f 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github summary: API docs for the expressionError plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError'] warning: 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. --- diff --git a/api_docs/expression_gauge.devdocs.json b/api_docs/expression_gauge.devdocs.json index 17ae71ebac087..ed153c7d2cdd3 100644 --- a/api_docs/expression_gauge.devdocs.json +++ b/api_docs/expression_gauge.devdocs.json @@ -981,6 +981,19 @@ "path": "src/plugins/vis_types/gauge/public/to_ast.ts" } ] + }, + { + "parentPluginId": "expressionGauge", + "id": "def-common.GaugeState.commonLabel", + "type": "string", + "tags": [], + "label": "commonLabel", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_gauge/common/types/expression_functions.ts", + "deprecated": false } ], "initialIsOpen": false diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx index ffa8059222d85..9bb9b12d02707 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github summary: API docs for the expressionGauge plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 70 | 0 | 70 | 2 | +| 71 | 0 | 71 | 2 | ## Client diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index a179e30c2028c..146bb572eedb5 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github summary: API docs for the expressionHeatmap plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap'] warning: 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. --- diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx index c370278a9b1dc..7ab108c6cd4f4 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github summary: API docs for the expressionImage plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionImage'] warning: 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. --- diff --git a/api_docs/expression_metric.mdx b/api_docs/expression_metric.mdx index e726fd7e4095b..21b4ca9d8773d 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github summary: API docs for the expressionMetric plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric'] warning: 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. --- diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index 695ec7a869fbc..965dfa6c2fa36 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github summary: API docs for the expressionMetricVis plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] warning: 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. --- diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index d19a7f17a29cc..981c10aae7283 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github summary: API docs for the expressionPartitionVis plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] warning: 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. --- diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index f3e79c480bd66..dfeee9cc5290a 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github summary: API docs for the expressionRepeatImage plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRepeatImage'] warning: 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. --- diff --git a/api_docs/expression_reveal_image.mdx b/api_docs/expression_reveal_image.mdx index 46a20f6dd4b4a..c0c9436011614 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github summary: API docs for the expressionRevealImage plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRevealImage'] warning: 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. --- diff --git a/api_docs/expression_shape.mdx b/api_docs/expression_shape.mdx index 8e959ae059b84..ad96dbf11f267 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github summary: API docs for the expressionShape plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionShape'] warning: 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. --- diff --git a/api_docs/expression_tagcloud.mdx b/api_docs/expression_tagcloud.mdx index f9c489faed9ea..0a300752b5735 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github summary: API docs for the expressionTagcloud plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] warning: 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. --- diff --git a/api_docs/expression_x_y.devdocs.json b/api_docs/expression_x_y.devdocs.json new file mode 100644 index 0000000000000..c8e2d0f579833 --- /dev/null +++ b/api_docs/expression_x_y.devdocs.json @@ -0,0 +1,6612 @@ +{ + "id": "expressionXY", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [ + { + "parentPluginId": "expressionXY", + "id": "def-public.ExpressionXyPluginSetup", + "type": "Type", + "tags": [], + "label": "ExpressionXyPluginSetup", + "description": [], + "signature": [ + "void" + ], + "path": "src/plugins/chart_expressions/expression_xy/public/types.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-public.ExpressionXyPluginStart", + "type": "Type", + "tags": [], + "label": "ExpressionXyPluginStart", + "description": [], + "signature": [ + "void" + ], + "path": "src/plugins/chart_expressions/expression_xy/public/types.ts", + "deprecated": false, + "initialIsOpen": false + } + ], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [], + "start": { + "parentPluginId": "expressionXY", + "id": "def-server.ExpressionXyPluginStart", + "type": "Type", + "tags": [], + "label": "ExpressionXyPluginStart", + "description": [], + "signature": [ + "void" + ], + "path": "src/plugins/chart_expressions/expression_xy/server/types.ts", + "deprecated": false, + "lifecycle": "start", + "initialIsOpen": true + } + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.annotationLayerConfigFunction", + "type": "Function", + "tags": [], + "label": "annotationLayerConfigFunction", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExpressionFunctionDefinition", + "text": "ExpressionFunctionDefinition" + }, + "<\"annotationLayer\", null, ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AnnotationLayerArgs", + "text": "AnnotationLayerArgs" + }, + ", ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AnnotationLayerConfigResult", + "text": "AnnotationLayerConfigResult" + }, + ", ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExecutionContext", + "text": "ExecutionContext" + }, + "<", + { + "pluginId": "inspector", + "scope": "common", + "docId": "kibInspectorPluginApi", + "section": "def-common.Adapters", + "text": "Adapters" + }, + ", ", + "SerializableRecord", + ">>" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/annotation_layer_config.ts", + "deprecated": false, + "children": [], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.AnnotationLayerArgs", + "type": "Interface", + "tags": [], + "label": "AnnotationLayerArgs", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.AnnotationLayerArgs.annotations", + "type": "Array", + "tags": [], + "label": "annotations", + "description": [], + "signature": [ + { + "pluginId": "eventAnnotation", + "scope": "common", + "docId": "kibEventAnnotationPluginApi", + "section": "def-common.EventAnnotationOutput", + "text": "EventAnnotationOutput" + }, + "[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.AnnotationLayerArgs.layerId", + "type": "string", + "tags": [], + "label": "layerId", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.AnnotationLayerArgs.hide", + "type": "CompoundType", + "tags": [], + "label": "hide", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.AxesSettingsConfig", + "type": "Interface", + "tags": [], + "label": "AxesSettingsConfig", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.AxesSettingsConfig.x", + "type": "boolean", + "tags": [], + "label": "x", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.AxesSettingsConfig.yLeft", + "type": "boolean", + "tags": [], + "label": "yLeft", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.AxesSettingsConfig.yRight", + "type": "boolean", + "tags": [], + "label": "yRight", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.AxisConfig", + "type": "Interface", + "tags": [], + "label": "AxisConfig", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.AxisConfig.title", + "type": "string", + "tags": [], + "label": "title", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.AxisConfig.hide", + "type": "CompoundType", + "tags": [], + "label": "hide", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.AxisExtentConfig", + "type": "Interface", + "tags": [], + "label": "AxisExtentConfig", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.AxisExtentConfig.mode", + "type": "CompoundType", + "tags": [], + "label": "mode", + "description": [], + "signature": [ + "\"custom\" | \"full\" | \"dataBounds\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.AxisExtentConfig.lowerBound", + "type": "number", + "tags": [], + "label": "lowerBound", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.AxisExtentConfig.upperBound", + "type": "number", + "tags": [], + "label": "upperBound", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.DataLayerArgs", + "type": "Interface", + "tags": [], + "label": "DataLayerArgs", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.DataLayerArgs.layerId", + "type": "string", + "tags": [], + "label": "layerId", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.DataLayerArgs.accessors", + "type": "Array", + "tags": [], + "label": "accessors", + "description": [], + "signature": [ + "string[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.DataLayerArgs.seriesType", + "type": "CompoundType", + "tags": [], + "label": "seriesType", + "description": [], + "signature": [ + "\"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/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.DataLayerArgs.xAccessor", + "type": "string", + "tags": [], + "label": "xAccessor", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.DataLayerArgs.hide", + "type": "CompoundType", + "tags": [], + "label": "hide", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.DataLayerArgs.splitAccessor", + "type": "string", + "tags": [], + "label": "splitAccessor", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.DataLayerArgs.columnToLabel", + "type": "string", + "tags": [], + "label": "columnToLabel", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.DataLayerArgs.yScaleType", + "type": "CompoundType", + "tags": [], + "label": "yScaleType", + "description": [], + "signature": [ + "\"time\" | \"log\" | \"sqrt\" | \"linear\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.DataLayerArgs.xScaleType", + "type": "CompoundType", + "tags": [], + "label": "xScaleType", + "description": [], + "signature": [ + "\"time\" | \"linear\" | \"ordinal\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.DataLayerArgs.isHistogram", + "type": "boolean", + "tags": [], + "label": "isHistogram", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.DataLayerArgs.palette", + "type": "Object", + "tags": [], + "label": "palette", + "description": [], + "signature": [ + { + "pluginId": "charts", + "scope": "common", + "docId": "kibChartsPluginApi", + "section": "def-common.PaletteOutput", + "text": "PaletteOutput" + }, + "<{ [key: string]: unknown; }>" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.DataLayerArgs.yConfig", + "type": "Array", + "tags": [], + "label": "yConfig", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YConfigResult", + "text": "YConfigResult" + }, + "[] | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LabelsOrientationConfig", + "type": "Interface", + "tags": [], + "label": "LabelsOrientationConfig", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.LabelsOrientationConfig.x", + "type": "number", + "tags": [], + "label": "x", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LabelsOrientationConfig.yLeft", + "type": "number", + "tags": [], + "label": "yLeft", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LabelsOrientationConfig.yRight", + "type": "number", + "tags": [], + "label": "yRight", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LegendConfig", + "type": "Interface", + "tags": [], + "label": "LegendConfig", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.LegendConfig.isVisible", + "type": "boolean", + "tags": [], + "label": "isVisible", + "description": [ + "\nFlag whether the legend should be shown. If there is just a single series, it will be hidden" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LegendConfig.position", + "type": "CompoundType", + "tags": [], + "label": "position", + "description": [ + "\nPosition of the legend relative to the chart" + ], + "signature": [ + "\"top\" | \"bottom\" | \"left\" | \"right\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LegendConfig.showSingleSeries", + "type": "CompoundType", + "tags": [], + "label": "showSingleSeries", + "description": [ + "\nFlag whether the legend should be shown even with just a single series" + ], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LegendConfig.isInside", + "type": "CompoundType", + "tags": [], + "label": "isInside", + "description": [ + "\nFlag whether the legend is inside the chart" + ], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LegendConfig.horizontalAlignment", + "type": "CompoundType", + "tags": [], + "label": "horizontalAlignment", + "description": [ + "\nHorizontal Alignment of the legend when it is set inside chart" + ], + "signature": [ + "HorizontalAlignment", + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LegendConfig.verticalAlignment", + "type": "CompoundType", + "tags": [], + "label": "verticalAlignment", + "description": [ + "\nVertical Alignment of the legend when it is set inside chart" + ], + "signature": [ + "VerticalAlignment", + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LegendConfig.floatingColumns", + "type": "number", + "tags": [], + "label": "floatingColumns", + "description": [ + "\nNumber of columns when legend is set inside chart" + ], + "signature": [ + "number | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LegendConfig.maxLines", + "type": "number", + "tags": [], + "label": "maxLines", + "description": [ + "\nMaximum number of lines per legend item" + ], + "signature": [ + "number | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LegendConfig.shouldTruncate", + "type": "CompoundType", + "tags": [], + "label": "shouldTruncate", + "description": [ + "\nFlag whether the legend items are truncated or not" + ], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LegendConfig.legendSize", + "type": "number", + "tags": [], + "label": "legendSize", + "description": [ + "\nExact legend width (vertical) or height (horizontal)\nLimited to max of 70% of the chart container dimension Vertical legends limited to min of 30% of computed width" + ], + "signature": [ + "number | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LensMultiTable", + "type": "Interface", + "tags": [], + "label": "LensMultiTable", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.LensMultiTable.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"lens_multitable\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LensMultiTable.tables", + "type": "Object", + "tags": [], + "label": "tables", + "description": [], + "signature": [ + "{ [x: string]: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.Datatable", + "text": "Datatable" + }, + "; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LensMultiTable.dateRange", + "type": "Object", + "tags": [], + "label": "dateRange", + "description": [], + "signature": [ + "{ fromDate: Date; toDate: Date; } | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.ReferenceLineLayerArgs", + "type": "Interface", + "tags": [], + "label": "ReferenceLineLayerArgs", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.ReferenceLineLayerArgs.layerId", + "type": "string", + "tags": [], + "label": "layerId", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.ReferenceLineLayerArgs.accessors", + "type": "Array", + "tags": [], + "label": "accessors", + "description": [], + "signature": [ + "string[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.ReferenceLineLayerArgs.columnToLabel", + "type": "string", + "tags": [], + "label": "columnToLabel", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.ReferenceLineLayerArgs.yConfig", + "type": "Array", + "tags": [], + "label": "yConfig", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YConfigResult", + "text": "YConfigResult" + }, + "[] | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.ValidLayer", + "type": "Interface", + "tags": [], + "label": "ValidLayer", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.ValidLayer", + "text": "ValidLayer" + }, + " extends ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.DataLayerConfigResult", + "text": "DataLayerConfigResult" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.ValidLayer.xAccessor", + "type": "string", + "tags": [], + "label": "xAccessor", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs", + "type": "Interface", + "tags": [], + "label": "XYArgs", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.title", + "type": "string", + "tags": [], + "label": "title", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.xTitle", + "type": "string", + "tags": [], + "label": "xTitle", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.yTitle", + "type": "string", + "tags": [], + "label": "yTitle", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.yRightTitle", + "type": "string", + "tags": [], + "label": "yRightTitle", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.yLeftExtent", + "type": "CompoundType", + "tags": [], + "label": "yLeftExtent", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxisExtentConfig", + "text": "AxisExtentConfig" + }, + " & { type: \"axisExtentConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.yRightExtent", + "type": "CompoundType", + "tags": [], + "label": "yRightExtent", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxisExtentConfig", + "text": "AxisExtentConfig" + }, + " & { type: \"axisExtentConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.legend", + "type": "CompoundType", + "tags": [], + "label": "legend", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LegendConfig", + "text": "LegendConfig" + }, + " & { type: \"legendConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.valueLabels", + "type": "CompoundType", + "tags": [], + "label": "valueLabels", + "description": [], + "signature": [ + "\"hide\" | \"inside\" | \"outside\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.layers", + "type": "Array", + "tags": [], + "label": "layers", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.XYLayerConfigResult", + "text": "XYLayerConfigResult" + }, + "[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.endValue", + "type": "CompoundType", + "tags": [], + "label": "endValue", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.EndValue", + "text": "EndValue" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.emphasizeFitting", + "type": "CompoundType", + "tags": [], + "label": "emphasizeFitting", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.fittingFunction", + "type": "CompoundType", + "tags": [], + "label": "fittingFunction", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.FittingFunction", + "text": "FittingFunction" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.axisTitlesVisibilitySettings", + "type": "CompoundType", + "tags": [], + "label": "axisTitlesVisibilitySettings", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxisTitlesVisibilityConfigResult", + "text": "AxisTitlesVisibilityConfigResult" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.tickLabelsVisibilitySettings", + "type": "CompoundType", + "tags": [], + "label": "tickLabelsVisibilitySettings", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.TickLabelsConfigResult", + "text": "TickLabelsConfigResult" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.gridlinesVisibilitySettings", + "type": "CompoundType", + "tags": [], + "label": "gridlinesVisibilitySettings", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.GridlinesConfigResult", + "text": "GridlinesConfigResult" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.labelsOrientation", + "type": "CompoundType", + "tags": [], + "label": "labelsOrientation", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LabelsOrientationConfigResult", + "text": "LabelsOrientationConfigResult" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.curveType", + "type": "CompoundType", + "tags": [], + "label": "curveType", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.XYCurveType", + "text": "XYCurveType" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.fillOpacity", + "type": "number", + "tags": [], + "label": "fillOpacity", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.hideEndzones", + "type": "CompoundType", + "tags": [], + "label": "hideEndzones", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.valuesInLegend", + "type": "CompoundType", + "tags": [], + "label": "valuesInLegend", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYArgs.ariaLabel", + "type": "string", + "tags": [], + "label": "ariaLabel", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYChartProps", + "type": "Interface", + "tags": [], + "label": "XYChartProps", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.XYChartProps.data", + "type": "Object", + "tags": [], + "label": "data", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LensMultiTable", + "text": "LensMultiTable" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYChartProps.args", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.XYArgs", + "text": "XYArgs" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYRender", + "type": "Interface", + "tags": [], + "label": "XYRender", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.XYRender.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"render\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYRender.as", + "type": "string", + "tags": [], + "label": "as", + "description": [], + "signature": [ + "\"xyVis\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYRender.value", + "type": "Object", + "tags": [], + "label": "value", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.XYChartProps", + "text": "XYChartProps" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.YConfig", + "type": "Interface", + "tags": [], + "label": "YConfig", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.YConfig.forAccessor", + "type": "string", + "tags": [], + "label": "forAccessor", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.YConfig.axisMode", + "type": "CompoundType", + "tags": [], + "label": "axisMode", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YAxisMode", + "text": "YAxisMode" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.YConfig.color", + "type": "string", + "tags": [], + "label": "color", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.YConfig.icon", + "type": "string", + "tags": [], + "label": "icon", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.YConfig.lineWidth", + "type": "number", + "tags": [], + "label": "lineWidth", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.YConfig.lineStyle", + "type": "CompoundType", + "tags": [], + "label": "lineStyle", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LineStyle", + "text": "LineStyle" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.YConfig.fill", + "type": "CompoundType", + "tags": [], + "label": "fill", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.FillStyle", + "text": "FillStyle" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.YConfig.iconPosition", + "type": "CompoundType", + "tags": [], + "label": "iconPosition", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.IconPosition", + "text": "IconPosition" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.YConfig.textVisibility", + "type": "CompoundType", + "tags": [], + "label": "textVisibility", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.AnnotationLayerConfigResult", + "type": "Type", + "tags": [], + "label": "AnnotationLayerConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AnnotationLayerArgs", + "text": "AnnotationLayerArgs" + }, + " & { type: \"annotationLayer\"; layerType: \"annotations\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.AxisExtentConfigResult", + "type": "Type", + "tags": [], + "label": "AxisExtentConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxisExtentConfig", + "text": "AxisExtentConfig" + }, + " & { type: \"axisExtentConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.AxisExtentMode", + "type": "Type", + "tags": [], + "label": "AxisExtentMode", + "description": [], + "signature": [ + "\"custom\" | \"full\" | \"dataBounds\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.AxisTitlesVisibilityConfigResult", + "type": "Type", + "tags": [], + "label": "AxisTitlesVisibilityConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxesSettingsConfig", + "text": "AxesSettingsConfig" + }, + " & { type: \"axisTitlesVisibilityConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.DataLayerConfigResult", + "type": "Type", + "tags": [], + "label": "DataLayerConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.DataLayerArgs", + "text": "DataLayerArgs" + }, + " & { type: \"dataLayer\"; layerType: \"data\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.EndValue", + "type": "Type", + "tags": [], + "label": "EndValue", + "description": [], + "signature": [ + "\"None\" | \"Zero\" | \"Nearest\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.FillStyle", + "type": "Type", + "tags": [], + "label": "FillStyle", + "description": [], + "signature": [ + "\"above\" | \"below\" | \"none\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.FittingFunction", + "type": "Type", + "tags": [], + "label": "FittingFunction", + "description": [], + "signature": [ + "\"None\" | \"Zero\" | \"Linear\" | \"Carry\" | \"Lookahead\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.GridlinesConfigResult", + "type": "Type", + "tags": [], + "label": "GridlinesConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxesSettingsConfig", + "text": "AxesSettingsConfig" + }, + " & { type: \"gridlinesConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.IconPosition", + "type": "Type", + "tags": [], + "label": "IconPosition", + "description": [], + "signature": [ + "\"above\" | \"below\" | \"left\" | \"right\" | \"auto\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LabelsOrientationConfigResult", + "type": "Type", + "tags": [], + "label": "LabelsOrientationConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LabelsOrientationConfig", + "text": "LabelsOrientationConfig" + }, + " & { type: \"labelsOrientationConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LayerType", + "type": "Type", + "tags": [], + "label": "LayerType", + "description": [], + "signature": [ + "\"data\" | \"annotations\" | \"referenceLine\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LegendConfigResult", + "type": "Type", + "tags": [], + "label": "LegendConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LegendConfig", + "text": "LegendConfig" + }, + " & { type: \"legendConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.LineStyle", + "type": "Type", + "tags": [], + "label": "LineStyle", + "description": [], + "signature": [ + "\"solid\" | \"dashed\" | \"dotted\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.PLUGIN_ID", + "type": "string", + "tags": [], + "label": "PLUGIN_ID", + "description": [], + "signature": [ + "\"expressionXy\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/index.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.PLUGIN_NAME", + "type": "string", + "tags": [], + "label": "PLUGIN_NAME", + "description": [], + "signature": [ + "\"expressionXy\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/index.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.ReferenceLineLayerConfigResult", + "type": "Type", + "tags": [], + "label": "ReferenceLineLayerConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.ReferenceLineLayerArgs", + "text": "ReferenceLineLayerArgs" + }, + " & { type: \"referenceLineLayer\"; layerType: \"referenceLine\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.SeriesType", + "type": "Type", + "tags": [], + "label": "SeriesType", + "description": [], + "signature": [ + "\"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/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.TickLabelsConfigResult", + "type": "Type", + "tags": [], + "label": "TickLabelsConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxesSettingsConfig", + "text": "AxesSettingsConfig" + }, + " & { type: \"tickLabelsConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.ValueLabelMode", + "type": "Type", + "tags": [], + "label": "ValueLabelMode", + "description": [], + "signature": [ + "\"hide\" | \"inside\" | \"outside\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XScaleType", + "type": "Type", + "tags": [], + "label": "XScaleType", + "description": [], + "signature": [ + "\"time\" | \"linear\" | \"ordinal\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYCurveType", + "type": "Type", + "tags": [], + "label": "XYCurveType", + "description": [], + "signature": [ + "\"LINEAR\" | \"CURVE_MONOTONE_X\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYLayerArgs", + "type": "Type", + "tags": [], + "label": "XYLayerArgs", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.DataLayerArgs", + "text": "DataLayerArgs" + }, + " | ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.ReferenceLineLayerArgs", + "text": "ReferenceLineLayerArgs" + }, + " | ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AnnotationLayerArgs", + "text": "AnnotationLayerArgs" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYLayerConfigResult", + "type": "Type", + "tags": [], + "label": "XYLayerConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.DataLayerConfigResult", + "text": "DataLayerConfigResult" + }, + " | ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.ReferenceLineLayerConfigResult", + "text": "ReferenceLineLayerConfigResult" + }, + " | ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AnnotationLayerConfigResult", + "text": "AnnotationLayerConfigResult" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.YAxisMode", + "type": "Type", + "tags": [], + "label": "YAxisMode", + "description": [], + "signature": [ + "\"bottom\" | \"left\" | \"right\" | \"auto\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.YConfigResult", + "type": "Type", + "tags": [], + "label": "YConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YConfig", + "text": "YConfig" + }, + " & { type: \"yConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.YScaleType", + "type": "Type", + "tags": [], + "label": "YScaleType", + "description": [], + "signature": [ + "\"time\" | \"log\" | \"sqrt\" | \"linear\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + } + ], + "objects": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction", + "type": "Object", + "tags": [], + "label": "axisExtentConfigFunction", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "\"axisExtentConfig\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.aliases", + "type": "Array", + "tags": [], + "label": "aliases", + "description": [], + "signature": [ + "never[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"axisExtentConfig\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.inputTypes", + "type": "Array", + "tags": [], + "label": "inputTypes", + "description": [], + "signature": [ + "\"null\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.args", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.args.mode", + "type": "Object", + "tags": [], + "label": "mode", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.args.mode.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.args.mode.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "(\"custom\" | \"full\" | \"dataBounds\")[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.args.mode.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.args.lowerBound", + "type": "Object", + "tags": [], + "label": "lowerBound", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.args.lowerBound.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"number\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.args.lowerBound.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.args.upperBound", + "type": "Object", + "tags": [], + "label": "upperBound", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.args.upperBound.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"number\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.args.upperBound.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false + } + ] + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.fn", + "type": "Function", + "tags": [], + "label": "fn", + "description": [], + "signature": [ + "(input: null, args: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxisExtentConfig", + "text": "AxisExtentConfig" + }, + ") => { mode: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxisExtentMode", + "text": "AxisExtentMode" + }, + "; lowerBound?: number | undefined; upperBound?: number | undefined; type: \"axisExtentConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.fn.$1", + "type": "Uncategorized", + "tags": [], + "label": "input", + "description": [], + "signature": [ + "null" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisExtentConfigFunction.fn.$2", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxisExtentConfig", + "text": "AxisExtentConfig" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_extent_config.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction", + "type": "Object", + "tags": [], + "label": "axisTitlesVisibilityConfigFunction", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "\"axisTitlesVisibilityConfig\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.aliases", + "type": "Array", + "tags": [], + "label": "aliases", + "description": [], + "signature": [ + "never[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"axisTitlesVisibilityConfig\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.inputTypes", + "type": "Array", + "tags": [], + "label": "inputTypes", + "description": [], + "signature": [ + "\"null\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.args", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.args.x", + "type": "Object", + "tags": [], + "label": "x", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.args.x.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.args.x.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.args.yLeft", + "type": "Object", + "tags": [], + "label": "yLeft", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.args.yLeft.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.args.yLeft.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.args.yRight", + "type": "Object", + "tags": [], + "label": "yRight", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.args.yRight.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.args.yRight.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false + } + ] + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.fn", + "type": "Function", + "tags": [], + "label": "fn", + "description": [], + "signature": [ + "(inputn: null, args: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxesSettingsConfig", + "text": "AxesSettingsConfig" + }, + ") => { x: boolean; yLeft: boolean; yRight: boolean; type: \"axisTitlesVisibilityConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.fn.$1", + "type": "Uncategorized", + "tags": [], + "label": "inputn", + "description": [], + "signature": [ + "null" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.axisTitlesVisibilityConfigFunction.fn.$2", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxesSettingsConfig", + "text": "AxesSettingsConfig" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/axis_titles_visibility_config.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction", + "type": "Object", + "tags": [], + "label": "dataLayerConfigFunction", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "\"dataLayer\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.aliases", + "type": "Array", + "tags": [], + "label": "aliases", + "description": [], + "signature": [ + "never[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"dataLayer\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.inputTypes", + "type": "Array", + "tags": [], + "label": "inputTypes", + "description": [], + "signature": [ + "\"null\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.hide", + "type": "Object", + "tags": [], + "label": "hide", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.hide.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.hide.default", + "type": "boolean", + "tags": [], + "label": "default", + "description": [], + "signature": [ + "false" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.hide.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.layerId", + "type": "Object", + "tags": [], + "label": "layerId", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.layerId.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.layerId.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.xAccessor", + "type": "Object", + "tags": [], + "label": "xAccessor", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.xAccessor.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.xAccessor.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.seriesType", + "type": "Object", + "tags": [], + "label": "seriesType", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.seriesType.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.seriesType.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "(\"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/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.seriesType.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.xScaleType", + "type": "Object", + "tags": [], + "label": "xScaleType", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.xScaleType.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "(\"time\" | \"linear\" | \"ordinal\")[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.xScaleType.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.xScaleType.default", + "type": "string", + "tags": [], + "label": "default", + "description": [], + "signature": [ + "\"ordinal\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.isHistogram", + "type": "Object", + "tags": [], + "label": "isHistogram", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.isHistogram.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.isHistogram.default", + "type": "boolean", + "tags": [], + "label": "default", + "description": [], + "signature": [ + "false" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.isHistogram.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.yScaleType", + "type": "Object", + "tags": [], + "label": "yScaleType", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.yScaleType.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "(\"time\" | \"log\" | \"sqrt\" | \"linear\")[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.yScaleType.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.yScaleType.default", + "type": "string", + "tags": [], + "label": "default", + "description": [], + "signature": [ + "\"linear\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.splitAccessor", + "type": "Object", + "tags": [], + "label": "splitAccessor", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.splitAccessor.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.splitAccessor.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.accessors", + "type": "Object", + "tags": [], + "label": "accessors", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.accessors.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.accessors.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.accessors.multi", + "type": "boolean", + "tags": [], + "label": "multi", + "description": [], + "signature": [ + "true" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.yConfig", + "type": "Object", + "tags": [], + "label": "yConfig", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.yConfig.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"yConfig\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.yConfig.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.yConfig.multi", + "type": "boolean", + "tags": [], + "label": "multi", + "description": [], + "signature": [ + "true" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.columnToLabel", + "type": "Object", + "tags": [], + "label": "columnToLabel", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.columnToLabel.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.columnToLabel.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.palette", + "type": "Object", + "tags": [], + "label": "palette", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.palette.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "(\"palette\" | \"system_palette\")[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.palette.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.args.palette.default", + "type": "string", + "tags": [], + "label": "default", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false + } + ] + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.fn", + "type": "Function", + "tags": [], + "label": "fn", + "description": [], + "signature": [ + "(input: null, args: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.DataLayerArgs", + "text": "DataLayerArgs" + }, + ") => { layerType: \"data\"; layerId: string; accessors: string[]; seriesType: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.SeriesType", + "text": "SeriesType" + }, + "; xAccessor?: string | undefined; hide?: boolean | undefined; splitAccessor?: string | undefined; columnToLabel?: string | undefined; yScaleType: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YScaleType", + "text": "YScaleType" + }, + "; xScaleType: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.XScaleType", + "text": "XScaleType" + }, + "; isHistogram: boolean; palette: ", + { + "pluginId": "charts", + "scope": "common", + "docId": "kibChartsPluginApi", + "section": "def-common.PaletteOutput", + "text": "PaletteOutput" + }, + "<{ [key: string]: unknown; }>; yConfig?: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YConfigResult", + "text": "YConfigResult" + }, + "[] | undefined; type: \"dataLayer\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.fn.$1", + "type": "Uncategorized", + "tags": [], + "label": "input", + "description": [], + "signature": [ + "null" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.dataLayerConfigFunction.fn.$2", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.DataLayerArgs", + "text": "DataLayerArgs" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/data_layer_config.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction", + "type": "Object", + "tags": [], + "label": "gridlinesConfigFunction", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "\"gridlinesConfig\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.aliases", + "type": "Array", + "tags": [], + "label": "aliases", + "description": [], + "signature": [ + "never[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"gridlinesConfig\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.inputTypes", + "type": "Array", + "tags": [], + "label": "inputTypes", + "description": [], + "signature": [ + "\"null\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.args", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.args.x", + "type": "Object", + "tags": [], + "label": "x", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.args.x.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.args.x.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.args.yLeft", + "type": "Object", + "tags": [], + "label": "yLeft", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.args.yLeft.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.args.yLeft.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.args.yRight", + "type": "Object", + "tags": [], + "label": "yRight", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.args.yRight.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.args.yRight.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false + } + ] + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.fn", + "type": "Function", + "tags": [], + "label": "fn", + "description": [], + "signature": [ + "(input: null, args: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxesSettingsConfig", + "text": "AxesSettingsConfig" + }, + ") => { x: boolean; yLeft: boolean; yRight: boolean; type: \"gridlinesConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.fn.$1", + "type": "Uncategorized", + "tags": [], + "label": "input", + "description": [], + "signature": [ + "null" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.gridlinesConfigFunction.fn.$2", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxesSettingsConfig", + "text": "AxesSettingsConfig" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/grid_lines_config.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction", + "type": "Object", + "tags": [], + "label": "labelsOrientationConfigFunction", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "\"labelsOrientationConfig\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.aliases", + "type": "Array", + "tags": [], + "label": "aliases", + "description": [], + "signature": [ + "never[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"labelsOrientationConfig\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.inputTypes", + "type": "Array", + "tags": [], + "label": "inputTypes", + "description": [], + "signature": [ + "\"null\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.args", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.args.x", + "type": "Object", + "tags": [], + "label": "x", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.args.x.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"number\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.args.x.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "number[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.args.x.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.args.yLeft", + "type": "Object", + "tags": [], + "label": "yLeft", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.args.yLeft.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"number\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.args.yLeft.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "number[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.args.yLeft.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.args.yRight", + "type": "Object", + "tags": [], + "label": "yRight", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.args.yRight.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"number\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.args.yRight.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "number[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.args.yRight.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false + } + ] + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.fn", + "type": "Function", + "tags": [], + "label": "fn", + "description": [], + "signature": [ + "(input: null, args: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LabelsOrientationConfig", + "text": "LabelsOrientationConfig" + }, + ") => { x: number; yLeft: number; yRight: number; type: \"labelsOrientationConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.fn.$1", + "type": "Uncategorized", + "tags": [], + "label": "input", + "description": [], + "signature": [ + "null" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.labelsOrientationConfigFunction.fn.$2", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LabelsOrientationConfig", + "text": "LabelsOrientationConfig" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/labels_orientation_config.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction", + "type": "Object", + "tags": [], + "label": "legendConfigFunction", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "\"legendConfig\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.aliases", + "type": "Array", + "tags": [], + "label": "aliases", + "description": [], + "signature": [ + "never[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"legendConfig\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.inputTypes", + "type": "Array", + "tags": [], + "label": "inputTypes", + "description": [], + "signature": [ + "\"null\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.isVisible", + "type": "Object", + "tags": [], + "label": "isVisible", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.isVisible.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.isVisible.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.position", + "type": "Object", + "tags": [], + "label": "position", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.position.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.position.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "(\"top\" | \"bottom\" | \"left\" | \"right\")[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.position.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.showSingleSeries", + "type": "Object", + "tags": [], + "label": "showSingleSeries", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.showSingleSeries.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.showSingleSeries.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.isInside", + "type": "Object", + "tags": [], + "label": "isInside", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.isInside.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.isInside.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.horizontalAlignment", + "type": "Object", + "tags": [], + "label": "horizontalAlignment", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.horizontalAlignment.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.horizontalAlignment.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "(\"left\" | \"right\")[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.horizontalAlignment.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.verticalAlignment", + "type": "Object", + "tags": [], + "label": "verticalAlignment", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.verticalAlignment.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.verticalAlignment.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "(\"top\" | \"bottom\")[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.verticalAlignment.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.floatingColumns", + "type": "Object", + "tags": [], + "label": "floatingColumns", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.floatingColumns.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"number\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.floatingColumns.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.maxLines", + "type": "Object", + "tags": [], + "label": "maxLines", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.maxLines.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"number\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.maxLines.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.shouldTruncate", + "type": "Object", + "tags": [], + "label": "shouldTruncate", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.shouldTruncate.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.shouldTruncate.default", + "type": "boolean", + "tags": [], + "label": "default", + "description": [], + "signature": [ + "true" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.shouldTruncate.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.legendSize", + "type": "Object", + "tags": [], + "label": "legendSize", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.legendSize.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"number\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.args.legendSize.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false + } + ] + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.fn", + "type": "Function", + "tags": [], + "label": "fn", + "description": [], + "signature": [ + "(input: null, args: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LegendConfig", + "text": "LegendConfig" + }, + ") => { isVisible: boolean; position: ", + "Position", + "; showSingleSeries?: boolean | undefined; isInside?: boolean | undefined; horizontalAlignment?: ", + "HorizontalAlignment", + " | undefined; verticalAlignment?: ", + "VerticalAlignment", + " | undefined; floatingColumns?: number | undefined; maxLines?: number | undefined; shouldTruncate?: boolean | undefined; legendSize?: number | undefined; type: \"legendConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.fn.$1", + "type": "Uncategorized", + "tags": [], + "label": "input", + "description": [], + "signature": [ + "null" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.legendConfigFunction.fn.$2", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LegendConfig", + "text": "LegendConfig" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/legend_config.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction", + "type": "Object", + "tags": [], + "label": "referenceLineLayerConfigFunction", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "\"referenceLineLayer\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.aliases", + "type": "Array", + "tags": [], + "label": "aliases", + "description": [], + "signature": [ + "never[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"referenceLineLayer\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.inputTypes", + "type": "Array", + "tags": [], + "label": "inputTypes", + "description": [], + "signature": [ + "\"null\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.args", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.args.layerId", + "type": "Object", + "tags": [], + "label": "layerId", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.args.layerId.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.args.layerId.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.args.accessors", + "type": "Object", + "tags": [], + "label": "accessors", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.args.accessors.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.args.accessors.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.args.accessors.multi", + "type": "boolean", + "tags": [], + "label": "multi", + "description": [], + "signature": [ + "true" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.args.yConfig", + "type": "Object", + "tags": [], + "label": "yConfig", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.args.yConfig.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"yConfig\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.args.yConfig.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.args.yConfig.multi", + "type": "boolean", + "tags": [], + "label": "multi", + "description": [], + "signature": [ + "true" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.args.columnToLabel", + "type": "Object", + "tags": [], + "label": "columnToLabel", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.args.columnToLabel.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.args.columnToLabel.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false + } + ] + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.fn", + "type": "Function", + "tags": [], + "label": "fn", + "description": [], + "signature": [ + "(input: null, args: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.ReferenceLineLayerArgs", + "text": "ReferenceLineLayerArgs" + }, + ") => { layerType: \"referenceLine\"; layerId: string; accessors: string[]; columnToLabel?: string | undefined; yConfig?: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YConfigResult", + "text": "YConfigResult" + }, + "[] | undefined; type: \"referenceLineLayer\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.fn.$1", + "type": "Uncategorized", + "tags": [], + "label": "input", + "description": [], + "signature": [ + "null" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.referenceLineLayerConfigFunction.fn.$2", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.ReferenceLineLayerArgs", + "text": "ReferenceLineLayerArgs" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/reference_line_layer_config.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction", + "type": "Object", + "tags": [], + "label": "tickLabelsConfigFunction", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "\"tickLabelsConfig\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.aliases", + "type": "Array", + "tags": [], + "label": "aliases", + "description": [], + "signature": [ + "never[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"tickLabelsConfig\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.inputTypes", + "type": "Array", + "tags": [], + "label": "inputTypes", + "description": [], + "signature": [ + "\"null\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.args", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.args.x", + "type": "Object", + "tags": [], + "label": "x", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.args.x.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.args.x.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.args.yLeft", + "type": "Object", + "tags": [], + "label": "yLeft", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.args.yLeft.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.args.yLeft.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.args.yRight", + "type": "Object", + "tags": [], + "label": "yRight", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.args.yRight.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.args.yRight.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false + } + ] + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.fn", + "type": "Function", + "tags": [], + "label": "fn", + "description": [], + "signature": [ + "(input: null, args: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxesSettingsConfig", + "text": "AxesSettingsConfig" + }, + ") => { x: boolean; yLeft: boolean; yRight: boolean; type: \"tickLabelsConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.fn.$1", + "type": "Uncategorized", + "tags": [], + "label": "input", + "description": [], + "signature": [ + "null" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.tickLabelsConfigFunction.fn.$2", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxesSettingsConfig", + "text": "AxesSettingsConfig" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/tick_labels_config.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction", + "type": "Object", + "tags": [], + "label": "xyVisFunction", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "\"xyVis\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"render\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.inputTypes", + "type": "Array", + "tags": [], + "label": "inputTypes", + "description": [], + "signature": [ + "\"lens_multitable\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.title", + "type": "Object", + "tags": [], + "label": "title", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.title.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.title.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.description", + "type": "Object", + "tags": [], + "label": "description", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.description.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.description.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.xTitle", + "type": "Object", + "tags": [], + "label": "xTitle", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.xTitle.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.xTitle.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.yTitle", + "type": "Object", + "tags": [], + "label": "yTitle", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.yTitle.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.yTitle.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.yRightTitle", + "type": "Object", + "tags": [], + "label": "yRightTitle", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.yRightTitle.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.yRightTitle.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.yLeftExtent", + "type": "Object", + "tags": [], + "label": "yLeftExtent", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.yLeftExtent.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"axisExtentConfig\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.yLeftExtent.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.yRightExtent", + "type": "Object", + "tags": [], + "label": "yRightExtent", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.yRightExtent.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"axisExtentConfig\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.yRightExtent.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.legend", + "type": "Object", + "tags": [], + "label": "legend", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.legend.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"legendConfig\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.legend.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.fittingFunction", + "type": "Object", + "tags": [], + "label": "fittingFunction", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.fittingFunction.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.fittingFunction.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "(\"None\" | \"Zero\" | \"Linear\" | \"Carry\" | \"Lookahead\")[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.fittingFunction.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.endValue", + "type": "Object", + "tags": [], + "label": "endValue", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.endValue.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.endValue.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "(\"None\" | \"Zero\" | \"Nearest\")[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.endValue.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.emphasizeFitting", + "type": "Object", + "tags": [], + "label": "emphasizeFitting", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.emphasizeFitting.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.emphasizeFitting.default", + "type": "boolean", + "tags": [], + "label": "default", + "description": [], + "signature": [ + "false" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.emphasizeFitting.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.valueLabels", + "type": "Object", + "tags": [], + "label": "valueLabels", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.valueLabels.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.valueLabels.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "(\"hide\" | \"inside\" | \"outside\")[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.valueLabels.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.tickLabelsVisibilitySettings", + "type": "Object", + "tags": [], + "label": "tickLabelsVisibilitySettings", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.tickLabelsVisibilitySettings.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"tickLabelsConfig\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.tickLabelsVisibilitySettings.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.labelsOrientation", + "type": "Object", + "tags": [], + "label": "labelsOrientation", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.labelsOrientation.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"labelsOrientationConfig\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.labelsOrientation.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.gridlinesVisibilitySettings", + "type": "Object", + "tags": [], + "label": "gridlinesVisibilitySettings", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.gridlinesVisibilitySettings.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"gridlinesConfig\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.gridlinesVisibilitySettings.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.axisTitlesVisibilitySettings", + "type": "Object", + "tags": [], + "label": "axisTitlesVisibilitySettings", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.axisTitlesVisibilitySettings.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"axisTitlesVisibilityConfig\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.axisTitlesVisibilitySettings.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.layers", + "type": "Object", + "tags": [], + "label": "layers", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.layers.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "(\"dataLayer\" | \"referenceLineLayer\" | \"annotationLayer\")[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.layers.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.layers.multi", + "type": "boolean", + "tags": [], + "label": "multi", + "description": [], + "signature": [ + "true" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.curveType", + "type": "Object", + "tags": [], + "label": "curveType", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.curveType.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.curveType.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "(\"LINEAR\" | \"CURVE_MONOTONE_X\")[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.curveType.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.fillOpacity", + "type": "Object", + "tags": [], + "label": "fillOpacity", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.fillOpacity.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"number\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.fillOpacity.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.hideEndzones", + "type": "Object", + "tags": [], + "label": "hideEndzones", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.hideEndzones.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.hideEndzones.default", + "type": "boolean", + "tags": [], + "label": "default", + "description": [], + "signature": [ + "false" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.hideEndzones.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.valuesInLegend", + "type": "Object", + "tags": [], + "label": "valuesInLegend", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.valuesInLegend.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.valuesInLegend.default", + "type": "boolean", + "tags": [], + "label": "default", + "description": [], + "signature": [ + "false" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.valuesInLegend.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.ariaLabel", + "type": "Object", + "tags": [], + "label": "ariaLabel", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.ariaLabel.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.ariaLabel.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.args.ariaLabel.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "false" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false + } + ] + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.fn", + "type": "Function", + "tags": [], + "label": "fn", + "description": [], + "signature": [ + "(data: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LensMultiTable", + "text": "LensMultiTable" + }, + ", args: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.XYArgs", + "text": "XYArgs" + }, + ", handlers: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExecutionContext", + "text": "ExecutionContext" + }, + "<", + { + "pluginId": "inspector", + "scope": "common", + "docId": "kibInspectorPluginApi", + "section": "def-common.Adapters", + "text": "Adapters" + }, + ", ", + "SerializableRecord", + ">) => { type: \"render\"; as: \"xyVis\"; value: { data: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LensMultiTable", + "text": "LensMultiTable" + }, + "; args: { ariaLabel: string; title?: string | undefined; description?: string | undefined; xTitle: string; yTitle: string; yRightTitle: string; yLeftExtent: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxisExtentConfigResult", + "text": "AxisExtentConfigResult" + }, + "; yRightExtent: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxisExtentConfigResult", + "text": "AxisExtentConfigResult" + }, + "; legend: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LegendConfigResult", + "text": "LegendConfigResult" + }, + "; valueLabels: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.ValueLabelMode", + "text": "ValueLabelMode" + }, + "; layers: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.XYLayerConfigResult", + "text": "XYLayerConfigResult" + }, + "[]; endValue?: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.EndValue", + "text": "EndValue" + }, + " | undefined; emphasizeFitting?: boolean | undefined; fittingFunction?: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.FittingFunction", + "text": "FittingFunction" + }, + " | undefined; axisTitlesVisibilitySettings?: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxisTitlesVisibilityConfigResult", + "text": "AxisTitlesVisibilityConfigResult" + }, + " | undefined; tickLabelsVisibilitySettings?: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.TickLabelsConfigResult", + "text": "TickLabelsConfigResult" + }, + " | undefined; gridlinesVisibilitySettings?: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.GridlinesConfigResult", + "text": "GridlinesConfigResult" + }, + " | undefined; labelsOrientation?: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LabelsOrientationConfigResult", + "text": "LabelsOrientationConfigResult" + }, + " | undefined; curveType?: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.XYCurveType", + "text": "XYCurveType" + }, + " | undefined; fillOpacity?: number | undefined; hideEndzones?: boolean | undefined; valuesInLegend?: boolean | undefined; }; }; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.fn.$1", + "type": "Object", + "tags": [], + "label": "data", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LensMultiTable", + "text": "LensMultiTable" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.fn.$2", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.XYArgs", + "text": "XYArgs" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.xyVisFunction.fn.$3", + "type": "Object", + "tags": [], + "label": "handlers", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExecutionContext", + "text": "ExecutionContext" + }, + "<", + { + "pluginId": "inspector", + "scope": "common", + "docId": "kibInspectorPluginApi", + "section": "def-common.Adapters", + "text": "Adapters" + }, + ", ", + "SerializableRecord", + ">" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction", + "type": "Object", + "tags": [], + "label": "yAxisConfigFunction", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "\"yConfig\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.aliases", + "type": "Array", + "tags": [], + "label": "aliases", + "description": [], + "signature": [ + "never[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"yConfig\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.inputTypes", + "type": "Array", + "tags": [], + "label": "inputTypes", + "description": [], + "signature": [ + "\"null\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.forAccessor", + "type": "Object", + "tags": [], + "label": "forAccessor", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.forAccessor.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.forAccessor.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.axisMode", + "type": "Object", + "tags": [], + "label": "axisMode", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.axisMode.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.axisMode.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "(\"bottom\" | \"left\" | \"right\" | \"auto\")[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.axisMode.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.color", + "type": "Object", + "tags": [], + "label": "color", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.color.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.color.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.lineStyle", + "type": "Object", + "tags": [], + "label": "lineStyle", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.lineStyle.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.lineStyle.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "(\"solid\" | \"dashed\" | \"dotted\")[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.lineStyle.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.lineWidth", + "type": "Object", + "tags": [], + "label": "lineWidth", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.lineWidth.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"number\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.lineWidth.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.icon", + "type": "Object", + "tags": [], + "label": "icon", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.icon.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.icon.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.iconPosition", + "type": "Object", + "tags": [], + "label": "iconPosition", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.iconPosition.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.iconPosition.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "(\"above\" | \"below\" | \"left\" | \"right\" | \"auto\")[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.iconPosition.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.textVisibility", + "type": "Object", + "tags": [], + "label": "textVisibility", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.textVisibility.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.textVisibility.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.fill", + "type": "Object", + "tags": [], + "label": "fill", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.fill.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.fill.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "(\"above\" | \"below\" | \"none\")[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.args.fill.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false + } + ] + } + ] + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.fn", + "type": "Function", + "tags": [], + "label": "fn", + "description": [], + "signature": [ + "(input: null, args: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YConfig", + "text": "YConfig" + }, + ") => { forAccessor: string; axisMode?: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YAxisMode", + "text": "YAxisMode" + }, + " | undefined; color?: string | undefined; icon?: string | undefined; lineWidth?: number | undefined; lineStyle?: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LineStyle", + "text": "LineStyle" + }, + " | undefined; fill?: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.FillStyle", + "text": "FillStyle" + }, + " | undefined; iconPosition?: ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.IconPosition", + "text": "IconPosition" + }, + " | undefined; textVisibility?: boolean | undefined; type: \"yConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.fn.$1", + "type": "Uncategorized", + "tags": [], + "label": "input", + "description": [], + "signature": [ + "null" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.yAxisConfigFunction.fn.$2", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YConfig", + "text": "YConfig" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/expression_functions/y_axis_config.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ] + } +} \ No newline at end of file diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx new file mode 100644 index 0000000000000..858f0ed4a7002 --- /dev/null +++ b/api_docs/expression_x_y.mdx @@ -0,0 +1,46 @@ +--- +id: kibExpressionXYPluginApi +slug: /kibana-dev-docs/api/expressionXY +title: "expressionXY" +image: https://source.unsplash.com/400x175/?github +summary: API docs for the expressionXY plugin +date: 2022-03-30 +tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY'] +warning: 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. +--- +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-vis-editors) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 473 | 0 | 463 | 0 | + +## Client + +### Consts, variables and types + + +## Server + +### Start + + +## Common + +### Objects + + +### Functions + + +### Interfaces + + +### Consts, variables and types + + diff --git a/api_docs/expressions.devdocs.json b/api_docs/expressions.devdocs.json index 9749191d88602..07ed1dfd834c3 100644 --- a/api_docs/expressions.devdocs.json +++ b/api_docs/expressions.devdocs.json @@ -34366,14 +34366,6 @@ "path": "src/plugins/expressions/common/expression_types/specs/render.ts", "deprecated": true, "references": [ - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/target/types/public/functions/index.d.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/target/types/public/functions/index.d.ts" - }, { "plugin": "canvas", "path": "x-pack/plugins/canvas/types/state.ts" @@ -34382,14 +34374,6 @@ "plugin": "canvas", "path": "x-pack/plugins/canvas/types/state.ts" }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/target/types/types/state.d.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/target/types/types/state.d.ts" - }, { "plugin": "canvas", "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.ts" @@ -34430,14 +34414,6 @@ "plugin": "canvas", "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/common/table.ts" }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/target/types/canvas_plugin_src/functions/browser/markdown.d.ts" - }, - { - "plugin": "canvas", - "path": "x-pack/plugins/canvas/target/types/canvas_plugin_src/functions/browser/markdown.d.ts" - }, { "plugin": "visTypeXy", "path": "src/plugins/vis_types/xy/public/expression_functions/xy_vis_fn.ts" diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index 9101e4139b50b..863a44e1db472 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github summary: API docs for the expressions plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] warning: 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. --- diff --git a/api_docs/features.mdx b/api_docs/features.mdx index c7f90ce7dbdcf..4d44d85f5af35 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github summary: API docs for the features plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features'] warning: 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. --- diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index 002c4678ca62d..a3755ab95d7cd 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github summary: API docs for the fieldFormats plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] warning: 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. --- diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index ef5c437ae1ed8..599bcb60fba89 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github summary: API docs for the fileUpload plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload'] warning: 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. --- diff --git a/api_docs/fleet.devdocs.json b/api_docs/fleet.devdocs.json index fa373cd16c7bb..8ba2cf8a6aba9 100644 --- a/api_docs/fleet.devdocs.json +++ b/api_docs/fleet.devdocs.json @@ -12831,6 +12831,29 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "fleet", + "id": "def-common.GetFullAgentManifestResponse", + "type": "Interface", + "tags": [], + "label": "GetFullAgentManifestResponse", + "description": [], + "path": "x-pack/plugins/fleet/common/types/rest_spec/agent_policy.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "fleet", + "id": "def-common.GetFullAgentManifestResponse.item", + "type": "string", + "tags": [], + "label": "item", + "description": [], + "path": "x-pack/plugins/fleet/common/types/rest_spec/agent_policy.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "fleet", "id": "def-common.GetFullAgentPolicyRequest", @@ -19857,6 +19880,17 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "fleet", + "id": "def-common.K8S_API_ROOT", + "type": "string", + "tags": [], + "label": "K8S_API_ROOT", + "description": [], + "path": "x-pack/plugins/fleet/common/constants/routes.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "fleet", "id": "def-common.KEEP_POLICIES_UP_TO_DATE_PACKAGES", @@ -21586,6 +21620,36 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "fleet", + "id": "def-common.agentPolicyRouteService.getK8sInfoPath", + "type": "Function", + "tags": [], + "label": "getK8sInfoPath", + "description": [], + "signature": [ + "() => string" + ], + "path": "x-pack/plugins/fleet/common/services/routes.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "fleet", + "id": "def-common.agentPolicyRouteService.getK8sFullDownloadPath", + "type": "Function", + "tags": [], + "label": "getK8sFullDownloadPath", + "description": [], + "signature": [ + "() => string" + ], + "path": "x-pack/plugins/fleet/common/services/routes.ts", + "deprecated": false, + "children": [], + "returnComment": [] } ], "initialIsOpen": false @@ -22870,6 +22934,39 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "fleet", + "id": "def-common.K8S_API_ROUTES", + "type": "Object", + "tags": [], + "label": "K8S_API_ROUTES", + "description": [], + "path": "x-pack/plugins/fleet/common/constants/routes.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "fleet", + "id": "def-common.K8S_API_ROUTES.K8S_DOWNLOAD_PATTERN", + "type": "string", + "tags": [], + "label": "K8S_DOWNLOAD_PATTERN", + "description": [], + "path": "x-pack/plugins/fleet/common/constants/routes.ts", + "deprecated": false + }, + { + "parentPluginId": "fleet", + "id": "def-common.K8S_API_ROUTES.K8S_INFO_PATTERN", + "type": "string", + "tags": [], + "label": "K8S_INFO_PATTERN", + "description": [], + "path": "x-pack/plugins/fleet/common/constants/routes.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "fleet", "id": "def-common.OUTPUT_API_ROUTES", diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 1cb4779cf05ac..aa74d88d6aa16 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github summary: API docs for the fleet plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Fleet](https://github.com/orgs/elastic/teams/fleet) for questions regar | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 1371 | 8 | 1254 | 9 | +| 1379 | 8 | 1262 | 9 | ## Client diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index 460a8f1f99c7e..6c2c5d2889d0f 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github summary: API docs for the globalSearch plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch'] warning: 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. --- diff --git a/api_docs/home.mdx b/api_docs/home.mdx index e66141c5d0ea4..77a51505a2f61 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github summary: API docs for the home plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] warning: 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. --- diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index 735d7c86b1d77..8fae7c156a419 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github summary: API docs for the indexLifecycleManagement plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement'] warning: 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. --- diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index 68d525f2967e5..7fcaa9e14541d 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github summary: API docs for the indexManagement plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] warning: 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. --- diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index 3c7d240b135bb..7c6a88d9dd1bd 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github summary: API docs for the infra plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra'] warning: 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. --- diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx index 67ef909de820a..baaa6001edb0b 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github summary: API docs for the inspector plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] warning: 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. --- diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index 7b6e04383eabc..cfa5fe0702a66 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github summary: API docs for the interactiveSetup plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] warning: 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. --- diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index 81eaf8db3ac71..8524b1aca18ed 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/ace plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace'] warning: 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. --- diff --git a/api_docs/kbn_alerts.mdx b/api_docs/kbn_alerts.mdx index 9c49f7f420cba..2c6c02ddf0c50 100644 --- a/api_docs/kbn_alerts.mdx +++ b/api_docs/kbn_alerts.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-alerts title: "@kbn/alerts" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/alerts plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] warning: 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. --- diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index 196faa8fa3bd0..3c94f10dda196 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/analytics plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] warning: 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. --- diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index 0249c5f880e94..4c5f60105cffd 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/apm-config-loader plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader'] warning: 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. --- diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index 0c7bcc25456e5..a6896c0760e1b 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/apm-utils plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] warning: 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. --- diff --git a/api_docs/kbn_axe_config.devdocs.json b/api_docs/kbn_axe_config.devdocs.json new file mode 100644 index 0000000000000..0622996dacdea --- /dev/null +++ b/api_docs/kbn_axe_config.devdocs.json @@ -0,0 +1,149 @@ +{ + "id": "@kbn/axe-config", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [ + { + "parentPluginId": "@kbn/axe-config", + "id": "def-common.AXE_CONFIG", + "type": "Object", + "tags": [], + "label": "AXE_CONFIG", + "description": [], + "path": "packages/kbn-axe-config/src/index.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/axe-config", + "id": "def-common.AXE_CONFIG.rules", + "type": "Array", + "tags": [], + "label": "rules", + "description": [], + "signature": [ + "{ id: string; selector: string; }[]" + ], + "path": "packages/kbn-axe-config/src/index.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/axe-config", + "id": "def-common.AXE_OPTIONS", + "type": "Object", + "tags": [], + "label": "AXE_OPTIONS", + "description": [], + "path": "packages/kbn-axe-config/src/index.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/axe-config", + "id": "def-common.AXE_OPTIONS.reporter", + "type": "CompoundType", + "tags": [], + "label": "reporter", + "description": [], + "signature": [ + "\"raw\" | \"v2\" | \"v1\" | \"raw-env\" | \"no-passes\"" + ], + "path": "packages/kbn-axe-config/src/index.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/axe-config", + "id": "def-common.AXE_OPTIONS.runOnly", + "type": "Array", + "tags": [], + "label": "runOnly", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-axe-config/src/index.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/axe-config", + "id": "def-common.AXE_OPTIONS.rules", + "type": "Object", + "tags": [], + "label": "rules", + "description": [], + "path": "packages/kbn-axe-config/src/index.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/axe-config", + "id": "def-common.AXE_OPTIONS.rules.colorcontrast", + "type": "Object", + "tags": [], + "label": "'color-contrast'", + "description": [], + "path": "packages/kbn-axe-config/src/index.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/axe-config", + "id": "def-common.AXE_OPTIONS.rules.colorcontrast.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "path": "packages/kbn-axe-config/src/index.ts", + "deprecated": false + } + ] + }, + { + "parentPluginId": "@kbn/axe-config", + "id": "def-common.AXE_OPTIONS.rules.bypass", + "type": "Object", + "tags": [], + "label": "bypass", + "description": [], + "path": "packages/kbn-axe-config/src/index.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/axe-config", + "id": "def-common.AXE_OPTIONS.rules.bypass.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "path": "packages/kbn-axe-config/src/index.ts", + "deprecated": false + } + ] + } + ] + } + ], + "initialIsOpen": false + } + ] + } +} \ No newline at end of file diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx new file mode 100644 index 0000000000000..c581f469cc98f --- /dev/null +++ b/api_docs/kbn_axe_config.mdx @@ -0,0 +1,27 @@ +--- +id: kibKbnAxeConfigPluginApi +slug: /kibana-dev-docs/api/kbn-axe-config +title: "@kbn/axe-config" +image: https://source.unsplash.com/400x175/?github +summary: API docs for the @kbn/axe-config plugin +date: 2022-03-30 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] +warning: 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. +--- +import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; + + + +Contact [Owner missing] for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 10 | 0 | 10 | 0 | + +## Common + +### Objects + + diff --git a/api_docs/kbn_bazel_packages.mdx b/api_docs/kbn_bazel_packages.mdx index b52570b5e5d7f..5cc63c34e7baf 100644 --- a/api_docs/kbn_bazel_packages.mdx +++ b/api_docs/kbn_bazel_packages.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-bazel-packages title: "@kbn/bazel-packages" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/bazel-packages plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/bazel-packages'] warning: 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. --- diff --git a/api_docs/kbn_cli_dev_mode.mdx b/api_docs/kbn_cli_dev_mode.mdx index 8e334c0d762c1..da89161857ca8 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/cli-dev-mode plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] warning: 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. --- diff --git a/api_docs/kbn_config.mdx b/api_docs/kbn_config.mdx index a5af39a8a0872..f7e9c775f6fbb 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/config plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config'] warning: 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. --- diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx index a7df7613cc2f5..6b1630ba7d9f5 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/config-schema plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] warning: 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. --- diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx index e48252de8fb60..22258a34b16c4 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/crypto plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto'] warning: 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. --- diff --git a/api_docs/kbn_dev_utils.devdocs.json b/api_docs/kbn_dev_utils.devdocs.json index b15a7d7a04f67..df9555c477a97 100644 --- a/api_docs/kbn_dev_utils.devdocs.json +++ b/api_docs/kbn_dev_utils.devdocs.json @@ -2430,44 +2430,6 @@ "returnComment": [], "initialIsOpen": false }, - { - "parentPluginId": "@kbn/dev-utils", - "id": "def-server.parseKibanaPlatformPlugin", - "type": "Function", - "tags": [], - "label": "parseKibanaPlatformPlugin", - "description": [], - "signature": [ - "(manifestPath: string) => ", - { - "pluginId": "@kbn/dev-utils", - "scope": "server", - "docId": "kibKbnDevUtilsPluginApi", - "section": "def-server.KibanaPlatformPlugin", - "text": "KibanaPlatformPlugin" - } - ], - "path": "packages/kbn-dev-utils/src/plugins/parse_kibana_platform_plugin.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "@kbn/dev-utils", - "id": "def-server.parseKibanaPlatformPlugin.$1", - "type": "string", - "tags": [], - "label": "manifestPath", - "description": [], - "signature": [ - "string" - ], - "path": "packages/kbn-dev-utils/src/plugins/parse_kibana_platform_plugin.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/dev-utils", "id": "def-server.parseLogLevel", @@ -2676,61 +2638,6 @@ "returnComment": [], "initialIsOpen": false }, - { - "parentPluginId": "@kbn/dev-utils", - "id": "def-server.simpleKibanaPlatformPluginDiscovery", - "type": "Function", - "tags": [], - "label": "simpleKibanaPlatformPluginDiscovery", - "description": [ - "\nHelper to find the new platform plugins." - ], - "signature": [ - "(scanDirs: string[], pluginPaths: string[]) => ", - { - "pluginId": "@kbn/dev-utils", - "scope": "server", - "docId": "kibKbnDevUtilsPluginApi", - "section": "def-server.KibanaPlatformPlugin", - "text": "KibanaPlatformPlugin" - }, - "[]" - ], - "path": "packages/kbn-dev-utils/src/plugins/simple_kibana_platform_plugin_discovery.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "@kbn/dev-utils", - "id": "def-server.simpleKibanaPlatformPluginDiscovery.$1", - "type": "Array", - "tags": [], - "label": "scanDirs", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/kbn-dev-utils/src/plugins/simple_kibana_platform_plugin_discovery.ts", - "deprecated": false, - "isRequired": true - }, - { - "parentPluginId": "@kbn/dev-utils", - "id": "def-server.simpleKibanaPlatformPluginDiscovery.$2", - "type": "Array", - "tags": [], - "label": "pluginPaths", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/kbn-dev-utils/src/plugins/simple_kibana_platform_plugin_discovery.ts", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/dev-utils", "id": "def-server.sortPackageJson", @@ -3826,52 +3733,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "@kbn/dev-utils", - "id": "def-server.KibanaPlatformPlugin", - "type": "Interface", - "tags": [], - "label": "KibanaPlatformPlugin", - "description": [], - "path": "packages/kbn-dev-utils/src/plugins/parse_kibana_platform_plugin.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "@kbn/dev-utils", - "id": "def-server.KibanaPlatformPlugin.directory", - "type": "string", - "tags": [], - "label": "directory", - "description": [], - "path": "packages/kbn-dev-utils/src/plugins/parse_kibana_platform_plugin.ts", - "deprecated": false - }, - { - "parentPluginId": "@kbn/dev-utils", - "id": "def-server.KibanaPlatformPlugin.manifestPath", - "type": "string", - "tags": [], - "label": "manifestPath", - "description": [], - "path": "packages/kbn-dev-utils/src/plugins/parse_kibana_platform_plugin.ts", - "deprecated": false - }, - { - "parentPluginId": "@kbn/dev-utils", - "id": "def-server.KibanaPlatformPlugin.manifest", - "type": "Object", - "tags": [], - "label": "manifest", - "description": [], - "signature": [ - "Manifest" - ], - "path": "packages/kbn-dev-utils/src/plugins/parse_kibana_platform_plugin.ts", - "deprecated": false - } - ], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/dev-utils", "id": "def-server.Message", diff --git a/api_docs/kbn_dev_utils.mdx b/api_docs/kbn_dev_utils.mdx index 714481f98e1f5..d9a845b2dcc84 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/dev-utils plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 286 | 3 | 207 | 1 | +| 277 | 3 | 199 | 1 | ## Server diff --git a/api_docs/kbn_doc_links.devdocs.json b/api_docs/kbn_doc_links.devdocs.json index 7dc816e6d0513..48d1068132518 100644 --- a/api_docs/kbn_doc_links.devdocs.json +++ b/api_docs/kbn_doc_links.devdocs.json @@ -749,7 +749,7 @@ "label": "fleet", "description": [], "signature": [ - "{ readonly beatsAgentComparison: string; readonly guide: string; readonly fleetServer: string; readonly fleetServerAddFleetServer: string; readonly settings: string; readonly settingsFleetServerHostSettings: string; readonly settingsFleetServerProxySettings: string; readonly troubleshooting: string; readonly elasticAgent: string; readonly datastreams: string; readonly datastreamsNamingScheme: string; readonly installElasticAgent: string; readonly installElasticAgentStandalone: string; readonly upgradeElasticAgent: string; readonly upgradeElasticAgent712lower: string; readonly learnMoreBlog: string; readonly apiKeysLearnMore: string; readonly onPremRegistry: string; }" + "{ readonly beatsAgentComparison: string; readonly guide: string; readonly fleetServer: string; readonly fleetServerAddFleetServer: string; readonly settings: string; readonly settingsFleetServerHostSettings: string; readonly settingsFleetServerProxySettings: string; readonly troubleshooting: string; readonly elasticAgent: string; readonly datastreams: string; readonly datastreamsILM: string; readonly datastreamsNamingScheme: string; readonly installElasticAgent: string; readonly installElasticAgentStandalone: string; readonly upgradeElasticAgent: string; readonly upgradeElasticAgent712lower: string; readonly learnMoreBlog: string; readonly apiKeysLearnMore: string; readonly onPremRegistry: string; }" ], "path": "packages/kbn-doc-links/src/types.ts", "deprecated": false @@ -775,7 +775,7 @@ "label": "clients", "description": [], "signature": [ - "{ readonly guide: string; readonly goOverview: string; readonly javaIndex: string; readonly jsIntro: string; readonly netGuide: string; readonly perlGuide: string; readonly phpGuide: string; readonly pythonGuide: string; readonly rubyOverview: string; readonly rustGuide: string; }" + "{ readonly guide: string; readonly goIndex: string; readonly goOverview: string; readonly javaBasicAuthentication: string; readonly javaIndex: string; readonly javaInstallation: string; readonly javaIntroduction: string; readonly javaRestLow: string; readonly jsClientConnecting: string; readonly jsIntro: string; readonly netGuide: string; readonly netIntroduction: string; readonly netNest: string; readonly netSingleNode: string; readonly perlGuide: string; readonly phpGuide: string; readonly phpConnecting: string; readonly phpInstallation: string; readonly phpOverview: string; readonly pythonAuthentication: string; readonly pythonGuide: string; readonly pythonOverview: string; readonly rubyAuthentication: string; readonly rubyOverview: string; readonly rustGuide: string; readonly rustOverview: 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 5ce426161bc6a..6e55a17479915 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/doc-links plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links'] warning: 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. --- diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx index fea8212043478..8211548cab2d7 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/docs-utils plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] warning: 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. --- diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index c5e9759b2102a..c487e83164c17 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/es-archiver plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-archiver'] warning: 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. --- diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 1f320394b82ec..f707fc2f8fbfb 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/es-query plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] warning: 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. --- diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index a3ab0aa04405d..b9cbc692a6d38 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/field-types plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types'] warning: 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. --- diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx index a52a057fb8818..8281ef3900b76 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/generate plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] warning: 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. --- diff --git a/api_docs/kbn_i18n.devdocs.json b/api_docs/kbn_i18n.devdocs.json index 313889e4c4c3f..537449622d513 100644 --- a/api_docs/kbn_i18n.devdocs.json +++ b/api_docs/kbn_i18n.devdocs.json @@ -488,7 +488,7 @@ "section": "def-common.TranslateArguments", "text": "TranslateArguments" }, - ") => string" + ") => any" ], "path": "packages/kbn-i18n/src/index.ts", "deprecated": false, diff --git a/api_docs/kbn_i18n.mdx b/api_docs/kbn_i18n.mdx index 31dd855bb20b0..c297ad3c1e7c8 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/i18n plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] warning: 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. --- diff --git a/api_docs/kbn_interpreter.devdocs.json b/api_docs/kbn_interpreter.devdocs.json index 8aa52cf619028..e2dc487b9c0fc 100644 --- a/api_docs/kbn_interpreter.devdocs.json +++ b/api_docs/kbn_interpreter.devdocs.json @@ -456,20 +456,6 @@ ], "returnComment": [], "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/interpreter", - "id": "def-server.typedParse", - "type": "Function", - "tags": [], - "label": "typedParse", - "description": [], - "signature": [ - "Parse" - ], - "path": "packages/kbn-interpreter/src/common/lib/parse.ts", - "deprecated": false, - "initialIsOpen": false } ], "interfaces": [], @@ -648,6 +634,20 @@ "path": "packages/kbn-interpreter/src/common/lib/ast/ast.ts", "deprecated": false, "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/interpreter", + "id": "def-server.typedParse", + "type": "Any", + "tags": [], + "label": "typedParse", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-interpreter/src/common/lib/parse.ts", + "deprecated": false, + "initialIsOpen": false } ], "objects": [] diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx index 6eb04eb6b44db..176d35992aaf2 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/interpreter plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] warning: 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. --- @@ -18,7 +18,7 @@ Contact App Services for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 35 | 3 | 35 | 1 | +| 35 | 4 | 35 | 0 | ## Server diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index 92cfaddd7425c..f5a4cd10806f4 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/io-ts-utils plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] warning: 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. --- diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index fe1fc4865c53d..35a0dbcaba0ee 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/logging plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging'] warning: 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. --- diff --git a/api_docs/kbn_logging_mocks.mdx b/api_docs/kbn_logging_mocks.mdx index 47feddb9ee96e..ff3514367615d 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/logging-mocks plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks'] warning: 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. --- diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index f30d5b3005c9f..3663a185e3ac5 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/mapbox-gl plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl'] warning: 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. --- diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 131e0dca0813a..5c6ee5f3e07ea 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/monaco plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] warning: 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. --- diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index aea6c086a5d32..ea11a5271d5ff 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/optimizer plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer'] warning: 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. --- diff --git a/api_docs/kbn_plugin_discovery.devdocs.json b/api_docs/kbn_plugin_discovery.devdocs.json new file mode 100644 index 0000000000000..f3e8e676b568f --- /dev/null +++ b/api_docs/kbn_plugin_discovery.devdocs.json @@ -0,0 +1,416 @@ +{ + "id": "@kbn/plugin-discovery", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.getPluginSearchPaths", + "type": "Function", + "tags": [], + "label": "getPluginSearchPaths", + "description": [], + "signature": [ + "({ rootDir, oss, examples }: ", + { + "pluginId": "@kbn/plugin-discovery", + "scope": "server", + "docId": "kibKbnPluginDiscoveryPluginApi", + "section": "def-server.SearchOptions", + "text": "SearchOptions" + }, + ") => string[]" + ], + "path": "packages/kbn-plugin-discovery/src/plugin_search_paths.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.getPluginSearchPaths.$1", + "type": "Object", + "tags": [], + "label": "{ rootDir, oss, examples }", + "description": [], + "signature": [ + { + "pluginId": "@kbn/plugin-discovery", + "scope": "server", + "docId": "kibKbnPluginDiscoveryPluginApi", + "section": "def-server.SearchOptions", + "text": "SearchOptions" + } + ], + "path": "packages/kbn-plugin-discovery/src/plugin_search_paths.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.parseKibanaPlatformPlugin", + "type": "Function", + "tags": [], + "label": "parseKibanaPlatformPlugin", + "description": [], + "signature": [ + "(manifestPath: string) => ", + { + "pluginId": "@kbn/plugin-discovery", + "scope": "server", + "docId": "kibKbnPluginDiscoveryPluginApi", + "section": "def-server.KibanaPlatformPlugin", + "text": "KibanaPlatformPlugin" + } + ], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.parseKibanaPlatformPlugin.$1", + "type": "string", + "tags": [], + "label": "manifestPath", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.simpleKibanaPlatformPluginDiscovery", + "type": "Function", + "tags": [], + "label": "simpleKibanaPlatformPluginDiscovery", + "description": [ + "\nHelper to find the new platform plugins." + ], + "signature": [ + "(scanDirs: string[], pluginPaths: string[]) => ", + { + "pluginId": "@kbn/plugin-discovery", + "scope": "server", + "docId": "kibKbnPluginDiscoveryPluginApi", + "section": "def-server.KibanaPlatformPlugin", + "text": "KibanaPlatformPlugin" + }, + "[]" + ], + "path": "packages/kbn-plugin-discovery/src/simple_kibana_platform_plugin_discovery.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.simpleKibanaPlatformPluginDiscovery.$1", + "type": "Array", + "tags": [], + "label": "scanDirs", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-plugin-discovery/src/simple_kibana_platform_plugin_discovery.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.simpleKibanaPlatformPluginDiscovery.$2", + "type": "Array", + "tags": [], + "label": "pluginPaths", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-plugin-discovery/src/simple_kibana_platform_plugin_discovery.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPlugin", + "type": "Interface", + "tags": [], + "label": "KibanaPlatformPlugin", + "description": [], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPlugin.directory", + "type": "string", + "tags": [], + "label": "directory", + "description": [], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPlugin.manifestPath", + "type": "string", + "tags": [], + "label": "manifestPath", + "description": [], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPlugin.manifest", + "type": "Object", + "tags": [], + "label": "manifest", + "description": [], + "signature": [ + { + "pluginId": "@kbn/plugin-discovery", + "scope": "server", + "docId": "kibKbnPluginDiscoveryPluginApi", + "section": "def-server.KibanaPlatformPluginManifest", + "text": "KibanaPlatformPluginManifest" + } + ], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPluginManifest", + "type": "Interface", + "tags": [], + "label": "KibanaPlatformPluginManifest", + "description": [], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPluginManifest.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPluginManifest.ui", + "type": "boolean", + "tags": [], + "label": "ui", + "description": [], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPluginManifest.server", + "type": "boolean", + "tags": [], + "label": "server", + "description": [], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPluginManifest.kibanaVersion", + "type": "string", + "tags": [], + "label": "kibanaVersion", + "description": [], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPluginManifest.version", + "type": "string", + "tags": [], + "label": "version", + "description": [], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPluginManifest.owner", + "type": "Object", + "tags": [], + "label": "owner", + "description": [], + "signature": [ + "{ name: string; githubTeam?: string | undefined; }" + ], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPluginManifest.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPluginManifest.serviceFolders", + "type": "Object", + "tags": [], + "label": "serviceFolders", + "description": [], + "signature": [ + "readonly string[]" + ], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPluginManifest.requiredPlugins", + "type": "Object", + "tags": [], + "label": "requiredPlugins", + "description": [], + "signature": [ + "readonly string[]" + ], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPluginManifest.optionalPlugins", + "type": "Object", + "tags": [], + "label": "optionalPlugins", + "description": [], + "signature": [ + "readonly string[]" + ], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPluginManifest.requiredBundles", + "type": "Object", + "tags": [], + "label": "requiredBundles", + "description": [], + "signature": [ + "readonly string[]" + ], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.KibanaPlatformPluginManifest.extraPublicDirs", + "type": "Object", + "tags": [], + "label": "extraPublicDirs", + "description": [], + "signature": [ + "readonly string[]" + ], + "path": "packages/kbn-plugin-discovery/src/parse_kibana_platform_plugin.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.SearchOptions", + "type": "Interface", + "tags": [], + "label": "SearchOptions", + "description": [], + "path": "packages/kbn-plugin-discovery/src/plugin_search_paths.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.SearchOptions.rootDir", + "type": "string", + "tags": [], + "label": "rootDir", + "description": [], + "path": "packages/kbn-plugin-discovery/src/plugin_search_paths.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.SearchOptions.oss", + "type": "boolean", + "tags": [], + "label": "oss", + "description": [], + "path": "packages/kbn-plugin-discovery/src/plugin_search_paths.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/plugin-discovery", + "id": "def-server.SearchOptions.examples", + "type": "boolean", + "tags": [], + "label": "examples", + "description": [], + "path": "packages/kbn-plugin-discovery/src/plugin_search_paths.ts", + "deprecated": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_plugin_discovery.mdx b/api_docs/kbn_plugin_discovery.mdx new file mode 100644 index 0000000000000..6c7d41ca33a6f --- /dev/null +++ b/api_docs/kbn_plugin_discovery.mdx @@ -0,0 +1,30 @@ +--- +id: kibKbnPluginDiscoveryPluginApi +slug: /kibana-dev-docs/api/kbn-plugin-discovery +title: "@kbn/plugin-discovery" +image: https://source.unsplash.com/400x175/?github +summary: API docs for the @kbn/plugin-discovery plugin +date: 2022-03-30 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-discovery'] +warning: 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. +--- +import kbnPluginDiscoveryObj from './kbn_plugin_discovery.devdocs.json'; + + + +Contact [Owner missing] for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 28 | 0 | 27 | 0 | + +## Server + +### Functions + + +### Interfaces + + diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx index 722c46b010fa3..ed201ea462591 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/plugin-generator plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-generator'] warning: 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. --- diff --git a/api_docs/kbn_plugin_helpers.mdx b/api_docs/kbn_plugin_helpers.mdx index 9c8b329b18bb8..4aa241720feb3 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/plugin-helpers plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] warning: 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. --- diff --git a/api_docs/kbn_pm.mdx b/api_docs/kbn_pm.mdx index c2bcf85b20483..3c2e74728224f 100644 --- a/api_docs/kbn_pm.mdx +++ b/api_docs/kbn_pm.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-pm title: "@kbn/pm" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/pm plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/pm'] warning: 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. --- diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx index 267c495badc04..11e47015b2828 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/react-field plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] warning: 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. --- diff --git a/api_docs/kbn_rule_data_utils.devdocs.json b/api_docs/kbn_rule_data_utils.devdocs.json index 700b6c6ddb37f..743f776125f2f 100644 --- a/api_docs/kbn_rule_data_utils.devdocs.json +++ b/api_docs/kbn_rule_data_utils.devdocs.json @@ -363,6 +363,20 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/rule-data-utils", + "id": "def-server.ALERT_RULE_EXCEPTIONS_LIST", + "type": "string", + "tags": [], + "label": "ALERT_RULE_EXCEPTIONS_LIST", + "description": [], + "signature": [ + "\"kibana.alert.rule.exceptions_list\"" + ], + "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/rule-data-utils", "id": "def-server.ALERT_RULE_EXECUTION_UUID", @@ -447,6 +461,20 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/rule-data-utils", + "id": "def-server.ALERT_RULE_NAMESPACE_FIELD", + "type": "string", + "tags": [], + "label": "ALERT_RULE_NAMESPACE_FIELD", + "description": [], + "signature": [ + "\"kibana.alert.rule.namespace\"" + ], + "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/rule-data-utils", "id": "def-server.ALERT_RULE_NOTE", @@ -973,7 +1001,7 @@ "label": "TechnicalRuleDataFieldName", "description": [], "signature": [ - "\"tags\" | \"kibana\" | \"@timestamp\" | \"event.action\" | \"kibana.alert.rule.parameters\" | \"kibana.alert.rule.rule_type_id\" | \"kibana.alert.rule.consumer\" | \"kibana.alert.rule.producer\" | \"kibana.space_ids\" | \"kibana.alert.uuid\" | \"kibana.alert.start\" | \"kibana.alert.end\" | \"kibana.alert.duration.us\" | \"kibana.alert.severity\" | \"kibana.alert.status\" | \"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.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.execution.uuid\" | \"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\" | \"event.kind\" | \"event.module\" | \"kibana.alert.instance.id\" | \"kibana.alert.evaluation.threshold\" | \"kibana.alert.evaluation.value\" | \"kibana.alert\" | \"kibana.alert.building_block_type\" | \"kibana.alert.rule\"" + "\"tags\" | \"kibana\" | \"@timestamp\" | \"event.action\" | \"kibana.alert.rule.parameters\" | \"kibana.alert.rule.rule_type_id\" | \"kibana.alert.rule.consumer\" | \"kibana.alert.rule.producer\" | \"kibana.space_ids\" | \"kibana.alert.uuid\" | \"kibana.alert.start\" | \"kibana.alert.end\" | \"kibana.alert.duration.us\" | \"kibana.alert.severity\" | \"kibana.alert.status\" | \"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.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.execution.uuid\" | \"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\" | \"event.kind\" | \"event.module\" | \"kibana.alert.instance.id\" | \"kibana.alert.evaluation.threshold\" | \"kibana.alert.evaluation.value\" | \"kibana.alert\" | \"kibana.alert.building_block_type\" | \"kibana.alert.rule\" | \"kibana.alert.rule.exceptions_list\" | \"kibana.alert.rule.namespace\"" ], "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", "deprecated": false, diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index fbfbfa631b4b2..d7ed74e8e69eb 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/rule-data-utils plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 72 | 0 | 69 | 0 | +| 74 | 0 | 71 | 0 | ## Server diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index 448c389482300..d955f4c0d5a8e 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] warning: 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. --- diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index f22924e2220f8..3eb2456084466 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/securitysolution-es-utils plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils'] warning: 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. --- diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 5635ccfc7132c..7c7113c0acc2d 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-hook-utils'] warning: 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. --- diff --git a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx index 9381b63fd7ca4..fb537b08780a2 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-alerting-types'] warning: 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. --- diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx index f33e0b3da3ca4..b413aa92d307b 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-list-types'] warning: 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. --- diff --git a/api_docs/kbn_securitysolution_io_ts_types.mdx b/api_docs/kbn_securitysolution_io_ts_types.mdx index 9d2d7372004c5..6b9cd9cd10441 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-types'] warning: 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. --- diff --git a/api_docs/kbn_securitysolution_io_ts_utils.mdx b/api_docs/kbn_securitysolution_io_ts_utils.mdx index da8ec9ab69e35..838812cd2861e 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-utils'] warning: 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. --- diff --git a/api_docs/kbn_securitysolution_list_api.mdx b/api_docs/kbn_securitysolution_list_api.mdx index 0516c6a5db34d..af6cd2a8f925f 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/securitysolution-list-api plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-api'] warning: 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. --- diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx index 1b6ba111ea8ce..ed74a8abf103c 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/securitysolution-list-constants plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-constants'] warning: 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. --- diff --git a/api_docs/kbn_securitysolution_list_hooks.devdocs.json b/api_docs/kbn_securitysolution_list_hooks.devdocs.json index 588e4a302b4e6..e2262c6e263c2 100644 --- a/api_docs/kbn_securitysolution_list_hooks.devdocs.json +++ b/api_docs/kbn_securitysolution_list_hooks.devdocs.json @@ -332,7 +332,7 @@ "tags": [], "label": "useExceptionListItems", "description": [ - "\nHook for using to get an ExceptionList and it's ExceptionListItems\n" + "\nHook for using to get an ExceptionList and its ExceptionListItems\n" ], "signature": [ "({ http, lists, pagination, filterOptions, showDetectionsListsOnly, showEndpointListsOnly, matchFilters, onError, onSuccess, }: ", diff --git a/api_docs/kbn_securitysolution_list_hooks.mdx b/api_docs/kbn_securitysolution_list_hooks.mdx index 8c57af3b5a867..02f7f64b5d592 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-hooks'] warning: 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. --- diff --git a/api_docs/kbn_securitysolution_list_utils.devdocs.json b/api_docs/kbn_securitysolution_list_utils.devdocs.json index a5fa0a4c4b648..afa076dd52597 100644 --- a/api_docs/kbn_securitysolution_list_utils.devdocs.json +++ b/api_docs/kbn_securitysolution_list_utils.devdocs.json @@ -58,7 +58,7 @@ "label": "buildExceptionFilter", "description": [], "signature": [ - "({ lists, excludeExceptions, chunkSize, }: { lists: ({ _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\" | \"keyword\" | \"ip\" | \"date\" | \"geo_point\" | \"geo_shape\" | \"text\" | \"binary\" | \"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: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; 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: \"exists\"; } | { field: string; list: { id: string; type: \"boolean\" | \"keyword\" | \"ip\" | \"date\" | \"geo_point\" | \"geo_shape\" | \"text\" | \"binary\" | \"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: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; })[]; 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; }))[]; excludeExceptions: boolean; chunkSize: number; }) => ", + "({ lists, excludeExceptions, chunkSize, alias, }: { lists: ({ _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\" | \"keyword\" | \"ip\" | \"date\" | \"geo_point\" | \"geo_shape\" | \"text\" | \"binary\" | \"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: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; 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: \"exists\"; } | { field: string; list: { id: string; type: \"boolean\" | \"keyword\" | \"ip\" | \"date\" | \"geo_point\" | \"geo_shape\" | \"text\" | \"binary\" | \"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: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; })[]; 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; }))[]; excludeExceptions: boolean; chunkSize: number; alias: string | null; }) => ", "Filter", " | undefined" ], @@ -70,7 +70,7 @@ "id": "def-common.buildExceptionFilter.$1", "type": "Object", "tags": [], - "label": "{\n lists,\n excludeExceptions,\n chunkSize,\n}", + "label": "{\n lists,\n excludeExceptions,\n chunkSize,\n alias = null,\n}", "description": [], "path": "packages/kbn-securitysolution-list-utils/src/build_exception_filter/index.ts", "deprecated": false, @@ -107,6 +107,19 @@ "description": [], "path": "packages/kbn-securitysolution-list-utils/src/build_exception_filter/index.ts", "deprecated": false + }, + { + "parentPluginId": "@kbn/securitysolution-list-utils", + "id": "def-common.buildExceptionFilter.$1.alias", + "type": "CompoundType", + "tags": [], + "label": "alias", + "description": [], + "signature": [ + "string | null" + ], + "path": "packages/kbn-securitysolution-list-utils/src/build_exception_filter/index.ts", + "deprecated": false } ] } diff --git a/api_docs/kbn_securitysolution_list_utils.mdx b/api_docs/kbn_securitysolution_list_utils.mdx index 17c04cc6a5a63..5282f6d885fd7 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/securitysolution-list-utils plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-utils'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 226 | 0 | 178 | 0 | +| 227 | 0 | 179 | 0 | ## Common diff --git a/api_docs/kbn_securitysolution_rules.devdocs.json b/api_docs/kbn_securitysolution_rules.devdocs.json index 43456ed821087..c79040eaed89e 100644 --- a/api_docs/kbn_securitysolution_rules.devdocs.json +++ b/api_docs/kbn_securitysolution_rules.devdocs.json @@ -157,6 +157,22 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/securitysolution-rules", + "id": "def-server.MAX_EXECUTION_EVENTS_DISPLAYED", + "type": "number", + "tags": [], + "label": "MAX_EXECUTION_EVENTS_DISPLAYED", + "description": [ + "\nMax number of execution events to aggregate in memory for the Rule Execution Log" + ], + "signature": [ + "1000" + ], + "path": "packages/kbn-securitysolution-rules/src/configuration_constants.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/securitysolution-rules", "id": "def-server.ML_RULE_TYPE_ID", diff --git a/api_docs/kbn_securitysolution_rules.mdx b/api_docs/kbn_securitysolution_rules.mdx index c39b406357f73..02866aae0e153 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/securitysolution-rules plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-rules'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 23 | 0 | 21 | 0 | +| 24 | 0 | 21 | 0 | ## Server diff --git a/api_docs/kbn_securitysolution_t_grid.mdx b/api_docs/kbn_securitysolution_t_grid.mdx index 93b4fab165f4f..908381a0819ec 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/securitysolution-t-grid plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-t-grid'] warning: 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. --- diff --git a/api_docs/kbn_securitysolution_utils.mdx b/api_docs/kbn_securitysolution_utils.mdx index 6ca1d3b071818..87d2592c4b036 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/securitysolution-utils plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-utils'] warning: 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. --- diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx index 1ab1301c4d1cb..2677b348f7f65 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/server-http-tools plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-http-tools'] warning: 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. --- diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx index d46b5bd6e4f1b..c413d8863a573 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/server-route-repository plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] warning: 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. --- diff --git a/api_docs/kbn_shared_ux_components.devdocs.json b/api_docs/kbn_shared_ux_components.devdocs.json index dcccffd398f13..f59c6bafff3d5 100644 --- a/api_docs/kbn_shared_ux_components.devdocs.json +++ b/api_docs/kbn_shared_ux_components.devdocs.json @@ -446,7 +446,7 @@ "signature": [ "React.ExoticComponent & { ref?: React.RefObject | ((instance: HTMLDivElement | null) => void) | null | undefined; }> & { readonly _result: React.FC<", + " & { children?: React.ReactNode; }, \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"className\" | \"key\" | \"title\" | \"id\" | \"css\" | \"security\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"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\" | \"onError\" | \"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\" | \"currentAppId$\" | \"navigateToUrl\"> & { ref?: React.RefObject | ((instance: HTMLDivElement | null) => void) | null | undefined; }> & { readonly _result: React.FC<", "RedirectAppLinksProps", ">; }" ], diff --git a/api_docs/kbn_shared_ux_components.mdx b/api_docs/kbn_shared_ux_components.mdx index e471398dde3a1..36276e57dcfd5 100644 --- a/api_docs/kbn_shared_ux_components.mdx +++ b/api_docs/kbn_shared_ux_components.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-components title: "@kbn/shared-ux-components" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/shared-ux-components plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-components'] warning: 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. --- diff --git a/api_docs/kbn_shared_ux_services.mdx b/api_docs/kbn_shared_ux_services.mdx index 4bb6c71c93903..ff2466baf1b5d 100644 --- a/api_docs/kbn_shared_ux_services.mdx +++ b/api_docs/kbn_shared_ux_services.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-services title: "@kbn/shared-ux-services" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/shared-ux-services plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-services'] warning: 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. --- diff --git a/api_docs/kbn_shared_ux_storybook.mdx b/api_docs/kbn_shared_ux_storybook.mdx index 77b1cdff6f792..98f6cf1704913 100644 --- a/api_docs/kbn_shared_ux_storybook.mdx +++ b/api_docs/kbn_shared_ux_storybook.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook title: "@kbn/shared-ux-storybook" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/shared-ux-storybook plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook'] warning: 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. --- diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index 1fecde17298f4..adaaa0c8a367b 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/shared-ux-utility plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] warning: 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. --- diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 4ab53cd7f51a8..b61ea07d5300f 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/std plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/std'] warning: 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. --- diff --git a/api_docs/kbn_storybook.mdx b/api_docs/kbn_storybook.mdx index eea5a68825cec..839213025b486 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/storybook plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] warning: 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. --- diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index e96ae96c8f655..fc545ecce0818 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/telemetry-tools plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools'] warning: 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. --- diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx index dd0a8212b5b9a..1893238bef52c 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/test plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test'] warning: 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. --- diff --git a/api_docs/kbn_test_jest_helpers.devdocs.json b/api_docs/kbn_test_jest_helpers.devdocs.json index 80b14dfc7f6f8..aa2262636493c 100644 --- a/api_docs/kbn_test_jest_helpers.devdocs.json +++ b/api_docs/kbn_test_jest_helpers.devdocs.json @@ -285,6 +285,41 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/test-jest-helpers", + "id": "def-server.expectToBeAccessible", + "type": "Function", + "tags": [], + "label": "expectToBeAccessible", + "description": [ + "\nFunction to test if a component doesn't have a11y violations from axe automated testing" + ], + "signature": [ + "(component: ", + "ReactWrapper", + ") => Promise" + ], + "path": "packages/kbn-test-jest-helpers/src/axe_helpers.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/test-jest-helpers", + "id": "def-server.expectToBeAccessible.$1", + "type": "Object", + "tags": [], + "label": "component", + "description": [], + "signature": [ + "ReactWrapper" + ], + "path": "packages/kbn-test-jest-helpers/src/axe_helpers.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/test-jest-helpers", "id": "def-server.findTestSubject", @@ -359,6 +394,43 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/test-jest-helpers", + "id": "def-server.getA11yViolations", + "type": "Function", + "tags": [], + "label": "getA11yViolations", + "description": [ + "\nReturns a11y violations as found by axe testing" + ], + "signature": [ + "(component: ", + "ReactWrapper", + ") => Promise<", + "Result", + "[]>" + ], + "path": "packages/kbn-test-jest-helpers/src/axe_helpers.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/test-jest-helpers", + "id": "def-server.getA11yViolations.$1", + "type": "Object", + "tags": [], + "label": "component", + "description": [], + "signature": [ + "ReactWrapper" + ], + "path": "packages/kbn-test-jest-helpers/src/axe_helpers.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/test-jest-helpers", "id": "def-server.getRandomNumber", @@ -1570,7 +1642,7 @@ "tags": [], "label": "component", "description": [ - "The comonent under test" + "The component under test" ], "signature": [ "ReactWrapper", diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx index f131a92f41b9f..2b2c380ecb720 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/test-jest-helpers plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 128 | 8 | 101 | 2 | +| 132 | 8 | 103 | 2 | ## Server diff --git a/api_docs/kbn_type_summarizer.mdx b/api_docs/kbn_type_summarizer.mdx index 15191f8cf6640..dd7f61d56d02e 100644 --- a/api_docs/kbn_type_summarizer.mdx +++ b/api_docs/kbn_type_summarizer.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-type-summarizer title: "@kbn/type-summarizer" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/type-summarizer plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/type-summarizer'] warning: 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. --- diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index 18a40d6fe9c84..86e1656cbbb98 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/typed-react-router-config plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] warning: 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. --- diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx index f1279e3cafe37..01313a4de5107 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/ui-theme plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme'] warning: 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. --- diff --git a/api_docs/kbn_utility_types.mdx b/api_docs/kbn_utility_types.mdx index 8f705b6e81cdd..179519dafe718 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/utility-types plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types'] warning: 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. --- diff --git a/api_docs/kbn_utils.mdx b/api_docs/kbn_utils.mdx index 1781ed53aff90..ad0bbbe8b4741 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github summary: API docs for the @kbn/utils plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] warning: 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. --- diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx index be09d0dd97ec4..91f52ef3761de 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github summary: API docs for the kibanaOverview plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] warning: 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. --- diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index cacc37e34cc65..7a88499a27661 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github summary: API docs for the kibanaReact plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact'] warning: 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. --- diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx index 11bf23492a84b..a4399259731ec 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github summary: API docs for the kibanaUtils plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils'] warning: 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. --- diff --git a/api_docs/lens.devdocs.json b/api_docs/lens.devdocs.json index 8fdad5c360c6d..066c92e71f29c 100644 --- a/api_docs/lens.devdocs.json +++ b/api_docs/lens.devdocs.json @@ -11,7 +11,7 @@ "tags": [], "label": "AxesSettingsConfig", "description": [], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/axis_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, "children": [ { @@ -21,7 +21,7 @@ "tags": [], "label": "x", "description": [], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/axis_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -31,7 +31,7 @@ "tags": [], "label": "yLeft", "description": [], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/axis_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -41,7 +41,95 @@ "tags": [], "label": "yRight", "description": [], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/axis_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.AxisConfig", + "type": "Interface", + "tags": [], + "label": "AxisConfig", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.AxisConfig.title", + "type": "string", + "tags": [], + "label": "title", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.AxisConfig.hide", + "type": "CompoundType", + "tags": [], + "label": "hide", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.AxisExtentConfig", + "type": "Interface", + "tags": [], + "label": "AxisExtentConfig", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.AxisExtentConfig.mode", + "type": "CompoundType", + "tags": [], + "label": "mode", + "description": [], + "signature": [ + "\"custom\" | \"full\" | \"dataBounds\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.AxisExtentConfig.lowerBound", + "type": "number", + "tags": [], + "label": "lowerBound", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.AxisExtentConfig.upperBound", + "type": "number", + "tags": [], + "label": "upperBound", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false } ], @@ -96,7 +184,7 @@ "description": [], "signature": [ "{ emptyAsNull?: boolean | undefined; format?: ", - "FormatParams", + "ValueFormatConfig", " | undefined; } | undefined" ], "path": "x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/cardinality.tsx", @@ -105,6 +193,183 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "lens", + "id": "def-public.DataLayerArgs", + "type": "Interface", + "tags": [], + "label": "DataLayerArgs", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.DataLayerArgs.layerId", + "type": "string", + "tags": [], + "label": "layerId", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.DataLayerArgs.accessors", + "type": "Array", + "tags": [], + "label": "accessors", + "description": [], + "signature": [ + "string[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.DataLayerArgs.seriesType", + "type": "CompoundType", + "tags": [], + "label": "seriesType", + "description": [], + "signature": [ + "\"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/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.DataLayerArgs.xAccessor", + "type": "string", + "tags": [], + "label": "xAccessor", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.DataLayerArgs.hide", + "type": "CompoundType", + "tags": [], + "label": "hide", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.DataLayerArgs.splitAccessor", + "type": "string", + "tags": [], + "label": "splitAccessor", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.DataLayerArgs.columnToLabel", + "type": "string", + "tags": [], + "label": "columnToLabel", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.DataLayerArgs.yScaleType", + "type": "CompoundType", + "tags": [], + "label": "yScaleType", + "description": [], + "signature": [ + "\"time\" | \"log\" | \"sqrt\" | \"linear\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.DataLayerArgs.xScaleType", + "type": "CompoundType", + "tags": [], + "label": "xScaleType", + "description": [], + "signature": [ + "\"time\" | \"linear\" | \"ordinal\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.DataLayerArgs.isHistogram", + "type": "boolean", + "tags": [], + "label": "isHistogram", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.DataLayerArgs.palette", + "type": "Object", + "tags": [], + "label": "palette", + "description": [], + "signature": [ + { + "pluginId": "charts", + "scope": "common", + "docId": "kibChartsPluginApi", + "section": "def-common.PaletteOutput", + "text": "PaletteOutput" + }, + "<{ [key: string]: unknown; }>" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.DataLayerArgs.yConfig", + "type": "Array", + "tags": [], + "label": "yConfig", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YConfigResult", + "text": "YConfigResult" + }, + "[] | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "lens", "id": "def-public.DatasourcePublicAPI", @@ -802,6 +1067,49 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "lens", + "id": "def-public.LabelsOrientationConfig", + "type": "Interface", + "tags": [], + "label": "LabelsOrientationConfig", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.LabelsOrientationConfig.x", + "type": "number", + "tags": [], + "label": "x", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.LabelsOrientationConfig.yLeft", + "type": "number", + "tags": [], + "label": "yLeft", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.LabelsOrientationConfig.yRight", + "type": "number", + "tags": [], + "label": "yRight", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "lens", "id": "def-public.LastValueIndexPatternColumn", @@ -850,7 +1158,9 @@ "label": "params", "description": [], "signature": [ - "{ sortField: string; showArrayValues: boolean; format?: { id: string; params?: { decimals: number; } | undefined; } | undefined; }" + "{ sortField: string; showArrayValues: boolean; format?: ", + "ValueFormatConfig", + " | undefined; }" ], "path": "x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/last_value.tsx", "deprecated": false @@ -865,7 +1175,7 @@ "tags": [], "label": "LegendConfig", "description": [], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/legend_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, "children": [ { @@ -877,7 +1187,7 @@ "description": [ "\nFlag whether the legend should be shown. If there is just a single series, it will be hidden" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/legend_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -892,7 +1202,7 @@ "signature": [ "\"top\" | \"bottom\" | \"left\" | \"right\"" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/legend_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -907,7 +1217,7 @@ "signature": [ "boolean | undefined" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/legend_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -922,7 +1232,7 @@ "signature": [ "boolean | undefined" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/legend_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -938,7 +1248,7 @@ "HorizontalAlignment", " | undefined" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/legend_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -954,7 +1264,7 @@ "VerticalAlignment", " | undefined" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/legend_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -969,7 +1279,7 @@ "signature": [ "number | undefined" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/legend_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -984,7 +1294,7 @@ "signature": [ "number | undefined" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/legend_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -999,7 +1309,7 @@ "signature": [ "boolean | undefined" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/legend_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -1014,7 +1324,7 @@ "signature": [ "number | undefined" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/legend_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false } ], @@ -1022,30 +1332,90 @@ }, { "parentPluginId": "lens", - "id": "def-public.LensPublicSetup", + "id": "def-public.LensMultiTable", "type": "Interface", "tags": [], - "label": "LensPublicSetup", + "label": "LensMultiTable", "description": [], - "path": "x-pack/plugins/lens/public/plugin.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, "children": [ { "parentPluginId": "lens", - "id": "def-public.LensPublicSetup.registerVisualization", - "type": "Function", - "tags": [ - "experimental" - ], - "label": "registerVisualization", - "description": [ - "\nRegister 3rd party visualization type\nSee `x-pack/examples/3rd_party_lens_vis` for exemplary usage.\n\nIn case the visualization is a function returning a promise, it will only be called once Lens is actually requiring it.\nThis can be used to lazy-load parts of the code to keep the initial bundle as small as possible.\n\nThis API might undergo breaking changes even in minor versions.\n" - ], + "id": "def-public.LensMultiTable.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], "signature": [ - "(visualization: ", - { - "pluginId": "lens", - "scope": "public", + "\"lens_multitable\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.LensMultiTable.tables", + "type": "Object", + "tags": [], + "label": "tables", + "description": [], + "signature": [ + "{ [x: string]: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.Datatable", + "text": "Datatable" + }, + "; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.LensMultiTable.dateRange", + "type": "Object", + "tags": [], + "label": "dateRange", + "description": [], + "signature": [ + "{ fromDate: Date; toDate: Date; } | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.LensPublicSetup", + "type": "Interface", + "tags": [], + "label": "LensPublicSetup", + "description": [], + "path": "x-pack/plugins/lens/public/plugin.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.LensPublicSetup.registerVisualization", + "type": "Function", + "tags": [ + "experimental" + ], + "label": "registerVisualization", + "description": [ + "\nRegister 3rd party visualization type\nSee `x-pack/examples/3rd_party_lens_vis` for exemplary usage.\n\nIn case the visualization is a function returning a promise, it will only be called once Lens is actually requiring it.\nThis can be used to lazy-load parts of the code to keep the initial bundle as small as possible.\n\nThis API might undergo breaking changes even in minor versions.\n" + ], + "signature": [ + "(visualization: ", + { + "pluginId": "lens", + "scope": "public", "docId": "kibLensPluginApi", "section": "def-public.Visualization", "text": "Visualization" @@ -1406,7 +1776,9 @@ "signature": [ "{ tinymathAst: string | ", "TinymathAST", - "; format?: { id: string; params?: { decimals: number; } | undefined; } | undefined; }" + "; format?: ", + "ValueFormatConfig", + " | undefined; }" ], "path": "x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/math.tsx", "deprecated": false @@ -1661,6 +2033,75 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "lens", + "id": "def-public.ReferenceLineLayerArgs", + "type": "Interface", + "tags": [], + "label": "ReferenceLineLayerArgs", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.ReferenceLineLayerArgs.layerId", + "type": "string", + "tags": [], + "label": "layerId", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.ReferenceLineLayerArgs.accessors", + "type": "Array", + "tags": [], + "label": "accessors", + "description": [], + "signature": [ + "string[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.ReferenceLineLayerArgs.columnToLabel", + "type": "string", + "tags": [], + "label": "columnToLabel", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.ReferenceLineLayerArgs.yConfig", + "type": "Array", + "tags": [], + "label": "yConfig", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YConfigResult", + "text": "YConfigResult" + }, + "[] | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "lens", "id": "def-public.SharedPieLayerState", @@ -1705,7 +2146,7 @@ "label": "numberDisplay", "description": [], "signature": [ - "\"percent\" | \"hidden\" | \"value\"" + "\"percent\" | \"value\" | \"hidden\"" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false @@ -1886,7 +2327,9 @@ "label": "params", "description": [], "signature": [ - "{ value?: string | undefined; format?: { id: string; params?: { decimals: number; } | undefined; } | undefined; }" + "{ value?: string | undefined; format?: ", + "ValueFormatConfig", + " | undefined; }" ], "path": "x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/static_value.tsx", "deprecated": false @@ -2172,7 +2615,9 @@ "label": "params", "description": [], "signature": [ - "{ size: number; orderBy: { type: \"alphabetical\"; fallback?: boolean | undefined; } | { type: \"rare\"; maxDocCount: number; } | { type: \"column\"; columnId: string; }; orderDirection: \"asc\" | \"desc\"; otherBucket?: boolean | undefined; missingBucket?: boolean | undefined; secondaryFields?: string[] | undefined; format?: { id: string; params?: { decimals: number; } | undefined; } | undefined; parentFormat?: { id: string; } | undefined; }" + "{ size: number; orderBy: { type: \"alphabetical\"; fallback?: boolean | undefined; } | { type: \"rare\"; maxDocCount: number; } | { type: \"column\"; columnId: string; }; orderDirection: \"asc\" | \"desc\"; otherBucket?: boolean | undefined; missingBucket?: boolean | undefined; secondaryFields?: string[] | undefined; format?: ", + "ValueFormatConfig", + " | undefined; parentFormat?: { id: string; } | undefined; }" ], "path": "x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/types.ts", "deprecated": false @@ -2180,6 +2625,46 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "lens", + "id": "def-public.ValidLayer", + "type": "Interface", + "tags": [], + "label": "ValidLayer", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.ValidLayer", + "text": "ValidLayer" + }, + " extends ", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.DataLayerConfigResult", + "text": "DataLayerConfigResult" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.ValidLayer.xAccessor", + "type": "string", + "tags": [], + "label": "xAccessor", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "lens", "id": "def-public.Visualization", @@ -3726,189 +4211,988 @@ }, { "parentPluginId": "lens", - "id": "def-public.XYState", + "id": "def-public.XYAnnotationLayerConfig", "type": "Interface", "tags": [], - "label": "XYState", + "label": "XYAnnotationLayerConfig", "description": [], "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", "deprecated": false, "children": [ { "parentPluginId": "lens", - "id": "def-public.XYState.preferredSeriesType", - "type": "CompoundType", + "id": "def-public.XYAnnotationLayerConfig.layerId", + "type": "string", "tags": [], - "label": "preferredSeriesType", + "label": "layerId", "description": [], - "signature": [ - "\"area\" | \"line\" | \"bar\" | \"bar_horizontal\" | \"bar_stacked\" | \"bar_percentage_stacked\" | \"bar_horizontal_stacked\" | \"bar_horizontal_percentage_stacked\" | \"area_stacked\" | \"area_percentage_stacked\"" - ], "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", "deprecated": false }, { "parentPluginId": "lens", - "id": "def-public.XYState.legend", - "type": "Object", + "id": "def-public.XYAnnotationLayerConfig.layerType", + "type": "string", "tags": [], - "label": "legend", + "label": "layerType", "description": [], "signature": [ - "LegendConfig" + "\"annotations\"" ], "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", "deprecated": false }, { "parentPluginId": "lens", - "id": "def-public.XYState.valueLabels", - "type": "CompoundType", + "id": "def-public.XYAnnotationLayerConfig.annotations", + "type": "Array", "tags": [], - "label": "valueLabels", + "label": "annotations", "description": [], "signature": [ { - "pluginId": "lens", + "pluginId": "eventAnnotation", "scope": "common", - "docId": "kibLensPluginApi", - "section": "def-common.ValueLabelConfig", - "text": "ValueLabelConfig" + "docId": "kibEventAnnotationPluginApi", + "section": "def-common.EventAnnotationConfig", + "text": "EventAnnotationConfig" }, - " | undefined" + "[]" ], "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", "deprecated": false }, { "parentPluginId": "lens", - "id": "def-public.XYState.fittingFunction", + "id": "def-public.XYAnnotationLayerConfig.hide", "type": "CompoundType", "tags": [], - "label": "fittingFunction", + "label": "hide", "description": [], "signature": [ - "\"None\" | \"Linear\" | \"Zero\" | \"Carry\" | \"Lookahead\" | undefined" + "boolean | undefined" ], "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", "deprecated": false - }, + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYArgs", + "type": "Interface", + "tags": [], + "label": "XYArgs", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "children": [ { "parentPluginId": "lens", - "id": "def-public.XYState.emphasizeFitting", - "type": "CompoundType", + "id": "def-public.XYArgs.title", + "type": "string", "tags": [], - "label": "emphasizeFitting", + "label": "title", "description": [], "signature": [ - "boolean | undefined" + "string | undefined" ], - "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { "parentPluginId": "lens", - "id": "def-public.XYState.endValue", - "type": "CompoundType", + "id": "def-public.XYArgs.description", + "type": "string", "tags": [], - "label": "endValue", + "label": "description", "description": [], "signature": [ - "\"None\" | \"Zero\" | \"Nearest\" | undefined" + "string | undefined" ], - "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { "parentPluginId": "lens", - "id": "def-public.XYState.yLeftExtent", - "type": "Object", + "id": "def-public.XYArgs.xTitle", + "type": "string", "tags": [], - "label": "yLeftExtent", + "label": "xTitle", "description": [], - "signature": [ - "AxisExtentConfig", - " | undefined" - ], - "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { "parentPluginId": "lens", - "id": "def-public.XYState.yRightExtent", - "type": "Object", + "id": "def-public.XYArgs.yTitle", + "type": "string", "tags": [], - "label": "yRightExtent", + "label": "yTitle", "description": [], - "signature": [ - "AxisExtentConfig", - " | undefined" - ], - "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { "parentPluginId": "lens", - "id": "def-public.XYState.layers", - "type": "Array", + "id": "def-public.XYArgs.yRightTitle", + "type": "string", "tags": [], - "label": "layers", + "label": "yRightTitle", "description": [], - "signature": [ - "XYLayerConfig", - "[]" - ], - "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { "parentPluginId": "lens", - "id": "def-public.XYState.xTitle", - "type": "string", + "id": "def-public.XYArgs.yLeftExtent", + "type": "CompoundType", "tags": [], - "label": "xTitle", + "label": "yLeftExtent", "description": [], "signature": [ - "string | undefined" + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxisExtentConfig", + "text": "AxisExtentConfig" + }, + " & { type: \"axisExtentConfig\"; }" ], - "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { "parentPluginId": "lens", - "id": "def-public.XYState.yTitle", - "type": "string", + "id": "def-public.XYArgs.yRightExtent", + "type": "CompoundType", "tags": [], - "label": "yTitle", + "label": "yRightExtent", "description": [], "signature": [ - "string | undefined" + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxisExtentConfig", + "text": "AxisExtentConfig" + }, + " & { type: \"axisExtentConfig\"; }" ], - "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { "parentPluginId": "lens", - "id": "def-public.XYState.yRightTitle", - "type": "string", + "id": "def-public.XYArgs.legend", + "type": "CompoundType", "tags": [], - "label": "yRightTitle", + "label": "legend", "description": [], "signature": [ - "string | undefined" + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LegendConfig", + "text": "LegendConfig" + }, + " & { type: \"legendConfig\"; }" ], - "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { "parentPluginId": "lens", - "id": "def-public.XYState.axisTitlesVisibilitySettings", - "type": "Object", + "id": "def-public.XYArgs.valueLabels", + "type": "CompoundType", "tags": [], - "label": "axisTitlesVisibilitySettings", + "label": "valueLabels", "description": [], "signature": [ - "AxesSettingsConfig", + "\"hide\" | \"inside\" | \"outside\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYArgs.layers", + "type": "Array", + "tags": [], + "label": "layers", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.XYLayerConfigResult", + "text": "XYLayerConfigResult" + }, + "[]" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYArgs.endValue", + "type": "CompoundType", + "tags": [], + "label": "endValue", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.EndValue", + "text": "EndValue" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYArgs.emphasizeFitting", + "type": "CompoundType", + "tags": [], + "label": "emphasizeFitting", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYArgs.fittingFunction", + "type": "CompoundType", + "tags": [], + "label": "fittingFunction", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.FittingFunction", + "text": "FittingFunction" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYArgs.axisTitlesVisibilitySettings", + "type": "CompoundType", + "tags": [], + "label": "axisTitlesVisibilitySettings", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxisTitlesVisibilityConfigResult", + "text": "AxisTitlesVisibilityConfigResult" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYArgs.tickLabelsVisibilitySettings", + "type": "CompoundType", + "tags": [], + "label": "tickLabelsVisibilitySettings", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.TickLabelsConfigResult", + "text": "TickLabelsConfigResult" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYArgs.gridlinesVisibilitySettings", + "type": "CompoundType", + "tags": [], + "label": "gridlinesVisibilitySettings", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.GridlinesConfigResult", + "text": "GridlinesConfigResult" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYArgs.labelsOrientation", + "type": "CompoundType", + "tags": [], + "label": "labelsOrientation", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LabelsOrientationConfigResult", + "text": "LabelsOrientationConfigResult" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYArgs.curveType", + "type": "CompoundType", + "tags": [], + "label": "curveType", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.XYCurveType", + "text": "XYCurveType" + }, + " | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYArgs.fillOpacity", + "type": "number", + "tags": [], + "label": "fillOpacity", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYArgs.hideEndzones", + "type": "CompoundType", + "tags": [], + "label": "hideEndzones", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYArgs.valuesInLegend", + "type": "CompoundType", + "tags": [], + "label": "valuesInLegend", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYArgs.ariaLabel", + "type": "string", + "tags": [], + "label": "ariaLabel", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYChartProps", + "type": "Interface", + "tags": [], + "label": "XYChartProps", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.XYChartProps.data", + "type": "Object", + "tags": [], + "label": "data", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LensMultiTable", + "text": "LensMultiTable" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYChartProps.args", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.XYArgs", + "text": "XYArgs" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYDataLayerConfig", + "type": "Interface", + "tags": [], + "label": "XYDataLayerConfig", + "description": [], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.XYDataLayerConfig.layerId", + "type": "string", + "tags": [], + "label": "layerId", + "description": [], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYDataLayerConfig.accessors", + "type": "Array", + "tags": [], + "label": "accessors", + "description": [], + "signature": [ + "string[]" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYDataLayerConfig.layerType", + "type": "string", + "tags": [], + "label": "layerType", + "description": [], + "signature": [ + "\"data\"" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYDataLayerConfig.seriesType", + "type": "CompoundType", + "tags": [], + "label": "seriesType", + "description": [], + "signature": [ + "\"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/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYDataLayerConfig.xAccessor", + "type": "string", + "tags": [], + "label": "xAccessor", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYDataLayerConfig.hide", + "type": "CompoundType", + "tags": [], + "label": "hide", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYDataLayerConfig.yConfig", + "type": "Array", + "tags": [], + "label": "yConfig", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YConfig", + "text": "YConfig" + }, + "[] | undefined" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYDataLayerConfig.splitAccessor", + "type": "string", + "tags": [], + "label": "splitAccessor", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYDataLayerConfig.palette", + "type": "Object", + "tags": [], + "label": "palette", + "description": [], + "signature": [ + { + "pluginId": "charts", + "scope": "common", + "docId": "kibChartsPluginApi", + "section": "def-common.PaletteOutput", + "text": "PaletteOutput" + }, + "<{ [key: string]: unknown; }> | undefined" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYReferenceLineLayerConfig", + "type": "Interface", + "tags": [], + "label": "XYReferenceLineLayerConfig", + "description": [], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.XYReferenceLineLayerConfig.layerId", + "type": "string", + "tags": [], + "label": "layerId", + "description": [], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYReferenceLineLayerConfig.accessors", + "type": "Array", + "tags": [], + "label": "accessors", + "description": [], + "signature": [ + "string[]" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYReferenceLineLayerConfig.yConfig", + "type": "Array", + "tags": [], + "label": "yConfig", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YConfig", + "text": "YConfig" + }, + "[] | undefined" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYReferenceLineLayerConfig.layerType", + "type": "string", + "tags": [], + "label": "layerType", + "description": [], + "signature": [ + "\"referenceLine\"" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYRender", + "type": "Interface", + "tags": [], + "label": "XYRender", + "description": [], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.XYRender.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"render\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYRender.as", + "type": "string", + "tags": [], + "label": "as", + "description": [], + "signature": [ + "\"xyVis\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYRender.value", + "type": "Object", + "tags": [], + "label": "value", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.XYChartProps", + "text": "XYChartProps" + } + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYState", + "type": "Interface", + "tags": [], + "label": "XYState", + "description": [], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.XYState.preferredSeriesType", + "type": "CompoundType", + "tags": [], + "label": "preferredSeriesType", + "description": [], + "signature": [ + "\"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/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYState.legend", + "type": "Object", + "tags": [], + "label": "legend", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LegendConfig", + "text": "LegendConfig" + } + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYState.valueLabels", + "type": "CompoundType", + "tags": [], + "label": "valueLabels", + "description": [], + "signature": [ + { + "pluginId": "lens", + "scope": "common", + "docId": "kibLensPluginApi", + "section": "def-common.ValueLabelConfig", + "text": "ValueLabelConfig" + }, + " | undefined" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYState.fittingFunction", + "type": "CompoundType", + "tags": [], + "label": "fittingFunction", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.FittingFunction", + "text": "FittingFunction" + }, + " | undefined" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYState.emphasizeFitting", + "type": "CompoundType", + "tags": [], + "label": "emphasizeFitting", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYState.endValue", + "type": "CompoundType", + "tags": [], + "label": "endValue", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.EndValue", + "text": "EndValue" + }, + " | undefined" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYState.yLeftExtent", + "type": "Object", + "tags": [], + "label": "yLeftExtent", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxisExtentConfig", + "text": "AxisExtentConfig" + }, + " | undefined" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYState.yRightExtent", + "type": "Object", + "tags": [], + "label": "yRightExtent", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxisExtentConfig", + "text": "AxisExtentConfig" + }, + " | undefined" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYState.layers", + "type": "Array", + "tags": [], + "label": "layers", + "description": [], + "signature": [ + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.XYLayerConfig", + "text": "XYLayerConfig" + }, + "[]" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYState.xTitle", + "type": "string", + "tags": [], + "label": "xTitle", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYState.yTitle", + "type": "string", + "tags": [], + "label": "yTitle", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYState.yRightTitle", + "type": "string", + "tags": [], + "label": "yRightTitle", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", + "deprecated": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYState.axisTitlesVisibilitySettings", + "type": "Object", + "tags": [], + "label": "axisTitlesVisibilitySettings", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxesSettingsConfig", + "text": "AxesSettingsConfig" + }, " | undefined" ], "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", @@ -3922,7 +5206,13 @@ "label": "tickLabelsVisibilitySettings", "description": [], "signature": [ - "AxesSettingsConfig", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxesSettingsConfig", + "text": "AxesSettingsConfig" + }, " | undefined" ], "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", @@ -3936,7 +5226,13 @@ "label": "gridlinesVisibilitySettings", "description": [], "signature": [ - "AxesSettingsConfig", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxesSettingsConfig", + "text": "AxesSettingsConfig" + }, " | undefined" ], "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", @@ -3950,7 +5246,13 @@ "label": "labelsOrientation", "description": [], "signature": [ - "LabelsOrientationConfig", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LabelsOrientationConfig", + "text": "LabelsOrientationConfig" + }, " | undefined" ], "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", @@ -3964,7 +5266,13 @@ "label": "curveType", "description": [], "signature": [ - "XYCurveType", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.XYCurveType", + "text": "XYCurveType" + }, " | undefined" ], "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", @@ -4019,7 +5327,7 @@ "tags": [], "label": "YConfig", "description": [], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/axis_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, "children": [ { @@ -4029,7 +5337,7 @@ "tags": [], "label": "forAccessor", "description": [], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/axis_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -4040,10 +5348,16 @@ "label": "axisMode", "description": [], "signature": [ - "YAxisMode", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YAxisMode", + "text": "YAxisMode" + }, " | undefined" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/axis_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -4056,7 +5370,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/axis_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -4069,7 +5383,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/axis_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -4082,7 +5396,7 @@ "signature": [ "number | undefined" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/axis_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -4093,10 +5407,16 @@ "label": "lineStyle", "description": [], "signature": [ - "LineStyle", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LineStyle", + "text": "LineStyle" + }, " | undefined" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/axis_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -4107,10 +5427,16 @@ "label": "fill", "description": [], "signature": [ - "FillStyle", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.FillStyle", + "text": "FillStyle" + }, " | undefined" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/axis_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -4121,10 +5447,16 @@ "label": "iconPosition", "description": [], "signature": [ - "IconPosition", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.IconPosition", + "text": "IconPosition" + }, " | undefined" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/axis_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false }, { @@ -4137,7 +5469,7 @@ "signature": [ "boolean | undefined" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/axis_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false } ], @@ -4162,13 +5494,69 @@ "text": "FieldBasedIndexPatternColumn" }, " & { operationType: \"average\"; params?: { emptyAsNull?: boolean | undefined; format?: ", - "FormatParams", + "ValueFormatConfig", " | undefined; } | undefined; }" ], "path": "x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/metrics.tsx", "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "lens", + "id": "def-public.AxisExtentConfigResult", + "type": "Type", + "tags": [], + "label": "AxisExtentConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxisExtentConfig", + "text": "AxisExtentConfig" + }, + " & { type: \"axisExtentConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.AxisExtentMode", + "type": "Type", + "tags": [], + "label": "AxisExtentMode", + "description": [], + "signature": [ + "\"custom\" | \"full\" | \"dataBounds\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.AxisTitlesVisibilityConfigResult", + "type": "Type", + "tags": [], + "label": "AxisTitlesVisibilityConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxesSettingsConfig", + "text": "AxesSettingsConfig" + }, + " & { type: \"axisTitlesVisibilityConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "lens", "id": "def-public.CounterRateIndexPatternColumn", @@ -4202,7 +5590,7 @@ "text": "FieldBasedIndexPatternColumn" }, " & { operationType: \"count\"; params?: { emptyAsNull?: boolean | undefined; format?: ", - "FormatParams", + "ValueFormatConfig", " | undefined; } | undefined; }" ], "path": "x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/count.tsx", @@ -4226,6 +5614,27 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "lens", + "id": "def-public.DataLayerConfigResult", + "type": "Type", + "tags": [], + "label": "DataLayerConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.DataLayerArgs", + "text": "DataLayerArgs" + }, + " & { type: \"dataLayer\"; layerType: \"data\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "lens", "id": "def-public.DataType", @@ -4290,6 +5699,34 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "lens", + "id": "def-public.FillStyle", + "type": "Type", + "tags": [], + "label": "FillStyle", + "description": [], + "signature": [ + "\"above\" | \"below\" | \"none\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.FittingFunction", + "type": "Type", + "tags": [], + "label": "FittingFunction", + "description": [], + "signature": [ + "\"None\" | \"Zero\" | \"Linear\" | \"Carry\" | \"Lookahead\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "lens", "id": "def-public.GaugeVisualizationState", @@ -4344,6 +5781,27 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "lens", + "id": "def-public.GridlinesConfigResult", + "type": "Type", + "tags": [], + "label": "GridlinesConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxesSettingsConfig", + "text": "AxesSettingsConfig" + }, + " & { type: \"gridlinesConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "lens", "id": "def-public.HeatmapVisualizationState", @@ -4375,6 +5833,76 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "lens", + "id": "def-public.IconPosition", + "type": "Type", + "tags": [], + "label": "IconPosition", + "description": [], + "signature": [ + "\"above\" | \"below\" | \"left\" | \"right\" | \"auto\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.LabelsOrientationConfigResult", + "type": "Type", + "tags": [], + "label": "LabelsOrientationConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LabelsOrientationConfig", + "text": "LabelsOrientationConfig" + }, + " & { type: \"labelsOrientationConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.LayerType", + "type": "Type", + "tags": [], + "label": "LayerType", + "description": [], + "signature": [ + "\"data\" | \"annotations\" | \"referenceLine\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.LegendConfigResult", + "type": "Type", + "tags": [], + "label": "LegendConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.LegendConfig", + "text": "LegendConfig" + }, + " & { type: \"legendConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "lens", "id": "def-public.LensEmbeddableInput", @@ -4391,6 +5919,20 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "lens", + "id": "def-public.LineStyle", + "type": "Type", + "tags": [], + "label": "LineStyle", + "description": [], + "signature": [ + "\"solid\" | \"dashed\" | \"dotted\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "lens", "id": "def-public.MaxIndexPatternColumn", @@ -4407,7 +5949,7 @@ "text": "FieldBasedIndexPatternColumn" }, " & { operationType: \"max\"; params?: { emptyAsNull?: boolean | undefined; format?: ", - "FormatParams", + "ValueFormatConfig", " | undefined; } | undefined; }" ], "path": "x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/metrics.tsx", @@ -4430,7 +5972,7 @@ "text": "FieldBasedIndexPatternColumn" }, " & { operationType: \"median\"; params?: { emptyAsNull?: boolean | undefined; format?: ", - "FormatParams", + "ValueFormatConfig", " | undefined; } | undefined; }" ], "path": "x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/metrics.tsx", @@ -4453,7 +5995,7 @@ "text": "FieldBasedIndexPatternColumn" }, " & { operationType: \"min\"; params?: { emptyAsNull?: boolean | undefined; format?: ", - "FormatParams", + "ValueFormatConfig", " | undefined; } | undefined; }" ], "path": "x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/metrics.tsx", @@ -4569,6 +6111,27 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "lens", + "id": "def-public.ReferenceLineLayerConfigResult", + "type": "Type", + "tags": [], + "label": "ReferenceLineLayerConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.ReferenceLineLayerArgs", + "text": "ReferenceLineLayerArgs" + }, + " & { type: \"referenceLineLayer\"; layerType: \"referenceLine\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "lens", "id": "def-public.SeriesType", @@ -4577,9 +6140,9 @@ "label": "SeriesType", "description": [], "signature": [ - "\"area\" | \"line\" | \"bar\" | \"bar_horizontal\" | \"bar_stacked\" | \"bar_percentage_stacked\" | \"bar_horizontal_stacked\" | \"bar_horizontal_percentage_stacked\" | \"area_stacked\" | \"area_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/common/expressions/xy_chart/series_type.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, "initialIsOpen": false }, @@ -4599,13 +6162,51 @@ "text": "FieldBasedIndexPatternColumn" }, " & { operationType: \"sum\"; params?: { emptyAsNull?: boolean | undefined; format?: ", - "FormatParams", + "ValueFormatConfig", " | undefined; } | undefined; }" ], "path": "x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/metrics.tsx", "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "lens", + "id": "def-public.TickLabelsConfigResult", + "type": "Type", + "tags": [], + "label": "TickLabelsConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxesSettingsConfig", + "text": "AxesSettingsConfig" + }, + " & { type: \"tickLabelsConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.TimeScaleIndexPatternColumn", + "type": "Type", + "tags": [], + "label": "TimeScaleIndexPatternColumn", + "description": [], + "signature": [ + "FormattedIndexPatternColumn", + " & ", + "ReferenceBasedIndexPatternColumn", + " & { operationType: \"normalize_by_unit\"; params: { unit?: string | undefined; }; }" + ], + "path": "x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/calculations/time_scale.tsx", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "lens", "id": "def-public.TypedLensByValueInput", @@ -4686,6 +6287,34 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "lens", + "id": "def-public.ValueLabelMode", + "type": "Type", + "tags": [], + "label": "ValueLabelMode", + "description": [], + "signature": [ + "\"hide\" | \"inside\" | \"outside\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XScaleType", + "type": "Type", + "tags": [], + "label": "XScaleType", + "description": [], + "signature": [ + "\"time\" | \"linear\" | \"ordinal\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "lens", "id": "def-public.XYCurveType", @@ -4696,7 +6325,7 @@ "signature": [ "\"LINEAR\" | \"CURVE_MONOTONE_X\"" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/xy_args.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, "initialIsOpen": false }, @@ -4708,13 +6337,31 @@ "label": "XYLayerConfig", "description": [], "signature": [ - "XYDataLayerConfig", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.XYDataLayerConfig", + "text": "XYDataLayerConfig" + }, " | ", - "XYReferenceLineLayerConfig", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.XYReferenceLineLayerConfig", + "text": "XYReferenceLineLayerConfig" + }, " | ", - "XYAnnotationLayerConfig" + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.XYAnnotationLayerConfig", + "text": "XYAnnotationLayerConfig" + } ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/layer_config/index.ts", + "path": "x-pack/plugins/lens/public/xy_visualization/types.ts", "deprecated": false, "initialIsOpen": false }, @@ -4728,7 +6375,42 @@ "signature": [ "\"bottom\" | \"left\" | \"right\" | \"auto\"" ], - "path": "x-pack/plugins/lens/common/expressions/xy_chart/axis_config.ts", + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.YConfigResult", + "type": "Type", + "tags": [], + "label": "YConfigResult", + "description": [], + "signature": [ + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YConfig", + "text": "YConfig" + }, + " & { type: \"yConfig\"; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "lens", + "id": "def-public.YScaleType", + "type": "Type", + "tags": [], + "label": "YScaleType", + "description": [], + "signature": [ + "\"time\" | \"log\" | \"sqrt\" | \"linear\"" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, "initialIsOpen": false } @@ -6904,7 +8586,7 @@ "label": "numberDisplay", "description": [], "signature": [ - "\"percent\" | \"hidden\" | \"value\"" + "\"percent\" | \"value\" | \"hidden\"" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false @@ -7338,7 +9020,7 @@ "label": "NumberDisplayType", "description": [], "signature": [ - "\"percent\" | \"hidden\" | \"value\"" + "\"percent\" | \"value\" | \"hidden\"" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index 84a89dd791f66..f402cc9da023d 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github summary: API docs for the lens plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 438 | 0 | 363 | 44 | +| 542 | 0 | 467 | 29 | ## Client diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 256fef726f354..b4aff7714efa4 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github summary: API docs for the licenseApiGuard plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseApiGuard'] warning: 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. --- diff --git a/api_docs/license_management.mdx b/api_docs/license_management.mdx index 54f934702c0ee..420b57b1f1031 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github summary: API docs for the licenseManagement plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseManagement'] warning: 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. --- diff --git a/api_docs/licensing.mdx b/api_docs/licensing.mdx index be18c4a645fa2..79b03fe099f74 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github summary: API docs for the licensing plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing'] warning: 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. --- diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx index 85a40eb0e3f3b..2b1a6bd35b251 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github summary: API docs for the lists plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] warning: 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. --- diff --git a/api_docs/management.mdx b/api_docs/management.mdx index a662b63d61731..ab9bec5d300d6 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github summary: API docs for the management plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management'] warning: 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. --- diff --git a/api_docs/maps.devdocs.json b/api_docs/maps.devdocs.json index 157684b198652..7b25903f0b349 100644 --- a/api_docs/maps.devdocs.json +++ b/api_docs/maps.devdocs.json @@ -1719,7 +1719,7 @@ "label": "getHtmlDisplayValue", "description": [], "signature": [ - "() => string" + "() => React.ReactNode" ], "path": "x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts", "deprecated": false, @@ -3007,6 +3007,20 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "maps", + "id": "def-public.MAPS_APP_LOCATOR", + "type": "string", + "tags": [], + "label": "MAPS_APP_LOCATOR", + "description": [], + "signature": [ + "\"MAPS_APP_LOCATOR\"" + ], + "path": "x-pack/plugins/maps/public/locators.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "maps", "id": "def-public.RenderWizardArguments", @@ -3412,6 +3426,34 @@ } ], "misc": [ + { + "parentPluginId": "maps", + "id": "def-common.APP_ID", + "type": "string", + "tags": [], + "label": "APP_ID", + "description": [], + "signature": [ + "\"maps\"" + ], + "path": "x-pack/plugins/maps/common/constants.ts", + "deprecated": false, + "initialIsOpen": false + }, + { + "parentPluginId": "maps", + "id": "def-common.DECIMAL_DEGREES_PRECISION", + "type": "number", + "tags": [], + "label": "DECIMAL_DEGREES_PRECISION", + "description": [], + "signature": [ + "5" + ], + "path": "x-pack/plugins/maps/common/constants.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "maps", "id": "def-common.EMSFileSourceDescriptor", diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx index 1ea8654c4245f..efb5cb75504c5 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github summary: API docs for the maps plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'maps'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [GIS](https://github.com/orgs/elastic/teams/kibana-gis) for questions re | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 220 | 0 | 219 | 27 | +| 223 | 0 | 222 | 27 | ## Client diff --git a/api_docs/maps_ems.mdx b/api_docs/maps_ems.mdx index 9c1b685711d4b..cb370a3797a1c 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github summary: API docs for the mapsEms plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms'] warning: 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. --- diff --git a/api_docs/metrics_entities.mdx b/api_docs/metrics_entities.mdx index 758efed1b5f32..54c8be06368da 100644 --- a/api_docs/metrics_entities.mdx +++ b/api_docs/metrics_entities.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/metricsEntities title: "metricsEntities" image: https://source.unsplash.com/400x175/?github summary: API docs for the metricsEntities plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'metricsEntities'] warning: 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. --- diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index 4f8c7d8db29da..4b0a0d50a851f 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github summary: API docs for the ml plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml'] warning: 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. --- diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx index 909e1991311ef..f02d3b935b84b 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github summary: API docs for the monitoring plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring'] warning: 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. --- diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx index 65e04e6bcb35a..6e7314779aaeb 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github summary: API docs for the monitoringCollection plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection'] warning: 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. --- diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx index 8220e61a22c8b..e07b8011d3838 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github summary: API docs for the navigation plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'navigation'] warning: 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. --- diff --git a/api_docs/newsfeed.mdx b/api_docs/newsfeed.mdx index 2b3ab879f7dbc..5b48a4a5925de 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github summary: API docs for the newsfeed plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] warning: 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. --- diff --git a/api_docs/observability.devdocs.json b/api_docs/observability.devdocs.json index 92b1a82e29de6..efccaf7e0d44b 100644 --- a/api_docs/observability.devdocs.json +++ b/api_docs/observability.devdocs.json @@ -1984,7 +1984,13 @@ "label": "axisTitlesVisibility", "description": [], "signature": [ - "AxesSettingsConfig", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.AxesSettingsConfig", + "text": "AxesSettingsConfig" + }, " | undefined" ], "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", @@ -3291,6 +3297,47 @@ ], "path": "x-pack/plugins/observability/public/plugin.ts", "deprecated": false + }, + { + "parentPluginId": "observability", + "id": "def-public.ObservabilityPublicPluginsStart.features", + "type": "Object", + "tags": [], + "label": "features", + "description": [], + "signature": [ + "{ getFeatures: () => Promise<", + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.KibanaFeature", + "text": "KibanaFeature" + }, + "[]>; }" + ], + "path": "x-pack/plugins/observability/public/plugin.ts", + "deprecated": false + }, + { + "parentPluginId": "observability", + "id": "def-public.ObservabilityPublicPluginsStart.kibanaFeatures", + "type": "Array", + "tags": [], + "label": "kibanaFeatures", + "description": [], + "signature": [ + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.KibanaFeature", + "text": "KibanaFeature" + }, + "[]" + ], + "path": "x-pack/plugins/observability/public/plugin.ts", + "deprecated": false } ], "initialIsOpen": false @@ -3490,7 +3537,7 @@ "label": "defaultSeriesType", "description": [], "signature": [ - "\"area\" | \"line\" | \"bar\" | \"bar_horizontal\" | \"bar_stacked\" | \"bar_percentage_stacked\" | \"bar_horizontal_stacked\" | \"bar_horizontal_percentage_stacked\" | \"area_stacked\" | \"area_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 @@ -3516,7 +3563,13 @@ "label": "seriesTypes", "description": [], "signature": [ - "SeriesType", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.SeriesType", + "text": "SeriesType" + }, "[]" ], "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts", @@ -3663,7 +3716,13 @@ "label": "yConfig", "description": [], "signature": [ - "YConfig", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.YConfig", + "text": "YConfig" + }, "[] | undefined" ], "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts", @@ -3753,7 +3812,13 @@ "label": "seriesType", "description": [], "signature": [ - "SeriesType", + { + "pluginId": "expressionXY", + "scope": "common", + "docId": "kibExpressionXYPluginApi", + "section": "def-common.SeriesType", + "text": "SeriesType" + }, " | undefined" ], "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts", @@ -7108,6 +7173,20 @@ "interfaces": [], "enums": [], "misc": [ + { + "parentPluginId": "observability", + "id": "def-common.apmServiceInventoryOptimizedSorting", + "type": "string", + "tags": [], + "label": "apmServiceInventoryOptimizedSorting", + "description": [], + "signature": [ + "\"observability:apmServiceInventoryOptimizedSorting\"" + ], + "path": "x-pack/plugins/observability/common/ui_settings_keys.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "observability", "id": "def-common.AsDuration", diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 5bd4eccae8623..7e5c1aebfa196 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github summary: API docs for the observability plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Observability UI](https://github.com/orgs/elastic/teams/observability-u | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 366 | 2 | 363 | 31 | +| 369 | 2 | 366 | 31 | ## Client diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index b5fb6eb0b4e5f..f0e809e47a95b 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github summary: API docs for the osquery plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery'] warning: 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. --- diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx index 074b16f3f28ae..8c6bb5654d279 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -3,7 +3,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory summary: Directory of public APIs available through plugins or packages. -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana'] warning: 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. --- @@ -12,13 +12,13 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Count | Plugins or Packages with a
public API | Number of teams | |--------------|----------|------------------------| -| 248 | 181 | 42 | +| 251 | 185 | 42 | ### Public API health stats | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 24620 | 168 | 18747 | 1131 | +| 25349 | 169 | 19463 | 1117 | ## Plugin Directory @@ -26,18 +26,18 @@ warning: This document is auto-generated and is meant to be viewed inside our ex |--------------|----------------|-----------|--------------|----------|---------------|--------| | | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 127 | 0 | 127 | 10 | | | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 23 | 0 | 19 | 1 | -| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 301 | 0 | 293 | 21 | +| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 323 | 0 | 315 | 21 | | | [APM UI](https://github.com/orgs/elastic/teams/apm-ui) | The user interface for Elastic APM | 40 | 0 | 40 | 50 | | | [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. | 78 | 1 | 69 | 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 | 71 | 0 | 58 | 19 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | - | 321 | 2 | 288 | 4 | +| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | - | 322 | 2 | 289 | 4 | | | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 28 | 0 | 23 | 0 | | | [Cloud Security Posture](https://github.com/orgs/elastic/teams/cloud-posture-security) | The cloud security posture plugin | 14 | 0 | 14 | 0 | | | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 13 | 0 | 13 | 1 | -| | [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 | 133 | 0 | 127 | 4 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2374 | 15 | 969 | 33 | +| | [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 | 185 | 0 | 179 | 4 | +| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2375 | 15 | 970 | 33 | | crossClusterReplication | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 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 | 98 | 0 | 79 | 1 | | | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds the Dashboard app to Kibana | 151 | 0 | 149 | 14 | @@ -60,7 +60,7 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | The Event Annotation service contains expressions for event annotations | 49 | 0 | 49 | 3 | | | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 91 | 0 | 91 | 9 | | | [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-vis-editors) | Expression Gauge plugin adds a `gauge` renderer and function to the expression plugin. The renderer will display the `gauge` chart. | 70 | 0 | 70 | 2 | +| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | Expression Gauge plugin adds a `gauge` renderer and function to the expression plugin. The renderer will display the `gauge` chart. | 71 | 0 | 71 | 2 | | | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | Expression Heatmap plugin adds a `heatmap` renderer and function to the expression plugin. The renderer will display the `heatmap` chart. | 119 | 0 | 115 | 3 | | | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'image' function and renderer to expressions | 26 | 0 | 26 | 0 | | | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'metric' function and renderer to expressions | 32 | 0 | 27 | 0 | @@ -70,11 +70,12 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [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-vis-editors) | 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-vis-editors) | Expression XY plugin adds a `xy` renderer and function to the expression plugin. The renderer will display the `xy` chart. | 473 | 0 | 463 | 0 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Adds expression runtime to Kibana | 2145 | 17 | 1701 | 6 | | | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 222 | 0 | 95 | 2 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Index pattern fields and ambiguous values formatters | 286 | 6 | 247 | 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 | -| | [Fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1371 | 8 | 1254 | 9 | +| | [Fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1379 | 8 | 1262 | 9 | | | [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 | @@ -92,14 +93,14 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 239 | 0 | 203 | 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) | - | 615 | 3 | 420 | 9 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | 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. | 438 | 0 | 363 | 44 | +| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | 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. | 542 | 0 | 467 | 29 | | | [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) | - | 198 | 0 | 162 | 49 | | logstash | [Logstash](https://github.com/orgs/elastic/teams/logstash) | - | 0 | 0 | 0 | 0 | | | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | - | 41 | 0 | 41 | 6 | -| | [GIS](https://github.com/orgs/elastic/teams/kibana-gis) | - | 220 | 0 | 219 | 27 | +| | [GIS](https://github.com/orgs/elastic/teams/kibana-gis) | - | 223 | 0 | 222 | 27 | | | [GIS](https://github.com/orgs/elastic/teams/kibana-gis) | - | 67 | 0 | 67 | 0 | | | [Security solution](https://github.com/orgs/elastic/teams/security-solution) | - | 4 | 0 | 4 | 1 | | | [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the machine learning features provided by Elastic. | 196 | 8 | 79 | 30 | @@ -107,17 +108,17 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [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 | -| | [Observability UI](https://github.com/orgs/elastic/teams/observability-ui) | - | 366 | 2 | 363 | 31 | +| | [Observability UI](https://github.com/orgs/elastic/teams/observability-ui) | - | 369 | 2 | 366 | 31 | | | [Security asset management](https://github.com/orgs/elastic/teams/security-asset-management) | - | 13 | 0 | 13 | 0 | | 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). | 228 | 2 | 177 | 11 | | | [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) | - | 191 | 0 | 164 | 8 | +| | [RAC](https://github.com/orgs/elastic/teams/rac) | - | 194 | 0 | 167 | 8 | | | [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) | - | 192 | 2 | 151 | 5 | -| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 103 | 0 | 90 | 0 | +| | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 110 | 0 | 97 | 0 | | | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 54 | 0 | 50 | 0 | | | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 90 | 0 | 45 | 0 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 33 | 0 | 14 | 0 | @@ -125,7 +126,7 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | 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. | 183 | 0 | 103 | 0 | | | [Security solution](https://github.com/orgs/elastic/teams/security-solution) | - | 45 | 0 | 45 | 18 | -| sessionView | [Security Team](https://github.com/orgs/elastic/teams/security-team) | - | 0 | 0 | 0 | 0 | +| | [Security Team](https://github.com/orgs/elastic/teams/security-team) | - | 3 | 0 | 3 | 1 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Adds URL Service and sharing capabilities to Kibana | 113 | 0 | 54 | 10 | | | [Shared UX](https://github.com/orgs/elastic/teams/shared-ux) | A plugin providing components and services for shared user experiences in Kibana. | 4 | 0 | 0 | 0 | | | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 21 | 1 | 21 | 1 | @@ -139,7 +140,7 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [Security solution](https://github.com/orgs/elastic/teams/security-solution) | - | 435 | 1 | 331 | 35 | | | [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) | - | 300 | 0 | 286 | 22 | +| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 302 | 0 | 288 | 23 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Adds UI Actions service to Kibana | 130 | 0 | 91 | 11 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Extends UI Actions plugin with more functionality | 203 | 0 | 141 | 9 | | upgradeAssistant | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 0 | 0 | 0 | 0 | @@ -168,19 +169,20 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Package name           | Maintaining team | Description | API Cnt | Any Cnt | Missing
comments | Missing
exports | |--------------|----------------|-----------|--------------|----------|---------------|--------| -| | [Owner missing] | Elastic APM trace data generator | 53 | 0 | 53 | 9 | +| | [Owner missing] | Elastic APM trace data generator | 62 | 0 | 62 | 9 | | | [Owner missing] | elasticsearch datemath parser, used in kibana | 44 | 0 | 43 | 0 | | | [Owner missing] | - | 11 | 5 | 11 | 0 | | | [Owner missing] | Alerts components and hooks | 9 | 1 | 9 | 0 | | | Ahmad Bamieh ahmadbamieh@gmail.com | Kibana Analytics tool | 69 | 0 | 69 | 2 | | | [Owner missing] | - | 16 | 0 | 16 | 0 | | | [Owner missing] | - | 11 | 0 | 11 | 0 | +| | [Owner missing] | - | 10 | 0 | 10 | 0 | | | [Owner missing] | - | 12 | 0 | 5 | 1 | | | [Owner missing] | - | 2 | 0 | 2 | 0 | | | [Owner missing] | - | 66 | 0 | 46 | 2 | | | [Owner missing] | - | 125 | 3 | 123 | 17 | | | [Owner missing] | - | 13 | 0 | 7 | 0 | -| | [Owner missing] | - | 286 | 3 | 207 | 1 | +| | [Owner missing] | - | 277 | 3 | 199 | 1 | | | [Owner missing] | - | 63 | 0 | 63 | 2 | | | [Owner missing] | - | 1 | 0 | 1 | 0 | | | [Owner missing] | - | 27 | 0 | 14 | 1 | @@ -188,18 +190,19 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [Owner missing] | - | 20 | 0 | 16 | 0 | | | [Owner missing] | - | 1 | 0 | 0 | 0 | | | [Owner missing] | - | 51 | 0 | 48 | 0 | -| | App Services | - | 35 | 3 | 35 | 1 | +| | App Services | - | 35 | 4 | 35 | 0 | | | [Owner missing] | - | 20 | 0 | 20 | 2 | | | [Owner missing] | - | 30 | 0 | 5 | 36 | | | [Owner missing] | - | 8 | 0 | 8 | 0 | | | [Owner missing] | - | 466 | 1 | 1 | 0 | | | [Owner missing] | - | 55 | 0 | 55 | 2 | | | [Owner missing] | - | 45 | 0 | 45 | 10 | +| | [Owner missing] | - | 28 | 0 | 27 | 0 | | | [Owner missing] | - | 1 | 0 | 1 | 0 | | | [Owner missing] | Just some helpers for kibana plugin devs. | 1 | 0 | 1 | 0 | | | [Owner missing] | - | 63 | 0 | 49 | 5 | | | [Owner missing] | - | 21 | 0 | 10 | 0 | -| | [Owner missing] | - | 72 | 0 | 69 | 0 | +| | [Owner missing] | - | 74 | 0 | 71 | 0 | | | [Owner missing] | Security Solution auto complete | 50 | 1 | 35 | 0 | | | [Owner missing] | security solution elastic search utilities to use across plugins such lists, security_solution, cases, etc... | 57 | 0 | 51 | 1 | | | [Owner missing] | Security Solution utilities for React hooks | 14 | 0 | 6 | 0 | @@ -210,8 +213,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [Owner missing] | security solution list REST API | 59 | 0 | 58 | 0 | | | [Owner missing] | security solution list constants to use across plugins such lists, security_solution, cases, etc... | 26 | 0 | 12 | 0 | | | [Owner missing] | Security solution list ReactJS hooks | 56 | 0 | 44 | 0 | -| | [Owner missing] | security solution list utilities | 226 | 0 | 178 | 0 | -| | [Owner missing] | security solution rule utilities to use across plugins | 23 | 0 | 21 | 0 | +| | [Owner missing] | security solution list utilities | 227 | 0 | 179 | 0 | +| | [Owner missing] | security solution rule utilities to use across plugins | 24 | 0 | 21 | 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 | 0 | 29 | 0 | | | [Owner missing] | - | 53 | 0 | 50 | 1 | @@ -224,7 +227,7 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | Operations | - | 22 | 2 | 21 | 0 | | | [Owner missing] | - | 2 | 0 | 2 | 0 | | | Operations | - | 252 | 6 | 214 | 9 | -| | [Owner missing] | - | 128 | 8 | 101 | 2 | +| | [Owner missing] | - | 132 | 8 | 103 | 2 | | | [Owner missing] | - | 29 | 0 | 2 | 0 | | | [Owner missing] | - | 83 | 0 | 83 | 1 | | | [Owner missing] | - | 7 | 0 | 6 | 0 | diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index 4691da30a8ce6..ce0f50cfc3aa1 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github summary: API docs for the presentationUtil plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil'] warning: 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. --- diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx index b171535c6cddb..6f7bf55ef4b03 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github summary: API docs for the remoteClusters plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'remoteClusters'] warning: 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. --- diff --git a/api_docs/reporting.mdx b/api_docs/reporting.mdx index a52845024c365..122bb403b6b02 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github summary: API docs for the reporting plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'reporting'] warning: 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. --- diff --git a/api_docs/rollup.mdx b/api_docs/rollup.mdx index 234a4b339feb4..fcb31da37804c 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github summary: API docs for the rollup plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] warning: 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. --- diff --git a/api_docs/rule_registry.devdocs.json b/api_docs/rule_registry.devdocs.json index 5e68447c67923..2b623199d9ae8 100644 --- a/api_docs/rule_registry.devdocs.json +++ b/api_docs/rule_registry.devdocs.json @@ -2548,7 +2548,9 @@ "label": "createdAlerts", "description": [], "signature": [ - "(T & { _id: string; _index: string; })[]" + "(T & ", + "CommonAlertFields800", + " & { _id: string; _index: string; })[]" ], "path": "x-pack/plugins/rule_registry/server/utils/persistence_types.ts", "deprecated": false @@ -3508,7 +3510,41 @@ "initialIsOpen": false } ], - "interfaces": [], + "interfaces": [ + { + "parentPluginId": "ruleRegistry", + "id": "def-common.RuleRegistrySearchRequestPagination", + "type": "Interface", + "tags": [], + "label": "RuleRegistrySearchRequestPagination", + "description": [], + "path": "x-pack/plugins/rule_registry/common/search_strategy/index.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "ruleRegistry", + "id": "def-common.RuleRegistrySearchRequestPagination.pageIndex", + "type": "number", + "tags": [], + "label": "pageIndex", + "description": [], + "path": "x-pack/plugins/rule_registry/common/search_strategy/index.ts", + "deprecated": false + }, + { + "parentPluginId": "ruleRegistry", + "id": "def-common.RuleRegistrySearchRequestPagination.pageSize", + "type": "number", + "tags": [], + "label": "pageSize", + "description": [], + "path": "x-pack/plugins/rule_registry/common/search_strategy/index.ts", + "deprecated": false + } + ], + "initialIsOpen": false + } + ], "enums": [], "misc": [ { @@ -3561,7 +3597,13 @@ "; } | undefined; sort?: ", "SortCombinations", "[] | undefined; pagination?: ", - "RuleRegistrySearchRequestPagination", + { + "pluginId": "ruleRegistry", + "scope": "common", + "docId": "kibRuleRegistryPluginApi", + "section": "def-common.RuleRegistrySearchRequestPagination", + "text": "RuleRegistrySearchRequestPagination" + }, " | undefined; }" ], "path": "x-pack/plugins/rule_registry/common/search_strategy/index.ts", diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index 8307927128bb8..5bfe71c9dd328 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github summary: API docs for the ruleRegistry plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [RAC](https://github.com/orgs/elastic/teams/rac) for questions regarding | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 191 | 0 | 164 | 8 | +| 194 | 0 | 167 | 8 | ## Server @@ -51,6 +51,9 @@ Contact [RAC](https://github.com/orgs/elastic/teams/rac) for questions regarding ### Functions +### Interfaces + + ### Consts, variables and types diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx index c625a3279da82..895aed86602ec 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github summary: API docs for the runtimeFields plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields'] warning: 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. --- diff --git a/api_docs/saved_objects.devdocs.json b/api_docs/saved_objects.devdocs.json index 91e85dae14f9c..c8dbdfc152759 100644 --- a/api_docs/saved_objects.devdocs.json +++ b/api_docs/saved_objects.devdocs.json @@ -1698,22 +1698,6 @@ { "plugin": "lens", "path": "x-pack/plugins/lens/public/persistence/saved_objects_utils/check_for_duplicate_title.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/persistence/saved_objects_utils/check_for_duplicate_title.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/persistence/saved_objects_utils/check_for_duplicate_title.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/persistence/saved_objects_utils/display_duplicate_title_confirm_modal.d.ts" - }, - { - "plugin": "lens", - "path": "x-pack/plugins/lens/target/types/public/persistence/saved_objects_utils/display_duplicate_title_confirm_modal.d.ts" } ], "children": [ diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx index 878c4ded28868..296096c822cb1 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github summary: API docs for the savedObjects plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects'] warning: 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. --- diff --git a/api_docs/saved_objects_management.devdocs.json b/api_docs/saved_objects_management.devdocs.json index ebdc8b445cc5c..4959863ea9dae 100644 --- a/api_docs/saved_objects_management.devdocs.json +++ b/api_docs/saved_objects_management.devdocs.json @@ -249,6 +249,183 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "savedObjectsManagement", + "id": "def-public.SavedObjectsManagementColumn", + "type": "Class", + "tags": [], + "label": "SavedObjectsManagementColumn", + "description": [], + "path": "src/plugins/saved_objects_management/public/services/types/column.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "savedObjectsManagement", + "id": "def-public.SavedObjectsManagementColumn.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "src/plugins/saved_objects_management/public/services/types/column.ts", + "deprecated": false + }, + { + "parentPluginId": "savedObjectsManagement", + "id": "def-public.SavedObjectsManagementColumn.euiColumn", + "type": "Object", + "tags": [], + "label": "euiColumn", + "description": [], + "signature": [ + "{ children?: React.ReactNode; onClick?: React.MouseEventHandler | undefined; onChange?: React.FormEventHandler | undefined; color?: string | undefined; onKeyDown?: React.KeyboardEventHandler | undefined; className?: string | undefined; title?: string | undefined; id?: string | undefined; description?: string | undefined; security?: string | undefined; name: React.ReactNode; field: (string & {}) | keyof ", + { + "pluginId": "savedObjectsManagement", + "scope": "public", + "docId": "kibSavedObjectsManagementPluginApi", + "section": "def-public.SavedObjectsManagementRecord", + "text": "SavedObjectsManagementRecord" + }, + "; defaultChecked?: boolean | undefined; defaultValue?: string | number | string[] | 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; slot?: string | undefined; spellCheck?: Booleanish | undefined; style?: React.CSSProperties | undefined; tabIndex?: number | undefined; translate?: \"yes\" | \"no\" | undefined; radioGroup?: string | undefined; role?: string | 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'?: boolean | \"true\" | \"false\" | undefined; 'aria-autocomplete'?: \"none\" | \"list\" | \"inline\" | \"both\" | undefined; 'aria-busy'?: boolean | \"true\" | \"false\" | undefined; 'aria-checked'?: boolean | \"mixed\" | \"true\" | \"false\" | undefined; 'aria-colcount'?: number | undefined; 'aria-colindex'?: number | undefined; 'aria-colspan'?: number | undefined; 'aria-controls'?: string | undefined; 'aria-current'?: boolean | \"date\" | \"page\" | \"time\" | \"true\" | \"false\" | \"step\" | \"location\" | undefined; 'aria-describedby'?: string | undefined; 'aria-details'?: string | undefined; 'aria-disabled'?: boolean | \"true\" | \"false\" | undefined; 'aria-dropeffect'?: \"none\" | \"copy\" | \"link\" | \"execute\" | \"move\" | \"popup\" | undefined; 'aria-errormessage'?: string | undefined; 'aria-expanded'?: boolean | \"true\" | \"false\" | undefined; 'aria-flowto'?: string | undefined; 'aria-grabbed'?: boolean | \"true\" | \"false\" | undefined; 'aria-haspopup'?: boolean | \"grid\" | \"menu\" | \"true\" | \"false\" | \"listbox\" | \"tree\" | \"dialog\" | undefined; 'aria-hidden'?: boolean | \"true\" | \"false\" | undefined; 'aria-invalid'?: boolean | \"true\" | \"false\" | \"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'?: boolean | \"true\" | \"false\" | undefined; 'aria-multiline'?: boolean | \"true\" | \"false\" | undefined; 'aria-multiselectable'?: boolean | \"true\" | \"false\" | undefined; 'aria-orientation'?: \"horizontal\" | \"vertical\" | undefined; 'aria-owns'?: string | undefined; 'aria-placeholder'?: string | undefined; 'aria-posinset'?: number | undefined; 'aria-pressed'?: boolean | \"mixed\" | \"true\" | \"false\" | undefined; 'aria-readonly'?: boolean | \"true\" | \"false\" | undefined; 'aria-relevant'?: \"all\" | \"text\" | \"additions\" | \"additions text\" | \"removals\" | undefined; 'aria-required'?: boolean | \"true\" | \"false\" | undefined; 'aria-roledescription'?: string | undefined; 'aria-rowcount'?: number | undefined; 'aria-rowindex'?: number | undefined; 'aria-rowspan'?: number | undefined; 'aria-selected'?: boolean | \"true\" | \"false\" | 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; onError?: 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; width?: string | undefined; render?: ((value: any, record: ", + { + "pluginId": "savedObjectsManagement", + "scope": "public", + "docId": "kibSavedObjectsManagementPluginApi", + "section": "def-public.SavedObjectsManagementRecord", + "text": "SavedObjectsManagementRecord" + }, + ") => React.ReactNode) | undefined; readOnly?: boolean | undefined; align?: ", + "HorizontalAlignment", + " | undefined; abbr?: string | undefined; footer?: string | React.ReactElement> | ((props: ", + "EuiTableFooterProps", + "<", + { + "pluginId": "savedObjectsManagement", + "scope": "public", + "docId": "kibSavedObjectsManagementPluginApi", + "section": "def-public.SavedObjectsManagementRecord", + "text": "SavedObjectsManagementRecord" + }, + ">) => React.ReactNode) | undefined; colSpan?: number | undefined; headers?: string | undefined; rowSpan?: number | undefined; scope?: string | undefined; valign?: \"top\" | \"bottom\" | \"middle\" | \"baseline\" | undefined; dataType?: ", + "EuiTableDataType", + " | undefined; isExpander?: boolean | undefined; textOnly?: boolean | undefined; truncateText?: boolean | undefined; mobileOptions?: (Omit<", + "EuiTableRowCellMobileOptionsShape", + ", \"render\"> & { render?: ((item: ", + { + "pluginId": "savedObjectsManagement", + "scope": "public", + "docId": "kibSavedObjectsManagementPluginApi", + "section": "def-public.SavedObjectsManagementRecord", + "text": "SavedObjectsManagementRecord" + }, + ") => React.ReactNode) | undefined; }) | undefined; }" + ], + "path": "src/plugins/saved_objects_management/public/services/types/column.ts", + "deprecated": false + }, + { + "parentPluginId": "savedObjectsManagement", + "id": "def-public.SavedObjectsManagementColumn.refreshOnFinish", + "type": "Function", + "tags": [], + "label": "refreshOnFinish", + "description": [], + "signature": [ + "(() => { type: string; id: string; }[]) | undefined" + ], + "path": "src/plugins/saved_objects_management/public/services/types/column.ts", + "deprecated": false + }, + { + "parentPluginId": "savedObjectsManagement", + "id": "def-public.SavedObjectsManagementColumn.columnContext", + "type": "CompoundType", + "tags": [], + "label": "columnContext", + "description": [], + "signature": [ + "ColumnContext | null" + ], + "path": "src/plugins/saved_objects_management/public/services/types/column.ts", + "deprecated": false + }, + { + "parentPluginId": "savedObjectsManagement", + "id": "def-public.SavedObjectsManagementColumn.setColumnContext", + "type": "Function", + "tags": [], + "label": "setColumnContext", + "description": [], + "signature": [ + "(columnContext: ColumnContext) => void" + ], + "path": "src/plugins/saved_objects_management/public/services/types/column.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "savedObjectsManagement", + "id": "def-public.SavedObjectsManagementColumn.setColumnContext.$1", + "type": "Object", + "tags": [], + "label": "columnContext", + "description": [], + "signature": [ + "ColumnContext" + ], + "path": "src/plugins/saved_objects_management/public/services/types/column.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "savedObjectsManagement", + "id": "def-public.SavedObjectsManagementColumn.registerOnFinishCallback", + "type": "Function", + "tags": [], + "label": "registerOnFinishCallback", + "description": [], + "signature": [ + "(callback: Function) => void" + ], + "path": "src/plugins/saved_objects_management/public/services/types/column.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "savedObjectsManagement", + "id": "def-public.SavedObjectsManagementColumn.registerOnFinishCallback.$1", + "type": "Object", + "tags": [], + "label": "callback", + "description": [], + "signature": [ + "Function" + ], + "path": "src/plugins/saved_objects_management/public/services/types/column.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "savedObjectsManagement", + "id": "def-public.SavedObjectsManagementColumn.finish", + "type": "Function", + "tags": [], + "label": "finish", + "description": [], + "signature": [ + "() => void" + ], + "path": "src/plugins/saved_objects_management/public/services/types/column.ts", + "deprecated": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false } ], "functions": [ @@ -788,92 +965,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "savedObjectsManagement", - "id": "def-public.SavedObjectsManagementColumn", - "type": "Interface", - "tags": [], - "label": "SavedObjectsManagementColumn", - "description": [], - "signature": [ - { - "pluginId": "savedObjectsManagement", - "scope": "public", - "docId": "kibSavedObjectsManagementPluginApi", - "section": "def-public.SavedObjectsManagementColumn", - "text": "SavedObjectsManagementColumn" - }, - "" - ], - "path": "src/plugins/saved_objects_management/public/services/types/column.ts", - "deprecated": false, - "children": [ - { - "parentPluginId": "savedObjectsManagement", - "id": "def-public.SavedObjectsManagementColumn.id", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "path": "src/plugins/saved_objects_management/public/services/types/column.ts", - "deprecated": false - }, - { - "parentPluginId": "savedObjectsManagement", - "id": "def-public.SavedObjectsManagementColumn.euiColumn", - "type": "Object", - "tags": [], - "label": "euiColumn", - "description": [], - "signature": [ - "{ children?: React.ReactNode; onClick?: React.MouseEventHandler | undefined; onChange?: React.FormEventHandler | undefined; color?: string | undefined; onKeyDown?: React.KeyboardEventHandler | undefined; title?: string | undefined; id?: string | undefined; description?: string | undefined; security?: string | undefined; name: React.ReactNode; className?: string | undefined; field: (string & {}) | keyof ", - { - "pluginId": "savedObjectsManagement", - "scope": "public", - "docId": "kibSavedObjectsManagementPluginApi", - "section": "def-public.SavedObjectsManagementRecord", - "text": "SavedObjectsManagementRecord" - }, - "; defaultChecked?: boolean | undefined; defaultValue?: string | number | string[] | 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; slot?: string | undefined; spellCheck?: Booleanish | undefined; style?: React.CSSProperties | undefined; tabIndex?: number | undefined; translate?: \"yes\" | \"no\" | undefined; radioGroup?: string | undefined; role?: string | 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'?: boolean | \"true\" | \"false\" | undefined; 'aria-autocomplete'?: \"none\" | \"list\" | \"inline\" | \"both\" | undefined; 'aria-busy'?: boolean | \"true\" | \"false\" | undefined; 'aria-checked'?: boolean | \"mixed\" | \"true\" | \"false\" | undefined; 'aria-colcount'?: number | undefined; 'aria-colindex'?: number | undefined; 'aria-colspan'?: number | undefined; 'aria-controls'?: string | undefined; 'aria-current'?: boolean | \"date\" | \"page\" | \"time\" | \"true\" | \"false\" | \"step\" | \"location\" | undefined; 'aria-describedby'?: string | undefined; 'aria-details'?: string | undefined; 'aria-disabled'?: boolean | \"true\" | \"false\" | undefined; 'aria-dropeffect'?: \"none\" | \"copy\" | \"link\" | \"execute\" | \"move\" | \"popup\" | undefined; 'aria-errormessage'?: string | undefined; 'aria-expanded'?: boolean | \"true\" | \"false\" | undefined; 'aria-flowto'?: string | undefined; 'aria-grabbed'?: boolean | \"true\" | \"false\" | undefined; 'aria-haspopup'?: boolean | \"grid\" | \"menu\" | \"true\" | \"false\" | \"listbox\" | \"tree\" | \"dialog\" | undefined; 'aria-hidden'?: boolean | \"true\" | \"false\" | undefined; 'aria-invalid'?: boolean | \"true\" | \"false\" | \"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'?: boolean | \"true\" | \"false\" | undefined; 'aria-multiline'?: boolean | \"true\" | \"false\" | undefined; 'aria-multiselectable'?: boolean | \"true\" | \"false\" | undefined; 'aria-orientation'?: \"horizontal\" | \"vertical\" | undefined; 'aria-owns'?: string | undefined; 'aria-placeholder'?: string | undefined; 'aria-posinset'?: number | undefined; 'aria-pressed'?: boolean | \"mixed\" | \"true\" | \"false\" | undefined; 'aria-readonly'?: boolean | \"true\" | \"false\" | undefined; 'aria-relevant'?: \"all\" | \"text\" | \"additions\" | \"additions text\" | \"removals\" | undefined; 'aria-required'?: boolean | \"true\" | \"false\" | undefined; 'aria-roledescription'?: string | undefined; 'aria-rowcount'?: number | undefined; 'aria-rowindex'?: number | undefined; 'aria-rowspan'?: number | undefined; 'aria-selected'?: boolean | \"true\" | \"false\" | 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; onError?: 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; width?: string | undefined; render?: ((value: any, record: ", - { - "pluginId": "savedObjectsManagement", - "scope": "public", - "docId": "kibSavedObjectsManagementPluginApi", - "section": "def-public.SavedObjectsManagementRecord", - "text": "SavedObjectsManagementRecord" - }, - ") => React.ReactNode) | undefined; readOnly?: boolean | undefined; align?: ", - "HorizontalAlignment", - " | undefined; abbr?: string | undefined; footer?: string | React.ReactElement> | ((props: ", - "EuiTableFooterProps", - "<", - { - "pluginId": "savedObjectsManagement", - "scope": "public", - "docId": "kibSavedObjectsManagementPluginApi", - "section": "def-public.SavedObjectsManagementRecord", - "text": "SavedObjectsManagementRecord" - }, - ">) => React.ReactNode) | undefined; colSpan?: number | undefined; headers?: string | undefined; rowSpan?: number | undefined; scope?: string | undefined; valign?: \"top\" | \"bottom\" | \"middle\" | \"baseline\" | undefined; dataType?: ", - "EuiTableDataType", - " | undefined; isExpander?: boolean | undefined; textOnly?: boolean | undefined; truncateText?: boolean | undefined; mobileOptions?: (Omit<", - "EuiTableRowCellMobileOptionsShape", - ", \"render\"> & { render?: ((item: ", - { - "pluginId": "savedObjectsManagement", - "scope": "public", - "docId": "kibSavedObjectsManagementPluginApi", - "section": "def-public.SavedObjectsManagementRecord", - "text": "SavedObjectsManagementRecord" - }, - ") => React.ReactNode) | undefined; }) | undefined; }" - ], - "path": "src/plugins/saved_objects_management/public/services/types/column.ts", - "deprecated": false - } - ], - "initialIsOpen": false - }, { "parentPluginId": "savedObjectsManagement", "id": "def-public.SavedObjectsManagementColumnServiceSetup", @@ -902,7 +993,7 @@ "section": "def-public.SavedObjectsManagementColumn", "text": "SavedObjectsManagementColumn" }, - ") => void" + ") => void" ], "path": "src/plugins/saved_objects_management/public/services/column_service.ts", "deprecated": false, @@ -921,8 +1012,7 @@ "docId": "kibSavedObjectsManagementPluginApi", "section": "def-public.SavedObjectsManagementColumn", "text": "SavedObjectsManagementColumn" - }, - "" + } ], "path": "src/plugins/saved_objects_management/public/services/column_service.ts", "deprecated": false, @@ -962,7 +1052,7 @@ "section": "def-public.SavedObjectsManagementColumn", "text": "SavedObjectsManagementColumn" }, - "[]" + "[]" ], "path": "src/plugins/saved_objects_management/public/services/column_service.ts", "deprecated": false, diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index e6d074c598a41..976a9d2eda8ae 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github summary: API docs for the savedObjectsManagement plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 103 | 0 | 90 | 0 | +| 110 | 0 | 97 | 0 | ## Client diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx index e8968e608d2fd..e8e6ea5d6cd30 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github summary: API docs for the savedObjectsTagging plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging'] warning: 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. --- diff --git a/api_docs/saved_objects_tagging_oss.mdx b/api_docs/saved_objects_tagging_oss.mdx index fb164203bf100..89ce30b10e7cf 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github summary: API docs for the savedObjectsTaggingOss plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss'] warning: 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. --- diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx index 857f4433fc48d..71394f207d496 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github summary: API docs for the screenshotMode plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode'] warning: 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. --- diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx index bdfe8f9e3a3fd..a4fcac213a3e0 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github summary: API docs for the screenshotting plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] warning: 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. --- diff --git a/api_docs/security.mdx b/api_docs/security.mdx index 3e9f3bdb1286b..026c00e70970c 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github summary: API docs for the security plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] warning: 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. --- diff --git a/api_docs/security_solution.devdocs.json b/api_docs/security_solution.devdocs.json index 706ef53c378e9..b8e6e83318a0b 100644 --- a/api_docs/security_solution.devdocs.json +++ b/api_docs/security_solution.devdocs.json @@ -302,7 +302,7 @@ "PinnedEvent", ">; resolveTimelineConfig?: ", "ResolveTimelineConfig", - " | undefined; showSaveModal?: boolean | undefined; savedQueryId?: string | null | undefined; show: boolean; status: ", + " | undefined; showSaveModal?: boolean | undefined; savedQueryId?: string | null | undefined; sessionViewId: string | null; show: boolean; status: ", "TimelineStatus", "; updated?: number | undefined; updatedBy?: string | null | undefined; isSaving: boolean; version: string | null; initialized?: boolean | undefined; }" ], diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index 49d1378275f3f..8bcd60c0cae56 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github summary: API docs for the securitySolution plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] warning: 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. --- diff --git a/api_docs/session_view.devdocs.json b/api_docs/session_view.devdocs.json new file mode 100644 index 0000000000000..2570f67218ab1 --- /dev/null +++ b/api_docs/session_view.devdocs.json @@ -0,0 +1,73 @@ +{ + "id": "sessionView", + "client": { + "classes": [], + "functions": [], + "interfaces": [ + { + "parentPluginId": "sessionView", + "id": "def-public.SessionViewStart", + "type": "Interface", + "tags": [], + "label": "SessionViewStart", + "description": [], + "path": "x-pack/plugins/session_view/public/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "sessionView", + "id": "def-public.SessionViewStart.getSessionView", + "type": "Function", + "tags": [], + "label": "getSessionView", + "description": [], + "signature": [ + "(props: ", + "SessionViewDeps", + ") => JSX.Element" + ], + "path": "x-pack/plugins/session_view/public/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "sessionView", + "id": "def-public.SessionViewStart.getSessionView.$1", + "type": "Object", + "tags": [], + "label": "props", + "description": [], + "signature": [ + "SessionViewDeps" + ], + "path": "x-pack/plugins/session_view/public/types.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "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/session_view.mdx b/api_docs/session_view.mdx new file mode 100644 index 0000000000000..d224cde4395cb --- /dev/null +++ b/api_docs/session_view.mdx @@ -0,0 +1,27 @@ +--- +id: kibSessionViewPluginApi +slug: /kibana-dev-docs/api/sessionView +title: "sessionView" +image: https://source.unsplash.com/400x175/?github +summary: API docs for the sessionView plugin +date: 2022-03-30 +tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sessionView'] +warning: 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. +--- +import sessionViewObj from './session_view.devdocs.json'; + + + +Contact [Security Team](https://github.com/orgs/elastic/teams/security-team) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 3 | 0 | 3 | 1 | + +## Client + +### Interfaces + + diff --git a/api_docs/share.mdx b/api_docs/share.mdx index c37fd16141cea..f5914e2632561 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github summary: API docs for the share plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share'] warning: 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. --- diff --git a/api_docs/shared_u_x.mdx b/api_docs/shared_u_x.mdx index 7646bb835d30f..94e2cb705bb76 100644 --- a/api_docs/shared_u_x.mdx +++ b/api_docs/shared_u_x.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/sharedUX title: "sharedUX" image: https://source.unsplash.com/400x175/?github summary: API docs for the sharedUX plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sharedUX'] warning: 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. --- diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx index 25cf5d3b0cf56..91ee3d1a59995 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github summary: API docs for the snapshotRestore plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'snapshotRestore'] warning: 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. --- diff --git a/api_docs/spaces.mdx b/api_docs/spaces.mdx index 34612eea43396..41ad901adde42 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github summary: API docs for the spaces plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'spaces'] warning: 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. --- diff --git a/api_docs/stack_alerts.mdx b/api_docs/stack_alerts.mdx index 121383562c498..692a2ca5d80c0 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github summary: API docs for the stackAlerts plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackAlerts'] warning: 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. --- diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx index d25c4da817e6f..9f73f27387abd 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github summary: API docs for the taskManager plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'taskManager'] warning: 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. --- diff --git a/api_docs/telemetry.mdx b/api_docs/telemetry.mdx index 416652d7757e3..6226e32da8b1c 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github summary: API docs for the telemetry plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetry'] warning: 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. --- diff --git a/api_docs/telemetry_collection_manager.mdx b/api_docs/telemetry_collection_manager.mdx index 9cb2118638de7..8195ed66521b7 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github summary: API docs for the telemetryCollectionManager plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionManager'] warning: 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. --- diff --git a/api_docs/telemetry_collection_xpack.mdx b/api_docs/telemetry_collection_xpack.mdx index 63e017a0ecba9..2db6ebd03274d 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github summary: API docs for the telemetryCollectionXpack plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionXpack'] warning: 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. --- diff --git a/api_docs/telemetry_management_section.mdx b/api_docs/telemetry_management_section.mdx index a3b33a115f576..a4a1b021024bc 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github summary: API docs for the telemetryManagementSection plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] warning: 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. --- diff --git a/api_docs/timelines.devdocs.json b/api_docs/timelines.devdocs.json index eafa8d7145c73..7018ab360d9fc 100644 --- a/api_docs/timelines.devdocs.json +++ b/api_docs/timelines.devdocs.json @@ -6533,7 +6533,7 @@ "label": "EntityType", "description": [], "signature": [ - "\"alerts\" | \"events\"" + "\"alerts\" | \"events\" | \"sessions\"" ], "path": "x-pack/plugins/timelines/common/search_strategy/timeline/events/index.ts", "deprecated": false, @@ -6833,7 +6833,7 @@ "label": "EntityType", "description": [], "signature": [ - "{ readonly ALERTS: \"alerts\"; readonly EVENTS: \"events\"; }" + "{ readonly ALERTS: \"alerts\"; readonly EVENTS: \"events\"; readonly SESSIONS: \"sessions\"; }" ], "path": "x-pack/plugins/timelines/common/search_strategy/timeline/events/index.ts", "deprecated": false, diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index 2d10c70b8c02b..9b0fdb3821720 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github summary: API docs for the timelines plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'timelines'] warning: 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. --- diff --git a/api_docs/transform.mdx b/api_docs/transform.mdx index 37168131c88eb..8b082a74f69d7 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github summary: API docs for the transform plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] warning: 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. --- diff --git a/api_docs/triggers_actions_ui.devdocs.json b/api_docs/triggers_actions_ui.devdocs.json index 121f164fb040d..1688c97a8287c 100644 --- a/api_docs/triggers_actions_ui.devdocs.json +++ b/api_docs/triggers_actions_ui.devdocs.json @@ -54,7 +54,7 @@ "label": "experimentalFeatures", "description": [], "signature": [ - "{ readonly rulesListDatagrid: boolean; readonly rulesDetailLogs: boolean; }" + "{ readonly rulesListDatagrid: boolean; readonly internalAlertsTable: boolean; readonly rulesDetailLogs: boolean; }" ], "path": "x-pack/plugins/triggers_actions_ui/public/plugin.ts", "deprecated": false @@ -4151,6 +4151,40 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "triggersActionsUi", + "id": "def-public.TriggersAndActionsUIPublicPluginStart.getAlertsTable", + "type": "Function", + "tags": [], + "label": "getAlertsTable", + "description": [], + "signature": [ + "(props: ", + "AlertsTableProps", + ") => React.ReactElement<", + "AlertsTableProps", + ", string | React.JSXElementConstructor>" + ], + "path": "x-pack/plugins/triggers_actions_ui/public/plugin.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "triggersActionsUi", + "id": "def-public.TriggersAndActionsUIPublicPluginStart.getAlertsTable.$1", + "type": "Object", + "tags": [], + "label": "props", + "description": [], + "signature": [ + "AlertsTableProps" + ], + "path": "x-pack/plugins/triggers_actions_ui/public/plugin.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] } ], "lifecycle": "start", @@ -4556,7 +4590,7 @@ "\nParses the string value used in `xpack.triggersActionsUi.enableExperimental` kibana configuration,\nwhich should be a string of values delimited by a comma (`,`)\n" ], "signature": [ - "(configValue: string[]) => Readonly<{ rulesListDatagrid: boolean; rulesDetailLogs: boolean; }>" + "(configValue: string[]) => Readonly<{ rulesListDatagrid: boolean; internalAlertsTable: boolean; rulesDetailLogs: boolean; }>" ], "path": "x-pack/plugins/triggers_actions_ui/common/experimental_features.ts", "deprecated": false, @@ -4713,7 +4747,7 @@ "label": "ExperimentalFeatures", "description": [], "signature": [ - "{ readonly rulesListDatagrid: boolean; readonly rulesDetailLogs: boolean; }" + "{ readonly rulesListDatagrid: boolean; readonly internalAlertsTable: boolean; readonly rulesDetailLogs: boolean; }" ], "path": "x-pack/plugins/triggers_actions_ui/common/experimental_features.ts", "deprecated": false, @@ -4745,7 +4779,7 @@ "\nA list of allowed values that can be used in `xpack.triggersActionsUi.enableExperimental`.\nThis object is then used to validate and parse the value entered." ], "signature": [ - "{ readonly rulesListDatagrid: boolean; readonly rulesDetailLogs: boolean; }" + "{ readonly rulesListDatagrid: boolean; readonly internalAlertsTable: boolean; readonly rulesDetailLogs: boolean; }" ], "path": "x-pack/plugins/triggers_actions_ui/common/experimental_features.ts", "deprecated": false, diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index b8aac1303ac8d..4ba01e01c926b 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github summary: API docs for the triggersActionsUi plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] warning: 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. --- @@ -18,7 +18,7 @@ Contact [Response Ops](https://github.com/orgs/elastic/teams/response-ops) for q | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 300 | 0 | 286 | 22 | +| 302 | 0 | 288 | 23 | ## Client diff --git a/api_docs/ui_actions.devdocs.json b/api_docs/ui_actions.devdocs.json index 925dfa5a64c1a..51c99237e0909 100644 --- a/api_docs/ui_actions.devdocs.json +++ b/api_docs/ui_actions.devdocs.json @@ -685,10 +685,6 @@ { "plugin": "embeddable", "path": "src/plugins/embeddable/public/tests/explicit_input.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/embeddable/search_embeddable_factory.d.ts" } ], "children": [ diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index e2a861f53c4d1..9718fbd9e9484 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github summary: API docs for the uiActions plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActions'] warning: 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. --- diff --git a/api_docs/ui_actions_enhanced.mdx b/api_docs/ui_actions_enhanced.mdx index 48a419e4e2841..e7b4305df1087 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github summary: API docs for the uiActionsEnhanced plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced'] warning: 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. --- diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx index 775a66736f19d..ce5d58c8c1a41 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github summary: API docs for the urlForwarding plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding'] warning: 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. --- diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx index a4c064a44905a..e329fc2368ef2 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github summary: API docs for the usageCollection plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'usageCollection'] warning: 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. --- diff --git a/api_docs/ux.mdx b/api_docs/ux.mdx index 001e652bfd190..486a70d7409a0 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github summary: API docs for the ux plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ux'] warning: 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. --- diff --git a/api_docs/vis_default_editor.mdx b/api_docs/vis_default_editor.mdx index 92aca2d65f47d..768b41f8c9dab 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github summary: API docs for the visDefaultEditor plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visDefaultEditor'] warning: 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. --- diff --git a/api_docs/vis_type_gauge.mdx b/api_docs/vis_type_gauge.mdx index 05737040dd35e..71e51e5bbe6ad 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github summary: API docs for the visTypeGauge plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeGauge'] warning: 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. --- diff --git a/api_docs/vis_type_heatmap.mdx b/api_docs/vis_type_heatmap.mdx index ae82999310286..003a2c7075272 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github summary: API docs for the visTypeHeatmap plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeHeatmap'] warning: 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. --- diff --git a/api_docs/vis_type_pie.mdx b/api_docs/vis_type_pie.mdx index 71f55f6c12403..2581b91dbd51c 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github summary: API docs for the visTypePie plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypePie'] warning: 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. --- diff --git a/api_docs/vis_type_table.mdx b/api_docs/vis_type_table.mdx index 9b76ee3081a07..ac3f81d346b75 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github summary: API docs for the visTypeTable plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTable'] warning: 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. --- diff --git a/api_docs/vis_type_timelion.mdx b/api_docs/vis_type_timelion.mdx index 2c1b45b1a9561..508f8cfcdd3cf 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github summary: API docs for the visTypeTimelion plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimelion'] warning: 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. --- diff --git a/api_docs/vis_type_timeseries.mdx b/api_docs/vis_type_timeseries.mdx index f0db6193a0678..7eb32bcc46969 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github summary: API docs for the visTypeTimeseries plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimeseries'] warning: 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. --- diff --git a/api_docs/vis_type_vega.mdx b/api_docs/vis_type_vega.mdx index 8954d4256c605..d8c74d3dfa184 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github summary: API docs for the visTypeVega plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVega'] warning: 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. --- diff --git a/api_docs/vis_type_vislib.mdx b/api_docs/vis_type_vislib.mdx index d7a00a728cb19..4e2c403803cb4 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github summary: API docs for the visTypeVislib plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVislib'] warning: 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. --- diff --git a/api_docs/vis_type_xy.mdx b/api_docs/vis_type_xy.mdx index 93013f5c62201..4780c404f7133 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github summary: API docs for the visTypeXy plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy'] warning: 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. --- diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index 2adf19201ea08..532f802499ec0 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -4,7 +4,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github summary: API docs for the visualizations plugin -date: 2022-03-28 +date: 2022-03-30 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] warning: 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. --- diff --git a/docs/api/cases.asciidoc b/docs/api/cases.asciidoc index ad0304ffa34b9..6342d3c4b8d2f 100644 --- a/docs/api/cases.asciidoc +++ b/docs/api/cases.asciidoc @@ -12,13 +12,13 @@ these APIs: * <> * {security-guide}/cases-api-find-cases-by-alert.html[Find cases by alert] * <> -* {security-guide}/cases-api-get-case-activity.html[Get all case activity] +* <> * <> * <> * <> * {security-guide}/cases-get-connector.html[Get current connector] * {security-guide}/cases-api-get-reporters.html[Get reporters] -* {security-guide}/cases-api-get-tag.html[Get tags] +* <> * {security-guide}/cases-api-push.html[Push case] * {security-guide}/assign-connector.html[Set default Elastic Security UI connector] * {security-guide}/case-api-update-connector.html[Update case configurations] @@ -36,9 +36,11 @@ include::cases/cases-api-delete-comments.asciidoc[leveloffset=+1] include::cases/cases-api-find-cases.asciidoc[leveloffset=+1] include::cases/cases-api-find-connectors.asciidoc[leveloffset=+1] //GET +include::cases/cases-api-get-case-activity.asciidoc[leveloffset=+1] include::cases/cases-api-get-case.asciidoc[leveloffset=+1] include::cases/cases-api-get-status.asciidoc[leveloffset=+1] include::cases/cases-api-get-comments.asciidoc[leveloffset=+1] +include::cases/cases-api-get-tags.asciidoc[leveloffset=+1] //UPDATE include::cases/cases-api-update.asciidoc[leveloffset=+1] include::cases/cases-api-update-comment.asciidoc[leveloffset=+1] diff --git a/docs/api/cases/cases-api-find-cases.asciidoc b/docs/api/cases/cases-api-find-cases.asciidoc index 68e620aece7b6..b6e87ad502d21 100644 --- a/docs/api/cases/cases-api-find-cases.asciidoc +++ b/docs/api/cases/cases-api-find-cases.asciidoc @@ -34,6 +34,9 @@ Defaults to `OR`. `fields`:: (Optional, array of strings) The fields in the entity to return in the response. +`from`:: +(Optional, string) Returns only cases that were created after a specific date. The date must be specified as a <> data range or date match expression. preview:[] + `owner`:: (Optional, string or array of strings) A filter to limit the retrieved cases to a specific set of applications. Valid values are: `cases`, `observability`, @@ -78,6 +81,9 @@ Defaults to `desc`. `tags`:: (Optional, string or array of strings) Filters the returned cases by tags. +`to`:: +(Optional, string) Returns only cases that were created before a specific date. The date must be specified as a <> data range or date match expression. preview:[] + === Response code `200`:: diff --git a/docs/api/cases/cases-api-get-case-activity.asciidoc b/docs/api/cases/cases-api-get-case-activity.asciidoc new file mode 100644 index 0000000000000..92b16b7862462 --- /dev/null +++ b/docs/api/cases/cases-api-get-case-activity.asciidoc @@ -0,0 +1,412 @@ +[[cases-api-get-case-activity]] +== Get case activity API +++++ +Get case activity +++++ + +Returns all user activity for the specified case. + +deprecated::[8.1.0] + +=== Request + +`GET :/api/cases//user_actions` + +`GET :/s//api/cases//user_actions` + +=== Prerequisite + +You must have `read` privileges for the *Cases* feature in the *Management*, +*{observability}*, or *Security* section of the +<>, depending on the +`owner` of the cases you're seeking. + +=== Path parameters + +``:: +(Required, string) An identifier for the case to retrieve. Use +<> to retrieve case IDs. + +``:: +(Optional, string) An identifier for the space. If it is not specified, the +default space is used. + +==== Response code + +`200`:: + Indicates a successful call. + +==== Example + +Gets all activity for case ID `a18b38a0-71b0-11ea-a0b2-c51ea50a58e2`: + +[source,sh] +-------------------------------------------------- +GET api/cases/a18b38a0-71b0-11ea-a0b2-c51ea50a58e2/user_actions +-------------------------------------------------- +// KIBANA + +The API returns a JSON object with all the activity for the case. For example: + +[source,json] +-------------------------------------------------- +[ + { + "action": "create", + "action_id": "5275af50-5e7d-11ec-9ee9-cd64f0b77b3c", + "case_id": "5257a000-5e7d-11ec-9ee9-cd64f0b77b3c", + "comment_id": null, + "created_at": "2021-12-16T14:34:48.709Z", + "created_by": { + "email": "", + "full_name": "", + "username": "elastic" + }, + "owner": "securitySolution", + "payload": { + "connector": { + "fields": null, + "id": "none", + "name": "none", + "type": ".none" + }, + "description": "migrating user actions", + "settings": { + "syncAlerts": true + }, + "status": "open", + "tags": [ + "user", + "actions" + ], + "title": "User actions", + "owner": "securitySolution" + }, + "sub_case_id": "", + "type": "create_case" + }, + { + "action": "create", + "action_id": "72e73240-5e7d-11ec-9ee9-cd64f0b77b3c", + "case_id": "5257a000-5e7d-11ec-9ee9-cd64f0b77b3c", + "comment_id": "72a03e30-5e7d-11ec-9ee9-cd64f0b77b3c", + "created_at": "2021-12-16T14:35:42.872Z", + "created_by": { + "email": "", + "full_name": "", + "username": "elastic" + }, + "owner": "securitySolution", + "payload": { + "comment": { + "comment": "a comment", + "owner": "securitySolution", + "type": "user" + } + }, + "sub_case_id": "", + "type": "comment" + }, + { + "action": "update", + "action_id": "7685b5c0-5e7d-11ec-9ee9-cd64f0b77b3c", + "case_id": "5257a000-5e7d-11ec-9ee9-cd64f0b77b3c", + "comment_id": null, + "created_at": "2021-12-16T14:35:48.826Z", + "created_by": { + "email": "", + "full_name": "", + "username": "elastic" + }, + "owner": "securitySolution", + "payload": { + "title": "User actions!" + }, + "sub_case_id": "", + "type": "title" + }, + { + "action": "update", + "action_id": "7a2d8810-5e7d-11ec-9ee9-cd64f0b77b3c", + "case_id": "5257a000-5e7d-11ec-9ee9-cd64f0b77b3c", + "comment_id": null, + "created_at": "2021-12-16T14:35:55.421Z", + "created_by": { + "email": "", + "full_name": "", + "username": "elastic" + }, + "owner": "securitySolution", + "payload": { + "description": "migrating user actions and update!" + }, + "sub_case_id": "", + "type": "description" + }, + { + "action": "update", + "action_id": "7f942160-5e7d-11ec-9ee9-cd64f0b77b3c", + "case_id": "5257a000-5e7d-11ec-9ee9-cd64f0b77b3c", + "comment_id": "72a03e30-5e7d-11ec-9ee9-cd64f0b77b3c", + "created_at": "2021-12-16T14:36:04.120Z", + "created_by": { + "email": "", + "full_name": "", + "username": "elastic" + }, + "owner": "securitySolution", + "payload": { + "comment": { + "comment": "a comment updated!", + "owner": "securitySolution", + "type": "user" + } + }, + "sub_case_id": "", + "type": "comment" + }, + { + "action": "add", + "action_id": "8591a380-5e7d-11ec-9ee9-cd64f0b77b3c", + "case_id": "5257a000-5e7d-11ec-9ee9-cd64f0b77b3c", + "comment_id": null, + "created_at": "2021-12-16T14:36:13.840Z", + "created_by": { + "email": "", + "full_name": "", + "username": "elastic" + }, + "owner": "securitySolution", + "payload": { + "tags": [ + "migration" + ] + }, + "sub_case_id": "", + "type": "tags" + }, + { + "action": "delete", + "action_id": "8591a381-5e7d-11ec-9ee9-cd64f0b77b3c", + "case_id": "5257a000-5e7d-11ec-9ee9-cd64f0b77b3c", + "comment_id": null, + "created_at": "2021-12-16T14:36:13.840Z", + "created_by": { + "email": "", + "full_name": "", + "username": "elastic" + }, + "owner": "securitySolution", + "payload": { + "tags": [ + "user" + ] + }, + "sub_case_id": "", + "type": "tags" + }, + { + "action": "update", + "action_id": "87fadb50-5e7d-11ec-9ee9-cd64f0b77b3c", + "case_id": "5257a000-5e7d-11ec-9ee9-cd64f0b77b3c", + "comment_id": null, + "created_at": "2021-12-16T14:36:17.764Z", + "created_by": { + "email": "", + "full_name": "", + "username": "elastic" + }, + "owner": "securitySolution", + "payload": { + "settings": { + "syncAlerts": false + } + }, + "sub_case_id": "", + "type": "settings" + }, + { + "action": "update", + "action_id": "89ca4420-5e7d-11ec-9ee9-cd64f0b77b3c", + "case_id": "5257a000-5e7d-11ec-9ee9-cd64f0b77b3c", + "comment_id": null, + "created_at": "2021-12-16T14:36:21.509Z", + "created_by": { + "email": "", + "full_name": "", + "username": "elastic" + }, + "owner": "securitySolution", + "payload": { + "status": "in-progress" + }, + "sub_case_id": "", + "type": "status" + }, + { + "action": "update", + "action_id": "9060aae0-5e7d-11ec-9ee9-cd64f0b77b3c", + "case_id": "5257a000-5e7d-11ec-9ee9-cd64f0b77b3c", + "comment_id": null, + "created_at": "2021-12-16T14:36:32.716Z", + "created_by": { + "email": "", + "full_name": "", + "username": "elastic" + }, + "owner": "securitySolution", + "payload": { + "connector": { + "fields": { + "issueType": "10001", + "parent": null, + "priority": "High" + }, + "id": "6773fba0-5e7d-11ec-9ee9-cd64f0b77b3c", + "name": "Jira", + "type": ".jira" + } + }, + "sub_case_id": "", + "type": "connector" + }, + { + "action": "push_to_service", + "action_id": "988579d0-5e7d-11ec-9ee9-cd64f0b77b3c", + "case_id": "5257a000-5e7d-11ec-9ee9-cd64f0b77b3c", + "comment_id": null, + "created_at": "2021-12-16T14:36:46.443Z", + "created_by": { + "email": "", + "full_name": "", + "username": "elastic" + }, + "owner": "securitySolution", + "payload": { + "externalService": { + "connector_id": "6773fba0-5e7d-11ec-9ee9-cd64f0b77b3c", + "connector_name": "Jira", + "external_id": "26225", + "external_title": "CASES-229", + "external_url": "https://example.com/browse/CASES-229", + "pushed_at": "2021-12-16T14:36:46.443Z", + "pushed_by": { + "email": "", + "full_name": "", + "username": "elastic" + } + } + }, + "sub_case_id": "", + "type": "pushed" + }, + { + "action": "update", + "action_id": "bcb76020-5e7d-11ec-9ee9-cd64f0b77b3c", + "case_id": "5257a000-5e7d-11ec-9ee9-cd64f0b77b3c", + "comment_id": null, + "created_at": "2021-12-16T14:37:46.863Z", + "created_by": { + "email": "", + "full_name": "", + "username": "elastic" + }, + "owner": "securitySolution", + "payload": { + "connector": { + "fields": { + "incidentTypes": [ + "17", + "4" + ], + "severityCode": "5" + }, + "id": "b3214df0-5e7d-11ec-9ee9-cd64f0b77b3c", + "name": "IBM", + "type": ".resilient" + } + }, + "sub_case_id": "", + "type": "connector" + }, + { + "action": "push_to_service", + "action_id": "c0338e90-5e7d-11ec-9ee9-cd64f0b77b3c", + "case_id": "5257a000-5e7d-11ec-9ee9-cd64f0b77b3c", + "comment_id": null, + "created_at": "2021-12-16T14:37:53.016Z", + "created_by": { + "email": "", + "full_name": "", + "username": "elastic" + }, + "owner": "securitySolution", + "payload": { + "externalService": { + "connector_id": "b3214df0-5e7d-11ec-9ee9-cd64f0b77b3c", + "connector_name": "IBM", + "external_id": "17574", + "external_title": "17574", + "external_url": "https://example.com/#incidents/17574", + "pushed_at": "2021-12-16T14:37:53.016Z", + "pushed_by": { + "email": "", + "full_name": "", + "username": "elastic" + } + } + }, + "sub_case_id": "", + "type": "pushed" + }, + { + "action": "update", + "action_id": "c5b6d7a0-5e7d-11ec-9ee9-cd64f0b77b3c", + "case_id": "5257a000-5e7d-11ec-9ee9-cd64f0b77b3c", + "comment_id": null, + "created_at": "2021-12-16T14:38:01.895Z", + "created_by": { + "email": "", + "full_name": "", + "username": "elastic" + }, + "owner": "securitySolution", + "payload": { + "connector": { + "fields": { + "issueType": "10001", + "parent": null, + "priority": "Lowest" + }, + "id": "6773fba0-5e7d-11ec-9ee9-cd64f0b77b3c", + "name": "Jira", + "type": ".jira" + } + }, + "sub_case_id": "", + "type": "connector" + }, + { + "action": "create", + "action_id": "ca8f61c0-5e7d-11ec-9ee9-cd64f0b77b3c", + "case_id": "5257a000-5e7d-11ec-9ee9-cd64f0b77b3c", + "comment_id": "ca1d17f0-5e7d-11ec-9ee9-cd64f0b77b3c", + "created_at": "2021-12-16T14:38:09.649Z", + "created_by": { + "email": "", + "full_name": "", + "username": "elastic" + }, + "owner": "securitySolution", + "payload": { + "comment": { + "comment": "and another comment!", + "owner": "securitySolution", + "type": "user" + } + }, + "sub_case_id": "", + "type": "comment" + } + ] +-------------------------------------------------- \ No newline at end of file diff --git a/docs/api/cases/cases-api-get-tags.asciidoc b/docs/api/cases/cases-api-get-tags.asciidoc new file mode 100644 index 0000000000000..b97fa23df06e8 --- /dev/null +++ b/docs/api/cases/cases-api-get-tags.asciidoc @@ -0,0 +1,64 @@ +[[cases-api-get-tag]] +== Get tags API +++++ +Get tags +++++ + +Aggregates and returns all unique tags from all cases. + +=== Request + +`GET :/api/cases/tags` + +`GET :/s//api/cases/tags` + +=== Prerequisite + +You must have `read` privileges for the *Cases* feature in the *Management*, +*{observability}*, or *Security* section of the +<>, depending on the +`owner` of the cases you're seeking. + +=== Path parameters + +``:: +(Required, string) An identifier for the case to retrieve. Use +<> to retrieve case IDs. + +``:: +(Optional, string) An identifier for the space. If it is not specified, the +default space is used. + +=== Query parameters + +`owner`:: +(Optional, string) Specifies the set of applications to limit the retrieved +tags. If not specified, the response contains all tags that the user has access +to read. + +==== Response code + +`200`:: + Indicates a successful call. + +==== Example + +Gets all tags for all cases: + +[source,sh] +-------------------------------------------------- +GET api/cases/tags +-------------------------------------------------- +// KIBANA + +The API returns a JSON object with all tags for all cases. For example: + +[source,json] +-------------------------------------------------- +[ + "windows", + "phishing", + "social engineering", + "bubblegum" +] +-------------------------------------------------- \ No newline at end of file diff --git a/docs/developer/advanced/sharing-saved-objects.asciidoc b/docs/developer/advanced/sharing-saved-objects.asciidoc index 59bab55724089..69ffab1910b5e 100644 --- a/docs/developer/advanced/sharing-saved-objects.asciidoc +++ b/docs/developer/advanced/sharing-saved-objects.asciidoc @@ -447,13 +447,17 @@ const shareToSpaceFlyoutProps: ShareToSpaceFlyoutProps = { onClose: () => setShowFlyout(false), }; +const canAssignSpaces = !capabilities || !!capabilities.savedObjectsManagement.shareIntoSpace; +const clickProperties = canAssignSpaces + ? { cursorStyle: 'pointer', listOnClick: () => setShowFlyout(true) } + : { cursorStyle: 'not-allowed' }; return ( <> - listOnClick={() => setShowFlyout(true)} + {...clickProperties} /> {showFlyout && } diff --git a/docs/development/core/public/kibana-plugin-core-public.applicationstart.md b/docs/development/core/public/kibana-plugin-core-public.applicationstart.md index cadf0f91b01d6..eeb8ff3753f13 100644 --- a/docs/development/core/public/kibana-plugin-core-public.applicationstart.md +++ b/docs/development/core/public/kibana-plugin-core-public.applicationstart.md @@ -25,5 +25,5 @@ export interface ApplicationStart | --- | --- | | [getUrlForApp(appId, options)](./kibana-plugin-core-public.applicationstart.geturlforapp.md) | Returns the absolute path (or URL) to a given app, including the global base path.By default, it returns the absolute path of the application (e.g /basePath/app/my-app). Use the absolute option to generate an absolute url instead (e.g http://host:port/basePath/app/my-app)Note that when generating absolute urls, the origin (protocol, host and port) are determined from the browser's current location. | | [navigateToApp(appId, options)](./kibana-plugin-core-public.applicationstart.navigatetoapp.md) | Navigate to a given app | -| [navigateToUrl(url)](./kibana-plugin-core-public.applicationstart.navigatetourl.md) | Navigate to given URL in a SPA friendly way when possible (when the URL will redirect to a valid application within the current basePath).The method resolves pathnames the same way browsers do when resolving a <a href> value. The provided url can be: - an absolute URL - an absolute path - a path relative to the current URL (window.location.href)If all these criteria are true for the given URL: - (only for absolute URLs) The origin of the URL matches the origin of the browser's current location - The resolved pathname of the provided URL/path starts with the current basePath (eg. /mybasepath/s/my-space) - The pathname segment after the basePath matches any known application route (eg. /app// or any application's appRoute configuration)Then a SPA navigation will be performed using navigateToApp using the corresponding application and path. Otherwise, fallback to a full page reload to navigate to the url using window.location.assign | +| [navigateToUrl(url, options)](./kibana-plugin-core-public.applicationstart.navigatetourl.md) | Navigate to given URL in a SPA friendly way when possible (when the URL will redirect to a valid application within the current basePath).The method resolves pathnames the same way browsers do when resolving a <a href> value. The provided url can be: - an absolute URL - an absolute path - a path relative to the current URL (window.location.href)If all these criteria are true for the given URL: - (only for absolute URLs) The origin of the URL matches the origin of the browser's current location - The resolved pathname of the provided URL/path starts with the current basePath (eg. /mybasepath/s/my-space) - The pathname segment after the basePath matches any known application route (eg. /app// or any application's appRoute configuration)Then a SPA navigation will be performed using navigateToApp using the corresponding application and path. Otherwise, fallback to a full page reload to navigate to the url using window.location.assign | diff --git a/docs/development/core/public/kibana-plugin-core-public.applicationstart.navigatetourl.md b/docs/development/core/public/kibana-plugin-core-public.applicationstart.navigatetourl.md index 9e6644e2b1ca7..b7fbb12f12e29 100644 --- a/docs/development/core/public/kibana-plugin-core-public.applicationstart.navigatetourl.md +++ b/docs/development/core/public/kibana-plugin-core-public.applicationstart.navigatetourl.md @@ -15,7 +15,7 @@ Then a SPA navigation will be performed using `navigateToApp` using the correspo Signature: ```typescript -navigateToUrl(url: string): Promise; +navigateToUrl(url: string, options?: NavigateToUrlOptions): Promise; ``` ## Parameters @@ -23,6 +23,7 @@ navigateToUrl(url: string): Promise; | Parameter | Type | Description | | --- | --- | --- | | url | string | an absolute URL, an absolute path or a relative path, to navigate to. | +| options | NavigateToUrlOptions | | Returns: diff --git a/docs/development/core/public/kibana-plugin-core-public.md b/docs/development/core/public/kibana-plugin-core-public.md index 2e51a036dfe9f..241cd378ebcda 100644 --- a/docs/development/core/public/kibana-plugin-core-public.md +++ b/docs/development/core/public/kibana-plugin-core-public.md @@ -85,6 +85,7 @@ The plugin integrates with the core system via lifecycle events: `setup` | [IHttpResponseInterceptorOverrides](./kibana-plugin-core-public.ihttpresponseinterceptoroverrides.md) | Properties that can be returned by HttpInterceptor.request to override the response. | | [IUiSettingsClient](./kibana-plugin-core-public.iuisettingsclient.md) | Client-side client that provides access to the advanced settings stored in elasticsearch. The settings provide control over the behavior of the Kibana application. For example, a user can specify how to display numeric or date fields. Users can adjust the settings via Management UI. [IUiSettingsClient](./kibana-plugin-core-public.iuisettingsclient.md) | | [NavigateToAppOptions](./kibana-plugin-core-public.navigatetoappoptions.md) | Options for the [navigateToApp API](./kibana-plugin-core-public.applicationstart.navigatetoapp.md) | +| [NavigateToUrlOptions](./kibana-plugin-core-public.navigatetourloptions.md) | Options for the [navigateToUrl API](./kibana-plugin-core-public.applicationstart.navigatetourl.md) | | [NotificationsSetup](./kibana-plugin-core-public.notificationssetup.md) | | | [NotificationsStart](./kibana-plugin-core-public.notificationsstart.md) | | | [OverlayBannersStart](./kibana-plugin-core-public.overlaybannersstart.md) | | diff --git a/docs/development/core/public/kibana-plugin-core-public.navigatetoappoptions.md b/docs/development/core/public/kibana-plugin-core-public.navigatetoappoptions.md index c8ec5bdaf8c0d..337e9db1f80d2 100644 --- a/docs/development/core/public/kibana-plugin-core-public.navigatetoappoptions.md +++ b/docs/development/core/public/kibana-plugin-core-public.navigatetoappoptions.md @@ -20,5 +20,6 @@ export interface NavigateToAppOptions | [openInNewTab?](./kibana-plugin-core-public.navigatetoappoptions.openinnewtab.md) | boolean | (Optional) if true, will open the app in new tab, will share session information via window.open if base | | [path?](./kibana-plugin-core-public.navigatetoappoptions.path.md) | string | (Optional) optional path inside application to deep link to. If undefined, will use [the app's default path](./kibana-plugin-core-public.app.defaultpath.md) as default. | | [replace?](./kibana-plugin-core-public.navigatetoappoptions.replace.md) | boolean | (Optional) if true, will not create a new history entry when navigating (using replace instead of push) | +| [skipAppLeave?](./kibana-plugin-core-public.navigatetoappoptions.skipappleave.md) | boolean | (Optional) if true, will bypass the default onAppLeave behavior | | [state?](./kibana-plugin-core-public.navigatetoappoptions.state.md) | unknown | (Optional) optional state to forward to the application | diff --git a/docs/development/core/public/kibana-plugin-core-public.navigatetoappoptions.skipappleave.md b/docs/development/core/public/kibana-plugin-core-public.navigatetoappoptions.skipappleave.md new file mode 100644 index 0000000000000..553d557a92daa --- /dev/null +++ b/docs/development/core/public/kibana-plugin-core-public.navigatetoappoptions.skipappleave.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [NavigateToAppOptions](./kibana-plugin-core-public.navigatetoappoptions.md) > [skipAppLeave](./kibana-plugin-core-public.navigatetoappoptions.skipappleave.md) + +## NavigateToAppOptions.skipAppLeave property + +if true, will bypass the default onAppLeave behavior + +Signature: + +```typescript +skipAppLeave?: boolean; +``` diff --git a/docs/development/core/public/kibana-plugin-core-public.navigatetourloptions.forceredirect.md b/docs/development/core/public/kibana-plugin-core-public.navigatetourloptions.forceredirect.md new file mode 100644 index 0000000000000..1603524322dd7 --- /dev/null +++ b/docs/development/core/public/kibana-plugin-core-public.navigatetourloptions.forceredirect.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [NavigateToUrlOptions](./kibana-plugin-core-public.navigatetourloptions.md) > [forceRedirect](./kibana-plugin-core-public.navigatetourloptions.forceredirect.md) + +## NavigateToUrlOptions.forceRedirect property + +if true, will redirect directly to the url + +Signature: + +```typescript +forceRedirect?: boolean; +``` diff --git a/docs/development/core/public/kibana-plugin-core-public.navigatetourloptions.md b/docs/development/core/public/kibana-plugin-core-public.navigatetourloptions.md new file mode 100644 index 0000000000000..ccf09e21189ef --- /dev/null +++ b/docs/development/core/public/kibana-plugin-core-public.navigatetourloptions.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [NavigateToUrlOptions](./kibana-plugin-core-public.navigatetourloptions.md) + +## NavigateToUrlOptions interface + +Options for the [navigateToUrl API](./kibana-plugin-core-public.applicationstart.navigatetourl.md) + +Signature: + +```typescript +export interface NavigateToUrlOptions +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [forceRedirect?](./kibana-plugin-core-public.navigatetourloptions.forceredirect.md) | boolean | (Optional) if true, will redirect directly to the url | +| [skipAppLeave?](./kibana-plugin-core-public.navigatetourloptions.skipappleave.md) | boolean | (Optional) if true, will bypass the default onAppLeave behavior | + diff --git a/docs/development/core/public/kibana-plugin-core-public.navigatetourloptions.skipappleave.md b/docs/development/core/public/kibana-plugin-core-public.navigatetourloptions.skipappleave.md new file mode 100644 index 0000000000000..f3685c02ff40d --- /dev/null +++ b/docs/development/core/public/kibana-plugin-core-public.navigatetourloptions.skipappleave.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [NavigateToUrlOptions](./kibana-plugin-core-public.navigatetourloptions.md) > [skipAppLeave](./kibana-plugin-core-public.navigatetourloptions.skipappleave.md) + +## NavigateToUrlOptions.skipAppLeave property + +if true, will bypass the default onAppLeave behavior + +Signature: + +```typescript +skipAppLeave?: boolean; +``` diff --git a/docs/development/core/server/kibana-plugin-core-server.savedobjectsfieldmapping.md b/docs/development/core/server/kibana-plugin-core-server.savedobjectsfieldmapping.md index 85b52bacafa25..cf5b5d7e6e339 100644 --- a/docs/development/core/server/kibana-plugin-core-server.savedobjectsfieldmapping.md +++ b/docs/development/core/server/kibana-plugin-core-server.savedobjectsfieldmapping.md @@ -13,5 +13,6 @@ Please refer to [elasticsearch documentation](https://www.elastic.co/guide/en/el ```typescript export declare type SavedObjectsFieldMapping = estypes.MappingProperty & { dynamic?: false | 'strict'; + properties?: Record; }; ``` diff --git a/docs/management/connectors/action-types/servicenow-sir.asciidoc b/docs/management/connectors/action-types/servicenow-sir.asciidoc index 70500b26c16e6..81db72be0fb38 100644 --- a/docs/management/connectors/action-types/servicenow-sir.asciidoc +++ b/docs/management/connectors/action-types/servicenow-sir.asciidoc @@ -5,7 +5,7 @@ ServiceNow SecOps ++++ -The {sn} SecOps connector uses the https://docs.servicenow.com/bundle/orlando-application-development/page/integrate/inbound-rest/concept/c_TableAPI.html[V2 Table API] to create {sn} security incidents. +The {sn} SecOps connector uses the https://developer.servicenow.com/dev.do#!/reference/api/sandiego/rest/c_ImportSetAPI[Import Set API] to create {sn} security incidents. [float] [[servicenow-sir-connector-prerequisites]] diff --git a/docs/management/connectors/action-types/servicenow.asciidoc b/docs/management/connectors/action-types/servicenow.asciidoc index 73e3baaca2ad1..333a26c075c49 100644 --- a/docs/management/connectors/action-types/servicenow.asciidoc +++ b/docs/management/connectors/action-types/servicenow.asciidoc @@ -5,7 +5,7 @@ ServiceNow ITSM ++++ -The {sn} ITSM connector uses the https://docs.servicenow.com/bundle/orlando-application-development/page/integrate/inbound-rest/concept/c_TableAPI.html[V2 Table API] to create {sn} incidents. +The {sn} ITSM connector uses the https://developer.servicenow.com/dev.do#!/reference/api/sandiego/rest/c_ImportSetAPI[Import Set API] to create {sn} incidents. [float] [[servicenow-itsm-connector-prerequisites]] diff --git a/docs/maps/import-geospatial-data.asciidoc b/docs/maps/import-geospatial-data.asciidoc index 3746b21437a44..f58077fa38f92 100644 --- a/docs/maps/import-geospatial-data.asciidoc +++ b/docs/maps/import-geospatial-data.asciidoc @@ -57,7 +57,7 @@ NOTE: GeoJSON feature coordinates must be in EPSG:4326 coordinate reference syst . Use the file chooser to select a GeoJSON file with the extension `.json` or `.geojson`. . Click *Import file*. -discrete] +[discrete] === Upload a shapefile *Upload file* indexes shapefile features in {es}, creating a document for each feature. diff --git a/docs/maps/search.asciidoc b/docs/maps/search.asciidoc index a170bcc414d3b..2330bf52abc29 100644 --- a/docs/maps/search.asciidoc +++ b/docs/maps/search.asciidoc @@ -133,7 +133,7 @@ If the map is a dashboard panel with drilldowns, you can apply a phrase filter t You can apply a search request to individual layers by setting `Filters` in the layer details panel. Click the *Add filter* button to add a filter to a layer. -NOTE: Layer filters are not applied to *term joins*. You can apply a search request to *term joins* by setting the *where* clause in the join definition. +NOTE: Layer filters are not applied to the right side of *term joins*. You can apply a search request to the right side of *term joins* by setting the *where* clause in the join definition. For example, suppose you have a layer with a term join where the left side is roads and the right side is traffic volume measurements. A layer filter of `roadType is "highway"` is applied to the roads index, but not to the traffic volume measurements index. [role="screenshot"] image::maps/images/layer_search.png[] diff --git a/package.json b/package.json index d809bb2e025f7..6e7886823fca1 100644 --- a/package.json +++ b/package.json @@ -106,9 +106,9 @@ "@elastic/apm-synthtrace": "link:bazel-bin/packages/elastic-apm-synthtrace", "@elastic/charts": "45.1.1", "@elastic/datemath": "link:bazel-bin/packages/elastic-datemath", - "@elastic/elasticsearch": "npm:@elastic/elasticsearch-canary@8.2.0-canary.1", + "@elastic/elasticsearch": "npm:@elastic/elasticsearch-canary@8.2.0-canary.2", "@elastic/ems-client": "8.2.0", - "@elastic/eui": "52.2.0", + "@elastic/eui": "53.0.1", "@elastic/filesaver": "1.1.2", "@elastic/node-crypto": "1.2.1", "@elastic/numeral": "^2.5.1", @@ -753,7 +753,7 @@ "callsites": "^3.1.0", "chai": "3.5.0", "chance": "1.0.18", - "chromedriver": "^99.0.0", + "chromedriver": "^100.0.0", "clean-webpack-plugin": "^3.0.0", "cmd-shim": "^2.1.0", "compression-webpack-plugin": "^4.0.0", diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index 1d9406ac37447..7d209035ab65a 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -242,6 +242,7 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { asyncSearch: `${ELASTICSEARCH_DOCS}async-search-intro.html`, dataStreams: `${ELASTICSEARCH_DOCS}data-streams.html`, deprecationLogging: `${ELASTICSEARCH_DOCS}logging.html#deprecation-logging`, + createIndex: `${ELASTICSEARCH_DOCS}indices-create-index.html`, frozenIndices: `${ELASTICSEARCH_DOCS}frozen-indices.html`, gettingStarted: `${ELASTICSEARCH_DOCS}getting-started.html`, hiddenIndices: `${ELASTICSEARCH_DOCS}multi-index.html#hidden`, diff --git a/packages/kbn-docs-utils/src/api_docs/build_api_docs_cli.ts b/packages/kbn-docs-utils/src/api_docs/build_api_docs_cli.ts index 15658361b3627..fcb06da4ea975 100644 --- a/packages/kbn-docs-utils/src/api_docs/build_api_docs_cli.ts +++ b/packages/kbn-docs-utils/src/api_docs/build_api_docs_cli.ts @@ -283,10 +283,12 @@ function getTsProject(repoPath: string) { const xpackTsConfig = `${repoPath}/tsconfig.json`; const project = new Project({ tsConfigFilePath: xpackTsConfig, + // We'll use the files added below instead. + skipAddingFilesFromTsConfig: true, }); - project.addSourceFilesAtPaths(`${repoPath}/x-pack/plugins/**/*{.d.ts,.ts}`); - project.addSourceFilesAtPaths(`${repoPath}/src/plugins/**/*{.d.ts,.ts}`); - project.addSourceFilesAtPaths(`${repoPath}/packages/**/*{.d.ts,.ts}`); + project.addSourceFilesAtPaths([`${repoPath}/x-pack/plugins/**/*.ts`, '!**/*.d.ts']); + project.addSourceFilesAtPaths([`${repoPath}/src/plugins/**/*.ts`, '!**/*.d.ts']); + project.addSourceFilesAtPaths([`${repoPath}/packages/**/*.ts`, '!**/*.d.ts']); project.resolveSourceFileDependencies(); return project; } diff --git a/packages/kbn-securitysolution-io-ts-alerting-types/src/actions/index.ts b/packages/kbn-securitysolution-io-ts-alerting-types/src/actions/index.ts index f984484dd4091..023af9fc7050e 100644 --- a/packages/kbn-securitysolution-io-ts-alerting-types/src/actions/index.ts +++ b/packages/kbn-securitysolution-io-ts-alerting-types/src/actions/index.ts @@ -12,8 +12,8 @@ import * as t from 'io-ts'; import { saved_object_attributes } from '../saved_object_attributes'; /** - * Params is an "object", since it is a type of AlertActionParams which is action templates. - * @see x-pack/plugins/alerting/common/alert.ts + * Params is an "object", since it is a type of RuleActionParams which is action templates. + * @see x-pack/plugins/alerting/common/rule.ts */ export const action_group = t.string; export const action_id = t.string; diff --git a/packages/kbn-securitysolution-utils/src/path_validations/index.ts b/packages/kbn-securitysolution-utils/src/path_validations/index.ts index 665b1a0838346..4e296cb90584c 100644 --- a/packages/kbn-securitysolution-utils/src/path_validations/index.ts +++ b/packages/kbn-securitysolution-utils/src/path_validations/index.ts @@ -34,7 +34,10 @@ export type TrustedAppConditionEntryField = | 'process.executable.caseless' | 'process.Ext.code_signature'; export type BlocklistConditionEntryField = 'file.hash.*' | 'file.path' | 'file.Ext.code_signature'; -export type AllConditionEntryFields = TrustedAppConditionEntryField | BlocklistConditionEntryField; +export type AllConditionEntryFields = + | TrustedAppConditionEntryField + | BlocklistConditionEntryField + | 'file.path.text'; export const enum OperatingSystem { LINUX = 'linux', @@ -105,11 +108,16 @@ export const isPathValid = ({ value, }: { os: OperatingSystem; - field: AllConditionEntryFields | 'file.path.text'; + field: AllConditionEntryFields; type: EntryTypes; value: string; }): boolean => { - if (field === ConditionEntryField.PATH || field === 'file.path.text') { + const pathFields: AllConditionEntryFields[] = [ + 'process.executable.caseless', + 'file.path', + 'file.path.text', + ]; + if (pathFields.includes(field)) { if (type === 'wildcard') { return os === OperatingSystem.WINDOWS ? isWindowsWildcardPathValid(value) diff --git a/packages/kbn-shared-ux-components/src/index.ts b/packages/kbn-shared-ux-components/src/index.ts index 9216f5b21d7f5..557ac980a14c6 100644 --- a/packages/kbn-shared-ux-components/src/index.ts +++ b/packages/kbn-shared-ux-components/src/index.ts @@ -95,6 +95,23 @@ export const LazyIconButtonGroup = React.lazy(() => */ export const IconButtonGroup = withSuspense(LazyIconButtonGroup); +/** + * The lazily loaded `KibanaPageTemplateSolutionNav` component that is wrapped by the `withSuspense` HOC. Consumers should use + * `React.Suspense` or `withSuspense` HOC to load this component. + */ +export const KibanaPageTemplateSolutionNavLazy = React.lazy(() => + import('./page_template/solution_nav').then(({ KibanaPageTemplateSolutionNav }) => ({ + default: KibanaPageTemplateSolutionNav, + })) +); + +/** + * A `KibanaPageTemplateSolutionNav` component that is wrapped by the `withSuspense` HOC. This component can + * be used directly by consumers and will load the `KibanaPageTemplateSolutionNavLazy` component lazily with + * a predefined fallback and error boundary. + */ +export const KibanaPageTemplateSolutionNav = withSuspense(KibanaPageTemplateSolutionNavLazy); + /** * The Lazily-loaded `KibanaSolutionAvatar` component. Consumers should use `React.Suspense` or * the withSuspense` HOC to load this component. diff --git a/packages/kbn-shared-ux-components/src/page_template/index.tsx b/packages/kbn-shared-ux-components/src/page_template/index.tsx index adbfdce45be76..d469a2fb34c10 100644 --- a/packages/kbn-shared-ux-components/src/page_template/index.tsx +++ b/packages/kbn-shared-ux-components/src/page_template/index.tsx @@ -7,3 +7,4 @@ */ export { NoDataCard, ElasticAgentCard } from './no_data_page'; +export { NoDataPage } from './no_data_page'; diff --git a/packages/kbn-shared-ux-components/src/page_template/no_data_page/__snapshots__/no_data_page.test.tsx.snap b/packages/kbn-shared-ux-components/src/page_template/no_data_page/__snapshots__/no_data_page.test.tsx.snap new file mode 100644 index 0000000000000..66b085b284391 --- /dev/null +++ b/packages/kbn-shared-ux-components/src/page_template/no_data_page/__snapshots__/no_data_page.test.tsx.snap @@ -0,0 +1,53 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`NoDataPage render 1`] = ` +
+ + + +

+ Welcome to Elastic Analytics! +

+ +

+ + + , + "solution": "Analytics", + } + } + /> +

+
+
+ + +
+`; diff --git a/packages/kbn-shared-ux-components/src/page_template/no_data_page/index.ts b/packages/kbn-shared-ux-components/src/page_template/no_data_page/index.ts index 9b0ee88250422..c1b0ac2e13395 100644 --- a/packages/kbn-shared-ux-components/src/page_template/no_data_page/index.ts +++ b/packages/kbn-shared-ux-components/src/page_template/no_data_page/index.ts @@ -7,3 +7,5 @@ */ export { NoDataCard, ElasticAgentCard } from './no_data_card'; +export { NoDataPage } from './no_data_page'; +export type { NoDataPageProps } from './types'; diff --git a/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/__snapshots__/elastic_agent_card.component.test.tsx.snap b/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/__snapshots__/elastic_agent_card.component.test.tsx.snap index 127b4f2d9f4b4..95cacc3a0db4a 100644 --- a/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/__snapshots__/elastic_agent_card.component.test.tsx.snap +++ b/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/__snapshots__/elastic_agent_card.component.test.tsx.snap @@ -52,32 +52,6 @@ exports[`ElasticAgentCardComponent props href 1`] = ` `; -exports[`ElasticAgentCardComponent props recommended 1`] = ` - - - -`; - exports[`ElasticAgentCardComponent renders 1`] = ` `; -exports[`NoDataCard props recommended 1`] = ` -.emotion-0 { - max-width: 400px; -} - -
-
- - Card title - -
-

- Description -

-
-
- - - Recommended - - - -
-`; - exports[`NoDataCard renders 1`] = ` .emotion-0 { max-width: 400px; + margin-inline: auto; }
{ }); describe('props', () => { - test('recommended', () => { - const component = shallow( - - ); - expect(component.find(NoDataCard).props().recommended).toBe(true); - expect(component).toMatchSnapshot(); - }); - test('button', () => { const component = shallow( ; +type Params = Pick; export const PureComponent = (params: Params) => { return ; }; PureComponent.argTypes = { - recommended: { - control: 'boolean', - defaultValue: false, - }, button: { control: { type: 'text', diff --git a/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/no_data_card.styles.ts b/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/no_data_card.styles.ts index 6eff5a39fe58b..5c7bd7d9f8c70 100644 --- a/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/no_data_card.styles.ts +++ b/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/no_data_card.styles.ts @@ -11,5 +11,6 @@ export const NO_DATA_CARD_MAX_WIDTH = 400; export const NoDataCardStyles = () => { return { maxWidth: NO_DATA_CARD_MAX_WIDTH, + marginInline: 'auto', }; }; diff --git a/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/no_data_card.test.tsx b/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/no_data_card.test.tsx index c53743e74b9fa..6bbed463f23ed 100644 --- a/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/no_data_card.test.tsx +++ b/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/no_data_card.test.tsx @@ -17,13 +17,6 @@ describe('NoDataCard', () => { }); describe('props', () => { - test('recommended', () => { - const component = render( - - ); - expect(component).toMatchSnapshot(); - }); - test('button', () => { const component = render( diff --git a/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/no_data_card.tsx b/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/no_data_card.tsx index 4cba71bc09851..705eb0444bb8d 100644 --- a/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/no_data_card.tsx +++ b/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/no_data_card.tsx @@ -13,13 +13,6 @@ import { EuiButton, EuiCard } from '@elastic/eui'; import type { NoDataCardProps } from './types'; import { NoDataCardStyles } from './no_data_card.styles'; -const recommendedLabel = i18n.translate( - 'sharedUXComponents.pageTemplate.noDataPage.recommendedLabel', - { - defaultMessage: 'Recommended', - } -); - const defaultDescription = i18n.translate( 'sharedUXComponents.pageTemplate.noDataCard.description', { @@ -28,7 +21,6 @@ const defaultDescription = i18n.translate( ); export const NoDataCard: FunctionComponent = ({ - recommended, title, button, description, @@ -49,7 +41,6 @@ export const NoDataCard: FunctionComponent = ({ // Default footer action is a button with the provided or default string return {button || title}; }; - const label = recommended ? recommendedLabel : undefined; const cardDescription = description || defaultDescription; return ( @@ -58,7 +49,6 @@ export const NoDataCard: FunctionComponent = ({ paddingSize="l" title={title!} description={cardDescription} - betaBadgeProps={{ label }} footer={footer()} isDisabled={isDisabled} {...cardRest} diff --git a/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/types.ts b/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/types.ts index a2dcc1a629455..fef4f654ce970 100644 --- a/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/types.ts +++ b/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_card/types.ts @@ -10,10 +10,6 @@ import { EuiCardProps } from '@elastic/eui'; import { MouseEventHandler, ReactNode } from 'react'; export type NoDataCardProps = Partial> & { - /** - * Applies the `Recommended` beta badge and makes the button `fill` - */ - recommended?: boolean; /** * Provide just a string for the button's label, or a whole component; * The button will be hidden completely if `isDisabled=true` diff --git a/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_page.stories.tsx b/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_page.stories.tsx new file mode 100644 index 0000000000000..cbb8ef6b0446f --- /dev/null +++ b/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_page.stories.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 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 { servicesFactory } from '@kbn/shared-ux-storybook'; +import { NoDataPageProps } from './types'; +import { NoDataPage } from './no_data_page'; + +const services = servicesFactory({}); + +export default { + title: 'Page Template/No Data Page/No Data Page', + description: 'No Data Page of PageTemplate', +}; +const action = { + elasticAgent: {}, +}; +type Params = Pick; + +export const PureComponent = (params: Params) => { + return ; +}; + +PureComponent.argTypes = { + solution: { + control: 'text', + defaultValue: 'Observability', + }, + logo: { + control: { type: 'radio' }, + options: ['logoElastic', 'logoKibana', 'logoCloud', undefined], + defaultValue: undefined, + }, +}; diff --git a/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_page.test.tsx b/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_page.test.tsx new file mode 100644 index 0000000000000..c84dea27552aa --- /dev/null +++ b/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_page.test.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 { NoDataPage } from './no_data_page'; +import { shallowWithIntl } from '@kbn/test-jest-helpers'; +import { ElasticAgentCard } from './no_data_card'; + +describe('NoDataPage', () => { + test('render', () => { + const component = shallowWithIntl( + + ); + expect(component).toMatchSnapshot(); + expect(component.find('h1').html()).toContain('Welcome to Elastic Analytics!'); + expect(component.find(ElasticAgentCard).length).toBe(1); + }); +}); diff --git a/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_page.tsx b/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_page.tsx new file mode 100644 index 0000000000000..f16f87039a626 --- /dev/null +++ b/packages/kbn-shared-ux-components/src/page_template/no_data_page/no_data_page.tsx @@ -0,0 +1,76 @@ +/* + * Copyright 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, { useMemo, FunctionComponent } from 'react'; +import { i18n } from '@kbn/i18n'; + +import { EuiLink, EuiSpacer, EuiText, EuiTextColor } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; +import classNames from 'classnames'; +import { ElasticAgentCard } from './no_data_card'; +import { NoDataPageProps } from './types'; +import { KibanaSolutionAvatar } from '../../solution_avatar'; + +export const NoDataPage: FunctionComponent = ({ + solution, + logo, + action, + docsLink, + pageTitle, + ...rest +}) => { + const actionKeys = Object.keys(action); + + const actionCard = useMemo(() => { + if (actionKeys.length !== 1) { + return null; + } + const actionKey = actionKeys[0]; + const key = + actionKey === 'elasticAgent' ? 'empty-page-agent-action' : `empty-page-${actionKey}-action`; + return ; + }, [action, actionKeys]); + + const title = + pageTitle || + i18n.translate('sharedUXComponents.noDataPage.welcomeTitle', { + defaultMessage: 'Welcome to Elastic {solution}!', + values: { solution }, + }); + + return ( +
+ + + +

{title}

+ +

+ + + + ), + }} + /> +

+
+
+ + {actionCard} +
+ ); +}; diff --git a/packages/kbn-shared-ux-components/src/page_template/no_data_page/types.ts b/packages/kbn-shared-ux-components/src/page_template/no_data_page/types.ts new file mode 100644 index 0000000000000..61053edf7644a --- /dev/null +++ b/packages/kbn-shared-ux-components/src/page_template/no_data_page/types.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 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 { CommonProps } from '@elastic/eui'; +import { ElasticAgentCardProps } from './no_data_card'; + +export type NoDataPageActions = Omit; + +export interface NoDataPageProps extends CommonProps { + /** + * Single name for the current solution, used to auto-generate the title, logo, description, and button label + */ + solution: string; + /** + * Optionally replace the auto-generated logo + */ + logo?: string; + /** + * Required to set the docs link for the whole solution + */ + docsLink: string; + /** + * Optionally replace the auto-generated page title (h1) + */ + pageTitle?: string; + /** + * An object of `NoDataPageActions`. + * Use `elasticAgent` as the primary key for pre-configured cards of this type. + * Otherwise use a custom key that contains `EuiCard` props. + */ + action: Record; +} diff --git a/packages/kbn-shared-ux-components/src/page_template/solution_nav/__snapshots__/solution_nav.test.tsx.snap b/packages/kbn-shared-ux-components/src/page_template/solution_nav/__snapshots__/solution_nav.test.tsx.snap new file mode 100644 index 0000000000000..fce0e996d99cd --- /dev/null +++ b/packages/kbn-shared-ux-components/src/page_template/solution_nav/__snapshots__/solution_nav.test.tsx.snap @@ -0,0 +1,267 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`KibanaPageTemplateSolutionNav accepts EuiSideNavProps 1`] = ` + + + + Solution + + + } + isOpenOnMobile={false} + items={ + Array [ + Object { + "id": "1", + "items": Array [ + Object { + "id": "1.1", + "items": undefined, + "name": "Ingest Node Pipelines", + "tabIndex": undefined, + }, + Object { + "id": "1.2", + "items": undefined, + "name": "Logstash Pipelines", + "tabIndex": undefined, + }, + Object { + "id": "1.3", + "items": undefined, + "name": "Beats Central Management", + "tabIndex": undefined, + }, + ], + "name": "Ingest", + "tabIndex": undefined, + }, + Object { + "id": "2", + "items": Array [ + Object { + "id": "2.1", + "items": undefined, + "name": "Index Management", + "tabIndex": undefined, + }, + Object { + "id": "2.2", + "items": undefined, + "name": "Index Lifecycle Policies", + "tabIndex": undefined, + }, + Object { + "id": "2.3", + "items": undefined, + "name": "Snapshot and Restore", + "tabIndex": undefined, + }, + ], + "name": "Data", + "tabIndex": undefined, + }, + ] + } + mobileTitle={ + + + + } + toggleOpenOnMobile={[Function]} + /> + +`; + +exports[`KibanaPageTemplateSolutionNav renders 1`] = ` + + + + Solution + + + } + isOpenOnMobile={false} + items={ + Array [ + Object { + "id": "1", + "items": Array [ + Object { + "id": "1.1", + "items": undefined, + "name": "Ingest Node Pipelines", + "tabIndex": undefined, + }, + Object { + "id": "1.2", + "items": undefined, + "name": "Logstash Pipelines", + "tabIndex": undefined, + }, + Object { + "id": "1.3", + "items": undefined, + "name": "Beats Central Management", + "tabIndex": undefined, + }, + ], + "name": "Ingest", + "tabIndex": undefined, + }, + Object { + "id": "2", + "items": Array [ + Object { + "id": "2.1", + "items": undefined, + "name": "Index Management", + "tabIndex": undefined, + }, + Object { + "id": "2.2", + "items": undefined, + "name": "Index Lifecycle Policies", + "tabIndex": undefined, + }, + Object { + "id": "2.3", + "items": undefined, + "name": "Snapshot and Restore", + "tabIndex": undefined, + }, + ], + "name": "Data", + "tabIndex": undefined, + }, + ] + } + mobileTitle={ + + + + } + toggleOpenOnMobile={[Function]} + /> + +`; + +exports[`KibanaPageTemplateSolutionNav renders with icon 1`] = ` + + + + + Solution + + + } + isOpenOnMobile={false} + items={ + Array [ + Object { + "id": "1", + "items": Array [ + Object { + "id": "1.1", + "items": undefined, + "name": "Ingest Node Pipelines", + "tabIndex": undefined, + }, + Object { + "id": "1.2", + "items": undefined, + "name": "Logstash Pipelines", + "tabIndex": undefined, + }, + Object { + "id": "1.3", + "items": undefined, + "name": "Beats Central Management", + "tabIndex": undefined, + }, + ], + "name": "Ingest", + "tabIndex": undefined, + }, + Object { + "id": "2", + "items": Array [ + Object { + "id": "2.1", + "items": undefined, + "name": "Index Management", + "tabIndex": undefined, + }, + Object { + "id": "2.2", + "items": undefined, + "name": "Index Lifecycle Policies", + "tabIndex": undefined, + }, + Object { + "id": "2.3", + "items": undefined, + "name": "Snapshot and Restore", + "tabIndex": undefined, + }, + ], + "name": "Data", + "tabIndex": undefined, + }, + ] + } + mobileTitle={ + + + + + } + toggleOpenOnMobile={[Function]} + /> + +`; diff --git a/packages/kbn-shared-ux-components/src/page_template/solution_nav/__snapshots__/solution_nav_collapse_button.test.tsx.snap b/packages/kbn-shared-ux-components/src/page_template/solution_nav/__snapshots__/solution_nav_collapse_button.test.tsx.snap new file mode 100644 index 0000000000000..d2548b3e8df43 --- /dev/null +++ b/packages/kbn-shared-ux-components/src/page_template/solution_nav/__snapshots__/solution_nav_collapse_button.test.tsx.snap @@ -0,0 +1,23 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`KibanaPageTemplateSolutionNavCollapseButton isCollapsed 1`] = ` + +`; + +exports[`KibanaPageTemplateSolutionNavCollapseButton renders 1`] = ` + +`; diff --git a/packages/kbn-shared-ux-components/src/page_template/solution_nav/index.ts b/packages/kbn-shared-ux-components/src/page_template/solution_nav/index.ts new file mode 100644 index 0000000000000..59ef2924b048d --- /dev/null +++ b/packages/kbn-shared-ux-components/src/page_template/solution_nav/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 type { KibanaPageTemplateSolutionNavProps } from './solution_nav'; +export { KibanaPageTemplateSolutionNav } from './solution_nav'; +export type { KibanaPageTemplateSolutionNavCollapseButtonProps } from './solution_nav_collapse_button'; +export { KibanaPageTemplateSolutionNavCollapseButton } from './solution_nav_collapse_button'; diff --git a/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav.scss b/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav.scss new file mode 100644 index 0000000000000..d0070cef729b7 --- /dev/null +++ b/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav.scss @@ -0,0 +1,30 @@ +$euiSideNavEmphasizedBackgroundColor: transparentize($euiColorLightShade, .7); +@import '@elastic/eui/src/components/side_nav/mixins'; + +// Put the page background color in the flyout version too +.kbnPageTemplateSolutionNav__flyout { + background-color: $euiPageBackgroundColor; +} + +.kbnPageTemplateSolutionNav { + @include euiSideNavEmbellish; + @include euiYScroll; + + @include euiBreakpoint('m' ,'l', 'xl') { + width: 248px; + padding: $euiSizeL; + } + + .kbnPageTemplateSolutionNavAvatar { + margin-right: $euiSize; + } +} + +.kbnPageTemplateSolutionNav--hidden { + pointer-events: none; + opacity: 0; + + @include euiCanAnimate { + transition: opacity $euiAnimSpeedFast $euiAnimSlightResistance; + } +} diff --git a/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav.stories.tsx b/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav.stories.tsx new file mode 100644 index 0000000000000..5ff1e2c07d9d8 --- /dev/null +++ b/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav.stories.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 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 { KibanaPageTemplateSolutionNav, KibanaPageTemplateSolutionNavProps } from './solution_nav'; + +export default { + title: 'Page Template/Solution Nav/Solution Nav', + description: 'Solution-specific navigation for the sidebar', +}; + +type Params = Pick; + +const items: KibanaPageTemplateSolutionNavProps['items'] = [ + { + name:
Ingest
, + id: '1', + items: [ + { + name: 'Ingest Node Pipelines', + id: '1.1', + }, + { + name: 'Logstash Pipelines', + id: '1.2', + }, + { + name: 'Beats Central Management', + id: '1.3', + }, + ], + }, + { + name: 'Data', + id: '2', + items: [ + { + name: 'Index Management', + id: '2.1', + }, + { + name: 'Index Lifecycle Policies', + id: '2.2', + }, + { + name: 'Snapshot and Restore', + id: '2.3', + }, + ], + }, +]; + +export const PureComponent = (params: Params) => { + return ; +}; + +PureComponent.argTypes = { + name: { + control: 'text', + defaultValue: 'Kibana', + }, + icon: { + control: { type: 'radio' }, + options: ['logoKibana', 'logoObservability', 'logoSecurity'], + defaultValue: 'logoKibana', + }, +}; diff --git a/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav.test.tsx b/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav.test.tsx new file mode 100644 index 0000000000000..ed90894289169 --- /dev/null +++ b/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav.test.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 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 { shallow } from 'enzyme'; +import { KibanaPageTemplateSolutionNav, KibanaPageTemplateSolutionNavProps } from './solution_nav'; + +jest.mock('@elastic/eui', () => ({ + useIsWithinBreakpoints: (args: string[]) => { + return args[0] === 'xs'; + }, +})); + +const items: KibanaPageTemplateSolutionNavProps['items'] = [ + { + name: 'Ingest', + id: '1', + items: [ + { + name: 'Ingest Node Pipelines', + id: '1.1', + }, + { + name: 'Logstash Pipelines', + id: '1.2', + }, + { + name: 'Beats Central Management', + id: '1.3', + }, + ], + }, + { + name: 'Data', + id: '2', + items: [ + { + name: 'Index Management', + id: '2.1', + }, + { + name: 'Index Lifecycle Policies', + id: '2.2', + }, + { + name: 'Snapshot and Restore', + id: '2.3', + }, + ], + }, +]; + +describe('KibanaPageTemplateSolutionNav', () => { + test('renders', () => { + const component = shallow(); + expect(component).toMatchSnapshot(); + }); + + test('renders with icon', () => { + const component = shallow( + + ); + expect(component).toMatchSnapshot(); + }); + + test('accepts EuiSideNavProps', () => { + const component = shallow( + + ); + expect(component).toMatchSnapshot(); + }); +}); diff --git a/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav.tsx b/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav.tsx new file mode 100644 index 0000000000000..8bc91789c7054 --- /dev/null +++ b/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav.tsx @@ -0,0 +1,164 @@ +/* + * Copyright 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 './solution_nav.scss'; + +import React, { FunctionComponent, useState } from 'react'; +import { FormattedMessage } from '@kbn/i18n-react'; + +import { + EuiAvatarProps, + EuiFlyout, + EuiSideNav, + EuiSideNavItemType, + EuiSideNavProps, + useIsWithinBreakpoints, +} from '@elastic/eui'; + +import classNames from 'classnames'; +import { KibanaSolutionAvatar } from '../../solution_avatar'; +import { KibanaPageTemplateSolutionNavCollapseButton } from './solution_nav_collapse_button'; + +export type KibanaPageTemplateSolutionNavProps = EuiSideNavProps<{}> & { + /** + * Name of the solution, i.e. "Observability" + */ + name: EuiAvatarProps['name']; + /** + * Solution logo, i.e. "logoObservability" + */ + icon?: EuiAvatarProps['iconType']; + /** + * Control the collapsed state + */ + isOpenOnDesktop?: boolean; + onCollapse?: () => void; +}; + +const FLYOUT_SIZE = 248; + +const setTabIndex = (items: Array>, isHidden: boolean) => { + return items.map((item) => { + // @ts-ignore-next-line Can be removed on close of https://github.com/elastic/eui/issues/4925 + item.tabIndex = isHidden ? -1 : undefined; + item.items = item.items && setTabIndex(item.items, isHidden); + return item; + }); +}; + +/** + * A wrapper around EuiSideNav but also creates the appropriate title with optional solution logo + */ +export const KibanaPageTemplateSolutionNav: FunctionComponent< + KibanaPageTemplateSolutionNavProps +> = ({ name, icon, items, isOpenOnDesktop = false, onCollapse, ...rest }) => { + const isSmallerBreakpoint = useIsWithinBreakpoints(['xs', 's']); + const isMediumBreakpoint = useIsWithinBreakpoints(['m']); + const isLargerBreakpoint = useIsWithinBreakpoints(['l', 'xl']); + + // This is used for both the EuiSideNav and EuiFlyout toggling + const [isSideNavOpenOnMobile, setIsSideNavOpenOnMobile] = useState(false); + const toggleOpenOnMobile = () => { + setIsSideNavOpenOnMobile(!isSideNavOpenOnMobile); + }; + + const isHidden = isLargerBreakpoint && !isOpenOnDesktop; + + /** + * Create the avatar + */ + const solutionAvatar = icon ? ( + + ) : null; + + /** + * Create the titles + */ + const titleText = ( + <> + {solutionAvatar} + {name} + + ); + const mobileTitleText = ( + + ); + + /** + * Create the side nav component + */ + + const sideNav = () => { + if (!items) { + return null; + } + const sideNavClasses = classNames('kbnPageTemplateSolutionNav', { + 'kbnPageTemplateSolutionNav--hidden': isHidden, + }); + return ( + + {solutionAvatar} + {mobileTitleText} + + } + toggleOpenOnMobile={toggleOpenOnMobile} + isOpenOnMobile={isSideNavOpenOnMobile} + items={setTabIndex(items, isHidden)} + {...rest} + /> + ); + }; + + return ( + <> + {isSmallerBreakpoint && sideNav()} + {isMediumBreakpoint && ( + <> + {isSideNavOpenOnMobile && ( + setIsSideNavOpenOnMobile(false)} + side="left" + size={FLYOUT_SIZE} + closeButtonPosition="outside" + className="kbnPageTemplateSolutionNav__flyout" + > + {sideNav()} + + )} + + + )} + {isLargerBreakpoint && ( + <> + {sideNav()} + + + )} + + ); +}; diff --git a/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav_collapse_button.scss b/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav_collapse_button.scss new file mode 100644 index 0000000000000..61cea7962d956 --- /dev/null +++ b/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav_collapse_button.scss @@ -0,0 +1,47 @@ +.kbnPageTemplateSolutionNavCollapseButton { + position: absolute; + opacity: 0; + left: 248px - $euiSize; + top: $euiSizeL; + z-index: 2; + + @include euiCanAnimate { + transition: opacity $euiAnimSpeedFast, left $euiAnimSpeedFast, background $euiAnimSpeedFast; + } + + &:hover, + &:focus { + transition-delay: 0s !important; + } + + .kbnPageTemplate__pageSideBar:hover &, + &:hover, + &:focus { + opacity: 1; + left: 248px - $euiSizeL; + } + + .kbnPageTemplate__pageSideBar:hover & { + transition-delay: $euiAnimSpeedSlow * 2; + } + + &:not(&-isCollapsed) { + background-color: $euiColorEmptyShade !important; // Override all states + } +} + +// Make the button take up the entire area of the collapsed navigation +.kbnPageTemplateSolutionNavCollapseButton-isCollapsed { + opacity: 1 !important; + transition-delay: 0s !important; + left: 0 !important; + right: 0; + top: 0; + bottom: 0; + height: 100%; + width: 100%; + border-radius: 0; + // Keep the icon at the top instead of it getting shifted to the center of the page + padding-top: $euiSizeL + $euiSizeS; + align-items: flex-start; +} diff --git a/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav_collapse_button.test.tsx b/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav_collapse_button.test.tsx new file mode 100644 index 0000000000000..e7df2ddd54582 --- /dev/null +++ b/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav_collapse_button.test.tsx @@ -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 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 { shallow } from 'enzyme'; +import React from 'react'; +import { KibanaPageTemplateSolutionNavCollapseButton } from './solution_nav_collapse_button'; + +describe('KibanaPageTemplateSolutionNavCollapseButton', () => { + test('renders', () => { + const component = shallow(); + expect(component).toMatchSnapshot(); + expect(component.find('.kbnPageTemplateSolutionNavCollapseButton').prop('title')).toBe( + 'Collapse side navigation' + ); + }); + + test('isCollapsed', () => { + const component = shallow(); + expect(component).toMatchSnapshot(); + expect(component.find('.kbnPageTemplateSolutionNavCollapseButton').prop('title')).toBe( + 'Open side navigation' + ); + }); +}); diff --git a/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav_collapse_button.tsx b/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav_collapse_button.tsx new file mode 100644 index 0000000000000..35890b935ad3e --- /dev/null +++ b/packages/kbn-shared-ux-components/src/page_template/solution_nav/solution_nav_collapse_button.tsx @@ -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 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 './solution_nav_collapse_button.scss'; + +import React from 'react'; +import classNames from 'classnames'; + +import { EuiButtonIcon, EuiButtonIconPropsForButton } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + +export type KibanaPageTemplateSolutionNavCollapseButtonProps = + Partial & { + /** + * Boolean state of current collapsed status + */ + isCollapsed: boolean; + }; + +const collapseLabel = i18n.translate('sharedUXComponents.solutionNav.collapsibleLabel', { + defaultMessage: 'Collapse side navigation', +}); + +const openLabel = i18n.translate('sharedUXComponents.solutionNav.openLabel', { + defaultMessage: 'Open side navigation', +}); + +/** + * Creates the styled icon button for showing/hiding solution nav + */ +export const KibanaPageTemplateSolutionNavCollapseButton = ({ + className, + isCollapsed, + ...rest +}: KibanaPageTemplateSolutionNavCollapseButtonProps) => { + const classes = classNames( + 'kbnPageTemplateSolutionNavCollapseButton', + { + 'kbnPageTemplateSolutionNavCollapseButton-isCollapsed': isCollapsed, + }, + className + ); + + return ( + + ); +}; diff --git a/packages/kbn-shared-ux-components/src/solution_avatar/index.tsx b/packages/kbn-shared-ux-components/src/solution_avatar/index.tsx index db31c0fd5a3d4..efc597cbdcb13 100644 --- a/packages/kbn-shared-ux-components/src/solution_avatar/index.tsx +++ b/packages/kbn-shared-ux-components/src/solution_avatar/index.tsx @@ -5,5 +5,5 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ - export { KibanaSolutionAvatar } from './solution_avatar'; +export type { KibanaSolutionAvatarProps } from './solution_avatar'; diff --git a/packages/kbn-shared-ux-components/src/solution_avatar/solution_avatar.tsx b/packages/kbn-shared-ux-components/src/solution_avatar/solution_avatar.tsx index 78459b90e4b3b..deb71affc9c1a 100644 --- a/packages/kbn-shared-ux-components/src/solution_avatar/solution_avatar.tsx +++ b/packages/kbn-shared-ux-components/src/solution_avatar/solution_avatar.tsx @@ -8,9 +8,9 @@ import './solution_avatar.scss'; import React from 'react'; -import classNames from 'classnames'; import { DistributiveOmit, EuiAvatar, EuiAvatarProps } from '@elastic/eui'; +import classNames from 'classnames'; export type KibanaSolutionAvatarProps = DistributiveOmit & { /** @@ -20,7 +20,7 @@ export type KibanaSolutionAvatarProps = DistributiveOmit }; /** - * Applies extra styling to a typical EuiAvatar; + * Applies extra styling to a typical EuiAvatar. * The `name` value will be appended to 'logo' to configure the `iconType` unless `iconType` is provided. */ export const KibanaSolutionAvatar = ({ className, size, ...rest }: KibanaSolutionAvatarProps) => { @@ -34,9 +34,9 @@ export const KibanaSolutionAvatar = ({ className, size, ...rest }: KibanaSolutio }, className )} - color="plain" size={size === 'xxl' ? 'xl' : size} iconSize={size} + color="plain" iconType={`logo${rest.name}`} {...rest} /> diff --git a/src/core/public/application/application_service.test.ts b/src/core/public/application/application_service.test.ts index ccb0b220e0243..bb7378ff1f0f3 100644 --- a/src/core/public/application/application_service.test.ts +++ b/src/core/public/application/application_service.test.ts @@ -898,10 +898,9 @@ describe('#start()', () => { it('should call private function shouldNavigate with overlays and the nextAppId', async () => { service.setup(setupDeps); - const shouldNavigateSpy = jest.spyOn(service as any, 'shouldNavigate'); + const shouldNavigateSpy = jest.spyOn(service as any, 'shouldNavigate'); const { navigateToApp } = await service.start(startDeps); - await navigateToApp('myTestApp'); expect(shouldNavigateSpy).toHaveBeenCalledWith(startDeps.overlays, 'myTestApp'); @@ -909,6 +908,14 @@ describe('#start()', () => { expect(shouldNavigateSpy).toHaveBeenCalledWith(startDeps.overlays, 'myOtherApp'); }); + it('should call private function shouldNavigate with overlays, nextAppId and skipAppLeave', async () => { + service.setup(setupDeps); + const shouldNavigateSpy = jest.spyOn(service as any, 'shouldNavigate'); + const { navigateToApp } = await service.start(startDeps); + await navigateToApp('myTestApp', { skipAppLeave: true }); + expect(shouldNavigateSpy).not.toHaveBeenCalledWith(startDeps.overlays, 'myTestApp'); + }); + describe('when `replace` option is true', () => { it('use `history.replace` instead of `history.push`', async () => { service.setup(setupDeps); @@ -1117,6 +1124,63 @@ describe('#start()', () => { expect(MockHistory.push).toHaveBeenCalledWith('/app/foo/some-path', undefined); expect(setupDeps.redirectTo).not.toHaveBeenCalled(); }); + + describe('navigateToUrl with options', () => { + let addListenerSpy: jest.SpyInstance; + let removeListenerSpy: jest.SpyInstance; + beforeEach(() => { + addListenerSpy = jest.spyOn(window, 'addEventListener'); + removeListenerSpy = jest.spyOn(window, 'removeEventListener'); + }); + afterEach(() => { + jest.restoreAllMocks(); + }); + + it('calls `navigateToApp` with `skipAppLeave` option', async () => { + parseAppUrlMock.mockReturnValue({ app: 'foo', path: '/some-path' }); + service.setup(setupDeps); + const { navigateToUrl } = await service.start(startDeps); + + await navigateToUrl('/an-app-path', { skipAppLeave: true }); + + expect(MockHistory.push).toHaveBeenCalledWith('/app/foo/some-path', undefined); + expect(setupDeps.redirectTo).not.toHaveBeenCalled(); + }); + + it('calls `redirectTo` when `forceRedirect` option is true', async () => { + parseAppUrlMock.mockReturnValue({ app: 'foo', path: '/some-path' }); + service.setup(setupDeps); + + const { navigateToUrl } = await service.start(startDeps); + + await navigateToUrl('/an-app-path', { forceRedirect: true }); + + expect(addListenerSpy).toHaveBeenCalledTimes(1); + expect(addListenerSpy).toHaveBeenCalledWith('beforeunload', expect.any(Function)); + + expect(setupDeps.redirectTo).toHaveBeenCalledWith('/an-app-path'); + expect(MockHistory.push).not.toHaveBeenCalled(); + }); + + it('removes the beforeunload listener and calls `redirectTo` when `forceRedirect` and `skipAppLeave` option are both true', async () => { + parseAppUrlMock.mockReturnValue({ app: 'foo', path: '/some-path' }); + service.setup(setupDeps); + + const { navigateToUrl } = await service.start(startDeps); + + await navigateToUrl('/an-app-path', { skipAppLeave: true, forceRedirect: true }); + + expect(addListenerSpy).toHaveBeenCalledTimes(1); + expect(addListenerSpy).toHaveBeenCalledWith('beforeunload', expect.any(Function)); + const handler = addListenerSpy.mock.calls[0][1]; + + expect(MockHistory.push).toHaveBeenCalledTimes(0); + expect(setupDeps.redirectTo).toHaveBeenCalledWith('/an-app-path'); + + expect(removeListenerSpy).toHaveBeenCalledTimes(1); + expect(removeListenerSpy).toHaveBeenCalledWith('beforeunload', handler); + }); + }); }); }); diff --git a/src/core/public/application/application_service.tsx b/src/core/public/application/application_service.tsx index 1cfae598f67c8..d49a33e3f1371 100644 --- a/src/core/public/application/application_service.tsx +++ b/src/core/public/application/application_service.tsx @@ -31,6 +31,7 @@ import { InternalApplicationStart, Mounter, NavigateToAppOptions, + NavigateToUrlOptions, } from './types'; import { getLeaveAction, isConfirmAction } from './application_leave'; import { getUserConfirmationHandler } from './navigation_confirm'; @@ -234,13 +235,19 @@ export class ApplicationService { const navigateToApp: InternalApplicationStart['navigateToApp'] = async ( appId, - { deepLinkId, path, state, replace = false, openInNewTab = false }: NavigateToAppOptions = {} + { + deepLinkId, + path, + state, + replace = false, + openInNewTab = false, + skipAppLeave = false, + }: NavigateToAppOptions = {} ) => { const currentAppId = this.currentAppId$.value; const navigatingToSameApp = currentAppId === appId; - const shouldNavigate = navigatingToSameApp - ? true - : await this.shouldNavigate(overlays, appId); + const shouldNavigate = + navigatingToSameApp || skipAppLeave ? true : await this.shouldNavigate(overlays, appId); const targetApp = applications$.value.get(appId); @@ -304,13 +311,20 @@ export class ApplicationService { return absolute ? relativeToAbsolute(relUrl) : relUrl; }, navigateToApp, - navigateToUrl: async (url) => { + navigateToUrl: async ( + url: string, + { skipAppLeave = false, forceRedirect = false }: NavigateToUrlOptions = {} + ) => { const appInfo = parseAppUrl(url, http.basePath, this.apps); - if (appInfo) { - return navigateToApp(appInfo.app, { path: appInfo.path }); - } else { + if ((forceRedirect || !appInfo) === true) { + if (skipAppLeave) { + window.removeEventListener('beforeunload', this.onBeforeUnload); + } return this.redirectTo!(url); } + if (appInfo) { + return navigateToApp(appInfo.app, { path: appInfo.path, skipAppLeave }); + } }, getComponent: () => { if (!this.history) { diff --git a/src/core/public/application/index.ts b/src/core/public/application/index.ts index 882555fcd60e0..55ac8f47becfa 100644 --- a/src/core/public/application/index.ts +++ b/src/core/public/application/index.ts @@ -28,6 +28,7 @@ export type { AppLeaveDefaultAction, AppLeaveConfirmAction, NavigateToAppOptions, + NavigateToUrlOptions, PublicAppInfo, PublicAppDeepLinkInfo, // Internal types diff --git a/src/core/public/application/integration_tests/application_service.test.tsx b/src/core/public/application/integration_tests/application_service.test.tsx index dda029c66f4c3..99e6d86b6a941 100644 --- a/src/core/public/application/integration_tests/application_service.test.tsx +++ b/src/core/public/application/integration_tests/application_service.test.tsx @@ -170,7 +170,28 @@ describe('ApplicationService', () => { '/app/app1/deep-link', ]); }); - //// + + it('handles `skipOnAppLeave` option', async () => { + const { register } = service.setup(setupDeps); + + register(Symbol(), { + id: 'app1', + title: 'App1', + mount: async ({}: AppMountParameters) => { + return () => undefined; + }, + }); + + const { navigateToApp } = await service.start(startDeps); + + await navigateToApp('app1', { path: '/foo' }); + await navigateToApp('app1', { path: '/bar', skipAppLeave: true }); + expect(history.entries.map((entry) => entry.pathname)).toEqual([ + '/', + '/app/app1/foo', + '/app/app1/bar', + ]); + }); }); }); @@ -249,6 +270,38 @@ describe('ApplicationService', () => { expect(history.entries[2].pathname).toEqual('/app/app2'); }); + it('does not trigger the action if `skipAppLeave` is true', async () => { + const { register } = service.setup(setupDeps); + + register(Symbol(), { + id: 'app1', + title: 'App1', + mount: ({ onAppLeave }: AppMountParameters) => { + onAppLeave((actions) => actions.confirm('confirmation-message', 'confirmation-title')); + return () => undefined; + }, + }); + register(Symbol(), { + id: 'app2', + title: 'App2', + mount: ({}: AppMountParameters) => { + return () => undefined; + }, + }); + + const { navigateToApp, getComponent } = await service.start(startDeps); + + update = createRenderer(getComponent()); + + await act(async () => { + await navigate('/app/app1'); + await navigateToApp('app2', { skipAppLeave: true }); + }); + expect(startDeps.overlays.openConfirm).toHaveBeenCalledTimes(0); + expect(history.entries.length).toEqual(3); + expect(history.entries[1].pathname).toEqual('/app/app1'); + }); + it('blocks navigation to the new app if action is confirm and user declined', async () => { startDeps.overlays.openConfirm.mockResolvedValue(false); diff --git a/src/core/public/application/types.ts b/src/core/public/application/types.ts index 659145a9958f1..4e96e96505083 100644 --- a/src/core/public/application/types.ts +++ b/src/core/public/application/types.ts @@ -740,6 +740,26 @@ export interface NavigateToAppOptions { * if true, will open the app in new tab, will share session information via window.open if base */ openInNewTab?: boolean; + + /** + * if true, will bypass the default onAppLeave behavior + */ + skipAppLeave?: boolean; +} + +/** + * Options for the {@link ApplicationStart.navigateToUrl | navigateToUrl API} + * @public + */ +export interface NavigateToUrlOptions { + /** + * if true, will bypass the default onAppLeave behavior + */ + skipAppLeave?: boolean; + /** + * if 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`) + */ + forceRedirect?: boolean; } /** @public */ @@ -781,7 +801,7 @@ export interface ApplicationStart { * - The pathname segment after the basePath matches any known application route (eg. /app// or any application's `appRoute` configuration) * * Then a SPA navigation will be performed using `navigateToApp` using the corresponding application and path. - * Otherwise, fallback to a full page reload to navigate to the url using `window.location.assign` + * Otherwise, fallback to a full page reload to navigate to the url using `window.location.assign`. * * @example * ```ts @@ -802,8 +822,7 @@ export interface ApplicationStart { * * @param url - an absolute URL, an absolute path or a relative path, to navigate to. */ - navigateToUrl(url: string): Promise; - + navigateToUrl(url: string, options?: NavigateToUrlOptions): Promise; /** * Returns the absolute path (or URL) to a given app, including the global base path. * diff --git a/src/core/public/chrome/ui/header/collapsible_nav.tsx b/src/core/public/chrome/ui/header/collapsible_nav.tsx index 498efcfd9076e..54adb34550462 100644 --- a/src/core/public/chrome/ui/header/collapsible_nav.tsx +++ b/src/core/public/chrome/ui/header/collapsible_nav.tsx @@ -89,7 +89,7 @@ const overviewIDsToHide = ['kibanaOverview', 'enterpriseSearch']; const overviewIDs = [ ...overviewIDsToHide, 'observability-overview', - 'securitySolutionUI:overview', + 'securitySolutionUI:get_started', 'management', ]; diff --git a/src/core/public/i18n/__snapshots__/i18n_service.test.tsx.snap b/src/core/public/i18n/__snapshots__/i18n_service.test.tsx.snap index aae1b026a4e11..69439d1927745 100644 --- a/src/core/public/i18n/__snapshots__/i18n_service.test.tsx.snap +++ b/src/core/public/i18n/__snapshots__/i18n_service.test.tsx.snap @@ -6,6 +6,7 @@ exports[`#start() returns \`Context\` component 1`] = ` i18n={ Object { "mapping": Object { + "euiAbsoluteTab.dateFormatError": [Function], "euiAccordion.isLoading": "Loading", "euiAutoRefresh.autoRefreshLabel": "Auto refresh", "euiAutoRefresh.buttonLabelOff": "Auto refresh is off", @@ -100,6 +101,14 @@ exports[`#start() returns \`Context\` component 1`] = ` "euiDataGridSchema.numberSortTextDesc": "High-Low", "euiDatePopoverButton.invalidTitle": [Function], "euiDatePopoverButton.outdatedTitle": [Function], + "euiDatePopoverContent.absoluteTabLabel": "Absolute", + "euiDatePopoverContent.endDateLabel": "End date", + "euiDatePopoverContent.nowTabButtonEnd": "Set end date and time to now", + "euiDatePopoverContent.nowTabButtonStart": "Set start date and time to now", + "euiDatePopoverContent.nowTabContent": "Setting the time to \\"now\\" means that on every refresh this time will be set to the time of the refresh.", + "euiDatePopoverContent.nowTabLabel": "Now", + "euiDatePopoverContent.relativeTabLabel": "Relative", + "euiDatePopoverContent.startDateLabel": "Start date", "euiDisplaySelector.buttonText": "Display options", "euiDisplaySelector.densityLabel": "Density", "euiDisplaySelector.labelAuto": "Auto fit", @@ -177,6 +186,39 @@ exports[`#start() returns \`Context\` component 1`] = ` "euiPinnableListGroup.pinExtraActionLabel": "Pin item", "euiPinnableListGroup.pinnedExtraActionLabel": "Unpin item", "euiPopover.screenReaderAnnouncement": "You are in a dialog. To close this dialog, hit escape.", + "euiPrettyDuration.durationRoundedToDay": [Function], + "euiPrettyDuration.durationRoundedToHour": [Function], + "euiPrettyDuration.durationRoundedToMinute": [Function], + "euiPrettyDuration.durationRoundedToMonth": [Function], + "euiPrettyDuration.durationRoundedToSecond": [Function], + "euiPrettyDuration.durationRoundedToWeek": [Function], + "euiPrettyDuration.durationRoundedToYear": [Function], + "euiPrettyDuration.fallbackDuration": [Function], + "euiPrettyDuration.invalid": "Invalid date", + "euiPrettyDuration.lastDurationDays": [Function], + "euiPrettyDuration.lastDurationHours": [Function], + "euiPrettyDuration.lastDurationMinutes": [Function], + "euiPrettyDuration.lastDurationMonths": [Function], + "euiPrettyDuration.lastDurationSeconds": [Function], + "euiPrettyDuration.lastDurationWeeks": [Function], + "euiPrettyDuration.lastDurationYears": [Function], + "euiPrettyDuration.nextDurationHours": [Function], + "euiPrettyDuration.nextDurationMinutes": [Function], + "euiPrettyDuration.nextDurationMonths": [Function], + "euiPrettyDuration.nextDurationSeconds": [Function], + "euiPrettyDuration.nextDurationWeeks": [Function], + "euiPrettyDuration.nextDurationYears": [Function], + "euiPrettyDuration.nexttDurationDays": [Function], + "euiPrettyDuration.now": "now", + "euiPrettyInterval.days": [Function], + "euiPrettyInterval.daysShorthand": [Function], + "euiPrettyInterval.hours": [Function], + "euiPrettyInterval.hoursShorthand": [Function], + "euiPrettyInterval.minutes": [Function], + "euiPrettyInterval.minutesShorthand": [Function], + "euiPrettyInterval.off": "Off", + "euiPrettyInterval.seconds": [Function], + "euiPrettyInterval.secondsShorthand": [Function], "euiProgress.valueText": [Function], "euiQuickSelect.applyButton": "Apply", "euiQuickSelect.fullDescription": [Function], @@ -195,8 +237,6 @@ exports[`#start() returns \`Context\` component 1`] = ` "euiRelativeTab.fullDescription": [Function], "euiRelativeTab.numberInputError": "Must be >= 0", "euiRelativeTab.numberInputLabel": "Time span amount", - "euiRelativeTab.relativeDate": [Function], - "euiRelativeTab.roundingLabel": [Function], "euiRelativeTab.unitInputLabel": "Relative time span", "euiResizableButton.horizontalResizerAriaLabel": "Press left or right to adjust panels size", "euiResizableButton.verticalResizerAriaLabel": "Press up or down to adjust panels size", @@ -256,6 +296,44 @@ exports[`#start() returns \`Context\` component 1`] = ` "euiTablePagination.rowsPerPageOption": [Function], "euiTablePagination.rowsPerPageOptionShowAllRows": "Show all rows", "euiTableSortMobile.sorting": "Sorting", + "euiTimeOptions.days": "Days", + "euiTimeOptions.daysAgo": "Days ago", + "euiTimeOptions.daysFromNow": "Days from now", + "euiTimeOptions.hours": "Hours", + "euiTimeOptions.hoursAgo": "Hours ago", + "euiTimeOptions.hoursFromNow": "Hours from now", + "euiTimeOptions.last": "Last", + "euiTimeOptions.minutes": "Minutes", + "euiTimeOptions.minutesAgo": "Minutes ago", + "euiTimeOptions.minutesFromNow": "Minutes from now", + "euiTimeOptions.monthToDate": "Month to date", + "euiTimeOptions.months": "Months", + "euiTimeOptions.monthsAgo": "Months ago", + "euiTimeOptions.monthsFromNow": "Months from now", + "euiTimeOptions.next": "Next", + "euiTimeOptions.roundToDay": "Round to the day", + "euiTimeOptions.roundToHour": "Round to the hour", + "euiTimeOptions.roundToMinute": "Round to the minute", + "euiTimeOptions.roundToMonth": "Round to the month", + "euiTimeOptions.roundToSecond": "Round to the second", + "euiTimeOptions.roundToWeek": "Round to the week", + "euiTimeOptions.roundToYear": "Round to the year", + "euiTimeOptions.seconds": "Seconds", + "euiTimeOptions.secondsAgo": "Seconds ago", + "euiTimeOptions.secondsFromNow": "Seconds from now", + "euiTimeOptions.thisMonth": "This month", + "euiTimeOptions.thisWeek": "This week", + "euiTimeOptions.thisYear": "This year", + "euiTimeOptions.today": "Today", + "euiTimeOptions.weekToDate": "Week to date", + "euiTimeOptions.weeks": "Weeks", + "euiTimeOptions.weeksAgo": "Weeks ago", + "euiTimeOptions.weeksFromNow": "Weeks from now", + "euiTimeOptions.yearToDate": "Year to date", + "euiTimeOptions.years": "Years", + "euiTimeOptions.yearsAgo": "Years ago", + "euiTimeOptions.yearsFromNow": "Years from now", + "euiTimeOptions.yesterday": "Yesterday", "euiToast.dismissToast": "Dismiss toast", "euiToast.newNotification": "A new notification appears", "euiToast.notification": "Notification", diff --git a/src/core/public/i18n/i18n_eui_mapping.test.ts b/src/core/public/i18n/i18n_eui_mapping.test.ts index 2b29fa4d0d66c..a2d35b37ac569 100644 --- a/src/core/public/i18n/i18n_eui_mapping.test.ts +++ b/src/core/public/i18n/i18n_eui_mapping.test.ts @@ -17,6 +17,7 @@ import { getEuiContextMapping } from './i18n_eui_mapping'; const VALUES_REGEXP = /\{\w+\}/; describe('@elastic/eui i18n tokens', () => { + const i18nTranslateActual = jest.requireActual('@kbn/i18n').i18n.translate; const i18nTranslateMock = jest .fn() .mockImplementation((id, { defaultMessage }) => defaultMessage); @@ -74,10 +75,9 @@ describe('@elastic/eui i18n tokens', () => { }); test('defaultMessage is in sync with defString', () => { - // Certain complex tokens (e.g. ones that have a function as a defaultMessage) - // need custom i18n handling, and can't be checked for basic defString equality - const tokensToSkip = ['euiColumnSorting.buttonActive', 'euiSelectable.searchResults']; - if (tokensToSkip.includes(token)) return; + const isDefFunction = defString.includes('}) =>'); + const isPluralizationDefFunction = + defString.includes(' === 1 ?') || defString.includes(' > 1 ?'); // Clean up typical errors from the `@elastic/eui` extraction token tool const normalizedDefString = defString @@ -90,7 +90,38 @@ describe('@elastic/eui i18n tokens', () => { .replace(/\s{2,}/g, ' ') .trim(); - expect(i18nTranslateCall[1].defaultMessage).toBe(normalizedDefString); + if (!isDefFunction) { + expect(i18nTranslateCall[1].defaultMessage).toBe(normalizedDefString); + } else { + // Certain EUI defStrings are actually functions (that currently primarily handle + // pluralization). To check EUI's pluralization against Kibana's pluralization, we + // need to eval the defString and then actually i18n.translate & compare the 2 outputs + const defFunction = eval(defString); // eslint-disable-line no-eval + const defFunctionArg = normalizedDefString.split('({ ')[1].split('})')[0]; // TODO: All EUI pluralization fns currently only pass 1 arg. If this changes in the future and 2 args are passed, we'll need to do some extra splitting by ',' + + if (isPluralizationDefFunction) { + const singularValue = { [defFunctionArg]: 1 }; + expect( + i18nTranslateActual(token, { + defaultMessage: i18nTranslateCall[1].defaultMessage, + values: singularValue, + }) + ).toEqual(defFunction(singularValue)); + + const pluralValue = { [defFunctionArg]: 2 }; + expect( + i18nTranslateActual(token, { + defaultMessage: i18nTranslateCall[1].defaultMessage, + values: pluralValue, + }) + ).toEqual(defFunction(pluralValue)); + } else { + throw new Error( + `We currently only have logic written for EUI pluralization def functions. + This is a new type of def function that will need custom logic written for it.` + ); + } + } }); test('values should match', () => { diff --git a/src/core/public/i18n/i18n_eui_mapping.tsx b/src/core/public/i18n/i18n_eui_mapping.tsx index 7e0fff16d56eb..9969f4ee23f57 100644 --- a/src/core/public/i18n/i18n_eui_mapping.tsx +++ b/src/core/public/i18n/i18n_eui_mapping.tsx @@ -843,6 +843,279 @@ export const getEuiContextMapping = (): EuiTokensObject => { defaultMessage: '{value}%', values: { value }, }), + 'euiPrettyDuration.lastDurationSeconds': ({ duration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.lastDurationSeconds', { + defaultMessage: 'Last {duration, plural, one {# second} other {# seconds}}', + values: { duration }, + }), + 'euiPrettyDuration.nextDurationSeconds': ({ duration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.nextDurationSeconds', { + defaultMessage: 'Next {duration, plural, one {# second} other {# seconds}}', + values: { duration }, + }), + 'euiPrettyDuration.lastDurationMinutes': ({ duration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.lastDurationMinutes', { + defaultMessage: 'Last {duration, plural, one {# minute} other {# minutes}}', + values: { duration }, + }), + 'euiPrettyDuration.nextDurationMinutes': ({ duration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.nextDurationMinutes', { + defaultMessage: 'Next {duration, plural, one {# minute} other {# minutes}}', + values: { duration }, + }), + 'euiPrettyDuration.lastDurationHours': ({ duration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.lastDurationHours', { + defaultMessage: 'Last {duration, plural, one {# hour} other {# hours}}', + values: { duration }, + }), + 'euiPrettyDuration.nextDurationHours': ({ duration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.nextDurationHours', { + defaultMessage: 'Next {duration, plural, one {# hour} other {# hours}}', + values: { duration }, + }), + 'euiPrettyDuration.lastDurationDays': ({ duration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.lastDurationDays', { + defaultMessage: 'Last {duration, plural, one {# day} other {# days}}', + values: { duration }, + }), + 'euiPrettyDuration.nexttDurationDays': ({ duration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.nexttDurationDays', { + defaultMessage: 'Next {duration, plural, one {# day} other {# days}}', + values: { duration }, + }), + 'euiPrettyDuration.lastDurationWeeks': ({ duration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.lastDurationWeeks', { + defaultMessage: 'Last {duration, plural, one {# week} other {# weeks}}', + values: { duration }, + }), + 'euiPrettyDuration.nextDurationWeeks': ({ duration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.nextDurationWeeks', { + defaultMessage: 'Next {duration, plural, one {# week} other {# weeks}}', + values: { duration }, + }), + 'euiPrettyDuration.lastDurationMonths': ({ duration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.lastDurationMonths', { + defaultMessage: 'Last {duration, plural, one {# month} other {# months}}', + values: { duration }, + }), + 'euiPrettyDuration.nextDurationMonths': ({ duration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.nextDurationMonths', { + defaultMessage: 'Next {duration, plural, one {# month} other {# months}}', + values: { duration }, + }), + 'euiPrettyDuration.lastDurationYears': ({ duration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.lastDurationYears', { + defaultMessage: 'Last {duration, plural, one {# year} other {# years}}', + values: { duration }, + }), + 'euiPrettyDuration.nextDurationYears': ({ duration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.nextDurationYears', { + defaultMessage: 'Next {duration, plural, one {# year} other {# years}}', + values: { duration }, + }), + 'euiPrettyDuration.durationRoundedToSecond': ({ prettyDuration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.durationRoundedToSecond', { + defaultMessage: '{prettyDuration} rounded to the second', + values: { prettyDuration }, + }), + 'euiPrettyDuration.durationRoundedToMinute': ({ prettyDuration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.durationRoundedToMinute', { + defaultMessage: '{prettyDuration} rounded to the minute', + values: { prettyDuration }, + }), + 'euiPrettyDuration.durationRoundedToHour': ({ prettyDuration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.durationRoundedToHour', { + defaultMessage: '{prettyDuration} rounded to the hour', + values: { prettyDuration }, + }), + 'euiPrettyDuration.durationRoundedToDay': ({ prettyDuration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.durationRoundedToDay', { + defaultMessage: '{prettyDuration} rounded to the day', + values: { prettyDuration }, + }), + 'euiPrettyDuration.durationRoundedToWeek': ({ prettyDuration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.durationRoundedToWeek', { + defaultMessage: '{prettyDuration} rounded to the week', + values: { prettyDuration }, + }), + 'euiPrettyDuration.durationRoundedToMonth': ({ prettyDuration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.durationRoundedToMonth', { + defaultMessage: '{prettyDuration} rounded to the month', + values: { prettyDuration }, + }), + 'euiPrettyDuration.durationRoundedToYear': ({ prettyDuration }: EuiValues) => + i18n.translate('core.euiPrettyDuration.durationRoundedToYear', { + defaultMessage: '{prettyDuration} rounded to the year', + values: { prettyDuration }, + }), + 'euiPrettyDuration.now': i18n.translate('core.euiPrettyDuration.now', { + defaultMessage: 'now', + }), + 'euiPrettyDuration.invalid': i18n.translate('core.euiPrettyDuration.invalid', { + defaultMessage: 'Invalid date', + }), + 'euiPrettyDuration.fallbackDuration': ({ displayFrom, displayTo }: EuiValues) => + i18n.translate('core.euiPrettyDuration.fallbackDuration', { + defaultMessage: '{displayFrom} to {displayTo}', + values: { displayFrom, displayTo }, + }), + 'euiPrettyInterval.seconds': ({ interval }: EuiValues) => + i18n.translate('core.euiPrettyInterval.seconds', { + defaultMessage: '{interval, plural, one {# second} other {# seconds}}', + values: { interval }, + }), + 'euiPrettyInterval.minutes': ({ interval }: EuiValues) => + i18n.translate('core.euiPrettyInterval.minutes', { + defaultMessage: '{interval, plural, one {# minute} other {# minutes}}', + values: { interval }, + }), + 'euiPrettyInterval.hours': ({ interval }: EuiValues) => + i18n.translate('core.euiPrettyInterval.hours', { + defaultMessage: '{interval, plural, one {# hour} other {# hours}}', + values: { interval }, + }), + 'euiPrettyInterval.days': ({ interval }: EuiValues) => + i18n.translate('core.euiPrettyInterval.days', { + defaultMessage: '{interval, plural, one {# day} other {# days}}', + values: { interval }, + }), + 'euiPrettyInterval.secondsShorthand': ({ interval }: EuiValues) => + i18n.translate('core.euiPrettyInterval.secondsShorthand', { + defaultMessage: '{interval} s', + values: { interval }, + }), + 'euiPrettyInterval.minutesShorthand': ({ interval }: EuiValues) => + i18n.translate('core.euiPrettyInterval.minutesShorthand', { + defaultMessage: '{interval} m', + values: { interval }, + }), + 'euiPrettyInterval.hoursShorthand': ({ interval }: EuiValues) => + i18n.translate('core.euiPrettyInterval.hoursShorthand', { + defaultMessage: '{interval} h', + values: { interval }, + }), + 'euiPrettyInterval.daysShorthand': ({ interval }: EuiValues) => + i18n.translate('core.euiPrettyInterval.daysShorthand', { + defaultMessage: '{interval} d', + values: { interval }, + }), + 'euiPrettyInterval.off': i18n.translate('core.euiPrettyInterval.off', { + defaultMessage: 'Off', + }), + 'euiTimeOptions.last': i18n.translate('core.euiTimeOptions.last', { + defaultMessage: 'Last', + }), + 'euiTimeOptions.next': i18n.translate('core.euiTimeOptions.next', { + defaultMessage: 'Next', + }), + 'euiTimeOptions.seconds': i18n.translate('core.euiTimeOptions.seconds', { + defaultMessage: 'Seconds', + }), + 'euiTimeOptions.minutes': i18n.translate('core.euiTimeOptions.minutes', { + defaultMessage: 'Minutes', + }), + 'euiTimeOptions.hours': i18n.translate('core.euiTimeOptions.hours', { + defaultMessage: 'Hours', + }), + 'euiTimeOptions.days': i18n.translate('core.euiTimeOptions.days', { + defaultMessage: 'Days', + }), + 'euiTimeOptions.weeks': i18n.translate('core.euiTimeOptions.weeks', { + defaultMessage: 'Weeks', + }), + 'euiTimeOptions.months': i18n.translate('core.euiTimeOptions.months', { + defaultMessage: 'Months', + }), + 'euiTimeOptions.years': i18n.translate('core.euiTimeOptions.years', { + defaultMessage: 'Years', + }), + 'euiTimeOptions.secondsAgo': i18n.translate('core.euiTimeOptions.secondsAgo', { + defaultMessage: 'Seconds ago', + }), + 'euiTimeOptions.minutesAgo': i18n.translate('core.euiTimeOptions.minutesAgo', { + defaultMessage: 'Minutes ago', + }), + 'euiTimeOptions.hoursAgo': i18n.translate('core.euiTimeOptions.hoursAgo', { + defaultMessage: 'Hours ago', + }), + 'euiTimeOptions.daysAgo': i18n.translate('core.euiTimeOptions.daysAgo', { + defaultMessage: 'Days ago', + }), + 'euiTimeOptions.weeksAgo': i18n.translate('core.euiTimeOptions.weeksAgo', { + defaultMessage: 'Weeks ago', + }), + 'euiTimeOptions.monthsAgo': i18n.translate('core.euiTimeOptions.monthsAgo', { + defaultMessage: 'Months ago', + }), + 'euiTimeOptions.yearsAgo': i18n.translate('core.euiTimeOptions.yearsAgo', { + defaultMessage: 'Years ago', + }), + 'euiTimeOptions.secondsFromNow': i18n.translate('core.euiTimeOptions.secondsFromNow', { + defaultMessage: 'Seconds from now', + }), + 'euiTimeOptions.minutesFromNow': i18n.translate('core.euiTimeOptions.minutesFromNow', { + defaultMessage: 'Minutes from now', + }), + 'euiTimeOptions.hoursFromNow': i18n.translate('core.euiTimeOptions.hoursFromNow', { + defaultMessage: 'Hours from now', + }), + 'euiTimeOptions.daysFromNow': i18n.translate('core.euiTimeOptions.daysFromNow', { + defaultMessage: 'Days from now', + }), + 'euiTimeOptions.weeksFromNow': i18n.translate('core.euiTimeOptions.weeksFromNow', { + defaultMessage: 'Weeks from now', + }), + 'euiTimeOptions.monthsFromNow': i18n.translate('core.euiTimeOptions.monthsFromNow', { + defaultMessage: 'Months from now', + }), + 'euiTimeOptions.yearsFromNow': i18n.translate('core.euiTimeOptions.yearsFromNow', { + defaultMessage: 'Years from now', + }), + 'euiTimeOptions.roundToSecond': i18n.translate('core.euiTimeOptions.roundToSecond', { + defaultMessage: 'Round to the second', + }), + 'euiTimeOptions.roundToMinute': i18n.translate('core.euiTimeOptions.roundToMinute', { + defaultMessage: 'Round to the minute', + }), + 'euiTimeOptions.roundToHour': i18n.translate('core.euiTimeOptions.roundToHour', { + defaultMessage: 'Round to the hour', + }), + 'euiTimeOptions.roundToDay': i18n.translate('core.euiTimeOptions.roundToDay', { + defaultMessage: 'Round to the day', + }), + 'euiTimeOptions.roundToWeek': i18n.translate('core.euiTimeOptions.roundToWeek', { + defaultMessage: 'Round to the week', + }), + 'euiTimeOptions.roundToMonth': i18n.translate('core.euiTimeOptions.roundToMonth', { + defaultMessage: 'Round to the month', + }), + 'euiTimeOptions.roundToYear': i18n.translate('core.euiTimeOptions.roundToYear', { + defaultMessage: 'Round to the year', + }), + 'euiTimeOptions.today': i18n.translate('core.euiTimeOptions.today', { + defaultMessage: 'Today', + }), + 'euiTimeOptions.thisWeek': i18n.translate('core.euiTimeOptions.thisWeek', { + defaultMessage: 'This week', + }), + 'euiTimeOptions.thisMonth': i18n.translate('core.euiTimeOptions.thisMonth', { + defaultMessage: 'This month', + }), + 'euiTimeOptions.thisYear': i18n.translate('core.euiTimeOptions.thisYear', { + defaultMessage: 'This year', + }), + 'euiTimeOptions.yesterday': i18n.translate('core.euiTimeOptions.yesterday', { + defaultMessage: 'Yesterday', + }), + 'euiTimeOptions.weekToDate': i18n.translate('core.euiTimeOptions.weekToDate', { + defaultMessage: 'Week to date', + }), + 'euiTimeOptions.monthToDate': i18n.translate('core.euiTimeOptions.monthToDate', { + defaultMessage: 'Month to date', + }), + 'euiTimeOptions.yearToDate': i18n.translate('core.euiTimeOptions.yearToDate', { + defaultMessage: 'Year to date', + }), 'euiQuickSelect.applyButton': i18n.translate('core.euiQuickSelect.applyButton', { defaultMessage: 'Apply', }), @@ -888,21 +1161,50 @@ export const getEuiContextMapping = (): EuiTokensObject => { defaultMessage: 'Refresh is on, interval set to {optionValue} {optionText}.', values: { optionValue, optionText }, }), + 'euiDatePopoverContent.startDateLabel': i18n.translate( + 'core.euiDatePopoverContent.startDateLabel', + { defaultMessage: 'Start date' } + ), + 'euiDatePopoverContent.endDateLabel': i18n.translate( + 'core.euiDatePopoverContent.endDateLabel', + { defaultMessage: 'End date' } + ), + 'euiDatePopoverContent.absoluteTabLabel': i18n.translate( + 'core.euiDatePopoverContent.absoluteTabLabel', + { defaultMessage: 'Absolute' } + ), + 'euiDatePopoverContent.relativeTabLabel': i18n.translate( + 'core.euiDatePopoverContent.relativeTabLabel', + { defaultMessage: 'Relative' } + ), + 'euiDatePopoverContent.nowTabLabel': i18n.translate('core.euiDatePopoverContent.nowTabLabel', { + defaultMessage: 'Now', + }), + 'euiDatePopoverContent.nowTabContent': i18n.translate( + 'core.euiDatePopoverContent.nowTabContent', + { + defaultMessage: + 'Setting the time to "now" means that on every refresh this time will be set to the time of the refresh.', + } + ), + 'euiDatePopoverContent.nowTabButtonStart': i18n.translate( + 'core.euiDatePopoverContent.nowTabButtonStart', + { defaultMessage: 'Set start date and time to now' } + ), + 'euiDatePopoverContent.nowTabButtonEnd': i18n.translate( + 'core.euiDatePopoverContent.nowTabButtonEnd', + { defaultMessage: 'Set end date and time to now' } + ), + 'euiAbsoluteTab.dateFormatError': ({ dateFormat }: EuiValues) => + i18n.translate('core.euiAbsoluteTab.dateFormatError', { + defaultMessage: 'Expected format: {dateFormat}', + values: { dateFormat }, + }), 'euiRelativeTab.fullDescription': ({ unit }: EuiValues) => i18n.translate('core.euiRelativeTab.fullDescription', { defaultMessage: 'The unit is changeable. Currently set to {unit}.', values: { unit }, }), - 'euiRelativeTab.relativeDate': ({ position }: EuiValues) => - i18n.translate('core.euiRelativeTab.relativeDate', { - defaultMessage: '{position} date', - values: { position }, - }), - 'euiRelativeTab.roundingLabel': ({ unit }: EuiValues) => - i18n.translate('core.euiRelativeTab.roundingLabel', { - defaultMessage: 'Round to the {unit}', - values: { unit }, - }), 'euiRelativeTab.unitInputLabel': i18n.translate('core.euiRelativeTab.unitInputLabel', { defaultMessage: 'Relative time span', }), @@ -966,7 +1268,7 @@ export const getEuiContextMapping = (): EuiTokensObject => { ), 'euiSelectable.searchResults': ({ resultsLength }: EuiValues) => i18n.translate('core.euiSelectable.searchResults', { - defaultMessage: '{resultsLength, plural, one {# result} other {# results}}', + defaultMessage: '{resultsLength, plural, one {# result} other {# results}} available', values: { resultsLength }, }), 'euiSelectable.placeholderName': i18n.translate('core.euiSelectable.placeholderName', { diff --git a/src/core/public/index.ts b/src/core/public/index.ts index 3b3bccd7ec18b..d62df68cf827d 100644 --- a/src/core/public/index.ts +++ b/src/core/public/index.ts @@ -91,6 +91,7 @@ export type { PublicAppInfo, PublicAppDeepLinkInfo, NavigateToAppOptions, + NavigateToUrlOptions, } from './application'; export { SimpleSavedObject } from './saved_objects'; diff --git a/src/core/public/mocks.ts b/src/core/public/mocks.ts index 6399b55c8a894..855e3e6c18345 100644 --- a/src/core/public/mocks.ts +++ b/src/core/public/mocks.ts @@ -26,10 +26,11 @@ import { savedObjectsServiceMock } from './saved_objects/saved_objects_service.m import { injectedMetadataServiceMock } from './injected_metadata/injected_metadata_service.mock'; import { deprecationsServiceMock } from './deprecations/deprecations_service.mock'; import { themeServiceMock } from './theme/theme_service.mock'; +import { executionContextServiceMock } from './execution_context/execution_context_service.mock'; export { chromeServiceMock } from './chrome/chrome_service.mock'; export { docLinksServiceMock } from './doc_links/doc_links_service.mock'; -import { executionContextServiceMock } from './execution_context/execution_context_service.mock'; +export { executionContextServiceMock } from './execution_context/execution_context_service.mock'; export { fatalErrorsServiceMock } from './fatal_errors/fatal_errors_service.mock'; export { httpServiceMock } from './http/http_service.mock'; export { i18nServiceMock } from './i18n/i18n_service.mock'; diff --git a/src/core/public/public.api.md b/src/core/public/public.api.md index 44224e6fcaea7..b60e26d282dc3 100644 --- a/src/core/public/public.api.md +++ b/src/core/public/public.api.md @@ -160,7 +160,7 @@ export interface ApplicationStart { deepLinkId?: string; }): string; navigateToApp(appId: string, options?: NavigateToAppOptions): Promise; - navigateToUrl(url: string): Promise; + navigateToUrl(url: string, options?: NavigateToUrlOptions): Promise; } // @public @@ -778,9 +778,16 @@ export interface NavigateToAppOptions { openInNewTab?: boolean; path?: string; replace?: boolean; + skipAppLeave?: boolean; state?: unknown; } +// @public +export interface NavigateToUrlOptions { + forceRedirect?: boolean; + skipAppLeave?: boolean; +} + // Warning: (ae-missing-release-tag) "NavType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) diff --git a/src/core/server/saved_objects/mappings/types.ts b/src/core/server/saved_objects/mappings/types.ts index e225d0ff31022..3fc088d0e82c4 100644 --- a/src/core/server/saved_objects/mappings/types.ts +++ b/src/core/server/saved_objects/mappings/types.ts @@ -107,6 +107,11 @@ export type SavedObjectsFieldMapping = estypes.MappingProperty & { * *never* use `dynamic: true`. */ dynamic?: false | 'strict'; + /** + * Some mapping types do not accept the `properties` attributes. Explicitly adding it as optional to our type + * to avoid type failures on all code using accessing them via `SavedObjectsFieldMapping.properties`. + */ + properties?: Record; }; /** @internal */ diff --git a/src/core/server/saved_objects/migrations/integration_tests/cluster_routing_allocation_disabled.test.ts b/src/core/server/saved_objects/migrations/integration_tests/cluster_routing_allocation_disabled.test.ts index 0f4522b156fe7..ea70478d6ce7b 100644 --- a/src/core/server/saved_objects/migrations/integration_tests/cluster_routing_allocation_disabled.test.ts +++ b/src/core/server/saved_objects/migrations/integration_tests/cluster_routing_allocation_disabled.test.ts @@ -113,8 +113,8 @@ describe('unsupported_cluster_routing_allocation', () => { await root.preboot(); await root.setup(); - await expect(root.start()).rejects.toMatchInlineSnapshot( - `[Error: Unable to complete saved object migrations for the [.kibana] index: The elasticsearch cluster has cluster routing allocation incorrectly set for migrations to continue. To proceed, please remove the cluster routing allocation settings with PUT /_cluster/settings {"transient": {"cluster.routing.allocation.enable": null}, "persistent": {"cluster.routing.allocation.enable": null}}]` + await expect(root.start()).rejects.toThrowError( + /Unable to complete saved object migrations for the \[\.kibana.*\] index: The elasticsearch cluster has cluster routing allocation incorrectly set for migrations to continue\. To proceed, please remove the cluster routing allocation settings with PUT \/_cluster\/settings {"transient": {"cluster\.routing\.allocation\.enable": null}, "persistent": {"cluster\.routing\.allocation\.enable": null}}/ ); await retryAsync( @@ -126,8 +126,8 @@ describe('unsupported_cluster_routing_allocation', () => { .map((str) => JSON5.parse(str)) as LogRecord[]; expect( records.find((rec) => - rec.message.startsWith( - `Unable to complete saved object migrations for the [.kibana] index: The elasticsearch cluster has cluster routing allocation incorrectly set for migrations to continue.` + /^Unable to complete saved object migrations for the \[\.kibana.*\] index: The elasticsearch cluster has cluster routing allocation incorrectly set for migrations to continue\./.test( + rec.message ) ) ).toBeDefined(); @@ -148,8 +148,8 @@ describe('unsupported_cluster_routing_allocation', () => { await root.preboot(); await root.setup(); - await expect(root.start()).rejects.toMatchInlineSnapshot( - `[Error: Unable to complete saved object migrations for the [.kibana] index: The elasticsearch cluster has cluster routing allocation incorrectly set for migrations to continue. To proceed, please remove the cluster routing allocation settings with PUT /_cluster/settings {"transient": {"cluster.routing.allocation.enable": null}, "persistent": {"cluster.routing.allocation.enable": null}}]` + await expect(root.start()).rejects.toThrowError( + /Unable to complete saved object migrations for the \[\.kibana.*\] index: The elasticsearch cluster has cluster routing allocation incorrectly set for migrations to continue\. To proceed, please remove the cluster routing allocation settings with PUT \/_cluster\/settings {"transient": {"cluster\.routing\.allocation\.enable": null}, "persistent": {"cluster\.routing\.allocation\.enable": null}}/ ); }); }); diff --git a/src/core/server/saved_objects/migrations/integration_tests/type_registrations.test.ts b/src/core/server/saved_objects/migrations/integration_tests/type_registrations.test.ts index 7f8d10b50edf5..96ce7a1fdc097 100644 --- a/src/core/server/saved_objects/migrations/integration_tests/type_registrations.test.ts +++ b/src/core/server/saved_objects/migrations/integration_tests/type_registrations.test.ts @@ -56,6 +56,7 @@ const previouslyRegisteredTypes = [ 'fleet-preconfiguration-deletion-record', 'graph-workspace', 'index-pattern', + 'infrastructure-monitoring-log-view', 'infrastructure-ui-source', 'ingest-agent-policies', 'ingest-outputs', diff --git a/src/core/server/server.api.md b/src/core/server/server.api.md index c89a5fc89d2fa..7337a3809172e 100644 --- a/src/core/server/server.api.md +++ b/src/core/server/server.api.md @@ -2366,6 +2366,7 @@ export interface SavedObjectsExportTransformContext { // @public export type SavedObjectsFieldMapping = estypes.MappingProperty & { dynamic?: false | 'strict'; + properties?: Record; }; // @public (undocumented) diff --git a/src/core/server/status/plugins_status.test.ts b/src/core/server/status/plugins_status.test.ts index c07624826ff83..8130698379eda 100644 --- a/src/core/server/status/plugins_status.test.ts +++ b/src/core/server/status/plugins_status.test.ts @@ -285,6 +285,32 @@ describe('PluginStatusService', () => { ]); }); + it('updates when a plugin status observable emits with the same level but a different summary', async () => { + const service = new PluginsStatusService({ + core$: coreAllAvailable$, + pluginDependencies: new Map([['a', []]]), + }); + const statusUpdates: Array> = []; + const subscription = service + .getAll$() + // the first emission happens right after core services emit (see explanation above) + .pipe(skip(1)) + .subscribe((pluginStatuses) => statusUpdates.push(pluginStatuses)); + + const aStatus$ = new BehaviorSubject({ + level: ServiceStatusLevels.available, + summary: 'summary initial', + }); + service.set('a', aStatus$); + aStatus$.next({ level: ServiceStatusLevels.available, summary: 'summary updated' }); + subscription.unsubscribe(); + + expect(statusUpdates).toEqual([ + { a: { level: ServiceStatusLevels.available, summary: 'summary initial' } }, + { a: { level: ServiceStatusLevels.available, summary: 'summary updated' } }, + ]); + }); + it('emits an unavailable status if first emission times out, then continues future emissions', async () => { const service = new PluginsStatusService( { diff --git a/src/core/server/status/plugins_status.ts b/src/core/server/status/plugins_status.ts index 8d042d4cba3f9..d77529f06ddec 100644 --- a/src/core/server/status/plugins_status.ts +++ b/src/core/server/status/plugins_status.ts @@ -71,7 +71,12 @@ export class PluginsStatusService { this.coreSubscription = deps.core$ .pipe(debounceTime(10)) - .subscribe((coreStatus: CoreStatus) => this.updateCoreAndPluginStatuses(coreStatus)); + .subscribe((coreStatus: CoreStatus) => { + this.coreStatus = coreStatus; + this.updateRootPluginsStatuses(); + this.updateDependantStatuses(this.rootPlugins); + this.emitCurrentStatus(); + }); } /** @@ -96,8 +101,19 @@ export class PluginsStatusService { this.reportedStatusSubscriptions[plugin] = status$ // Set a timeout for externally-defined status Observables - .pipe(timeoutWith(this.statusTimeoutMs, status$.pipe(startWith(defaultStatus)))) - .subscribe((status) => this.updatePluginReportedStatus(plugin, status)); + .pipe( + timeoutWith(this.statusTimeoutMs, status$.pipe(startWith(defaultStatus))), + distinctUntilChanged() + ) + .subscribe((status) => { + const levelChanged = this.updatePluginReportedStatus(plugin, status); + + if (levelChanged) { + this.updateDependantStatuses([plugin]); + } + + this.emitCurrentStatus(); + }); } /** @@ -233,16 +249,14 @@ export class PluginsStatusService { } /** - * Updates the core services statuses and plugins' statuses - * according to the latest status reported by core services. - * @param {CoreStatus} coreStatus the latest status of core services + * Updates the root plugins statuses according to the current core services status */ - private updateCoreAndPluginStatuses(coreStatus: CoreStatus): void { - this.coreStatus = coreStatus!; + private updateRootPluginsStatuses(): void { const derivedStatus = getSummaryStatus(Object.entries(this.coreStatus), { allAvailableSummary: `All dependencies are available`, }); + // note that the derived status is the same for all root plugins this.rootPlugins.forEach((plugin) => { this.pluginData[plugin].derivedStatus = derivedStatus; if (!this.isReportingStatus[plugin]) { @@ -250,18 +264,18 @@ export class PluginsStatusService { this.pluginStatus[plugin] = derivedStatus; } }); - - this.updatePluginsStatuses(this.rootPlugins); } /** - * Determine the derived statuses of the specified plugins and their dependencies, - * updating them on the pluginData structure - * Optionally, if the plugins have not registered a custom status Observable, update their "current" status as well. - * @param {PluginName[]} plugins The names of the plugins to be updated + * Update the derived statuses of the specified plugins' dependant plugins, + * If impacted plugins have not registered a custom status Observable, update their "current" status as well. + * @param {PluginName[]} plugins The names of the plugins whose dependant plugins must be updated */ - private updatePluginsStatuses(plugins: PluginName[]): void { - const toCheck = new Set(plugins); + private updateDependantStatuses(plugins: PluginName[]): void { + const toCheck = new Set(); + plugins.forEach((plugin) => + this.pluginData[plugin].reverseDependencies.forEach((revDep) => toCheck.add(revDep)) + ); // Note that we are updating the plugins in an ordered fashion. // This way, when updating plugin X (at depth = N), @@ -276,9 +290,6 @@ export class PluginsStatusService { this.pluginData[current].reverseDependencies.forEach((revDep) => toCheck.add(revDep)); } } - - this.pluginData$.next(this.pluginData); - this.pluginStatus$.next({ ...this.pluginStatus }); } /** @@ -328,15 +339,23 @@ export class PluginsStatusService { * Updates the reported status for the given plugin, along with the status of its dependencies tree. * @param {PluginName} plugin The name of the plugin whose reported status must be updated * @param {ServiceStatus} reportedStatus The newly reported status for that plugin + * @return {boolean} true if the level of the reported status changed */ - private updatePluginReportedStatus(plugin: PluginName, reportedStatus: ServiceStatus): void { - const previousReportedLevel = this.pluginData[plugin].reportedStatus?.level; + private updatePluginReportedStatus(plugin: PluginName, reportedStatus: ServiceStatus): boolean { + const previousReportedStatus = this.pluginData[plugin].reportedStatus; this.pluginData[plugin].reportedStatus = reportedStatus; this.pluginStatus[plugin] = reportedStatus; - if (reportedStatus.level !== previousReportedLevel) { - this.updatePluginsStatuses([plugin]); - } + return previousReportedStatus?.level !== reportedStatus.level; + } + + /** + * Emit the current status to internal Subjects, effectively propagating it to observers. + */ + private emitCurrentStatus(): void { + this.pluginData$.next(this.pluginData); + // we must clone the plugin status to prevent future modifications from updating current emission + this.pluginStatus$.next({ ...this.pluginStatus }); } } 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 6fb0c0060ecc7..e49d57c6f794f 100644 --- a/src/dev/build/tasks/package_json/find_used_dependencies.ts +++ b/src/dev/build/tasks/package_json/find_used_dependencies.ts @@ -58,7 +58,7 @@ export async function findUsedDependencies(listedPkgDependencies: any, baseDir: const listedDependencies = Object.keys(listedPkgDependencies); const filteredListedDependencies = listedDependencies.filter((entry) => { - return whiteListedModules.some((nonEntry) => entry.includes(nonEntry)); + return whiteListedModules.some((nonEntry) => entry === nonEntry); }); return filteredListedDependencies.reduce((foundUsedDeps: any, usedDep) => { diff --git a/src/dev/license_checker/config.ts b/src/dev/license_checker/config.ts index 354121fc88936..cb1c61b0a47e0 100644 --- a/src/dev/license_checker/config.ts +++ b/src/dev/license_checker/config.ts @@ -77,6 +77,6 @@ export const LICENSE_OVERRIDES = { 'jsts@1.6.2': ['Eclipse Distribution License - v 1.0'], // cf. https://github.com/bjornharrtell/jsts '@mapbox/jsonlint-lines-primitives@2.0.2': ['MIT'], // license in readme https://github.com/tmcw/jsonlint '@elastic/ems-client@8.2.0': ['Elastic License 2.0'], - '@elastic/eui@52.2.0': ['SSPL-1.0 OR Elastic License 2.0'], + '@elastic/eui@53.0.1': ['SSPL-1.0 OR Elastic License 2.0'], 'language-subtag-registry@0.3.21': ['CC-BY-4.0'], // retired ODC‑By license https://github.com/mattcg/language-subtag-registry }; diff --git a/src/plugins/chart_expressions/expression_gauge/common/expression_functions/__snapshots__/gauge_function.test.ts.snap b/src/plugins/chart_expressions/expression_gauge/common/expression_functions/__snapshots__/gauge_function.test.ts.snap index 5bb924a71a2a1..bb2fe700f6f19 100644 --- a/src/plugins/chart_expressions/expression_gauge/common/expression_functions/__snapshots__/gauge_function.test.ts.snap +++ b/src/plugins/chart_expressions/expression_gauge/common/expression_functions/__snapshots__/gauge_function.test.ts.snap @@ -49,6 +49,7 @@ Object { "min": "col-1-2", "palette": undefined, "percentageMode": false, + "respectRanges": false, "shape": "arc", "ticksPosition": "auto", }, @@ -100,6 +101,7 @@ Object { "min": "col-1-2", "palette": undefined, "percentageMode": false, + "respectRanges": false, "shape": "arc", "ticksPosition": "auto", }, @@ -149,6 +151,7 @@ Object { "min": "col-1-2", "palette": undefined, "percentageMode": false, + "respectRanges": false, "shape": "horizontalBullet", "ticksPosition": "auto", }, @@ -198,6 +201,7 @@ Object { "min": "col-1-2", "palette": undefined, "percentageMode": false, + "respectRanges": false, "shape": "horizontalBullet", "ticksPosition": "auto", }, @@ -247,6 +251,7 @@ Object { "min": "col-1-2", "palette": undefined, "percentageMode": false, + "respectRanges": false, "shape": "horizontalBullet", "ticksPosition": "bands", }, @@ -298,6 +303,7 @@ Object { "min": "col-1-2", "palette": undefined, "percentageMode": false, + "respectRanges": false, "shape": "circle", "ticksPosition": "auto", }, @@ -349,6 +355,7 @@ Object { "min": "col-1-2", "palette": undefined, "percentageMode": false, + "respectRanges": false, "shape": "circle", "ticksPosition": "auto", }, @@ -398,6 +405,7 @@ Object { "min": "col-1-2", "palette": undefined, "percentageMode": false, + "respectRanges": false, "shape": "horizontalBullet", "ticksPosition": "auto", }, @@ -447,6 +455,7 @@ Object { "min": "col-1-2", "palette": undefined, "percentageMode": false, + "respectRanges": false, "shape": "horizontalBullet", "ticksPosition": "hidden", }, @@ -496,6 +505,7 @@ Object { "min": "col-1-2", "palette": undefined, "percentageMode": false, + "respectRanges": false, "shape": "horizontalBullet", "ticksPosition": "auto", }, @@ -545,6 +555,7 @@ Object { "min": "col-1-2", "palette": undefined, "percentageMode": false, + "respectRanges": false, "shape": "horizontalBullet", "ticksPosition": "auto", }, @@ -594,6 +605,7 @@ Object { "min": "col-1-2", "palette": undefined, "percentageMode": false, + "respectRanges": false, "shape": "horizontalBullet", "ticksPosition": "auto", }, @@ -643,6 +655,7 @@ Object { "min": "col-1-2", "palette": undefined, "percentageMode": false, + "respectRanges": false, "shape": "horizontalBullet", "ticksPosition": "auto", }, @@ -692,6 +705,7 @@ Object { "min": "col-1-2", "palette": undefined, "percentageMode": false, + "respectRanges": false, "shape": "verticalBullet", "ticksPosition": "auto", }, diff --git a/src/plugins/chart_expressions/expression_gauge/common/expression_functions/gauge_function.ts b/src/plugins/chart_expressions/expression_gauge/common/expression_functions/gauge_function.ts index ba40821948526..c2ce20163e86a 100644 --- a/src/plugins/chart_expressions/expression_gauge/common/expression_functions/gauge_function.ts +++ b/src/plugins/chart_expressions/expression_gauge/common/expression_functions/gauge_function.ts @@ -160,6 +160,13 @@ export const gaugeFunction = (): GaugeExpressionFunctionDefinition => ({ defaultMessage: 'Enables relative precentage mode', }), }, + respectRanges: { + types: ['boolean'], + default: false, + help: i18n.translate('expressionGauge.functions.gauge.respectRanges.help', { + defaultMessage: 'Respect max and min values from ranges', + }), + }, commonLabel: { types: ['string'], help: i18n.translate('expressionGauge.functions.gauge.args.commonLabel.help', { @@ -173,7 +180,6 @@ export const gaugeFunction = (): GaugeExpressionFunctionDefinition => ({ }), }, }, - fn(data, args, handlers) { validateAccessor(args.metric, data.columns); validateAccessor(args.min, data.columns); diff --git a/src/plugins/chart_expressions/expression_gauge/common/types/expression_functions.ts b/src/plugins/chart_expressions/expression_gauge/common/types/expression_functions.ts index b6add118a6747..b2696acda6c7d 100644 --- a/src/plugins/chart_expressions/expression_gauge/common/types/expression_functions.ts +++ b/src/plugins/chart_expressions/expression_gauge/common/types/expression_functions.ts @@ -47,6 +47,7 @@ export interface GaugeState { shape: GaugeShape; /** @deprecated This field is deprecated and going to be removed in the futher release versions. */ percentageMode?: boolean; + respectRanges?: boolean; commonLabel?: string; } diff --git a/src/plugins/chart_expressions/expression_gauge/public/components/gauge_component.tsx b/src/plugins/chart_expressions/expression_gauge/public/components/gauge_component.tsx index 8258063dfdd69..efaea7dd24954 100644 --- a/src/plugins/chart_expressions/expression_gauge/public/components/gauge_component.tsx +++ b/src/plugins/chart_expressions/expression_gauge/public/components/gauge_component.tsx @@ -303,8 +303,8 @@ export const GaugeComponent: FC = memo( } const goal = accessors.goal ? getValueFromAccessor(accessors.goal, row) : undefined; - const min = getMinValue(row, accessors); - const max = getMaxValue(row, accessors); + const min = getMinValue(row, accessors, palette?.params, args.respectRanges); + const max = getMaxValue(row, accessors, palette?.params, args.respectRanges); if (min === max) { return ( diff --git a/src/plugins/chart_expressions/expression_gauge/public/components/utils/accessors.test.ts b/src/plugins/chart_expressions/expression_gauge/public/components/utils/accessors.test.ts index 966916e8bacaf..10100ca84065b 100644 --- a/src/plugins/chart_expressions/expression_gauge/public/components/utils/accessors.test.ts +++ b/src/plugins/chart_expressions/expression_gauge/public/components/utils/accessors.test.ts @@ -46,6 +46,10 @@ describe('expression gauge utils', () => { expect(getMaxValue({ min: 0 }, localAccessors)).toEqual(100); expect(getMaxValue({}, localAccessors)).toEqual(100); }); + it('returns correct value if isRespectRanges is true and color palette was provided', () => { + expect(getMaxValue({ metric: 10 }, accessors, { rangeMax: 5 }, true)).toEqual(10); + expect(getMaxValue({ metric: 2 }, accessors, { rangeMax: 5 }, true)).toEqual(5); + }); it('returns correct value for multiple cases', () => { const localAccessors = { ...accessors, max: 'max' }; expect(getMaxValue({ metric: 10 }, localAccessors)).toEqual(15); @@ -76,6 +80,13 @@ describe('expression gauge utils', () => { expect(getMinValue({ metric: -1000 }, localAccessors)).toEqual(-1010); expect(getMinValue({ max: 1000, metric: 1.5 }, localAccessors)).toEqual(0); }); + it('returns correct value if isRespectRanges is true and color palette was provided', () => { + const accessors = { + metric: 'metric', + }; + expect(getMinValue({ metric: 10 }, accessors, { rangeMin: 5 }, true)).toEqual(5); + expect(getMinValue({ metric: 2 }, accessors, { rangeMin: 5 }, true)).toEqual(2); + }); }); describe('getGoalValue', () => { it('returns correct value', () => { diff --git a/src/plugins/chart_expressions/expression_gauge/public/components/utils/accessors.ts b/src/plugins/chart_expressions/expression_gauge/public/components/utils/accessors.ts index 8848c7646a5f0..31a2ff61ceaa7 100644 --- a/src/plugins/chart_expressions/expression_gauge/public/components/utils/accessors.ts +++ b/src/plugins/chart_expressions/expression_gauge/public/components/utils/accessors.ts @@ -8,7 +8,7 @@ import type { DatatableColumn, DatatableRow } from 'src/plugins/expressions'; import { getAccessorByDimension } from '../../../../../visualizations/common/utils'; -import { Accessors, GaugeArguments } from '../../../common'; +import { Accessors, GaugeArguments, CustomPaletteParams } from '../../../common'; export const getValueFromAccessor = ( accessor: string, @@ -54,17 +54,30 @@ function getNiceNumber(localRange: number) { return niceFraction * Math.pow(10, exponent); } -export const getMaxValue = (row?: DatatableRow, accessors?: Accessors): number => { +export const getMaxValue = ( + row?: DatatableRow, + accessors?: Accessors, + paletteParams?: CustomPaletteParams, + isRespectRanges?: boolean +): number => { const FALLBACK_VALUE = 100; const currentValue = accessors?.max ? getValueFromAccessor(accessors.max, row) : undefined; if (currentValue !== undefined && currentValue !== null) { return currentValue; } + + if (isRespectRanges && paletteParams?.rangeMax) { + const metricValue = accessors?.metric ? getValueFromAccessor(accessors.metric, row) : undefined; + return !metricValue || metricValue < paletteParams?.rangeMax + ? paletteParams?.rangeMax + : metricValue; + } + if (row && accessors) { const { metric, goal } = accessors; const metricValue = metric && row[metric]; const goalValue = goal && row[goal]; - const minValue = getMinValue(row, accessors); + const minValue = getMinValue(row, accessors, paletteParams, isRespectRanges); if (metricValue != null) { const numberValues = [minValue, goalValue, metricValue].filter((v) => typeof v === 'number'); const maxValue = Math.max(...numberValues); @@ -74,11 +87,24 @@ export const getMaxValue = (row?: DatatableRow, accessors?: Accessors): number = return FALLBACK_VALUE; }; -export const getMinValue = (row?: DatatableRow, accessors?: Accessors) => { +export const getMinValue = ( + row?: DatatableRow, + accessors?: Accessors, + paletteParams?: CustomPaletteParams, + isRespectRanges?: boolean +) => { const currentValue = accessors?.min ? getValueFromAccessor(accessors.min, row) : undefined; if (currentValue !== undefined && currentValue !== null) { return currentValue; } + + if (isRespectRanges && paletteParams?.rangeMin) { + const metricValue = accessors?.metric ? getValueFromAccessor(accessors.metric, row) : undefined; + return !metricValue || metricValue > paletteParams?.rangeMin + ? paletteParams?.rangeMin + : metricValue; + } + const FALLBACK_VALUE = 0; if (row && accessors) { const { metric, max } = accessors; diff --git a/src/plugins/console/server/lib/proxy_request.test.ts b/src/plugins/console/server/lib/proxy_request.test.ts index 3740d7e16a3c9..2bb5e481fbb26 100644 --- a/src/plugins/console/server/lib/proxy_request.test.ts +++ b/src/plugins/console/server/lib/proxy_request.test.ts @@ -9,7 +9,7 @@ import http, { ClientRequest } from 'http'; import * as sinon from 'sinon'; import { proxyRequest } from './proxy_request'; -import { URL, URLSearchParams } from 'url'; +import { URL } from 'url'; import { fail } from 'assert'; describe(`Console's send request`, () => { @@ -102,38 +102,52 @@ describe(`Console's send request`, () => { }); }); - it('should decode percent-encoded uri and encode it correctly', async () => { - fakeRequest = { - abort: sinon.stub(), - on() {}, - once(event: string, fn: (v: string) => void) { - if (event === 'response') { - return fn('done'); - } - }, - } as any; + describe('with percent-encoded uri pathname', () => { + beforeEach(() => { + fakeRequest = { + abort: sinon.stub(), + on() {}, + once(event: string, fn: (v: string) => void) { + if (event === 'response') { + return fn('done'); + } + }, + } as any; + }); - const uri = new URL( - `http://noone.nowhere.none/%{[@metadata][beat]}-%{[@metadata][version]}-2020.08.23` - ); + it('should decode percent-encoded uri pathname and encode it correctly', async () => { + const uri = new URL( + `http://noone.nowhere.none/%{[@metadata][beat]}-%{[@metadata][version]}-2020.08.23` + ); + const result = await proxyRequest({ + agent: null as any, + headers: {}, + method: 'get', + payload: null as any, + timeout: 30000, + uri, + }); - const result = await proxyRequest({ - agent: null as any, - headers: {}, - method: 'get', - payload: null as any, - timeout: 30000, - uri, + expect(result).toEqual('done'); + const [httpRequestOptions] = stub.firstCall.args; + expect((httpRequestOptions as any).path).toEqual( + '/%25%7B%5B%40metadata%5D%5Bbeat%5D%7D-%25%7B%5B%40metadata%5D%5Bversion%5D%7D-2020.08.23' + ); }); - expect(result).toEqual('done'); + it('should issue request with date-math format', async () => { + const result = await proxyRequest({ + agent: null as any, + headers: {}, + method: 'get', + payload: null as any, + timeout: 30000, + uri: new URL(`http://noone.nowhere.none/%3Cmy-index-%7Bnow%2Fd%7D%3E`), + }); - const decoded = new URLSearchParams(`path=${uri.pathname}`).get('path'); - const encoded = decoded - ?.split('/') - .map((str) => encodeURIComponent(str)) - .join('/'); - const [httpRequestOptions] = stub.firstCall.args; - expect((httpRequestOptions as any).path).toEqual(encoded); + expect(result).toEqual('done'); + const [httpRequestOptions] = stub.firstCall.args; + expect((httpRequestOptions as any).path).toEqual('/%3Cmy-index-%7Bnow%2Fd%7D%3E'); + }); }); }); diff --git a/src/plugins/console/server/lib/proxy_request.ts b/src/plugins/console/server/lib/proxy_request.ts index a1b34e08b916e..c4fbfd315da4e 100644 --- a/src/plugins/console/server/lib/proxy_request.ts +++ b/src/plugins/console/server/lib/proxy_request.ts @@ -12,6 +12,7 @@ import net from 'net'; import stream from 'stream'; import Boom from '@hapi/boom'; import { URL, URLSearchParams } from 'url'; +import { trimStart } from 'lodash'; interface Args { method: 'get' | 'post' | 'put' | 'delete' | 'patch' | 'head'; @@ -38,10 +39,12 @@ const sanitizeHostname = (hostName: string): string => const encodePathname = (pathname: string) => { const decodedPath = new URLSearchParams(`path=${pathname}`).get('path') ?? ''; - return decodedPath - .split('/') - .map((str) => encodeURIComponent(str)) - .join('/'); + // Skip if it is valid + if (pathname === decodedPath) { + return pathname; + } + + return `/${encodeURIComponent(trimStart(decodedPath, '/'))}`; }; // We use a modified version of Hapi's Wreck because Hapi, Axios, and Superagent don't support GET requests diff --git a/src/plugins/controls/public/control_group/editor/create_control.tsx b/src/plugins/controls/public/control_group/editor/create_control.tsx index 9f02ff3e970d0..7ae0416feac2e 100644 --- a/src/plugins/controls/public/control_group/editor/create_control.tsx +++ b/src/plugins/controls/public/control_group/editor/create_control.tsx @@ -16,6 +16,7 @@ import { ControlGroupStrings } from '../control_group_strings'; import { ControlWidth, ControlInput, IEditableControlFactory } from '../../types'; import { toMountPoint } from '../../../../kibana_react/public'; import { DEFAULT_CONTROL_WIDTH } from '../../../common/control_group/control_group_constants'; +import { setFlyoutRef } from '../embeddable/control_group_container'; export type CreateControlButtonTypes = 'toolbar' | 'callout'; export interface CreateControlButtonProps { @@ -99,9 +100,13 @@ export const CreateControlButton = ({ ), { outsideClickCloses: false, - onClose: (flyout) => onCancel(flyout), + onClose: (flyout) => { + onCancel(flyout); + setFlyoutRef(undefined); + }, } ); + setFlyoutRef(flyoutInstance); }); initialInputPromise.then( diff --git a/src/plugins/controls/public/control_group/editor/edit_control.tsx b/src/plugins/controls/public/control_group/editor/edit_control.tsx index 5b7177a64c633..7c114350f3679 100644 --- a/src/plugins/controls/public/control_group/editor/edit_control.tsx +++ b/src/plugins/controls/public/control_group/editor/edit_control.tsx @@ -20,7 +20,7 @@ import { IEditableControlFactory, ControlInput } from '../../types'; import { controlGroupReducers } from '../state/control_group_reducers'; import { EmbeddableFactoryNotFoundError } from '../../../../embeddable/public'; import { useReduxContainerContext } from '../../../../presentation_util/public'; -import { ControlGroupContainer } from '../embeddable/control_group_container'; +import { ControlGroupContainer, setFlyoutRef } from '../embeddable/control_group_container'; export const EditControlButton = ({ embeddableId }: { embeddableId: string }) => { // Controls Services Context @@ -127,9 +127,13 @@ export const EditControlButton = ({ embeddableId }: { embeddableId: string }) => ), { outsideClickCloses: false, - onClose: (flyout) => onCancel(flyout), + onClose: (flyout) => { + setFlyoutRef(undefined); + onCancel(flyout); + }, } ); + setFlyoutRef(flyoutInstance); }; return ( diff --git a/src/plugins/controls/public/control_group/editor/edit_control_group.tsx b/src/plugins/controls/public/control_group/editor/edit_control_group.tsx index dcf955666657f..8d9f81637ef65 100644 --- a/src/plugins/controls/public/control_group/editor/edit_control_group.tsx +++ b/src/plugins/controls/public/control_group/editor/edit_control_group.tsx @@ -15,6 +15,7 @@ import { ControlGroupEditor } from './control_group_editor'; import { OverlayRef } from '../../../../../core/public'; import { pluginServices } from '../../services'; import { ControlGroupContainer } from '..'; +import { setFlyoutRef } from '../embeddable/control_group_container'; export interface EditControlGroupButtonProps { controlGroupContainer: ControlGroupContainer; @@ -60,9 +61,13 @@ export const EditControlGroup = ({ ), { outsideClickCloses: false, - onClose: () => flyoutInstance.close(), + onClose: () => { + flyoutInstance.close(); + setFlyoutRef(undefined); + }, } ); + setFlyoutRef(flyoutInstance); }; const commonButtonProps = { diff --git a/src/plugins/controls/public/control_group/embeddable/control_group_chaining_system.ts b/src/plugins/controls/public/control_group/embeddable/control_group_chaining_system.ts index f0acf9ca811e8..6f0f3e1a23218 100644 --- a/src/plugins/controls/public/control_group/embeddable/control_group_chaining_system.ts +++ b/src/plugins/controls/public/control_group/embeddable/control_group_chaining_system.ts @@ -67,7 +67,7 @@ export const ControlGroupChainingSystems: { const nextOrder = childOrder.IdsToOrder[childOutputChangedId] + 1; if (nextOrder >= childOrder.idsInOrder.length) return; setTimeout( - () => getChild(childOrder.idsInOrder[nextOrder]).refreshInputFromParent(), + () => getChild(childOrder.idsInOrder[nextOrder])?.refreshInputFromParent(), 1 // run on next tick ); }, diff --git a/src/plugins/controls/public/control_group/embeddable/control_group_container.tsx b/src/plugins/controls/public/control_group/embeddable/control_group_container.tsx index 064dfb8a0d7a1..5ee41946a14aa 100644 --- a/src/plugins/controls/public/control_group/embeddable/control_group_container.tsx +++ b/src/plugins/controls/public/control_group/embeddable/control_group_container.tsx @@ -46,11 +46,17 @@ import { Container, EmbeddableFactory } from '../../../../embeddable/public'; import { ControlEmbeddable, ControlInput, ControlOutput } from '../../types'; import { ControlGroupChainingSystems } from './control_group_chaining_system'; import { CreateControlButton, CreateControlButtonTypes } from '../editor/create_control'; +import { OverlayRef } from '../../../../../core/public'; const ControlGroupReduxWrapper = withSuspense< ReduxEmbeddableWrapperPropsWithChildren >(LazyReduxEmbeddableWrapper); +let flyoutRef: OverlayRef | undefined; +export const setFlyoutRef = (newRef: OverlayRef | undefined) => { + flyoutRef = newRef; +}; + export interface ChildEmbeddableOrderCache { IdsToOrder: { [key: string]: number }; idsInOrder: string[]; @@ -96,6 +102,11 @@ export class ControlGroupContainer extends Container< return this.lastUsedDataViewId ?? this.relevantDataViewId; }; + public closeAllFlyouts() { + flyoutRef?.close(); + flyoutRef = undefined; + } + /** * Returns a button that allows controls to be created externally using the embeddable * @param buttonType Controls the button styling @@ -296,6 +307,19 @@ export class ControlGroupContainer extends Container< } as ControlPanelState; } + protected onRemoveEmbeddable(idToRemove: string) { + const newPanels = super.onRemoveEmbeddable(idToRemove) as ControlsPanels; + const removedOrder = this.childOrderCache.IdsToOrder[idToRemove]; + for (let i = removedOrder + 1; i < this.childOrderCache.idsInOrder.length; i++) { + const currentOrder = newPanels[this.childOrderCache.idsInOrder[i]].order; + newPanels[this.childOrderCache.idsInOrder[i]] = { + ...newPanels[this.childOrderCache.idsInOrder[i]], + order: currentOrder - 1, + }; + } + return newPanels; + } + protected getInheritedInput(id: string): ControlInput { const { filters, query, ignoreParentSettings, timeRange, chainingSystem } = this.getInput(); @@ -354,6 +378,7 @@ export class ControlGroupContainer extends Container< public destroy() { super.destroy(); + this.closeAllFlyouts(); this.subscriptions.unsubscribe(); if (this.domNode) ReactDOM.unmountComponentAtNode(this.domNode); } diff --git a/src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx b/src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx index 9548c45cadd4e..59a56d1fdb2a2 100644 --- a/src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx +++ b/src/plugins/controls/public/control_types/options_list/options_list_embeddable_factory.tsx @@ -37,8 +37,8 @@ export class OptionsListEmbeddableFactory ) => { if ( embeddable && - (!deepEqual(newInput.fieldName, embeddable.getInput().fieldName) || - !deepEqual(newInput.dataViewId, embeddable.getInput().dataViewId)) + ((newInput.fieldName && !deepEqual(newInput.fieldName, embeddable.getInput().fieldName)) || + (newInput.dataViewId && !deepEqual(newInput.dataViewId, embeddable.getInput().dataViewId))) ) { // if the field name or data view id has changed in this editing session, selected options are invalid, so reset them. newInput.selectedOptions = []; diff --git a/src/plugins/controls/public/control_types/range_slider/range_slider_editor.tsx b/src/plugins/controls/public/control_types/range_slider/range_slider_editor.tsx index d2dbef62f2b0f..bb8d58a1e51d2 100644 --- a/src/plugins/controls/public/control_types/range_slider/range_slider_editor.tsx +++ b/src/plugins/controls/public/control_types/range_slider/range_slider_editor.tsx @@ -35,6 +35,8 @@ export const RangeSliderEditor = ({ initialInput, setValidState, setDefaultTitle, + getRelevantDataViewId, + setLastUsedDataViewId, }: ControlEditorProps) => { // Controls Services Context const { dataViews } = pluginServices.getHooks(); @@ -50,7 +52,8 @@ export const RangeSliderEditor = ({ if (state.fieldName) setDefaultTitle(state.fieldName); (async () => { const dataViewListItems = await getIdsWithTitle(); - const initialId = initialInput?.dataViewId ?? (await getDefaultId()); + const initialId = + initialInput?.dataViewId ?? getRelevantDataViewId?.() ?? (await getDefaultId()); let dataView: DataView | undefined; if (initialId) { onChange({ dataViewId: initialId }); @@ -77,6 +80,7 @@ export const RangeSliderEditor = ({ dataViews={state.dataViewListItems} selectedDataViewId={dataView?.id} onChangeDataViewId={(dataViewId) => { + setLastUsedDataViewId?.(dataViewId); onChange({ dataViewId }); get(dataViewId).then((newDataView) => setState((s) => ({ ...s, dataView: newDataView })) diff --git a/src/plugins/controls/public/control_types/time_slider/time_slider.component.tsx b/src/plugins/controls/public/control_types/time_slider/time_slider.component.tsx index 9ce7cf825e863..5aab250136ac1 100644 --- a/src/plugins/controls/public/control_types/time_slider/time_slider.component.tsx +++ b/src/plugins/controls/public/control_types/time_slider/time_slider.component.tsx @@ -188,7 +188,7 @@ export const TimeSlider: FC = (props) => { panelPaddingSize="s" anchorPosition="downCenter" disableFocusTrap - repositionOnScroll + attachToAnchor={false} > {isValidRange(range) ? ( ) => { // Controls Services Context const { dataViews } = pluginServices.getHooks(); @@ -49,7 +51,8 @@ export const TimeSliderEditor = ({ if (state.fieldName) setDefaultTitle(state.fieldName); (async () => { const dataViewListItems = await getIdsWithTitle(); - const initialId = initialInput?.dataViewId ?? (await getDefaultId()); + const initialId = + initialInput?.dataViewId ?? getRelevantDataViewId?.() ?? (await getDefaultId()); let dataView: DataView | undefined; if (initialId) { onChange({ dataViewId: initialId }); @@ -76,6 +79,7 @@ export const TimeSliderEditor = ({ dataViews={state.dataViewListItems} selectedDataViewId={dataView?.id} onChangeDataViewId={(dataViewId) => { + setLastUsedDataViewId?.(dataViewId); onChange({ dataViewId }); get(dataViewId).then((newDataView) => setState((s) => ({ ...s, dataView: newDataView })) diff --git a/src/plugins/custom_integrations/kibana.json b/src/plugins/custom_integrations/kibana.json index cd58c1aec1ecb..7c11f47f4d82a 100755 --- a/src/plugins/custom_integrations/kibana.json +++ b/src/plugins/custom_integrations/kibana.json @@ -9,11 +9,8 @@ "description": "Add custom data integrations so they can be displayed in the Fleet integrations app", "ui": true, "server": true, - "extraPublicDirs": [ - "common" - ], - "requiredPlugins": [ - "presentationUtil" - ], + "extraPublicDirs": ["common"], + "requiredPlugins": [], + "requiredBundles": ["presentationUtil"], "optionalPlugins": [] } diff --git a/src/plugins/custom_integrations/public/types.ts b/src/plugins/custom_integrations/public/types.ts index 946115329e2b5..d4123cd2f1e13 100755 --- a/src/plugins/custom_integrations/public/types.ts +++ b/src/plugins/custom_integrations/public/types.ts @@ -6,8 +6,6 @@ * Side Public License, v 1. */ -import type { PresentationUtilPluginStart } from '../../presentation_util/public'; - import { CustomIntegration } from '../common'; export interface CustomIntegrationsSetup { @@ -19,6 +17,5 @@ export interface CustomIntegrationsStart { ContextProvider: React.FC; } -export interface CustomIntegrationsStartDependencies { - presentationUtil: PresentationUtilPluginStart; -} +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface CustomIntegrationsStartDependencies {} diff --git a/src/plugins/dashboard/public/application/lib/dashboard_control_group.ts b/src/plugins/dashboard/public/application/lib/dashboard_control_group.ts index ba60af8d02aea..ef8e2785b8a45 100644 --- a/src/plugins/dashboard/public/application/lib/dashboard_control_group.ts +++ b/src/plugins/dashboard/public/application/lib/dashboard_control_group.ts @@ -9,7 +9,7 @@ import { Subscription } from 'rxjs'; import deepEqual from 'fast-deep-equal'; import { compareFilters, COMPARE_ALL_OPTIONS, type Filter } from '@kbn/es-query'; -import { distinctUntilChanged, distinctUntilKeyChanged } from 'rxjs/operators'; +import { debounceTime, distinctUntilChanged, distinctUntilKeyChanged } from 'rxjs/operators'; import { pick } from 'lodash'; import { DashboardContainer, DashboardContainerControlGroupInput } from '..'; @@ -118,7 +118,7 @@ export const syncDashboardControlGroup = async ({ subscriptions.add( dashboardContainer .getInput$() - .pipe(distinctUntilKeyChanged('controlGroupInput')) + .pipe(debounceTime(10), distinctUntilKeyChanged('controlGroupInput')) .subscribe(() => { if (!isControlGroupInputEqual()) { if (!dashboardContainer.getInput().controlGroupInput) { diff --git a/src/plugins/dashboard/public/application/top_nav/dashboard_top_nav.tsx b/src/plugins/dashboard/public/application/top_nav/dashboard_top_nav.tsx index e66525398b86b..23bc301f788c0 100644 --- a/src/plugins/dashboard/public/application/top_nav/dashboard_top_nav.tsx +++ b/src/plugins/dashboard/public/application/top_nav/dashboard_top_nav.tsx @@ -210,16 +210,17 @@ export function DashboardTopNav({ [stateTransferService, data.search.session, trackUiMetric] ); - const clearAddPanel = useCallback(() => { + const closeAllFlyouts = useCallback(() => { + dashboardAppState.dashboardContainer.controlGroup?.closeAllFlyouts(); if (state.addPanelOverlay) { state.addPanelOverlay.close(); setState((s) => ({ ...s, addPanelOverlay: undefined })); } - }, [state.addPanelOverlay]); + }, [state.addPanelOverlay, dashboardAppState.dashboardContainer.controlGroup]); const onChangeViewMode = useCallback( (newMode: ViewMode) => { - clearAddPanel(); + closeAllFlyouts(); const willLoseChanges = newMode === ViewMode.VIEW && dashboardAppState.hasUnsavedChanges; if (!willLoseChanges) { @@ -231,7 +232,7 @@ export function DashboardTopNav({ dashboardAppState.resetToLastSavedState?.() ); }, - [clearAddPanel, core.overlays, dashboardAppState, dispatchDashboardStateChange] + [closeAllFlyouts, core.overlays, dashboardAppState, dispatchDashboardStateChange] ); const runSaveAs = useCallback(async () => { @@ -296,7 +297,7 @@ export function DashboardTopNav({ showCopyOnSave={lastDashboardId ? true : false} /> ); - clearAddPanel(); + closeAllFlyouts(); showSaveModal(dashboardSaveModal, core.i18n.Context); }, [ dispatchDashboardStateChange, @@ -305,7 +306,7 @@ export function DashboardTopNav({ dashboardAppState, core.i18n.Context, chrome.docTitle, - clearAddPanel, + closeAllFlyouts, kibanaVersion, timefilter, redirectTo, @@ -468,7 +469,7 @@ export function DashboardTopNav({ ]); UseUnmount(() => { - clearAddPanel(); + closeAllFlyouts(); setMounted(false); }); diff --git a/src/plugins/data/common/index.ts b/src/plugins/data/common/index.ts index a97b8025426f2..93aeb918bc53a 100644 --- a/src/plugins/data/common/index.ts +++ b/src/plugins/data/common/index.ts @@ -139,7 +139,6 @@ export { DEFAULT_ASSETS_TO_IGNORE, META_FIELDS, DATA_VIEW_SAVED_OBJECT_TYPE, - INDEX_PATTERN_SAVED_OBJECT_TYPE, isFilterable, fieldList, DataViewField, diff --git a/src/plugins/data/kibana.json b/src/plugins/data/kibana.json index 3d70d138d80ed..e3369c2d571a6 100644 --- a/src/plugins/data/kibana.json +++ b/src/plugins/data/kibana.json @@ -5,7 +5,7 @@ "ui": true, "requiredPlugins": ["bfetch", "expressions", "uiActions", "share", "inspector", "fieldFormats", "dataViews"], "serviceFolders": ["search", "query", "autocomplete", "ui"], - "optionalPlugins": ["usageCollection"], + "optionalPlugins": ["usageCollection", "taskManager", "security"], "extraPublicDirs": ["common"], "requiredBundles": ["kibanaUtils", "kibanaReact", "inspector"], "owner": { diff --git a/src/plugins/data/public/index.ts b/src/plugins/data/public/index.ts index 02480aded9655..77f17d3a63eee 100644 --- a/src/plugins/data/public/index.ts +++ b/src/plugins/data/public/index.ts @@ -20,7 +20,12 @@ export * from './deprecated'; export { getEsQueryConfig, FilterStateStore } from '../common'; export { FilterLabel, FilterItem } from './ui'; -export { getDisplayValueFromFilter, generateFilters, extractTimeRange } from './query'; +export { + getDisplayValueFromFilter, + generateFilters, + extractTimeRange, + getIndexPatternFromFilter, +} from './query'; /** * Exporters (CSV) diff --git a/src/plugins/data/public/query/timefilter/timefilter.test.ts b/src/plugins/data/public/query/timefilter/timefilter.test.ts index e3fc3ac582d80..c7cd5318730af 100644 --- a/src/plugins/data/public/query/timefilter/timefilter.test.ts +++ b/src/plugins/data/public/query/timefilter/timefilter.test.ts @@ -137,6 +137,17 @@ describe('setRefreshInterval', () => { autoRefreshSub.unsubscribe(); }); + test('isRefreshIntervalTouched is initially set to false', () => { + expect(timefilter.isRefreshIntervalTouched()).toBe(false); + }); + + test('should register changes to the initial interval', () => { + timefilter.setRefreshInterval(timefilterConfig.refreshIntervalDefaults); + expect(timefilter.isRefreshIntervalTouched()).toBe(false); + timefilter.setRefreshInterval({ pause: false, value: 1000 }); + expect(timefilter.isRefreshIntervalTouched()).toBe(true); + }); + test('should update refresh interval', () => { timefilter.setRefreshInterval({ pause: true, value: 10 }); expect(timefilter.getRefreshInterval()).toEqual({ pause: true, value: 10 }); diff --git a/src/plugins/data/public/query/timefilter/timefilter.ts b/src/plugins/data/public/query/timefilter/timefilter.ts index d289a90149fdd..b81a95618b815 100644 --- a/src/plugins/data/public/query/timefilter/timefilter.ts +++ b/src/plugins/data/public/query/timefilter/timefilter.ts @@ -41,6 +41,8 @@ export class Timefilter { // Denotes whether setTime has been called, can be used to determine if the constructor defaults are being used. private _isTimeTouched: boolean = false; private _refreshInterval!: RefreshInterval; + // Denotes whether the refresh interval defaults were overriden. + private _isRefreshIntervalTouched: boolean = false; private _history: TimeHistoryContract; private _isTimeRangeSelectorEnabled: boolean = false; @@ -76,6 +78,10 @@ export class Timefilter { return this._isTimeTouched; } + public isRefreshIntervalTouched() { + return this._isRefreshIntervalTouched; + } + public getEnabledUpdated$ = () => { return this.enabledUpdated$.asObservable(); }; @@ -156,12 +162,18 @@ export class Timefilter { if (prevRefreshInterval?.value > 0 && newRefreshInterval.value <= 0) { shouldUnpauseRefreshLoop = false; } + + this._isRefreshIntervalTouched = + this._isRefreshIntervalTouched || + areRefreshIntervalsDifferent(this.refreshIntervalDefaults, newRefreshInterval); + // If the refresh interval is <= 0 handle that as a paused refresh // unless the user has un-paused the refresh loop and the value is not going from > 0 to 0 if (newRefreshInterval.value <= 0) { newRefreshInterval.value = 0; newRefreshInterval.pause = shouldUnpauseRefreshLoop ? false : true; } + this._refreshInterval = { value: newRefreshInterval.value, pause: newRefreshInterval.pause, diff --git a/src/plugins/data/public/query/timefilter/timefilter_service.mock.ts b/src/plugins/data/public/query/timefilter/timefilter_service.mock.ts index 53d9aeeec9afe..ec5caae031498 100644 --- a/src/plugins/data/public/query/timefilter/timefilter_service.mock.ts +++ b/src/plugins/data/public/query/timefilter/timefilter_service.mock.ts @@ -18,6 +18,7 @@ const createSetupContractMock = () => { isAutoRefreshSelectorEnabled: jest.fn(), isTimeRangeSelectorEnabled: jest.fn(), isTimeTouched: jest.fn(), + isRefreshIntervalTouched: jest.fn(), getEnabledUpdated$: jest.fn(), getTimeUpdate$: jest.fn(), getRefreshIntervalUpdate$: jest.fn(), diff --git a/src/plugins/data/public/ui/filter_bar/_global_filter_item.scss b/src/plugins/data/public/ui/filter_bar/_global_filter_item.scss index 4873989cde638..1c9cea7291770 100644 --- a/src/plugins/data/public/ui/filter_bar/_global_filter_item.scss +++ b/src/plugins/data/public/ui/filter_bar/_global_filter_item.scss @@ -88,3 +88,8 @@ .globalFilterItem__popoverAnchor { display: block; } + +.globalFilterItem__readonlyPanel { + min-width: auto; + padding: $euiSizeM; +} diff --git a/src/plugins/data/public/ui/filter_bar/filter_bar.tsx b/src/plugins/data/public/ui/filter_bar/filter_bar.tsx index 9bc64eb1f6919..00557dfab0e98 100644 --- a/src/plugins/data/public/ui/filter_bar/filter_bar.tsx +++ b/src/plugins/data/public/ui/filter_bar/filter_bar.tsx @@ -30,7 +30,7 @@ import { IDataPluginServices, IIndexPattern } from '../..'; import { UI_SETTINGS } from '../../../common'; -interface Props { +export interface Props { filters: Filter[]; onFiltersUpdated?: (filters: Filter[]) => void; className: string; diff --git a/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_label.tsx b/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_label.tsx index 1a272a5d79f37..d0924258831cb 100644 --- a/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_label.tsx +++ b/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_label.tsx @@ -17,11 +17,17 @@ export interface FilterLabelProps { filter: Filter; valueLabel?: string; filterLabelStatus?: FilterLabelStatus; + hideAlias?: boolean; } // Needed for React.lazy // eslint-disable-next-line import/no-default-export -export default function FilterLabel({ filter, valueLabel, filterLabelStatus }: FilterLabelProps) { +export default function FilterLabel({ + filter, + valueLabel, + filterLabelStatus, + hideAlias, +}: FilterLabelProps) { const prefixText = filter.meta.negate ? ` ${i18n.translate('data.filter.filterBar.negatedFilterPrefix', { defaultMessage: 'NOT ', @@ -38,7 +44,7 @@ export default function FilterLabel({ filter, valueLabel, filterLabelStatus }: F return {text}; }; - if (filter.meta.alias !== null) { + if (!hideAlias && filter.meta.alias !== null) { return ( {prefix} diff --git a/src/plugins/data/public/ui/filter_bar/filter_item.tsx b/src/plugins/data/public/ui/filter_bar/filter_item.tsx index 9e535513aa014..5f57072425844 100644 --- a/src/plugins/data/public/ui/filter_bar/filter_item.tsx +++ b/src/plugins/data/public/ui/filter_bar/filter_item.tsx @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { EuiContextMenu, EuiPopover } from '@elastic/eui'; +import { EuiContextMenu, EuiPopover, EuiPopoverProps } from '@elastic/eui'; import { InjectedIntl } from '@kbn/i18n-react'; import { Filter, @@ -16,7 +16,7 @@ import { toggleFilterDisabled, } from '@kbn/es-query'; import classNames from 'classnames'; -import React, { MouseEvent, useState, useEffect } from 'react'; +import React, { MouseEvent, useState, useEffect, HTMLAttributes } from 'react'; import { IUiSettingsClient } from 'src/core/public'; import { FilterEditor } from './filter_editor'; import { FilterView } from './filter_view'; @@ -37,8 +37,11 @@ export interface FilterItemProps { uiSettings: IUiSettingsClient; hiddenPanelOptions?: PanelOptions[]; timeRangeForSuggestionsOverride?: boolean; + readonly?: boolean; } +type FilterPopoverProps = HTMLAttributes & EuiPopoverProps; + interface LabelOptions { title: string; status: FilterLabelStatus; @@ -349,32 +352,44 @@ export function FilterItem(props: FilterItemProps) { return null; } - const badge = ( - props.onRemove()} - onClick={handleBadgeClick} - data-test-subj={getDataTestSubj(valueLabelConfig)} - /> - ); + const filterViewProps = { + filter, + valueLabel: valueLabelConfig.title, + filterLabelStatus: valueLabelConfig.status, + errorMessage: valueLabelConfig.message, + className: getClasses(!!filter.meta.negate, valueLabelConfig), + iconOnClick: props.onRemove, + onClick: handleBadgeClick, + 'data-test-subj': getDataTestSubj(valueLabelConfig), + readonly: props.readonly, + }; + + const popoverProps: FilterPopoverProps = { + id: `popoverFor_filter${id}`, + className: `globalFilterItem__popover`, + anchorClassName: `globalFilterItem__popoverAnchor`, + isOpen: isPopoverOpen, + closePopover: () => { + setIsPopoverOpen(false); + }, + button: , + panelPaddingSize: 'none', + }; + + if (props.readonly) { + return ( + + + + ); + } return ( - { - setIsPopoverOpen(false); - }} - button={badge} - anchorPosition="downLeft" - panelPaddingSize="none" - > + ); diff --git a/src/plugins/data/public/ui/filter_bar/filter_view/index.tsx b/src/plugins/data/public/ui/filter_bar/filter_view/index.tsx index d551af87c7279..e5345462b7df2 100644 --- a/src/plugins/data/public/ui/filter_bar/filter_view/index.tsx +++ b/src/plugins/data/public/ui/filter_bar/filter_view/index.tsx @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { EuiBadge, useInnerText } from '@elastic/eui'; +import { EuiBadge, EuiBadgeProps, useInnerText } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import React, { FC } from 'react'; import { Filter, isFilterPinned } from '@kbn/es-query'; @@ -18,6 +18,8 @@ interface Props { valueLabel: string; filterLabelStatus: FilterLabelStatus; errorMessage?: string; + readonly?: boolean; + hideAlias?: boolean; [propName: string]: any; } @@ -28,6 +30,8 @@ export const FilterView: FC = ({ valueLabel, errorMessage, filterLabelStatus, + readonly, + hideAlias, ...rest }: Props) => { const [ref, innerText] = useInnerText(); @@ -50,33 +54,45 @@ export const FilterView: FC = ({ })} ${title}`; } + const badgeProps: EuiBadgeProps = readonly + ? { + title, + color: 'hollow', + onClick, + onClickAriaLabel: i18n.translate('data.filter.filterBar.filterItemReadOnlyBadgeAriaLabel', { + defaultMessage: 'Filter entry', + }), + iconOnClick, + } + : { + title, + color: 'hollow', + iconType: 'cross', + iconSide: 'right', + closeButtonProps: { + // Removing tab focus on close button because the same option can be obtained through the context menu + // Also, we may want to add a `DEL` keyboard press functionality + tabIndex: -1, + }, + iconOnClick, + iconOnClickAriaLabel: i18n.translate('data.filter.filterBar.filterItemBadgeIconAriaLabel', { + defaultMessage: 'Delete {filter}', + values: { filter: innerText }, + }), + onClick, + onClickAriaLabel: i18n.translate('data.filter.filterBar.filterItemBadgeAriaLabel', { + defaultMessage: 'Filter actions', + }), + }; + return ( - + diff --git a/src/plugins/data/public/ui/query_string_input/query_bar_top_row.test.tsx b/src/plugins/data/public/ui/query_string_input/query_bar_top_row.test.tsx index 56dd901055fbc..9f99049d3e788 100644 --- a/src/plugins/data/public/ui/query_string_input/query_bar_top_row.test.tsx +++ b/src/plugins/data/public/ui/query_string_input/query_bar_top_row.test.tsx @@ -105,7 +105,7 @@ function wrapQueryBarTopRowInContext(testProps: any) { describe('QueryBarTopRowTopRow', () => { const QUERY_INPUT_SELECTOR = 'QueryStringInputUI'; - const TIMEPICKER_SELECTOR = 'EuiSuperDatePicker'; + const TIMEPICKER_SELECTOR = 'Memo(EuiSuperDatePicker)'; const TIMEPICKER_DURATION = '[data-shared-timefilter-duration]'; beforeEach(() => { diff --git a/src/plugins/data/public/ui/query_string_input/query_bar_top_row.tsx b/src/plugins/data/public/ui/query_string_input/query_bar_top_row.tsx index 75d22137937e9..424347834c3db 100644 --- a/src/plugins/data/public/ui/query_string_input/query_bar_top_row.tsx +++ b/src/plugins/data/public/ui/query_string_input/query_bar_top_row.tsx @@ -19,7 +19,7 @@ import { EuiFlexItem, EuiSuperDatePicker, EuiFieldText, - prettyDuration, + usePrettyDuration, EuiIconProps, EuiSuperUpdateButton, OnRefreshProps, @@ -92,12 +92,12 @@ const SharingMetaFields = React.memo(function SharingMetaFields({ return valueAsMoment.toISOString(); } - const dateRangePretty = prettyDuration( - toAbsoluteString(from), - toAbsoluteString(to), - [], - dateFormat - ); + const dateRangePretty = usePrettyDuration({ + timeFrom: toAbsoluteString(from), + timeTo: toAbsoluteString(to), + quickRanges: [], + dateFormat, + }); return (
= ({ spacesApi, spaceIds, id, title, refresh }) => { +export const SpacesList: FC = ({ + spacesApi, + capabilities, + spaceIds, + id, + title, + refresh, +}) => { const [showFlyout, setShowFlyout] = useState(false); function onClose() { @@ -49,13 +58,17 @@ export const SpacesList: FC = ({ spacesApi, spaceIds, id, title, refresh onClose, }; + const canAssignSpaces = !capabilities || !!capabilities.savedObjectsManagement.shareIntoSpace; + const clickProperties = canAssignSpaces + ? { cursorStyle: 'pointer', listOnClick: () => setShowFlyout(true) } + : { cursorStyle: 'not-allowed' }; return ( <> setShowFlyout(true)} + {...clickProperties} /> {showFlyout && } diff --git a/src/plugins/data_view_management/public/management_app/mount_management_section.tsx b/src/plugins/data_view_management/public/management_app/mount_management_section.tsx index 1b5ae606bb19b..0b5275f2e2fae 100644 --- a/src/plugins/data_view_management/public/management_app/mount_management_section.tsx +++ b/src/plugins/data_view_management/public/management_app/mount_management_section.tsx @@ -39,7 +39,7 @@ export async function mountManagementSection( params: ManagementAppMountParams ) { const [ - { chrome, uiSettings, notifications, overlays, http, docLinks, theme }, + { application, chrome, uiSettings, notifications, overlays, http, docLinks, theme }, { data, dataViewFieldEditor, dataViewEditor, dataViews, fieldFormats, spaces }, indexPatternManagementStart, ] = await getStartServices(); @@ -50,6 +50,7 @@ export async function mountManagementSection( } const deps: IndexPatternManagmentContext = { + application, chrome, uiSettings, notifications, diff --git a/src/plugins/data_view_management/public/mocks.ts b/src/plugins/data_view_management/public/mocks.ts index 54c1900d37f4c..e19d7bb299120 100644 --- a/src/plugins/data_view_management/public/mocks.ts +++ b/src/plugins/data_view_management/public/mocks.ts @@ -55,13 +55,14 @@ const docLinks = { const createIndexPatternManagmentContext = (): { [key in keyof IndexPatternManagmentContext]: any; } => { - const { chrome, uiSettings, notifications, overlays } = coreMock.createStart(); + const { application, chrome, uiSettings, notifications, overlays } = coreMock.createStart(); const { http } = coreMock.createSetup(); const data = dataPluginMock.createStartContract(); const dataViewFieldEditor = indexPatternFieldEditorPluginMock.createStartContract(); const dataViews = dataViewPluginMocks.createStartContract(); return { + application, chrome, uiSettings, notifications, diff --git a/src/plugins/data_view_management/public/types.ts b/src/plugins/data_view_management/public/types.ts index 257d07cd478db..0cea57c1bcd72 100644 --- a/src/plugins/data_view_management/public/types.ts +++ b/src/plugins/data_view_management/public/types.ts @@ -13,6 +13,7 @@ import { NotificationsStart, DocLinksStart, HttpSetup, + ApplicationStart, } from 'src/core/public'; import { DataPublicPluginStart } from 'src/plugins/data/public'; import { ManagementAppMountParams } from '../../management/public'; @@ -25,6 +26,7 @@ import { FieldFormatsStart } from '../../field_formats/public'; import { SpacesPluginStart } from '../../../../x-pack/plugins/spaces/public'; export interface IndexPatternManagmentContext { + application: ApplicationStart; chrome: ChromeStart; uiSettings: IUiSettingsClient; notifications: NotificationsStart; diff --git a/src/plugins/data_views/common/constants.ts b/src/plugins/data_views/common/constants.ts index 42f869908ec25..d6a9def882a1b 100644 --- a/src/plugins/data_views/common/constants.ts +++ b/src/plugins/data_views/common/constants.ts @@ -37,10 +37,4 @@ export const META_FIELDS = 'metaFields'; /** @public **/ export const DATA_VIEW_SAVED_OBJECT_TYPE = 'index-pattern'; -/** - * @deprecated Use DATA_VIEW_SAVED_OBJECT_TYPE. All index pattern interfaces were renamed. - */ - -export const INDEX_PATTERN_SAVED_OBJECT_TYPE = DATA_VIEW_SAVED_OBJECT_TYPE; - export const PLUGIN_NAME = 'DataViews'; diff --git a/src/plugins/data_views/common/index.ts b/src/plugins/data_views/common/index.ts index 954d3ed7e3590..13842b62a9d53 100644 --- a/src/plugins/data_views/common/index.ts +++ b/src/plugins/data_views/common/index.ts @@ -11,7 +11,6 @@ export { DEFAULT_ASSETS_TO_IGNORE, META_FIELDS, DATA_VIEW_SAVED_OBJECT_TYPE, - INDEX_PATTERN_SAVED_OBJECT_TYPE, } from './constants'; export type { IFieldType, IIndexPatternFieldList } from './fields'; export { diff --git a/src/plugins/discover/kibana.json b/src/plugins/discover/kibana.json index 015cb6ddaf285..2b09f2bef4896 100644 --- a/src/plugins/discover/kibana.json +++ b/src/plugins/discover/kibana.json @@ -16,7 +16,7 @@ "dataViewFieldEditor", "dataViewEditor" ], - "optionalPlugins": ["home", "share", "usageCollection", "spaces"], + "optionalPlugins": ["home", "share", "usageCollection", "spaces", "triggersActionsUi"], "requiredBundles": ["kibanaUtils", "home", "kibanaReact", "dataViews"], "extraPublicDirs": ["common"], "owner": { diff --git a/src/plugins/discover/public/application/context/components/action_bar/action_bar.tsx b/src/plugins/discover/public/application/context/components/action_bar/action_bar.tsx index 9b7ba6345111f..07cb6029a77de 100644 --- a/src/plugins/discover/public/application/context/components/action_bar/action_bar.tsx +++ b/src/plugins/discover/public/application/context/components/action_bar/action_bar.tsx @@ -92,7 +92,6 @@ export function ActionBar({ { diff --git a/src/plugins/discover/public/application/discover_router.tsx b/src/plugins/discover/public/application/discover_router.tsx index 16ff443d15d24..0270af2383488 100644 --- a/src/plugins/discover/public/application/discover_router.tsx +++ b/src/plugins/discover/public/application/discover_router.tsx @@ -16,6 +16,7 @@ import { SingleDocRoute } from './doc'; import { DiscoverMainRoute } from './main'; import { NotFoundRoute } from './not_found'; import { DiscoverServices } from '../build_services'; +import { ViewAlertRoute } from './view_alert'; export const discoverRouter = (services: DiscoverServices, history: History) => ( @@ -36,6 +37,9 @@ export const discoverRouter = (services: DiscoverServices, history: History) => + + + diff --git a/src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts b/src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.tsx similarity index 89% rename from src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts rename to src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.tsx index a5627cc1d19d9..abf9a790a2417 100644 --- a/src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts +++ b/src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.tsx @@ -18,6 +18,7 @@ import { onSaveSearch } from './on_save_search'; import { GetStateReturn } from '../../services/discover_state'; import { openOptionsPopover } from './open_options_popover'; import type { TopNavMenuData } from '../../../../../../navigation/public'; +import { openAlertsPopover } from './open_alerts_popover'; /** * Helper function to build the top nav links @@ -59,6 +60,25 @@ export const getTopNavLinks = ({ testId: 'discoverOptionsButton', }; + const alerts = { + id: 'alerts', + label: i18n.translate('discover.localMenu.localMenu.alertsTitle', { + defaultMessage: 'Alerts', + }), + description: i18n.translate('discover.localMenu.alertsDescription', { + defaultMessage: 'Alerts', + }), + run: (anchorElement: HTMLElement) => { + openAlertsPopover({ + I18nContext: services.core.i18n.Context, + anchorElement, + searchSource: savedSearch.searchSource, + services, + }); + }, + testId: 'discoverAlertsButton', + }; + const newSearch = { id: 'new', label: i18n.translate('discover.localMenu.localMenu.newSearchTitle', { @@ -162,6 +182,7 @@ export const getTopNavLinks = ({ ...(services.capabilities.advancedSettings.save ? [options] : []), newSearch, openSearch, + ...(services.triggersActionsUi ? [alerts] : []), shareSearch, inspectSearch, ...(services.capabilities.discover.save ? [saveSearch] : []), diff --git a/src/plugins/discover/public/application/main/components/top_nav/open_alerts_popover.tsx b/src/plugins/discover/public/application/main/components/top_nav/open_alerts_popover.tsx new file mode 100644 index 0000000000000..21d560ccb539d --- /dev/null +++ b/src/plugins/discover/public/application/main/components/top_nav/open_alerts_popover.tsx @@ -0,0 +1,185 @@ +/* + * Copyright 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, { useCallback, useState, useMemo } from 'react'; +import ReactDOM from 'react-dom'; +import { I18nStart } from 'kibana/public'; +import { EuiWrappingPopover, EuiLink, EuiContextMenu, EuiToolTip } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { ISearchSource } from '../../../../../../data/common'; +import { KibanaContextProvider } from '../../../../../../kibana_react/public'; +import { DiscoverServices } from '../../../../build_services'; +import { updateSearchSource } from '../../utils/update_search_source'; +import { useDiscoverServices } from '../../../../utils/use_discover_services'; + +const container = document.createElement('div'); +let isOpen = false; + +const ALERT_TYPE_ID = '.es-query'; + +interface AlertsPopoverProps { + onClose: () => void; + anchorElement: HTMLElement; + searchSource: ISearchSource; +} + +export function AlertsPopover({ searchSource, anchorElement, onClose }: AlertsPopoverProps) { + const dataView = searchSource.getField('index')!; + const services = useDiscoverServices(); + const { triggersActionsUi } = services; + const [alertFlyoutVisible, setAlertFlyoutVisibility] = useState(false); + + /** + * Provides the default parameters used to initialize the new rule + */ + const getParams = useCallback(() => { + const nextSearchSource = searchSource.createCopy(); + updateSearchSource(nextSearchSource, true, { + indexPattern: searchSource.getField('index')!, + services, + sort: [], + useNewFieldsApi: true, + }); + + return { + searchType: 'searchSource', + searchConfiguration: nextSearchSource.getSerializedFields(), + }; + }, [searchSource, services]); + + const SearchThresholdAlertFlyout = useMemo(() => { + if (!alertFlyoutVisible) { + return; + } + return triggersActionsUi?.getAddAlertFlyout({ + consumer: 'discover', + onClose, + canChangeTrigger: false, + ruleTypeId: ALERT_TYPE_ID, + initialValues: { + params: getParams(), + }, + }); + }, [getParams, onClose, triggersActionsUi, alertFlyoutVisible]); + + const hasTimeFieldName = dataView.timeFieldName; + let createSearchThresholdRuleLink = ( + setAlertFlyoutVisibility(true)} + disabled={!hasTimeFieldName} + > + + + ); + + if (!hasTimeFieldName) { + const toolTipContent = ( + + ); + createSearchThresholdRuleLink = ( + + {createSearchThresholdRuleLink} + + ); + } + + const panels = [ + { + id: 'mainPanel', + name: 'Alerting', + items: [ + { + name: ( + <> + {SearchThresholdAlertFlyout} + {createSearchThresholdRuleLink} + + ), + icon: 'bell', + disabled: !hasTimeFieldName, + }, + { + name: ( + + + + ), + icon: 'tableOfContents', + }, + ], + }, + ]; + + return ( + <> + {SearchThresholdAlertFlyout} + + + + + ); +} + +function closeAlertsPopover() { + ReactDOM.unmountComponentAtNode(container); + document.body.removeChild(container); + isOpen = false; +} + +export function openAlertsPopover({ + I18nContext, + anchorElement, + searchSource, + services, +}: { + I18nContext: I18nStart['Context']; + anchorElement: HTMLElement; + searchSource: ISearchSource; + services: DiscoverServices; +}) { + if (isOpen) { + closeAlertsPopover(); + return; + } + + isOpen = true; + document.body.appendChild(container); + + const element = ( + + + + + + ); + ReactDOM.render(element, container); +} diff --git a/src/plugins/discover/public/application/view_alert/index.ts b/src/plugins/discover/public/application/view_alert/index.ts new file mode 100644 index 0000000000000..9b3e4f5d3bf7e --- /dev/null +++ b/src/plugins/discover/public/application/view_alert/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 { ViewAlertRoute } from './view_alert_route'; diff --git a/src/plugins/discover/public/application/view_alert/view_alert_route.tsx b/src/plugins/discover/public/application/view_alert/view_alert_route.tsx new file mode 100644 index 0000000000000..2a6fa70ef0e2b --- /dev/null +++ b/src/plugins/discover/public/application/view_alert/view_alert_route.tsx @@ -0,0 +1,134 @@ +/* + * Copyright 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 { useEffect, useMemo } from 'react'; +import { useHistory, useLocation, useParams } from 'react-router-dom'; +import { sha256 } from 'js-sha256'; +import type { Rule } from '../../../../../../x-pack/plugins/alerting/common'; +import { getTime, IndexPattern } from '../../../../data/common'; +import type { Filter } from '../../../../data/public'; +import { DiscoverAppLocatorParams } from '../../locator'; +import { useDiscoverServices } from '../../utils/use_discover_services'; +import { getAlertUtils, QueryParams, SearchThresholdAlertParams } from './view_alert_utils'; + +type NonNullableEntry = { [K in keyof T]: NonNullable }; + +const getCurrentChecksum = (params: SearchThresholdAlertParams) => + sha256.create().update(JSON.stringify(params)).hex(); + +const isActualAlert = (queryParams: QueryParams): queryParams is NonNullableEntry => { + return Boolean(queryParams.from && queryParams.to && queryParams.checksum); +}; + +const buildTimeRangeFilter = ( + dataView: IndexPattern, + fetchedAlert: Rule, + timeFieldName: string +) => { + const filter = getTime(dataView, { + from: `now-${fetchedAlert.params.timeWindowSize}${fetchedAlert.params.timeWindowUnit}`, + to: 'now', + }); + return { + from: filter?.query.range[timeFieldName].gte, + to: filter?.query.range[timeFieldName].lte, + }; +}; + +const DISCOVER_MAIN_ROUTE = '/'; + +export function ViewAlertRoute() { + const { core, data, locator, toastNotifications } = useDiscoverServices(); + const { id } = useParams<{ id: string }>(); + const history = useHistory(); + const { search } = useLocation(); + + const query = useMemo(() => new URLSearchParams(search), [search]); + + const queryParams: QueryParams = useMemo( + () => ({ + from: query.get('from'), + to: query.get('to'), + checksum: query.get('checksum'), + }), + [query] + ); + + const openActualAlert = useMemo(() => isActualAlert(queryParams), [queryParams]); + + useEffect(() => { + const { + fetchAlert, + fetchSearchSource, + displayRuleChangedWarn, + displayPossibleDocsDiffInfoAlert, + showDataViewFetchError, + } = getAlertUtils(toastNotifications, core, data); + + const navigateToResults = async () => { + const fetchedAlert = await fetchAlert(id); + if (!fetchedAlert) { + history.push(DISCOVER_MAIN_ROUTE); + return; + } + + const calculatedChecksum = getCurrentChecksum(fetchedAlert.params); + if (openActualAlert && calculatedChecksum !== queryParams.checksum) { + displayRuleChangedWarn(); + } else if (openActualAlert && calculatedChecksum === queryParams.checksum) { + displayPossibleDocsDiffInfoAlert(); + } + + const fetchedSearchSource = await fetchSearchSource(fetchedAlert); + if (!fetchedSearchSource) { + history.push(DISCOVER_MAIN_ROUTE); + return; + } + + const dataView = fetchedSearchSource.getField('index'); + const timeFieldName = dataView?.timeFieldName; + if (!dataView || !timeFieldName) { + showDataViewFetchError(fetchedAlert.id); + history.push(DISCOVER_MAIN_ROUTE); + return; + } + + const timeRange = openActualAlert + ? { from: queryParams.from, to: queryParams.to } + : buildTimeRangeFilter(dataView, fetchedAlert, timeFieldName); + const state: DiscoverAppLocatorParams = { + query: fetchedSearchSource.getField('query') || data.query.queryString.getDefaultQuery(), + indexPatternId: dataView.id, + timeRange, + }; + + const filters = fetchedSearchSource.getField('filter'); + if (filters) { + state.filters = filters as Filter[]; + } + + await locator.navigate(state); + }; + + navigateToResults(); + }, [ + toastNotifications, + data.query.queryString, + data.search.searchSource, + core.http, + locator, + id, + queryParams, + history, + openActualAlert, + core, + data, + ]); + + return null; +} diff --git a/src/plugins/discover/public/application/view_alert/view_alert_utils.tsx b/src/plugins/discover/public/application/view_alert/view_alert_utils.tsx new file mode 100644 index 0000000000000..585da8c676417 --- /dev/null +++ b/src/plugins/discover/public/application/view_alert/view_alert_utils.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 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 { i18n } from '@kbn/i18n'; +import { CoreStart, ToastsStart } from 'kibana/public'; +import type { Rule } from '../../../../../../x-pack/plugins/alerting/common'; +import type { RuleTypeParams } from '../../../../../../x-pack/plugins/alerting/common'; +import { SerializedSearchSourceFields } from '../../../../data/common'; +import type { DataPublicPluginStart } from '../../../../data/public'; +import { MarkdownSimple, toMountPoint } from '../../../../kibana_react/public'; + +export interface SearchThresholdAlertParams extends RuleTypeParams { + searchConfiguration: SerializedSearchSourceFields; +} + +export interface QueryParams { + from: string | null; + to: string | null; + checksum: string | null; +} + +const LEGACY_BASE_ALERT_API_PATH = '/api/alerts'; + +export const getAlertUtils = ( + toastNotifications: ToastsStart, + core: CoreStart, + data: DataPublicPluginStart +) => { + const showDataViewFetchError = (alertId: string) => { + const errorTitle = i18n.translate('discover.viewAlert.dataViewErrorTitle', { + defaultMessage: 'Error fetching data view', + }); + toastNotifications.addDanger({ + title: errorTitle, + text: toMountPoint( + + {new Error(`Data view failure of the alert rule with id ${alertId}.`).message} + + ), + }); + }; + + const displayRuleChangedWarn = () => { + const warnTitle = i18n.translate('discover.viewAlert.alertRuleChangedWarnTitle', { + defaultMessage: 'Alert rule has changed', + }); + const warnDescription = i18n.translate('discover.viewAlert.alertRuleChangedWarnDescription', { + defaultMessage: `The displayed documents might not match the documents that triggered the alert + because the rule configuration changed.`, + }); + + toastNotifications.addWarning({ + title: warnTitle, + text: toMountPoint({warnDescription}), + }); + }; + + const displayPossibleDocsDiffInfoAlert = () => { + const infoTitle = i18n.translate('discover.viewAlert.documentsMayVaryInfoTitle', { + defaultMessage: 'Displayed documents may vary', + }); + const infoDescription = i18n.translate('discover.viewAlert.documentsMayVaryInfoDescription', { + defaultMessage: `The displayed documents might differ from the documents that triggered the alert. + Some documents might have been added or deleted.`, + }); + + toastNotifications.addInfo({ + title: infoTitle, + text: toMountPoint({infoDescription}), + }); + }; + + const fetchAlert = async (id: string) => { + try { + return await core.http.get>( + `${LEGACY_BASE_ALERT_API_PATH}/alert/${id}` + ); + } catch (error) { + const errorTitle = i18n.translate('discover.viewAlert.alertRuleFetchErrorTitle', { + defaultMessage: 'Error fetching alert rule', + }); + toastNotifications.addDanger({ + title: errorTitle, + text: toMountPoint({error.message}), + }); + } + }; + + const fetchSearchSource = async (fetchedAlert: Rule) => { + try { + return await data.search.searchSource.create(fetchedAlert.params.searchConfiguration); + } catch (error) { + const errorTitle = i18n.translate('discover.viewAlert.searchSourceErrorTitle', { + defaultMessage: 'Error fetching search source', + }); + toastNotifications.addDanger({ + title: errorTitle, + text: toMountPoint({error.message}), + }); + } + }; + + return { + displayRuleChangedWarn, + displayPossibleDocsDiffInfoAlert, + showDataViewFetchError, + fetchAlert, + fetchSearchSource, + }; +}; diff --git a/src/plugins/discover/public/build_services.ts b/src/plugins/discover/public/build_services.ts index f3c697d400a93..100235cb95a0d 100644 --- a/src/plugins/discover/public/build_services.ts +++ b/src/plugins/discover/public/build_services.ts @@ -18,6 +18,8 @@ import { IUiSettingsClient, PluginInitializerContext, HttpStart, + NotificationsStart, + ApplicationStart, } from 'kibana/public'; import { FilterManager, @@ -38,15 +40,18 @@ import { NavigationPublicPluginStart } from '../../navigation/public'; import { IndexPatternFieldEditorStart } from '../../data_view_field_editor/public'; import { FieldFormatsStart } from '../../field_formats/public'; import { EmbeddableStart } from '../../embeddable/public'; +import { DiscoverAppLocator } from './locator'; import type { SpacesApi } from '../../../../x-pack/plugins/spaces/public'; import { DataViewEditorStart } from '../../../plugins/data_view_editor/public'; +import type { TriggersAndActionsUIPublicPluginStart } from '../../../../x-pack/plugins/triggers_actions_ui/public'; export interface HistoryLocationState { referrer: string; } export interface DiscoverServices { + application: ApplicationStart; addBasePath: (path: string) => string; capabilities: Capabilities; chrome: ChromeStart; @@ -66,6 +71,7 @@ export interface DiscoverServices { urlForwarding: UrlForwardingStart; timefilter: TimefilterContract; toastNotifications: ToastsStart; + notifications: NotificationsStart; uiSettings: IUiSettingsClient; trackUiMetric?: (metricType: UiCounterMetricType, eventName: string | string[]) => void; dataViewFieldEditor: IndexPatternFieldEditorStart; @@ -73,17 +79,21 @@ export interface DiscoverServices { http: HttpStart; storage: Storage; spaces?: SpacesApi; + triggersActionsUi: TriggersAndActionsUIPublicPluginStart; + locator: DiscoverAppLocator; } export const buildServices = memoize(function ( core: CoreStart, plugins: DiscoverStartPlugins, - context: PluginInitializerContext + context: PluginInitializerContext, + locator: DiscoverAppLocator ): DiscoverServices { const { usageCollection } = plugins; const storage = new Storage(localStorage); return { + application: core.application, addBasePath: core.http.basePath.prepend, capabilities: core.application.capabilities, chrome: core.chrome, @@ -105,6 +115,7 @@ export const buildServices = memoize(function ( urlForwarding: plugins.urlForwarding, timefilter: plugins.data.query.timefilter.timefilter, toastNotifications: core.notifications.toasts, + notifications: core.notifications, uiSettings: core.uiSettings, storage, trackUiMetric: usageCollection?.reportUiCounter.bind(usageCollection, 'discover'), @@ -112,5 +123,7 @@ export const buildServices = memoize(function ( http: core.http, spaces: plugins.spaces, dataViewEditor: plugins.dataViewEditor, + triggersActionsUi: plugins.triggersActionsUi, + locator, }; }); diff --git a/src/plugins/discover/public/plugin.tsx b/src/plugins/discover/public/plugin.tsx index 09042fda9a38a..0f7be875a4f21 100644 --- a/src/plugins/discover/public/plugin.tsx +++ b/src/plugins/discover/public/plugin.tsx @@ -53,6 +53,7 @@ import { injectTruncateStyles } from './utils/truncate_styles'; import { DOC_TABLE_LEGACY, TRUNCATE_MAX_HEIGHT } from '../common'; import { DataViewEditorStart } from '../../../plugins/data_view_editor/public'; import { useDiscoverServices } from './utils/use_discover_services'; +import type { TriggersAndActionsUIPublicPluginStart } from '../../../../x-pack/plugins/triggers_actions_ui/public'; import { initializeKbnUrlTracking } from './utils/initialize_kbn_url_tracking'; const DocViewerLegacyTable = React.lazy( @@ -170,6 +171,7 @@ export interface DiscoverStartPlugins { usageCollection?: UsageCollectionSetup; dataViewFieldEditor: IndexPatternFieldEditorStart; spaces?: SpacesPluginStart; + triggersActionsUi: TriggersAndActionsUIPublicPluginStart; } /** @@ -274,7 +276,12 @@ export class DiscoverPlugin window.dispatchEvent(new HashChangeEvent('hashchange')); }); - const services = buildServices(coreStart, discoverStartPlugins, this.initializerContext); + const services = buildServices( + coreStart, + discoverStartPlugins, + this.initializerContext, + this.locator! + ); // make sure the index pattern list is up to date await discoverStartPlugins.data.indexPatterns.clearCache(); @@ -364,7 +371,7 @@ export class DiscoverPlugin const getDiscoverServices = async () => { const [coreStart, discoverStartPlugins] = await core.getStartServices(); - return buildServices(coreStart, discoverStartPlugins, this.initializerContext); + return buildServices(coreStart, discoverStartPlugins, this.initializerContext, this.locator!); }; const factory = new SearchEmbeddableFactory(getStartServices, getDiscoverServices); diff --git a/src/plugins/discover/tsconfig.json b/src/plugins/discover/tsconfig.json index 6dad573a272fb..817e73f16617e 100644 --- a/src/plugins/discover/tsconfig.json +++ b/src/plugins/discover/tsconfig.json @@ -26,6 +26,7 @@ { "path": "../field_formats/tsconfig.json" }, { "path": "../data_views/tsconfig.json" }, { "path": "../../../x-pack/plugins/spaces/tsconfig.json" }, - { "path": "../data_view_editor/tsconfig.json" } + { "path": "../data_view_editor/tsconfig.json" }, + { "path": "../../../x-pack/plugins/triggers_actions_ui/tsconfig.json" } ] } diff --git a/src/plugins/embeddable/public/lib/containers/container.ts b/src/plugins/embeddable/public/lib/containers/container.ts index 39549cb4623c5..88ff7f196f984 100644 --- a/src/plugins/embeddable/public/lib/containers/container.ts +++ b/src/plugins/embeddable/public/lib/containers/container.ts @@ -135,9 +135,19 @@ export abstract class Container< public removeEmbeddable(embeddableId: string) { // Just a shortcut for removing the panel from input state, all internal state will get cleaned up naturally // by the listener. + const panels = this.onRemoveEmbeddable(embeddableId); + this.updateInput({ panels } as Partial); + } + + /** + * Control the panels that are pushed to the input stream when an embeddable is + * removed. This can be used if removing one embeddable has knock-on effects, like + * re-ordering embeddables that come after it. + */ + protected onRemoveEmbeddable(embeddableId: string): ContainerInput['panels'] { const panels = { ...this.input.panels }; delete panels[embeddableId]; - this.updateInput({ panels } as Partial); + return panels; } public getChildIds(): string[] { diff --git a/src/plugins/home/tsconfig.json b/src/plugins/home/tsconfig.json index 17d0fc7bd91ac..613bb8c08d448 100644 --- a/src/plugins/home/tsconfig.json +++ b/src/plugins/home/tsconfig.json @@ -10,7 +10,7 @@ "include": ["common/**/*", "public/**/*", "server/**/*", "config.ts"], "references": [ { "path": "../../core/tsconfig.json" }, - { "path": "../data/tsconfig.json" }, + { "path": "../data_views/tsconfig.json" }, { "path": "../custom_integrations/tsconfig.json" }, { "path": "../kibana_react/tsconfig.json" }, { "path": "../share/tsconfig.json" }, diff --git a/src/plugins/saved_objects_management/public/services/columns/share_saved_objects_to_space_column.tsx b/src/plugins/saved_objects_management/public/services/columns/share_saved_objects_to_space_column.tsx index 3ce8b82f98acf..ed99aeccf00ce 100644 --- a/src/plugins/saved_objects_management/public/services/columns/share_saved_objects_to_space_column.tsx +++ b/src/plugins/saved_objects_management/public/services/columns/share_saved_objects_to_space_column.tsx @@ -10,7 +10,7 @@ import React, { useMemo, useState } from 'react'; import { i18n } from '@kbn/i18n'; -import type { SavedObjectsNamespaceType } from 'src/core/public'; +import type { Capabilities, SavedObjectsNamespaceType } from 'src/core/public'; import { EuiIconTip, EuiToolTip } from '@elastic/eui'; import type { @@ -26,6 +26,7 @@ interface WrapperProps { objectType: string; objectNamespaceType: SavedObjectsNamespaceType; spacesApiUi: SpacesApiUi; + capabilities: Capabilities | undefined; spaceListProps: SpaceListProps; flyoutProps: ShareToSpaceFlyoutProps; } @@ -71,6 +72,7 @@ const Wrapper = ({ objectType, objectNamespaceType, spacesApiUi, + capabilities, spaceListProps, flyoutProps, }: WrapperProps) => { @@ -114,9 +116,13 @@ const Wrapper = ({ ); } + const canAssignSpaces = !capabilities || !!capabilities.savedObjectsManagement.shareIntoSpace; + const clickProperties = canAssignSpaces + ? { cursorStyle: 'pointer', listOnClick } + : { cursorStyle: 'not-allowed' }; return ( <> - + {showFlyout && } ); @@ -155,6 +161,7 @@ export class ShareToSpaceSavedObjectsManagementColumn extends SavedObjectsManage objectType={record.type} objectNamespaceType={record.meta.namespaceType} spacesApiUi={this.spacesApiUi} + capabilities={this.columnContext?.capabilities} spaceListProps={spaceListProps} flyoutProps={flyoutProps} /> diff --git a/src/plugins/telemetry/server/telemetry_collection/get_data_telemetry/get_data_telemetry.ts b/src/plugins/telemetry/server/telemetry_collection/get_data_telemetry/get_data_telemetry.ts index 3f98ead25ff4e..174e200a6c996 100644 --- a/src/plugins/telemetry/server/telemetry_collection/get_data_telemetry/get_data_telemetry.ts +++ b/src/plugins/telemetry/server/telemetry_collection/get_data_telemetry/get_data_telemetry.ts @@ -228,6 +228,7 @@ export async function getDataTelemetry(esClient: ElasticsearchClient) { const indices = indexNames.map((name) => { const baseIndexInfo = { name, + // @ts-expect-error 'properties' does not exist on type 'MappingMatchOnlyTextProperty' isECS: !!indexMappings[name]?.mappings?.properties?.ecs?.properties?.version?.type, shipper: indexMappings[name]?.mappings?._meta?.beat, packageName: indexMappings[name]?.mappings?._meta?.package?.name, diff --git a/src/plugins/vis_default_editor/public/components/__snapshots__/agg_group.test.tsx.snap b/src/plugins/vis_default_editor/public/components/__snapshots__/agg_group.test.tsx.snap index c9c7b91e8fc13..d2645f9dd54db 100644 --- a/src/plugins/vis_default_editor/public/components/__snapshots__/agg_group.test.tsx.snap +++ b/src/plugins/vis_default_editor/public/components/__snapshots__/agg_group.test.tsx.snap @@ -19,6 +19,7 @@ exports[`DefaultEditorAgg component should init with the default set of props 1` size="s" /> )} - + <> {group.map((agg: IAggConfig, index: number) => ( = (vis, params) centralMajorMode, ...(centralMajorMode === 'custom' ? { labelMinor: style.subText } : {}), percentageMode, + respectRanges: true, commonLabel: schemas.metric?.[0]?.label, }); diff --git a/src/plugins/vis_types/vega/public/vega_view/vega_map_view/view.test.ts b/src/plugins/vis_types/vega/public/vega_view/vega_map_view/view.test.ts index a09e92fe7dd80..c0453f470de4b 100644 --- a/src/plugins/vis_types/vega/public/vega_view/vega_map_view/view.test.ts +++ b/src/plugins/vis_types/vega/public/vega_view/vega_map_view/view.test.ts @@ -31,30 +31,43 @@ import { initVegaLayer, initTmsRasterLayer } from './layers'; import { mapboxgl } from '@kbn/mapbox-gl'; -jest.mock('@kbn/mapbox-gl', () => ({ - mapboxgl: { - setRTLTextPlugin: jest.fn(), - Map: jest.fn().mockImplementation(() => ({ - getLayer: () => '', - removeLayer: jest.fn(), - once: (eventName: string, handler: Function) => handler(), - remove: () => jest.fn(), - getCanvas: () => ({ clientWidth: 512, clientHeight: 512 }), - getCenter: () => ({ lat: 20, lng: 20 }), - getZoom: () => 3, - addControl: jest.fn(), - addLayer: jest.fn(), - dragRotate: { - disable: jest.fn(), +jest.mock('@kbn/mapbox-gl', () => { + const zoomTo = jest.fn(); + const setCenter = jest.fn(); + const fitBounds = jest.fn(); + return { + mapboxgl: { + mocks: { + zoomTo, + setCenter, + fitBounds, }, - touchZoomRotate: { - disableRotation: jest.fn(), - }, - })), - MapboxOptions: jest.fn(), - NavigationControl: jest.fn(), - }, -})); + setRTLTextPlugin: jest.fn(), + Map: jest.fn().mockImplementation(() => ({ + getLayer: () => '', + removeLayer: jest.fn(), + once: (eventName: string, handler: Function) => handler(), + remove: () => jest.fn(), + getCanvas: () => ({ clientWidth: 512, clientHeight: 512 }), + getCenter: () => ({ lat: 20, lng: 20 }), + getZoom: () => 3, + zoomTo, + setCenter, + fitBounds, + addControl: jest.fn(), + addLayer: jest.fn(), + dragRotate: { + disable: jest.fn(), + }, + touchZoomRotate: { + disableRotation: jest.fn(), + }, + })), + MapboxOptions: jest.fn(), + NavigationControl: jest.fn(), + }, + }; +}); jest.mock('./layers', () => ({ initVegaLayer: jest.fn(), @@ -206,5 +219,57 @@ describe('vega_map_view/view', () => { expect(mapboxgl.NavigationControl).toHaveBeenCalled(); }); + + describe('setMapView', () => { + let vegaMapView: VegaMapView; + beforeEach(async () => { + vegaMapView = await createVegaMapView(); + await vegaMapView.init(); + mapboxgl.mocks.setCenter.mockReset(); + mapboxgl.mocks.zoomTo.mockReset(); + mapboxgl.mocks.fitBounds.mockReset(); + }); + + test('should set just lat lng', async () => { + vegaMapView.setMapViewHandler(1, 2); + expect(mapboxgl.mocks.setCenter).toHaveBeenCalledWith({ lat: 1, lng: 2 }); + }); + + test('should set just lng lat via array', async () => { + vegaMapView.setMapViewHandler([1, 2]); + expect(mapboxgl.mocks.setCenter).toHaveBeenCalledWith({ lat: 2, lng: 1 }); + }); + + test('should set lat lng and zoom', async () => { + vegaMapView.setMapViewHandler(1, 2, 6); + expect(mapboxgl.mocks.setCenter).toHaveBeenCalledWith({ lat: 1, lng: 2 }); + expect(mapboxgl.mocks.zoomTo).toHaveBeenCalledWith(6); + }); + + test('should set bounds', async () => { + vegaMapView.setMapViewHandler([ + [1, 2], + [6, 7], + ]); + expect(mapboxgl.mocks.fitBounds).toHaveBeenCalledWith([ + { lat: 2, lng: 1 }, + { lat: 7, lng: 6 }, + ]); + }); + + test('should throw on invalid input', async () => { + expect(() => { + vegaMapView.setMapViewHandler(undefined); + }).toThrow(); + + expect(() => { + vegaMapView.setMapViewHandler(['a', 'b'] as unknown as [number, number]); + }).toThrow(); + + expect(() => { + vegaMapView.setMapViewHandler([1, 2, 3, 4, 5] as unknown as [number, number]); + }).toThrow(); + }); + }); }); }); diff --git a/src/plugins/vis_types/vega/public/vega_view/vega_map_view/view.ts b/src/plugins/vis_types/vega/public/vega_view/vega_map_view/view.ts index fe8d85a011442..2050e0271d03f 100644 --- a/src/plugins/vis_types/vega/public/vega_view/vega_map_view/view.ts +++ b/src/plugins/vis_types/vega/public/vega_view/vega_map_view/view.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { Map, Style, MapboxOptions } from '@kbn/mapbox-gl'; -import { View, parse } from 'vega'; +import { View, parse, expressionFunction } from 'vega'; import { mapboxgl } from '@kbn/mapbox-gl'; @@ -45,6 +45,30 @@ async function updateVegaView(mapBoxInstance: Map, vegaView: View) { } } +type SetMapViewArgs = + | [number, number, number] + | [number, number] + | [[number, number], number] + | [[number, number]] + | [[[number, number], [number, number]]]; + +expressionFunction( + 'setMapView', + function handlerFwd( + this: { + context: { dataflow: { _kibanaView: VegaMapView; runAfter: (fn: () => void) => void } }; + }, + ...args: SetMapViewArgs + ) { + const view = this.context.dataflow; + if (!('setMapViewHandler' in view._kibanaView)) { + // not a map view, don't do anything + return; + } + view.runAfter(() => view._kibanaView.setMapViewHandler(...args)); + } +); + export class VegaMapView extends VegaBaseView { private mapBoxInstance?: Map; @@ -200,4 +224,86 @@ export class VegaMapView extends VegaBaseView { protected async onViewContainerResize() { this.mapBoxInstance?.resize(); } + + public setMapViewHandler(...args: SetMapViewArgs) { + if (!this.mapBoxInstance) { + return; + } + function throwError() { + throw new Error( + i18n.translate('visTypeVega.visualization.setMapViewErrorMessage', { + defaultMessage: + 'Unexpected setMapView() parameters. It could be called with a bounding box setMapView([[longitude1,latitude1],[longitude2,latitude2]]), or it could be the center point setMapView([longitude, latitude], optional_zoom), or it can be used as setMapView(latitude, longitude, optional_zoom)', + }) + ); + } + + function checkArray( + val: number | [number, number] | [[number, number], [number, number]] + ): [number, number] { + if ( + !Array.isArray(val) || + val.length !== 2 || + typeof val[0] !== 'number' || + typeof val[1] !== 'number' + ) { + throwError(); + } + return val as [number, number]; + } + + let lng: number | undefined; + let lat: number | undefined; + let zoom: number | undefined; + switch (args.length) { + default: + throwError(); + break; + case 1: { + const arg = args[0]; + if ( + Array.isArray(arg) && + arg.length === 2 && + Array.isArray(arg[0]) && + Array.isArray(arg[1]) + ) { + // called with a bounding box, need to reverse order + const [lng1, lat1] = checkArray(arg[0]); + const [lng2, lat2] = checkArray(arg[1]); + this.mapBoxInstance.fitBounds([ + { lat: lat1, lng: lng1 }, + { lat: lat2, lng: lng2 }, + ]); + } else { + // called with a center point and no zoom + [lng, lat] = checkArray(arg); + } + break; + } + case 2: + if (Array.isArray(args[0])) { + [lng, lat] = checkArray(args[0]); + zoom = args[1]; + } else { + [lat, lng] = args; + } + break; + case 3: + [lat, lng, zoom] = args; + break; + } + + if (lat !== undefined && lng !== undefined) { + if (typeof lat !== 'number' || typeof lng !== 'number') { + throwError(); + } + if (zoom !== undefined && typeof zoom !== 'number') { + throwError(); + } + this.mapBoxInstance.setCenter({ lat, lng }); + if (zoom !== undefined) { + this.mapBoxInstance.zoomTo(zoom); + } + } + } } diff --git a/test/common/services/index_patterns.ts b/test/common/services/index_patterns.ts index 549137c79e9a2..1e7e998ae24d9 100644 --- a/test/common/services/index_patterns.ts +++ b/test/common/services/index_patterns.ts @@ -16,13 +16,14 @@ export class IndexPatternsService extends FtrService { * Create a new index pattern */ async create( - indexPattern: { title: string }, - { override = false }: { override: boolean } = { override: false } + indexPattern: { title: string; timeFieldName?: string }, + { override = false }: { override: boolean }, + spaceId = '' ): Promise { const response = await this.kibanaServer.request<{ index_pattern: DataViewSpec; }>({ - path: '/api/index_patterns/index_pattern', + path: `${spaceId}/api/index_patterns/index_pattern`, method: 'POST', body: { override, diff --git a/test/functional/apps/dashboard_elements/controls/control_group_settings.ts b/test/functional/apps/dashboard_elements/controls/control_group_settings.ts index ffda165443337..3ca09bba99cea 100644 --- a/test/functional/apps/dashboard_elements/controls/control_group_settings.ts +++ b/test/functional/apps/dashboard_elements/controls/control_group_settings.ts @@ -99,5 +99,33 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await dashboardControls.deleteAllControls(); }); }); + + describe('control group settings flyout closes', async () => { + it('on save', async () => { + await dashboardControls.openControlGroupSettingsFlyout(); + await dashboard.saveDashboard('Test Control Group Settings', { + saveAsNew: false, + exitFromEditMode: false, + }); + await testSubjects.missingOrFail('control-group-settings-flyout'); + }); + + it('on view mode change', async () => { + await dashboardControls.openControlGroupSettingsFlyout(); + await dashboard.clickCancelOutOfEditMode(); + await testSubjects.missingOrFail('control-group-settings-flyout'); + }); + + it('when navigating away from dashboard', async () => { + await dashboard.switchToEditMode(); + await dashboardControls.openControlGroupSettingsFlyout(); + await dashboard.gotoDashboardLandingPage(); + await testSubjects.missingOrFail('control-group-settings-flyout'); + }); + + after(async () => { + await dashboard.loadSavedDashboard('Test Control Group Settings'); + }); + }); }); } diff --git a/test/functional/apps/dashboard_elements/controls/range_slider.ts b/test/functional/apps/dashboard_elements/controls/range_slider.ts index b2132e1919bd6..5f9183140f999 100644 --- a/test/functional/apps/dashboard_elements/controls/range_slider.ts +++ b/test/functional/apps/dashboard_elements/controls/range_slider.ts @@ -66,7 +66,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe('create and edit', async () => { it('can create a new range slider control from a blank state', async () => { - await dashboardControls.createRangeSliderControl({ fieldName: 'bytes', width: 'small' }); + await dashboardControls.createRangeSliderControl({ + dataViewTitle: 'logstash-*', + fieldName: 'bytes', + width: 'small', + }); expect(await dashboardControls.getControlsCount()).to.be(1); }); @@ -184,7 +188,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('disables inputs when no data available', async () => { - await dashboardControls.createRangeSliderControl({ fieldName: 'bytes', width: 'small' }); + await dashboardControls.createRangeSliderControl({ + dataViewTitle: 'logstash-*', + fieldName: 'bytes', + width: 'small', + }); const secondId = (await dashboardControls.getAllControlIds())[1]; expect( await dashboardControls.rangeSliderGetLowerBoundAttribute(secondId, 'disabled') diff --git a/test/functional/page_objects/visualize_page.ts b/test/functional/page_objects/visualize_page.ts index 06d34094e614c..af4bf6fc40299 100644 --- a/test/functional/page_objects/visualize_page.ts +++ b/test/functional/page_objects/visualize_page.ts @@ -47,6 +47,9 @@ export class VisualizePageObject extends FtrService { LOGSTASH_NON_TIME_BASED: 'logstash*', }; + remoteEsPrefix = 'ftr-remote:'; + defaultIndexString = 'logstash-*'; + public async initTests(isNewLibrary = false) { await this.kibanaServer.savedObjects.clean({ types: ['visualization'] }); await this.kibanaServer.importExport.load( @@ -54,7 +57,7 @@ export class VisualizePageObject extends FtrService { ); await this.kibanaServer.uiSettings.replace({ - defaultIndex: 'logstash-*', + defaultIndex: this.defaultIndexString, [FORMATS_UI_SETTINGS.FORMAT_BYTES_DEFAULT_PATTERN]: '0,0.[000]b', 'visualization:visualize:legacyPieChartsLibrary': !isNewLibrary, 'visualization:visualize:legacyHeatmapChartsLibrary': !isNewLibrary, diff --git a/test/package/roles/assert_kibana_available/tasks/main.yml b/test/package/roles/assert_kibana_available/tasks/main.yml index db3805f7ad7fb..29b82aa7b39f8 100644 --- a/test/package/roles/assert_kibana_available/tasks/main.yml +++ b/test/package/roles/assert_kibana_available/tasks/main.yml @@ -4,6 +4,6 @@ status_code: [200, 401] timeout: 120 register: result - until: result.status != 503 + until: result.status not in [503, -1] retries: 3 delay: 30 diff --git a/versions.json b/versions.json new file mode 100644 index 0000000000000..6dfe620c9fd7e --- /dev/null +++ b/versions.json @@ -0,0 +1,27 @@ +{ + "notice": "This file is not maintained outside of the main branch and should only be used for tooling.", + "versions": [ + { + "version": "8.3.0", + "branch": "main", + "currentMajor": true, + "currentMinor": true + }, + { + "version": "8.2.0", + "branch": "8.2", + "currentMajor": true, + "previousMinor": true + }, + { + "version": "8.1.3", + "branch": "8.1", + "currentMajor": true + }, + { + "version": "7.17.3", + "branch": "7.17", + "previousMajor": true + } + ] +} diff --git a/x-pack/examples/alerting_example/README.md b/x-pack/examples/alerting_example/README.md index bf963c64586d3..f9e2f6009b12f 100644 --- a/x-pack/examples/alerting_example/README.md +++ b/x-pack/examples/alerting_example/README.md @@ -1,5 +1,5 @@ ## Alerting Example -This example plugin shows you how to create a custom Alert Type, create alerts based on that type and corresponding UI for viewing the details of all the alerts within the custom plugin. +This example plugin shows you how to create a custom Rule Type, create rules based on that type and corresponding UI for viewing the details of all the rules within the custom plugin. To run this example, use the command `yarn start --run-examples`. \ No newline at end of file diff --git a/x-pack/examples/alerting_example/common/constants.ts b/x-pack/examples/alerting_example/common/constants.ts index 14342e3381531..83cb074328f42 100644 --- a/x-pack/examples/alerting_example/common/constants.ts +++ b/x-pack/examples/alerting_example/common/constants.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { AlertTypeParams } from '../../../plugins/alerting/common'; +import { RuleTypeParams } from '../../../plugins/alerting/common'; export const ALERTING_EXAMPLE_APP_ID = 'AlertingExample'; @@ -16,7 +16,7 @@ export interface AlwaysFiringThresholds { medium?: number; large?: number; } -export interface AlwaysFiringParams extends AlertTypeParams { +export interface AlwaysFiringParams extends RuleTypeParams { instances?: number; thresholds?: AlwaysFiringThresholds; } diff --git a/x-pack/examples/alerting_example/public/alert_types/astros.tsx b/x-pack/examples/alerting_example/public/alert_types/astros.tsx index 63ffa48c94399..d7fe322a083b1 100644 --- a/x-pack/examples/alerting_example/public/alert_types/astros.tsx +++ b/x-pack/examples/alerting_example/public/alert_types/astros.tsx @@ -20,7 +20,7 @@ import { import { i18n } from '@kbn/i18n'; import { flatten } from 'lodash'; import { ALERTING_EXAMPLE_APP_ID, Craft, Operator } from '../../common/constants'; -import { SanitizedAlert } from '../../../../plugins/alerting/common'; +import { SanitizedRule } from '../../../../plugins/alerting/common'; import { PluginSetupContract as AlertingSetup } from '../../../../plugins/alerting/public'; import { RuleTypeModel } from '../../../../plugins/triggers_actions_ui/public'; @@ -28,7 +28,7 @@ export function registerNavigation(alerting: AlertingSetup) { alerting.registerNavigation( ALERTING_EXAMPLE_APP_ID, 'example.people-in-space', - (alert: SanitizedAlert) => `/astros/${alert.id}` + (rule: SanitizedRule) => `/astros/${rule.id}` ); } @@ -49,8 +49,8 @@ export function getAlertType(): RuleTypeModel { iconClass: 'globe', documentationUrl: null, ruleParamsExpression: PeopleinSpaceExpression, - validate: (alertParams: PeopleinSpaceParamsProps['ruleParams']) => { - const { outerSpaceCapacity, craft, op } = alertParams; + validate: (ruleParams: PeopleinSpaceParamsProps['ruleParams']) => { + const { outerSpaceCapacity, craft, op } = ruleParams; const validationResult = { errors: { diff --git a/x-pack/examples/alerting_example/public/alert_types/index.ts b/x-pack/examples/alerting_example/public/alert_types/index.ts index 93c59c55bf3ce..5b62fe138c018 100644 --- a/x-pack/examples/alerting_example/public/alert_types/index.ts +++ b/x-pack/examples/alerting_example/public/alert_types/index.ts @@ -7,14 +7,14 @@ import { registerNavigation as registerPeopleInSpaceNavigation } from './astros'; import { ALERTING_EXAMPLE_APP_ID } from '../../common/constants'; -import { SanitizedAlert } from '../../../../plugins/alerting/common'; +import { SanitizedRule } from '../../../../plugins/alerting/common'; import { PluginSetupContract as AlertingSetup } from '../../../../plugins/alerting/public'; export function registerNavigation(alerting: AlertingSetup) { // register default navigation alerting.registerDefaultNavigation( ALERTING_EXAMPLE_APP_ID, - (alert: SanitizedAlert) => `/rule/${alert.id}` + (rule: SanitizedRule) => `/rule/${rule.id}` ); registerPeopleInSpaceNavigation(alerting); diff --git a/x-pack/plugins/alerting/README.md b/x-pack/plugins/alerting/README.md index 6dde7de84aab4..c77e600df5f0e 100644 --- a/x-pack/plugins/alerting/README.md +++ b/x-pack/plugins/alerting/README.md @@ -224,28 +224,28 @@ This example rule type receives server and threshold as parameters. It will read ```typescript import { schema } from '@kbn/config-schema'; -import { RuleType, AlertExecutorOptions } from '../../../alerting/server'; +import { RuleType, RuleExecutorOptions } from '../../../alerting/server'; // These type names will eventually be updated to reflect the new terminology import { - AlertTypeParams, - AlertTypeState, + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, } from '../../../alerting/common'; ... -interface MyRuleTypeParams extends AlertTypeParams { +interface MyRuleTypeParams extends RuleTypeParams { server: string; threshold: number; testSavedObjectId: string; } -interface MyRuleTypeExtractedParams extends AlertTypeParams { +interface MyRuleTypeExtractedParams extends RuleTypeParams { server: string; threshold: number; testSavedObjectRef: string; } -interface MyRuleTypeState extends AlertTypeState { +interface MyRuleTypeState extends RuleTypeState { lastChecked: Date; } @@ -306,7 +306,7 @@ const myRuleType: RuleType< params, state, rule, - }: AlertExecutorOptions< + }: RuleExecutorOptions< MyRuleTypeParams, MyRuleTypeExtractedParams, MyRuleTypeState, @@ -677,8 +677,8 @@ The signature of such a handler is: ```typescript type AlertNavigationHandler = ( - alert: SanitizedAlert, - alertType: RuleType + rule: SanitizedRule, + ruleType: RuleType ) => string; ``` @@ -692,7 +692,7 @@ The _registerNavigation_ api allows you to register a handler for a specific ale alerting.registerNavigation( 'my-application-id', 'my-application-id.my-rule-type', - (alert: SanitizedAlert) => `/my-unique-rule/${rule.id}` + (rule: SanitizedRule) => `/my-unique-rule/${rule.id}` ); ``` @@ -708,7 +708,7 @@ The _registerDefaultNavigation_ API allows you to register a handler for any rul ``` alerting.registerDefaultNavigation( 'my-application-id', - (alert: SanitizedAlert) => `/my-other-rules/${rule.id}` + (rule: SanitizedRule) => `/my-other-rules/${rule.id}` ); ``` diff --git a/x-pack/plugins/alerting/common/execution_log_types.ts b/x-pack/plugins/alerting/common/execution_log_types.ts index e5047aae9f154..df74c46ad9b43 100644 --- a/x-pack/plugins/alerting/common/execution_log_types.ts +++ b/x-pack/plugins/alerting/common/execution_log_types.ts @@ -36,7 +36,21 @@ export interface IExecutionLog { timed_out: boolean; } +export interface IExecutionErrors { + id: string; + timestamp: string; + type: string; + message: string; +} + +export interface IExecutionErrorsResult { + totalErrors: number; + errors: IExecutionErrors[]; +} + export interface IExecutionLogResult { total: number; data: IExecutionLog[]; } + +export type IExecutionLogWithErrorsResult = IExecutionLogResult & IExecutionErrorsResult; diff --git a/x-pack/plugins/alerting/common/index.ts b/x-pack/plugins/alerting/common/index.ts index 732d9061e58da..f056ad7e0e4b7 100644 --- a/x-pack/plugins/alerting/common/index.ts +++ b/x-pack/plugins/alerting/common/index.ts @@ -8,17 +8,17 @@ // TODO: https://github.com/elastic/kibana/issues/110895 /* eslint-disable @kbn/eslint/no_export_all */ -import { AlertsHealth } from './alert'; +import { AlertsHealth } from './rule'; -export * from './alert'; +export * from './rule'; export * from './rule_type'; -export * from './alert_instance'; export * from './rule_task_instance'; -export * from './alert_navigation'; +export * from './rule_navigation'; +export * from './alert_instance'; export * from './alert_summary'; export * from './builtin_action_groups'; export * from './disabled_action_groups'; -export * from './alert_notify_when_type'; +export * from './rule_notify_when_type'; export * from './parse_duration'; export * from './execution_log_types'; diff --git a/x-pack/plugins/alerting/common/alert.ts b/x-pack/plugins/alerting/common/rule.ts similarity index 72% rename from x-pack/plugins/alerting/common/alert.ts rename to x-pack/plugins/alerting/common/rule.ts index 9e48acd523d22..d6904c7164600 100644 --- a/x-pack/plugins/alerting/common/alert.ts +++ b/x-pack/plugins/alerting/common/rule.ts @@ -11,10 +11,10 @@ import { SavedObjectsResolveResponse, } from 'kibana/server'; import { RuleExecutionMetrics } from '.'; -import { AlertNotifyWhenType } from './alert_notify_when_type'; +import { RuleNotifyWhenType } from './rule_notify_when_type'; -export type AlertTypeState = Record; -export type AlertTypeParams = Record; +export type RuleTypeState = Record; +export type RuleTypeParams = Record; export interface IntervalSchedule extends SavedObjectAttributes { interval: string; @@ -22,7 +22,7 @@ export interface IntervalSchedule extends SavedObjectAttributes { // for the `typeof ThingValues[number]` types below, become string types that // only accept the values in the associated string arrays -export const AlertExecutionStatusValues = [ +export const RuleExecutionStatusValues = [ 'ok', 'active', 'error', @@ -30,9 +30,9 @@ export const AlertExecutionStatusValues = [ 'unknown', 'warning', ] as const; -export type AlertExecutionStatuses = typeof AlertExecutionStatusValues[number]; +export type RuleExecutionStatuses = typeof RuleExecutionStatusValues[number]; -export enum AlertExecutionStatusErrorReasons { +export enum RuleExecutionStatusErrorReasons { Read = 'read', Decrypt = 'decrypt', Execute = 'execute', @@ -42,38 +42,38 @@ export enum AlertExecutionStatusErrorReasons { Disabled = 'disabled', } -export enum AlertExecutionStatusWarningReasons { +export enum RuleExecutionStatusWarningReasons { MAX_EXECUTABLE_ACTIONS = 'maxExecutableActions', } -export interface AlertExecutionStatus { - status: AlertExecutionStatuses; +export interface RuleExecutionStatus { + status: RuleExecutionStatuses; numberOfTriggeredActions?: number; numberOfScheduledActions?: number; metrics?: RuleExecutionMetrics; lastExecutionDate: Date; lastDuration?: number; error?: { - reason: AlertExecutionStatusErrorReasons; + reason: RuleExecutionStatusErrorReasons; message: string; }; warning?: { - reason: AlertExecutionStatusWarningReasons; + reason: RuleExecutionStatusWarningReasons; message: string; }; } -export type AlertActionParams = SavedObjectAttributes; -export type AlertActionParam = SavedObjectAttribute; +export type RuleActionParams = SavedObjectAttributes; +export type RuleActionParam = SavedObjectAttribute; -export interface AlertAction { +export interface RuleAction { group: string; id: string; actionTypeId: string; - params: AlertActionParams; + params: RuleActionParams; } -export interface AlertAggregations { +export interface RuleAggregations { alertExecutionStatus: { [status: string]: number }; ruleEnabledStatus: { enabled: number; disabled: number }; ruleMutedStatus: { muted: number; unmuted: number }; @@ -87,15 +87,15 @@ export interface MappedParamsProperties { export type MappedParams = SavedObjectAttributes & MappedParamsProperties; -export interface Alert { +export interface Rule { id: string; enabled: boolean; name: string; tags: string[]; - alertTypeId: string; + alertTypeId: string; // this is persisted in the Rule saved object so we would need a migration to change this to ruleTypeId consumer: string; schedule: IntervalSchedule; - actions: AlertAction[]; + actions: RuleAction[]; params: Params; mapped_params?: MappedParams; scheduledTaskId?: string; @@ -106,20 +106,20 @@ export interface Alert { apiKey: string | null; apiKeyOwner: string | null; throttle: string | null; - notifyWhen: AlertNotifyWhenType | null; + notifyWhen: RuleNotifyWhenType | null; muteAll: boolean; mutedInstanceIds: string[]; - executionStatus: AlertExecutionStatus; + executionStatus: RuleExecutionStatus; monitoring?: RuleMonitoring; snoozeEndTime?: Date | null; // Remove ? when this parameter is made available in the public API } -export type SanitizedAlert = Omit, 'apiKey'>; -export type ResolvedSanitizedRule = SanitizedAlert & +export type SanitizedRule = Omit, 'apiKey'>; +export type ResolvedSanitizedRule = SanitizedRule & Omit; export type SanitizedRuleConfig = Pick< - SanitizedAlert, + SanitizedRule, | 'name' | 'tags' | 'consumer' diff --git a/x-pack/plugins/alerting/common/alert_navigation.ts b/x-pack/plugins/alerting/common/rule_navigation.ts similarity index 69% rename from x-pack/plugins/alerting/common/alert_navigation.ts rename to x-pack/plugins/alerting/common/rule_navigation.ts index 6ac21232b51a5..abc109a31c432 100644 --- a/x-pack/plugins/alerting/common/alert_navigation.ts +++ b/x-pack/plugins/alerting/common/rule_navigation.ts @@ -6,10 +6,10 @@ */ import { JsonObject } from '@kbn/utility-types'; -export interface AlertUrlNavigation { +export interface RuleUrlNavigation { path: string; } -export interface AlertStateNavigation { +export interface RuleStateNavigation { state: JsonObject; } -export type AlertNavigation = AlertUrlNavigation | AlertStateNavigation; +export type RuleNavigation = RuleUrlNavigation | RuleStateNavigation; diff --git a/x-pack/plugins/alerting/common/alert_notify_when_type.test.ts b/x-pack/plugins/alerting/common/rule_notify_when_type.test.ts similarity index 83% rename from x-pack/plugins/alerting/common/alert_notify_when_type.test.ts rename to x-pack/plugins/alerting/common/rule_notify_when_type.test.ts index 3bfaf0ea7cc7e..dca2296aaa7e5 100644 --- a/x-pack/plugins/alerting/common/alert_notify_when_type.test.ts +++ b/x-pack/plugins/alerting/common/rule_notify_when_type.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { validateNotifyWhenType } from './alert_notify_when_type'; +import { validateNotifyWhenType } from './rule_notify_when_type'; test('validates valid notify when type', () => { expect(validateNotifyWhenType('onActionGroupChange')).toBeUndefined(); @@ -14,6 +14,6 @@ test('validates valid notify when type', () => { }); test('returns error string if input is not valid notify when type', () => { expect(validateNotifyWhenType('randomString')).toEqual( - `string is not a valid AlertNotifyWhenType: randomString` + `string is not a valid RuleNotifyWhenType: randomString` ); }); diff --git a/x-pack/plugins/alerting/common/alert_notify_when_type.ts b/x-pack/plugins/alerting/common/rule_notify_when_type.ts similarity index 61% rename from x-pack/plugins/alerting/common/alert_notify_when_type.ts rename to x-pack/plugins/alerting/common/rule_notify_when_type.ts index fe7ca715e2bfb..700c87acdbdbb 100644 --- a/x-pack/plugins/alerting/common/alert_notify_when_type.ts +++ b/x-pack/plugins/alerting/common/rule_notify_when_type.ts @@ -5,16 +5,16 @@ * 2.0. */ -const AlertNotifyWhenTypeValues = [ +const RuleNotifyWhenTypeValues = [ 'onActionGroupChange', 'onActiveAlert', 'onThrottleInterval', ] as const; -export type AlertNotifyWhenType = typeof AlertNotifyWhenTypeValues[number]; +export type RuleNotifyWhenType = typeof RuleNotifyWhenTypeValues[number]; export function validateNotifyWhenType(notifyWhen: string) { - if (AlertNotifyWhenTypeValues.includes(notifyWhen as AlertNotifyWhenType)) { + if (RuleNotifyWhenTypeValues.includes(notifyWhen as RuleNotifyWhenType)) { return; } - return `string is not a valid AlertNotifyWhenType: ${notifyWhen}`; + return `string is not a valid RuleNotifyWhenType: ${notifyWhen}`; } diff --git a/x-pack/plugins/alerting/common/rule_task_instance.ts b/x-pack/plugins/alerting/common/rule_task_instance.ts index 54483babdfdd3..01d97efd57b15 100644 --- a/x-pack/plugins/alerting/common/rule_task_instance.ts +++ b/x-pack/plugins/alerting/common/rule_task_instance.ts @@ -8,7 +8,7 @@ import * as t from 'io-ts'; import { rawAlertInstance } from './alert_instance'; import { DateFromString } from './date_from_string'; -import { IntervalSchedule, RuleMonitoring } from './alert'; +import { IntervalSchedule, RuleMonitoring } from './rule'; export const ruleStateSchema = t.partial({ alertTypeState: t.record(t.string, t.unknown), diff --git a/x-pack/plugins/alerting/kibana.json b/x-pack/plugins/alerting/kibana.json index 6bfc420a89e52..fc45f22d9c9a6 100644 --- a/x-pack/plugins/alerting/kibana.json +++ b/x-pack/plugins/alerting/kibana.json @@ -11,6 +11,7 @@ "configPath": ["xpack", "alerting"], "requiredPlugins": [ "actions", + "data", "encryptedSavedObjects", "eventLog", "features", diff --git a/x-pack/plugins/alerting/public/alert_api.test.ts b/x-pack/plugins/alerting/public/alert_api.test.ts index 8e6331a29c1c5..eae4bc72a02e8 100644 --- a/x-pack/plugins/alerting/public/alert_api.test.ts +++ b/x-pack/plugins/alerting/public/alert_api.test.ts @@ -5,19 +5,19 @@ * 2.0. */ -import { Alert, RuleType } from '../common'; +import { Rule, RuleType } from '../common'; import { httpServiceMock } from '../../../../src/core/public/mocks'; -import { loadAlert, loadAlertType, loadAlertTypes } from './alert_api'; +import { loadRule, loadRuleType, loadRuleTypes } from './alert_api'; const http = httpServiceMock.createStartContract(); beforeEach(() => jest.resetAllMocks()); -describe('loadAlertTypes', () => { - test('should call get alert types API', async () => { +describe('loadRuleTypes', () => { + test('should call get rule types API', async () => { http.get.mockResolvedValueOnce([getApiRuleType()]); - const result = await loadAlertTypes({ http }); + const result = await loadRuleTypes({ http }); expect(result).toMatchInlineSnapshot(` Array [ Object { @@ -77,22 +77,22 @@ describe('loadAlertTypes', () => { }); }); -describe('loadAlertType', () => { - test('should call get alert types API', async () => { +describe('loadRuleType', () => { + test('should call get rule types API', async () => { const ruleType = getApiRuleType(); http.get.mockResolvedValueOnce([ruleType]); - const result = await loadAlertType({ http, id: ruleType.id }); + const result = await loadRuleType({ http, id: ruleType.id }); expect(result).toEqual(getRuleType()); }); }); -describe('loadAlert', () => { +describe('loadRule', () => { test('should call get API with base parameters', async () => { const apiRule = getApiRule(); http.get.mockResolvedValueOnce(apiRule); - const res = await loadAlert({ http, alertId: apiRule.id }); + const res = await loadRule({ http, ruleId: apiRule.id }); expect(res).toEqual(getRule()); const fixedDate = new Date('2021-12-11T16:59:50.152Z'); @@ -292,7 +292,7 @@ function getApiRule() { }; } -function getRule(): Alert<{ x: number }> { +function getRule(): Rule<{ x: number }> { return { id: '3d534c70-582b-11ec-8995-2b1578a3bc5d', notifyWhen: 'onActiveAlert', diff --git a/x-pack/plugins/alerting/public/alert_api.ts b/x-pack/plugins/alerting/public/alert_api.ts index e64a236d5302b..93ea8c79bdd34 100644 --- a/x-pack/plugins/alerting/public/alert_api.ts +++ b/x-pack/plugins/alerting/public/alert_api.ts @@ -7,35 +7,35 @@ import { HttpSetup } from 'kibana/public'; import { BASE_ALERTING_API_PATH, INTERNAL_BASE_ALERTING_API_PATH } from '../common'; -import type { Alert, RuleType } from '../common'; +import type { Rule, RuleType } from '../common'; import { AsApiContract } from '../../actions/common'; -import { transformAlert, transformRuleType, ApiAlert } from './lib/common_transformations'; +import { transformRule, transformRuleType, ApiRule } from './lib/common_transformations'; -export async function loadAlertTypes({ http }: { http: HttpSetup }): Promise { +export async function loadRuleTypes({ http }: { http: HttpSetup }): Promise { const res = await http.get>>( `${BASE_ALERTING_API_PATH}/rule_types` ); return res.map((ruleType) => transformRuleType(ruleType)); } -export async function loadAlertType({ +export async function loadRuleType({ http, id, }: { http: HttpSetup; id: RuleType['id']; }): Promise { - const ruleTypes = await loadAlertTypes({ http }); + const ruleTypes = await loadRuleTypes({ http }); return ruleTypes.find((type) => type.id === id); } -export async function loadAlert({ +export async function loadRule({ http, - alertId, + ruleId, }: { http: HttpSetup; - alertId: string; -}): Promise { - const res = await http.get(`${INTERNAL_BASE_ALERTING_API_PATH}/rule/${alertId}`); - return transformAlert(res); + ruleId: string; +}): Promise { + const res = await http.get(`${INTERNAL_BASE_ALERTING_API_PATH}/rule/${ruleId}`); + return transformRule(res); } diff --git a/x-pack/plugins/alerting/public/alert_navigation_registry/alert_navigation_registry.test.ts b/x-pack/plugins/alerting/public/alert_navigation_registry/alert_navigation_registry.test.ts index 0d07b708825cb..204076151614b 100644 --- a/x-pack/plugins/alerting/public/alert_navigation_registry/alert_navigation_registry.test.ts +++ b/x-pack/plugins/alerting/public/alert_navigation_registry/alert_navigation_registry.test.ts @@ -6,12 +6,12 @@ */ import { AlertNavigationRegistry } from './alert_navigation_registry'; -import { RuleType, RecoveredActionGroup, SanitizedAlert } from '../../common'; +import { RuleType, RecoveredActionGroup, SanitizedRule } from '../../common'; import uuid from 'uuid'; beforeEach(() => jest.resetAllMocks()); -const mockAlertType = (id: string): RuleType => ({ +const mockRuleType = (id: string): RuleType => ({ id, name: id, actionGroups: [], @@ -30,33 +30,33 @@ const mockAlertType = (id: string): RuleType => ({ }); describe('AlertNavigationRegistry', () => { - function handler(alert: SanitizedAlert) { + function handler(rule: SanitizedRule) { return {}; } describe('has()', () => { test('returns false for unregistered consumer handlers', () => { const registry = new AlertNavigationRegistry(); - expect(registry.has('siem', mockAlertType(uuid.v4()))).toEqual(false); + expect(registry.has('siem', mockRuleType(uuid.v4()))).toEqual(false); }); - test('returns false for unregistered alert types handlers', () => { + test('returns false for unregistered rule types handlers', () => { const registry = new AlertNavigationRegistry(); - expect(registry.has('siem', mockAlertType('index_threshold'))).toEqual(false); + expect(registry.has('siem', mockRuleType('index_threshold'))).toEqual(false); }); - test('returns true for registered consumer & alert types handlers', () => { + test('returns true for registered consumer & rule types handlers', () => { const registry = new AlertNavigationRegistry(); - const alertType = mockAlertType('index_threshold'); - registry.register('siem', alertType.id, handler); - expect(registry.has('siem', alertType)).toEqual(true); + const ruleType = mockRuleType('index_threshold'); + registry.register('siem', ruleType.id, handler); + expect(registry.has('siem', ruleType)).toEqual(true); }); test('returns true for registered consumer with default handler', () => { const registry = new AlertNavigationRegistry(); - const alertType = mockAlertType('index_threshold'); + const ruleType = mockRuleType('index_threshold'); registry.registerDefault('siem', handler); - expect(registry.has('siem', alertType)).toEqual(true); + expect(registry.has('siem', ruleType)).toEqual(true); }); }); @@ -75,42 +75,42 @@ describe('AlertNavigationRegistry', () => { }); describe('register()', () => { - test('registers a handler by consumer & Alert Type', () => { + test('registers a handler by consumer & Rule Type', () => { const registry = new AlertNavigationRegistry(); - const alertType = mockAlertType('index_threshold'); - registry.register('siem', alertType.id, handler); - expect(registry.has('siem', alertType)).toEqual(true); + const ruleType = mockRuleType('index_threshold'); + registry.register('siem', ruleType.id, handler); + expect(registry.has('siem', ruleType)).toEqual(true); }); test('allows registeration of multiple handlers for the same consumer', () => { const registry = new AlertNavigationRegistry(); - const indexThresholdAlertType = mockAlertType('index_threshold'); + const indexThresholdAlertType = mockRuleType('index_threshold'); registry.register('siem', indexThresholdAlertType.id, handler); expect(registry.has('siem', indexThresholdAlertType)).toEqual(true); - const geoAlertType = mockAlertType('geogrid'); - registry.register('siem', geoAlertType.id, handler); - expect(registry.has('siem', geoAlertType)).toEqual(true); + const geoRuleType = mockRuleType('geogrid'); + registry.register('siem', geoRuleType.id, handler); + expect(registry.has('siem', geoRuleType)).toEqual(true); }); - test('allows registeration of multiple handlers for the same Alert Type', () => { + test('allows registeration of multiple handlers for the same Rule Type', () => { const registry = new AlertNavigationRegistry(); - const indexThresholdAlertType = mockAlertType('geogrid'); - registry.register('siem', indexThresholdAlertType.id, handler); - expect(registry.has('siem', indexThresholdAlertType)).toEqual(true); + const indexThresholdRuleType = mockRuleType('geogrid'); + registry.register('siem', indexThresholdRuleType.id, handler); + expect(registry.has('siem', indexThresholdRuleType)).toEqual(true); - registry.register('apm', indexThresholdAlertType.id, handler); - expect(registry.has('apm', indexThresholdAlertType)).toEqual(true); + registry.register('apm', indexThresholdRuleType.id, handler); + expect(registry.has('apm', indexThresholdRuleType)).toEqual(true); }); test('throws if an existing handler is registered', () => { const registry = new AlertNavigationRegistry(); - const alertType = mockAlertType('index_threshold'); - registry.register('siem', alertType.id, handler); + const ruleType = mockRuleType('index_threshold'); + registry.register('siem', ruleType.id, handler); expect(() => { - registry.register('siem', alertType.id, handler); + registry.register('siem', ruleType.id, handler); }).toThrowErrorMatchingInlineSnapshot( `"Navigation for Alert type \\"index_threshold\\" within \\"siem\\" is already registered."` ); @@ -130,9 +130,9 @@ describe('AlertNavigationRegistry', () => { registry.registerDefault('siem', handler); expect(registry.hasDefaultHandler('siem')).toEqual(true); - const geoAlertType = mockAlertType('geogrid'); - registry.register('siem', geoAlertType.id, handler); - expect(registry.has('siem', geoAlertType)).toEqual(true); + const geoRuleType = mockRuleType('geogrid'); + registry.register('siem', geoRuleType.id, handler); + expect(registry.has('siem', geoRuleType)).toEqual(true); }); test('throws if an existing handler is registered', () => { @@ -147,47 +147,47 @@ describe('AlertNavigationRegistry', () => { }); describe('get()', () => { - test('returns registered handlers by consumer & Alert Type', () => { + test('returns registered handlers by consumer & Rule Type', () => { const registry = new AlertNavigationRegistry(); - function indexThresholdHandler(alert: SanitizedAlert) { + function indexThresholdHandler(rule: SanitizedRule) { return {}; } - const indexThresholdAlertType = mockAlertType('indexThreshold'); - registry.register('siem', indexThresholdAlertType.id, indexThresholdHandler); - expect(registry.get('siem', indexThresholdAlertType)).toEqual(indexThresholdHandler); + const indexThresholdRuleType = mockRuleType('indexThreshold'); + registry.register('siem', indexThresholdRuleType.id, indexThresholdHandler); + expect(registry.get('siem', indexThresholdRuleType)).toEqual(indexThresholdHandler); }); - test('returns default handlers by consumer when there is no handler for requested alert type', () => { + test('returns default handlers by consumer when there is no handler for requested rule type', () => { const registry = new AlertNavigationRegistry(); - function defaultHandler(alert: SanitizedAlert) { + function defaultHandler(rule: SanitizedRule) { return {}; } registry.registerDefault('siem', defaultHandler); - expect(registry.get('siem', mockAlertType('geogrid'))).toEqual(defaultHandler); + expect(registry.get('siem', mockRuleType('geogrid'))).toEqual(defaultHandler); }); - test('returns default handlers by consumer when there are other alert type handler', () => { + test('returns default handlers by consumer when there are other rule type handler', () => { const registry = new AlertNavigationRegistry(); - registry.register('siem', mockAlertType('indexThreshold').id, () => ({})); + registry.register('siem', mockRuleType('indexThreshold').id, () => ({})); - function defaultHandler(alert: SanitizedAlert) { + function defaultHandler(rule: SanitizedRule) { return {}; } registry.registerDefault('siem', defaultHandler); - expect(registry.get('siem', mockAlertType('geogrid'))).toEqual(defaultHandler); + expect(registry.get('siem', mockRuleType('geogrid'))).toEqual(defaultHandler); }); test('throws if a handler isnt registered', () => { const registry = new AlertNavigationRegistry(); - const alertType = mockAlertType('index_threshold'); + const ruleType = mockRuleType('index_threshold'); - expect(() => registry.get('siem', alertType)).toThrowErrorMatchingInlineSnapshot( + expect(() => registry.get('siem', ruleType)).toThrowErrorMatchingInlineSnapshot( `"Navigation for Alert type \\"index_threshold\\" within \\"siem\\" is not registered."` ); }); diff --git a/x-pack/plugins/alerting/public/alert_navigation_registry/types.ts b/x-pack/plugins/alerting/public/alert_navigation_registry/types.ts index ea36d0edd1366..3c7b7aa3c8c06 100644 --- a/x-pack/plugins/alerting/public/alert_navigation_registry/types.ts +++ b/x-pack/plugins/alerting/public/alert_navigation_registry/types.ts @@ -6,7 +6,7 @@ */ import { JsonObject } from '@kbn/utility-types'; -import { SanitizedAlert } from '../../common'; +import { SanitizedRule } from '../../common'; /** * Returns information that can be used to navigate to a specific page to view the given rule. @@ -17,4 +17,4 @@ import { SanitizedAlert } from '../../common'; * originally registered to {@link PluginSetupContract.registerNavigation}. * */ -export type AlertNavigationHandler = (alert: SanitizedAlert) => JsonObject | string; +export type AlertNavigationHandler = (rule: SanitizedRule) => JsonObject | string; 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 00d830bcf7611..51d24538b449e 100644 --- a/x-pack/plugins/alerting/public/lib/common_transformations.test.ts +++ b/x-pack/plugins/alerting/public/lib/common_transformations.test.ts @@ -5,8 +5,8 @@ * 2.0. */ -import { ApiAlert, transformAlert } from './common_transformations'; -import { AlertExecutionStatusErrorReasons } from '../../common'; +import { ApiRule, transformRule } from './common_transformations'; +import { RuleExecutionStatusErrorReasons } from '../../common'; beforeEach(() => jest.resetAllMocks()); @@ -16,8 +16,8 @@ const dateUpdated = new Date(dateFixed - 1000); const dateExecuted = new Date(dateFixed); describe('common_transformations', () => { - test('transformAlert() with all optional fields', () => { - const apiAlert: ApiAlert = { + test('transformRule() with all optional fields', () => { + const apiRule: ApiRule = { id: 'some-id', name: 'some-name', enabled: true, @@ -50,12 +50,12 @@ describe('common_transformations', () => { last_duration: 42, status: 'error', error: { - reason: AlertExecutionStatusErrorReasons.Unknown, + reason: RuleExecutionStatusErrorReasons.Unknown, message: 'this is just a test', }, }, }; - expect(transformAlert(apiAlert)).toMatchInlineSnapshot(` + expect(transformRule(apiRule)).toMatchInlineSnapshot(` Object { "actions": Array [ Object { @@ -120,8 +120,8 @@ describe('common_transformations', () => { `); }); - test('transformAlert() with no optional fields', () => { - const apiAlert: ApiAlert = { + test('transformRule() with no optional fields', () => { + const apiRule: ApiRule = { id: 'some-id', name: 'some-name', enabled: true, @@ -153,7 +153,7 @@ describe('common_transformations', () => { status: 'error', }, }; - expect(transformAlert(apiAlert)).toMatchInlineSnapshot(` + expect(transformRule(apiRule)).toMatchInlineSnapshot(` Object { "actions": Array [ Object { diff --git a/x-pack/plugins/alerting/public/lib/common_transformations.ts b/x-pack/plugins/alerting/public/lib/common_transformations.ts index 4d2d0e3387082..8f1f0c5c72d84 100644 --- a/x-pack/plugins/alerting/public/lib/common_transformations.ts +++ b/x-pack/plugins/alerting/public/lib/common_transformations.ts @@ -4,21 +4,21 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { AlertExecutionStatus, Alert, AlertAction, RuleType } from '../../common'; +import { RuleExecutionStatus, Rule, RuleAction, RuleType } from '../../common'; import { AsApiContract } from '../../../actions/common'; -function transformAction(input: AsApiContract): AlertAction { +function transformAction(input: AsApiContract): RuleAction { const { connector_type_id: actionTypeId, ...rest } = input; return { actionTypeId, ...rest }; } // AsApiContract does not deal with object properties that are dates - the // API version needs to be a string, and the non-API version needs to be a Date -type ApiAlertExecutionStatus = Omit, 'last_execution_date'> & { +type ApiRuleExecutionStatus = Omit, 'last_execution_date'> & { last_execution_date: string; }; -function transformExecutionStatus(input: ApiAlertExecutionStatus): AlertExecutionStatus { +function transformExecutionStatus(input: ApiRuleExecutionStatus): RuleExecutionStatus { const { last_execution_date: lastExecutionDate, last_duration: lastDuration, ...rest } = input; return { lastExecutionDate: new Date(lastExecutionDate), @@ -29,8 +29,8 @@ function transformExecutionStatus(input: ApiAlertExecutionStatus): AlertExecutio // AsApiContract does not deal with object properties that also // need snake -> camel conversion, Dates, are renamed, etc, so we do by hand -export type ApiAlert = Omit< - AsApiContract, +export type ApiRule = Omit< + AsApiContract, | 'execution_status' | 'actions' | 'created_at' @@ -38,15 +38,15 @@ export type ApiAlert = Omit< | 'alert_type_id' | 'muted_instance_ids' > & { - execution_status: ApiAlertExecutionStatus; - actions: Array>; + execution_status: ApiRuleExecutionStatus; + actions: Array>; created_at: string; updated_at: string; rule_type_id: string; muted_alert_ids: string[]; }; -export function transformAlert(input: ApiAlert): Alert { +export function transformRule(input: ApiRule): Rule { const { rule_type_id: alertTypeId, created_by: createdBy, diff --git a/x-pack/plugins/alerting/public/plugin.ts b/x-pack/plugins/alerting/public/plugin.ts index 71fb0c7fe32b2..e1d683d74cc9f 100644 --- a/x-pack/plugins/alerting/public/plugin.ts +++ b/x-pack/plugins/alerting/public/plugin.ts @@ -8,8 +8,8 @@ import { CoreSetup, Plugin, CoreStart } from 'src/core/public'; import { AlertNavigationRegistry, AlertNavigationHandler } from './alert_navigation_registry'; -import { loadAlert, loadAlertType } from './alert_api'; -import { Alert, AlertNavigation } from '../common'; +import { loadRule, loadRuleType } from './alert_api'; +import { Rule, RuleNavigation } from '../common'; export interface PluginSetupContract { /** @@ -18,7 +18,7 @@ export interface PluginSetupContract { * anything with this information, but it can be used by other plugins via the `getNavigation` functionality. Currently * the trigger_actions_ui plugin uses it to expose the link from the generic rule details view in Stack Management. * - * @param applicationId The application id that the user should be navigated to, to view a particular alert in a custom way. + * @param applicationId The application id that the user should be navigated to, to view a particular rule in a custom way. * @param ruleType The rule type that has been registered with Alerting.Server.PluginSetupContract.registerType. If * no such rule with that id exists, a warning is output to the console log. It used to throw an error, but that was temporarily moved * because it was causing flaky test failures with https://github.com/elastic/kibana/issues/59229 and needs to be @@ -39,14 +39,14 @@ export interface PluginSetupContract { * anything with this information, but it can be used by other plugins via the `getNavigation` functionality. Currently * the trigger_actions_ui plugin uses it to expose the link from the generic rule details view in Stack Management. * - * @param applicationId The application id that the user should be navigated to, to view a particular alert in a custom way. + * @param applicationId The application id that the user should be navigated to, to view a particular rule in a custom way. * @param handler The navigation handler should return either a relative URL, or a state object. This information can be used, * in conjunction with the consumer id, to navigate the user to a custom URL to view a rule's details. */ registerDefaultNavigation: (applicationId: string, handler: AlertNavigationHandler) => void; } export interface PluginStartContract { - getNavigation: (alertId: Alert['id']) => Promise; + getNavigation: (ruleId: Rule['id']) => Promise; } export class AlertingPublicPlugin implements Plugin { @@ -75,21 +75,21 @@ export class AlertingPublicPlugin implements Plugin { - const alert = await loadAlert({ http: core.http, alertId }); - const alertType = await loadAlertType({ http: core.http, id: alert.alertTypeId }); + getNavigation: async (ruleId: Rule['id']) => { + const rule = await loadRule({ http: core.http, ruleId }); + const ruleType = await loadRuleType({ http: core.http, id: rule.alertTypeId }); - if (!alertType) { + if (!ruleType) { // eslint-disable-next-line no-console console.log( - `Unable to get navigation for alert type "${alert.alertTypeId}" because it is not registered on the server side.` + `Unable to get navigation for rule type "${rule.alertTypeId}" because it is not registered on the server side.` ); return; } - if (this.alertNavigationRegistry!.has(alert.consumer, alertType)) { - const navigationHandler = this.alertNavigationRegistry!.get(alert.consumer, alertType); - const state = navigationHandler(alert); + if (this.alertNavigationRegistry!.has(rule.consumer, ruleType)) { + const navigationHandler = this.alertNavigationRegistry!.get(rule.consumer, ruleType); + const state = navigationHandler(rule); return typeof state === 'string' ? { path: state } : { state }; } }, diff --git a/x-pack/plugins/alerting/server/health/get_health.test.ts b/x-pack/plugins/alerting/server/health/get_health.test.ts index c31a71138248b..19d528d44e54f 100644 --- a/x-pack/plugins/alerting/server/health/get_health.test.ts +++ b/x-pack/plugins/alerting/server/health/get_health.test.ts @@ -9,13 +9,13 @@ import { savedObjectsRepositoryMock, savedObjectsServiceMock, } from '../../../../../src/core/server/mocks'; -import { AlertExecutionStatusErrorReasons, HealthStatus } from '../types'; +import { RuleExecutionStatusErrorReasons, HealthStatus } from '../types'; import { getAlertingHealthStatus, getHealth } from './get_health'; const savedObjectsRepository = savedObjectsRepositoryMock.create(); describe('getHealth()', () => { - test('return true if some of alerts has a decryption error', async () => { + test('return true if some rules has a decryption error', async () => { const lastExecutionDateError = new Date().toISOString(); const lastExecutionDate = new Date().toISOString(); savedObjectsRepository.find.mockResolvedValueOnce({ @@ -46,7 +46,7 @@ describe('getHealth()', () => { status: 'error', lastExecutionDate: lastExecutionDateError, error: { - reason: AlertExecutionStatusErrorReasons.Decrypt, + reason: RuleExecutionStatusErrorReasons.Decrypt, message: 'Failed decrypt', }, }, @@ -120,7 +120,7 @@ describe('getHealth()', () => { expect(savedObjectsRepository.find).toHaveBeenCalledTimes(4); }); - test('return false if no alerts with a decryption error', async () => { + test('return false if no rules with a decryption error', async () => { const lastExecutionDateError = new Date().toISOString(); const lastExecutionDate = new Date().toISOString(); savedObjectsRepository.find.mockResolvedValueOnce({ @@ -158,7 +158,7 @@ describe('getHealth()', () => { status: 'error', lastExecutionDate: lastExecutionDateError, error: { - reason: AlertExecutionStatusErrorReasons.Execute, + reason: RuleExecutionStatusErrorReasons.Execute, message: 'Failed', }, }, @@ -226,7 +226,7 @@ describe('getHealth()', () => { }); describe('getAlertingHealthStatus()', () => { - test('return the proper framework state if some of alerts has a decryption error', async () => { + test('return the proper framework state if some rules has a decryption error', async () => { const savedObjects = savedObjectsServiceMock.createStartContract(); const lastExecutionDateError = new Date().toISOString(); savedObjectsRepository.find.mockResolvedValueOnce({ @@ -257,7 +257,7 @@ describe('getAlertingHealthStatus()', () => { status: 'error', lastExecutionDate: lastExecutionDateError, error: { - reason: AlertExecutionStatusErrorReasons.Decrypt, + reason: RuleExecutionStatusErrorReasons.Decrypt, message: 'Failed decrypt', }, }, diff --git a/x-pack/plugins/alerting/server/health/get_health.ts b/x-pack/plugins/alerting/server/health/get_health.ts index 09a5922576192..2bf554894917d 100644 --- a/x-pack/plugins/alerting/server/health/get_health.ts +++ b/x-pack/plugins/alerting/server/health/get_health.ts @@ -6,7 +6,7 @@ */ import { ISavedObjectsRepository, SavedObjectsServiceStart } from 'src/core/server'; -import { AlertsHealth, HealthStatus, RawRule, AlertExecutionStatusErrorReasons } from '../types'; +import { AlertsHealth, HealthStatus, RawRule, RuleExecutionStatusErrorReasons } from '../types'; export const getHealth = async ( internalSavedObjectsRepository: ISavedObjectsRepository @@ -27,7 +27,7 @@ export const getHealth = async ( }; const { saved_objects: decryptErrorData } = await internalSavedObjectsRepository.find({ - filter: `alert.attributes.executionStatus.status:error and alert.attributes.executionStatus.error.reason:${AlertExecutionStatusErrorReasons.Decrypt}`, + filter: `alert.attributes.executionStatus.status:error and alert.attributes.executionStatus.error.reason:${RuleExecutionStatusErrorReasons.Decrypt}`, fields: ['executionStatus'], type: 'alert', sortField: 'executionStatus.lastExecutionDate', @@ -45,7 +45,7 @@ export const getHealth = async ( } const { saved_objects: executeErrorData } = await internalSavedObjectsRepository.find({ - filter: `alert.attributes.executionStatus.status:error and alert.attributes.executionStatus.error.reason:${AlertExecutionStatusErrorReasons.Execute}`, + filter: `alert.attributes.executionStatus.status:error and alert.attributes.executionStatus.error.reason:${RuleExecutionStatusErrorReasons.Execute}`, fields: ['executionStatus'], type: 'alert', sortField: 'executionStatus.lastExecutionDate', @@ -63,7 +63,7 @@ export const getHealth = async ( } const { saved_objects: readErrorData } = await internalSavedObjectsRepository.find({ - filter: `alert.attributes.executionStatus.status:error and alert.attributes.executionStatus.error.reason:${AlertExecutionStatusErrorReasons.Read}`, + filter: `alert.attributes.executionStatus.status:error and alert.attributes.executionStatus.error.reason:${RuleExecutionStatusErrorReasons.Read}`, fields: ['executionStatus'], type: 'alert', sortField: 'executionStatus.lastExecutionDate', diff --git a/x-pack/plugins/alerting/server/index.ts b/x-pack/plugins/alerting/server/index.ts index b44df6c3d1c86..f73fb7f964b25 100644 --- a/x-pack/plugins/alerting/server/index.ts +++ b/x-pack/plugins/alerting/server/index.ts @@ -18,12 +18,12 @@ export type { ActionGroup, ActionGroupIdsOf, AlertingPlugin, - AlertExecutorOptions, - AlertActionParams, - AlertServices, - AlertTypeState, - AlertTypeParams, - PartialAlert, + RuleExecutorOptions, + RuleExecutorServices, + RuleActionParams, + RuleTypeState, + RuleTypeParams, + PartialRule, AlertInstanceState, AlertInstanceContext, AlertingApiRequestHandlerContext, diff --git a/x-pack/plugins/alerting/server/lib/alert_summary_from_event_log.test.ts b/x-pack/plugins/alerting/server/lib/alert_summary_from_event_log.test.ts index 6290d5d213046..b0a46807af5c1 100644 --- a/x-pack/plugins/alerting/server/lib/alert_summary_from_event_log.test.ts +++ b/x-pack/plugins/alerting/server/lib/alert_summary_from_event_log.test.ts @@ -6,7 +6,7 @@ */ import { random, mean } from 'lodash'; -import { SanitizedAlert, AlertSummary } from '../types'; +import { SanitizedRule, AlertSummary } from '../types'; import { IValidatedEvent } from '../../../event_log/server'; import { EVENT_LOG_ACTIONS, EVENT_LOG_PROVIDER, LEGACY_EVENT_LOG_ACTIONS } from '../plugin'; import { alertSummaryFromEventLog } from './alert_summary_from_event_log'; @@ -716,11 +716,11 @@ export class EventsFactory { } } -function createRule(overrides: Partial): SanitizedAlert<{ bar: boolean }> { +function createRule(overrides: Partial): SanitizedRule<{ bar: boolean }> { return { ...BaseRule, ...overrides }; } -const BaseRule: SanitizedAlert<{ bar: boolean }> = { +const BaseRule: SanitizedRule<{ bar: boolean }> = { id: 'rule-123', alertTypeId: '123', schedule: { interval: '10s' }, diff --git a/x-pack/plugins/alerting/server/lib/alert_summary_from_event_log.ts b/x-pack/plugins/alerting/server/lib/alert_summary_from_event_log.ts index 9a40c4ebf1940..e42a135b3de04 100644 --- a/x-pack/plugins/alerting/server/lib/alert_summary_from_event_log.ts +++ b/x-pack/plugins/alerting/server/lib/alert_summary_from_event_log.ts @@ -6,14 +6,14 @@ */ import { mean } from 'lodash'; -import { SanitizedAlert, AlertSummary, AlertStatus } from '../types'; +import { SanitizedRule, AlertSummary, AlertStatus } from '../types'; import { IEvent } from '../../../event_log/server'; import { EVENT_LOG_ACTIONS, EVENT_LOG_PROVIDER, LEGACY_EVENT_LOG_ACTIONS } from '../plugin'; const Millis2Nanos = 1000 * 1000; export interface AlertSummaryFromEventLogParams { - rule: SanitizedAlert<{ bar: boolean }>; + rule: SanitizedRule<{ bar: boolean }>; events: IEvent[]; executionEvents: IEvent[]; dateStart: string; diff --git a/x-pack/plugins/alerting/server/lib/error_with_reason.test.ts b/x-pack/plugins/alerting/server/lib/error_with_reason.test.ts index 0316db497124a..2370e2d6fef20 100644 --- a/x-pack/plugins/alerting/server/lib/error_with_reason.test.ts +++ b/x-pack/plugins/alerting/server/lib/error_with_reason.test.ts @@ -6,21 +6,21 @@ */ import { ErrorWithReason, getReasonFromError, isErrorWithReason } from './error_with_reason'; -import { AlertExecutionStatusErrorReasons } from '../types'; +import { RuleExecutionStatusErrorReasons } from '../types'; describe('ErrorWithReason', () => { const plainError = new Error('well, actually'); - const errorWithReason = new ErrorWithReason(AlertExecutionStatusErrorReasons.Decrypt, plainError); + const errorWithReason = new ErrorWithReason(RuleExecutionStatusErrorReasons.Decrypt, plainError); test('ErrorWithReason class', () => { expect(errorWithReason.message).toBe(plainError.message); expect(errorWithReason.error).toBe(plainError); - expect(errorWithReason.reason).toBe(AlertExecutionStatusErrorReasons.Decrypt); + expect(errorWithReason.reason).toBe(RuleExecutionStatusErrorReasons.Decrypt); }); test('getReasonFromError()', () => { expect(getReasonFromError(plainError)).toBe('unknown'); - expect(getReasonFromError(errorWithReason)).toBe(AlertExecutionStatusErrorReasons.Decrypt); + expect(getReasonFromError(errorWithReason)).toBe(RuleExecutionStatusErrorReasons.Decrypt); }); test('isErrorWithReason()', () => { diff --git a/x-pack/plugins/alerting/server/lib/error_with_reason.ts b/x-pack/plugins/alerting/server/lib/error_with_reason.ts index 018694cb32c46..4c474d39426e3 100644 --- a/x-pack/plugins/alerting/server/lib/error_with_reason.ts +++ b/x-pack/plugins/alerting/server/lib/error_with_reason.ts @@ -5,24 +5,24 @@ * 2.0. */ -import { AlertExecutionStatusErrorReasons } from '../types'; +import { RuleExecutionStatusErrorReasons } from '../types'; export class ErrorWithReason extends Error { - public readonly reason: AlertExecutionStatusErrorReasons; + public readonly reason: RuleExecutionStatusErrorReasons; public readonly error: Error; - constructor(reason: AlertExecutionStatusErrorReasons, error: Error) { + constructor(reason: RuleExecutionStatusErrorReasons, error: Error) { super(error.message); this.error = error; this.reason = reason; } } -export function getReasonFromError(error: Error): AlertExecutionStatusErrorReasons { +export function getReasonFromError(error: Error): RuleExecutionStatusErrorReasons { if (isErrorWithReason(error)) { return error.reason; } - return AlertExecutionStatusErrorReasons.Unknown; + return RuleExecutionStatusErrorReasons.Unknown; } export function isErrorWithReason(error: Error | ErrorWithReason): error is ErrorWithReason { diff --git a/x-pack/plugins/alerting/server/lib/errors/index.ts b/x-pack/plugins/alerting/server/lib/errors/index.ts index 7ac8d9fced5cd..a2dcd45bbb63b 100644 --- a/x-pack/plugins/alerting/server/lib/errors/index.ts +++ b/x-pack/plugins/alerting/server/lib/errors/index.ts @@ -16,6 +16,6 @@ export function isErrorThatHandlesItsOwnResponse( export type { ErrorThatHandlesItsOwnResponse, ElasticsearchError }; export { getEsErrorMessage }; -export type { AlertTypeDisabledReason } from './alert_type_disabled'; -export { AlertTypeDisabledError } from './alert_type_disabled'; +export type { RuleTypeDisabledReason } from './rule_type_disabled'; +export { RuleTypeDisabledError } from './rule_type_disabled'; export { RuleMutedError } from './rule_muted'; diff --git a/x-pack/plugins/alerting/server/lib/errors/alert_type_disabled.ts b/x-pack/plugins/alerting/server/lib/errors/rule_type_disabled.ts similarity index 72% rename from x-pack/plugins/alerting/server/lib/errors/alert_type_disabled.ts rename to x-pack/plugins/alerting/server/lib/errors/rule_type_disabled.ts index 554497cc6c22b..f907436ddf955 100644 --- a/x-pack/plugins/alerting/server/lib/errors/alert_type_disabled.ts +++ b/x-pack/plugins/alerting/server/lib/errors/rule_type_disabled.ts @@ -8,16 +8,16 @@ import { KibanaResponseFactory } from '../../../../../../src/core/server'; import { ErrorThatHandlesItsOwnResponse } from './types'; -export type AlertTypeDisabledReason = +export type RuleTypeDisabledReason = | 'config' | 'license_unavailable' | 'license_invalid' | 'license_expired'; -export class AlertTypeDisabledError extends Error implements ErrorThatHandlesItsOwnResponse { - public readonly reason: AlertTypeDisabledReason; +export class RuleTypeDisabledError extends Error implements ErrorThatHandlesItsOwnResponse { + public readonly reason: RuleTypeDisabledReason; - constructor(message: string, reason: AlertTypeDisabledReason) { + constructor(message: string, reason: RuleTypeDisabledReason) { super(message); this.reason = reason; } diff --git a/x-pack/plugins/alerting/server/lib/format_execution_log_errors.ts b/x-pack/plugins/alerting/server/lib/format_execution_log_errors.ts index a169640c4fc83..ef5b931310f6a 100644 --- a/x-pack/plugins/alerting/server/lib/format_execution_log_errors.ts +++ b/x-pack/plugins/alerting/server/lib/format_execution_log_errors.ts @@ -7,6 +7,7 @@ import { get } from 'lodash'; import { QueryEventsBySavedObjectResult, IValidatedEvent } from '../../../event_log/server'; +import { IExecutionErrors, IExecutionErrorsResult } from '../../common'; const EXECUTION_UUID_FIELD = 'kibana.alert.rule.execution.uuid'; const TIMESTAMP_FIELD = '@timestamp'; @@ -14,18 +15,6 @@ const PROVIDER_FIELD = 'event.provider'; const MESSAGE_FIELD = 'message'; const ERROR_MESSAGE_FIELD = 'error.message'; -export interface IExecutionErrors { - id: string; - timestamp: string; - type: string; - message: string; -} - -export interface IExecutionErrorsResult { - totalErrors: number; - errors: IExecutionErrors[]; -} - export const EMPTY_EXECUTION_ERRORS_RESULT = { totalErrors: 0, errors: [], diff --git a/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.test.ts b/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.test.ts index 75022427bea27..80090effca9d1 100644 --- a/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.test.ts +++ b/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.test.ts @@ -11,6 +11,7 @@ import { formatExecutionLogResult, formatSortForBucketSort, formatSortForTermSort, + ExecutionUuidAggResult, } from './get_execution_log_aggregation'; describe('formatSortForBucketSort', () => { @@ -128,92 +129,111 @@ describe('getExecutionLogAggregation', () => { sort: [{ timestamp: { order: 'asc' } }, { execution_duration: { order: 'desc' } }], }) ).toEqual({ - executionUuidCardinality: { cardinality: { field: 'kibana.alert.rule.execution.uuid' } }, - executionUuid: { - terms: { - field: 'kibana.alert.rule.execution.uuid', - size: 1000, - order: [ - { 'ruleExecution>executeStartTime': 'asc' }, - { 'ruleExecution>executionDuration': 'desc' }, - ], + excludeExecuteStart: { + filter: { + bool: { + must_not: [ + { + term: { + 'event.action': 'execute-start', + }, + }, + ], + }, }, aggs: { - executionUuidSorted: { - bucket_sort: { - sort: [ - { 'ruleExecution>executeStartTime': { order: 'asc' } }, - { 'ruleExecution>executionDuration': { order: 'desc' } }, + executionUuidCardinality: { cardinality: { field: 'kibana.alert.rule.execution.uuid' } }, + executionUuid: { + terms: { + field: 'kibana.alert.rule.execution.uuid', + size: 1000, + order: [ + { 'ruleExecution>executeStartTime': 'asc' }, + { 'ruleExecution>executionDuration': 'desc' }, ], - from: 10, - size: 10, - gap_policy: 'insert_zeros', - }, - }, - alertCounts: { - filters: { - filters: { - newAlerts: { match: { 'event.action': 'new-instance' } }, - activeAlerts: { match: { 'event.action': 'active-instance' } }, - recoveredAlerts: { match: { 'event.action': 'recovered-instance' } }, - }, - }, - }, - actionExecution: { - filter: { - bool: { - must: [ - { match: { 'event.action': 'execute' } }, - { match: { 'event.provider': 'actions' } }, - ], - }, - }, - aggs: { actionOutcomes: { terms: { field: 'event.outcome', size: 2 } } }, - }, - ruleExecution: { - filter: { - bool: { - must: [ - { match: { 'event.action': 'execute' } }, - { match: { 'event.provider': 'alerting' } }, - ], - }, }, aggs: { - executeStartTime: { min: { field: 'event.start' } }, - scheduleDelay: { - max: { - field: 'kibana.task.schedule_delay', + executionUuidSorted: { + bucket_sort: { + sort: [ + { 'ruleExecution>executeStartTime': { order: 'asc' } }, + { 'ruleExecution>executionDuration': { order: 'desc' } }, + ], + from: 10, + size: 10, + gap_policy: 'insert_zeros', }, }, - totalSearchDuration: { - max: { field: 'kibana.alert.rule.execution.metrics.total_search_duration_ms' }, - }, - esSearchDuration: { - max: { field: 'kibana.alert.rule.execution.metrics.es_search_duration_ms' }, - }, - numTriggeredActions: { - max: { field: 'kibana.alert.rule.execution.metrics.number_of_triggered_actions' }, + alertCounts: { + filters: { + filters: { + newAlerts: { match: { 'event.action': 'new-instance' } }, + activeAlerts: { match: { 'event.action': 'active-instance' } }, + recoveredAlerts: { match: { 'event.action': 'recovered-instance' } }, + }, + }, }, - numScheduledActions: { - max: { field: 'kibana.alert.rule.execution.metrics.number_of_scheduled_actions' }, + actionExecution: { + filter: { + bool: { + must: [ + { match: { 'event.action': 'execute' } }, + { match: { 'event.provider': 'actions' } }, + ], + }, + }, + aggs: { actionOutcomes: { terms: { field: 'event.outcome', size: 2 } } }, }, - executionDuration: { max: { field: 'event.duration' } }, - outcomeAndMessage: { - top_hits: { - size: 1, - _source: { includes: ['event.outcome', 'message', 'error.message'] }, + ruleExecution: { + filter: { + bool: { + must: [ + { match: { 'event.action': 'execute' } }, + { match: { 'event.provider': 'alerting' } }, + ], + }, + }, + aggs: { + executeStartTime: { min: { field: 'event.start' } }, + scheduleDelay: { + max: { + field: 'kibana.task.schedule_delay', + }, + }, + totalSearchDuration: { + max: { field: 'kibana.alert.rule.execution.metrics.total_search_duration_ms' }, + }, + esSearchDuration: { + max: { field: 'kibana.alert.rule.execution.metrics.es_search_duration_ms' }, + }, + numTriggeredActions: { + max: { + field: 'kibana.alert.rule.execution.metrics.number_of_triggered_actions', + }, + }, + numScheduledActions: { + max: { + field: 'kibana.alert.rule.execution.metrics.number_of_scheduled_actions', + }, + }, + executionDuration: { max: { field: 'event.duration' } }, + outcomeAndMessage: { + top_hits: { + size: 1, + _source: { includes: ['event.outcome', 'message', 'error.message'] }, + }, + }, }, }, - }, - }, - timeoutMessage: { - filter: { - bool: { - must: [ - { match: { 'event.action': 'execute-timeout' } }, - { match: { 'event.provider': 'alerting' } }, - ], + timeoutMessage: { + filter: { + bool: { + must: [ + { match: { 'event.action': 'execute-timeout' } }, + { match: { 'event.provider': 'alerting' } }, + ], + }, + }, }, }, }, @@ -230,188 +250,202 @@ describe('formatExecutionLogResult', () => { data: [], }); }); + test('should return empty results if aggregations.excludeExecuteStart are undefined', () => { + expect( + formatExecutionLogResult({ + aggregations: { excludeExecuteStart: undefined as unknown as ExecutionUuidAggResult }, + }) + ).toEqual({ + total: 0, + data: [], + }); + }); test('should format results correctly', () => { const results = { aggregations: { - executionUuid: { + excludeExecuteStart: { meta: {}, - doc_count_error_upper_bound: 0, - sum_other_doc_count: 0, - buckets: [ - { - key: '6705da7d-2635-499d-a6a8-1aee1ae1eac9', - doc_count: 27, - timeoutMessage: { - meta: {}, - doc_count: 0, - }, - alertCounts: { - meta: {}, - buckets: { - activeAlerts: { - doc_count: 5, + doc_count: 875, + executionUuid: { + meta: {}, + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: '6705da7d-2635-499d-a6a8-1aee1ae1eac9', + doc_count: 27, + timeoutMessage: { + meta: {}, + doc_count: 0, + }, + alertCounts: { + meta: {}, + buckets: { + activeAlerts: { + doc_count: 5, + }, + newAlerts: { + doc_count: 5, + }, + recoveredAlerts: { + doc_count: 0, + }, }, - newAlerts: { - doc_count: 5, + }, + ruleExecution: { + meta: {}, + doc_count: 1, + numTriggeredActions: { + value: 5.0, }, - recoveredAlerts: { - doc_count: 0, + numScheduledActions: { + value: 5.0, }, - }, - }, - ruleExecution: { - meta: {}, - doc_count: 1, - numTriggeredActions: { - value: 5.0, - }, - numScheduledActions: { - value: 5.0, - }, - outcomeAndMessage: { - hits: { - total: { - value: 1, - relation: 'eq', - }, - max_score: 1.0, - hits: [ - { - _index: '.kibana-event-log-8.2.0-000001', - _id: 'S4wIZX8B8TGQpG7XQZns', - _score: 1.0, - _source: { - event: { - outcome: 'success', + outcomeAndMessage: { + hits: { + total: { + value: 1, + relation: 'eq', + }, + max_score: 1.0, + hits: [ + { + _index: '.kibana-event-log-8.2.0-000001', + _id: 'S4wIZX8B8TGQpG7XQZns', + _score: 1.0, + _source: { + event: { + outcome: 'success', + }, + message: + "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", }, - message: - "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", }, + ], + }, + }, + scheduleDelay: { + value: 3.074e9, + }, + totalSearchDuration: { + value: 0.0, + }, + esSearchDuration: { + value: 0.0, + }, + executionDuration: { + value: 1.056e9, + }, + executeStartTime: { + value: 1.646667512617e12, + value_as_string: '2022-03-07T15:38:32.617Z', + }, + }, + actionExecution: { + meta: {}, + doc_count: 5, + actionOutcomes: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'success', + doc_count: 5, }, ], }, }, - scheduleDelay: { - value: 3.074e9, - }, - totalSearchDuration: { - value: 0.0, - }, - esSearchDuration: { - value: 0.0, - }, - executionDuration: { - value: 1.056e9, - }, - executeStartTime: { - value: 1.646667512617e12, - value_as_string: '2022-03-07T15:38:32.617Z', - }, }, - actionExecution: { - meta: {}, - doc_count: 5, - actionOutcomes: { - doc_count_error_upper_bound: 0, - sum_other_doc_count: 0, - buckets: [ - { - key: 'success', + { + key: '41b2755e-765a-4044-9745-b03875d5e79a', + doc_count: 32, + timeoutMessage: { + meta: {}, + doc_count: 0, + }, + alertCounts: { + meta: {}, + buckets: { + activeAlerts: { doc_count: 5, }, - ], + newAlerts: { + doc_count: 5, + }, + recoveredAlerts: { + doc_count: 5, + }, + }, }, - }, - }, - { - key: '41b2755e-765a-4044-9745-b03875d5e79a', - doc_count: 32, - timeoutMessage: { - meta: {}, - doc_count: 0, - }, - alertCounts: { - meta: {}, - buckets: { - activeAlerts: { - doc_count: 5, + ruleExecution: { + meta: {}, + doc_count: 1, + numTriggeredActions: { + value: 5.0, }, - newAlerts: { - doc_count: 5, + numScheduledActions: { + value: 5.0, }, - recoveredAlerts: { - doc_count: 5, + outcomeAndMessage: { + hits: { + total: { + value: 1, + relation: 'eq', + }, + max_score: 1.0, + hits: [ + { + _index: '.kibana-event-log-8.2.0-000001', + _id: 'a4wIZX8B8TGQpG7Xwpnz', + _score: 1.0, + _source: { + event: { + outcome: 'success', + }, + message: + "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", + }, + }, + ], + }, + }, + scheduleDelay: { + value: 3.126e9, + }, + totalSearchDuration: { + value: 0.0, + }, + esSearchDuration: { + value: 0.0, + }, + executionDuration: { + value: 1.165e9, + }, + executeStartTime: { + value: 1.646667545604e12, + value_as_string: '2022-03-07T15:39:05.604Z', }, }, - }, - ruleExecution: { - meta: {}, - doc_count: 1, - numTriggeredActions: { - value: 5.0, - }, - numScheduledActions: { - value: 5.0, - }, - outcomeAndMessage: { - hits: { - total: { - value: 1, - relation: 'eq', - }, - max_score: 1.0, - hits: [ + actionExecution: { + meta: {}, + doc_count: 5, + actionOutcomes: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ { - _index: '.kibana-event-log-8.2.0-000001', - _id: 'a4wIZX8B8TGQpG7Xwpnz', - _score: 1.0, - _source: { - event: { - outcome: 'success', - }, - message: - "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", - }, + key: 'success', + doc_count: 5, }, ], }, }, - scheduleDelay: { - value: 3.126e9, - }, - totalSearchDuration: { - value: 0.0, - }, - esSearchDuration: { - value: 0.0, - }, - executionDuration: { - value: 1.165e9, - }, - executeStartTime: { - value: 1.646667545604e12, - value_as_string: '2022-03-07T15:39:05.604Z', - }, }, - actionExecution: { - meta: {}, - doc_count: 5, - actionOutcomes: { - doc_count_error_upper_bound: 0, - sum_other_doc_count: 0, - buckets: [ - { - key: 'success', - doc_count: 5, - }, - ], - }, - }, - }, - ], - }, - executionUuidCardinality: { - value: 374, + ], + }, + executionUuidCardinality: { + value: 374, + }, }, }, }; @@ -463,188 +497,192 @@ describe('formatExecutionLogResult', () => { test('should format results correctly with rule execution errors', () => { const results = { aggregations: { - executionUuid: { + excludeExecuteStart: { meta: {}, - doc_count_error_upper_bound: 0, - sum_other_doc_count: 0, - buckets: [ - { - key: '6705da7d-2635-499d-a6a8-1aee1ae1eac9', - doc_count: 27, - timeoutMessage: { - meta: {}, - doc_count: 0, - }, - alertCounts: { - meta: {}, - buckets: { - activeAlerts: { - doc_count: 5, + doc_count: 875, + executionUuid: { + meta: {}, + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: '6705da7d-2635-499d-a6a8-1aee1ae1eac9', + doc_count: 27, + timeoutMessage: { + meta: {}, + doc_count: 0, + }, + alertCounts: { + meta: {}, + buckets: { + activeAlerts: { + doc_count: 5, + }, + newAlerts: { + doc_count: 5, + }, + recoveredAlerts: { + doc_count: 0, + }, }, - newAlerts: { - doc_count: 5, + }, + ruleExecution: { + meta: {}, + doc_count: 1, + numTriggeredActions: { + value: 5.0, }, - recoveredAlerts: { - doc_count: 0, + numScheduledActions: { + value: 5.0, }, - }, - }, - ruleExecution: { - meta: {}, - doc_count: 1, - numTriggeredActions: { - value: 5.0, - }, - numScheduledActions: { - value: 5.0, - }, - outcomeAndMessage: { - hits: { - total: { - value: 1, - relation: 'eq', - }, - max_score: 1.0, - hits: [ - { - _index: '.kibana-event-log-8.2.0-000001', - _id: 'S4wIZX8B8TGQpG7XQZns', - _score: 1.0, - _source: { - event: { - outcome: 'failure', - }, - message: - "rule execution failure: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", - error: { - message: 'I am erroring in rule execution!!', + outcomeAndMessage: { + hits: { + total: { + value: 1, + relation: 'eq', + }, + max_score: 1.0, + hits: [ + { + _index: '.kibana-event-log-8.2.0-000001', + _id: 'S4wIZX8B8TGQpG7XQZns', + _score: 1.0, + _source: { + event: { + outcome: 'failure', + }, + message: + "rule execution failure: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", + error: { + message: 'I am erroring in rule execution!!', + }, }, }, + ], + }, + }, + scheduleDelay: { + value: 3.074e9, + }, + totalSearchDuration: { + value: 0.0, + }, + esSearchDuration: { + value: 0.0, + }, + executionDuration: { + value: 1.056e9, + }, + executeStartTime: { + value: 1.646667512617e12, + value_as_string: '2022-03-07T15:38:32.617Z', + }, + }, + actionExecution: { + meta: {}, + doc_count: 5, + actionOutcomes: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'success', + doc_count: 5, }, ], }, }, - scheduleDelay: { - value: 3.074e9, - }, - totalSearchDuration: { - value: 0.0, - }, - esSearchDuration: { - value: 0.0, - }, - executionDuration: { - value: 1.056e9, - }, - executeStartTime: { - value: 1.646667512617e12, - value_as_string: '2022-03-07T15:38:32.617Z', - }, }, - actionExecution: { - meta: {}, - doc_count: 5, - actionOutcomes: { - doc_count_error_upper_bound: 0, - sum_other_doc_count: 0, - buckets: [ - { - key: 'success', + { + key: '41b2755e-765a-4044-9745-b03875d5e79a', + doc_count: 32, + timeoutMessage: { + meta: {}, + doc_count: 0, + }, + alertCounts: { + meta: {}, + buckets: { + activeAlerts: { doc_count: 5, }, - ], + newAlerts: { + doc_count: 5, + }, + recoveredAlerts: { + doc_count: 5, + }, + }, }, - }, - }, - { - key: '41b2755e-765a-4044-9745-b03875d5e79a', - doc_count: 32, - timeoutMessage: { - meta: {}, - doc_count: 0, - }, - alertCounts: { - meta: {}, - buckets: { - activeAlerts: { - doc_count: 5, + ruleExecution: { + meta: {}, + doc_count: 1, + numTriggeredActions: { + value: 5.0, }, - newAlerts: { - doc_count: 5, + numScheduledActions: { + value: 5.0, }, - recoveredAlerts: { - doc_count: 5, + outcomeAndMessage: { + hits: { + total: { + value: 1, + relation: 'eq', + }, + max_score: 1.0, + hits: [ + { + _index: '.kibana-event-log-8.2.0-000001', + _id: 'a4wIZX8B8TGQpG7Xwpnz', + _score: 1.0, + _source: { + event: { + outcome: 'success', + }, + message: + "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", + }, + }, + ], + }, + }, + scheduleDelay: { + value: 3.126e9, + }, + totalSearchDuration: { + value: 0.0, + }, + esSearchDuration: { + value: 0.0, + }, + executionDuration: { + value: 1.165e9, + }, + executeStartTime: { + value: 1.646667545604e12, + value_as_string: '2022-03-07T15:39:05.604Z', }, }, - }, - ruleExecution: { - meta: {}, - doc_count: 1, - numTriggeredActions: { - value: 5.0, - }, - numScheduledActions: { - value: 5.0, - }, - outcomeAndMessage: { - hits: { - total: { - value: 1, - relation: 'eq', - }, - max_score: 1.0, - hits: [ + actionExecution: { + meta: {}, + doc_count: 5, + actionOutcomes: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ { - _index: '.kibana-event-log-8.2.0-000001', - _id: 'a4wIZX8B8TGQpG7Xwpnz', - _score: 1.0, - _source: { - event: { - outcome: 'success', - }, - message: - "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", - }, + key: 'success', + doc_count: 5, }, ], }, }, - scheduleDelay: { - value: 3.126e9, - }, - totalSearchDuration: { - value: 0.0, - }, - esSearchDuration: { - value: 0.0, - }, - executionDuration: { - value: 1.165e9, - }, - executeStartTime: { - value: 1.646667545604e12, - value_as_string: '2022-03-07T15:39:05.604Z', - }, }, - actionExecution: { - meta: {}, - doc_count: 5, - actionOutcomes: { - doc_count_error_upper_bound: 0, - sum_other_doc_count: 0, - buckets: [ - { - key: 'success', - doc_count: 5, - }, - ], - }, - }, - }, - ], - }, - executionUuidCardinality: { - value: 374, + ], + }, + executionUuidCardinality: { + value: 374, + }, }, }, }; @@ -696,180 +734,184 @@ describe('formatExecutionLogResult', () => { test('should format results correctly when execution timeouts occur', () => { const results = { aggregations: { - executionUuid: { + excludeExecuteStart: { meta: {}, - doc_count_error_upper_bound: 0, - sum_other_doc_count: 0, - buckets: [ - { - key: '09b5aeab-d50d-43b2-88e7-f1a20f682b3f', - doc_count: 3, - timeoutMessage: { - meta: {}, - doc_count: 1, - }, - alertCounts: { - meta: {}, - buckets: { - activeAlerts: { - doc_count: 0, + doc_count: 875, + executionUuid: { + meta: {}, + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: '09b5aeab-d50d-43b2-88e7-f1a20f682b3f', + doc_count: 3, + timeoutMessage: { + meta: {}, + doc_count: 1, + }, + alertCounts: { + meta: {}, + buckets: { + activeAlerts: { + doc_count: 0, + }, + newAlerts: { + doc_count: 0, + }, + recoveredAlerts: { + doc_count: 0, + }, }, - newAlerts: { - doc_count: 0, + }, + ruleExecution: { + meta: {}, + doc_count: 1, + numTriggeredActions: { + value: 0.0, }, - recoveredAlerts: { - doc_count: 0, + numScheduledActions: { + value: 0.0, }, - }, - }, - ruleExecution: { - meta: {}, - doc_count: 1, - numTriggeredActions: { - value: 0.0, - }, - numScheduledActions: { - value: 0.0, - }, - outcomeAndMessage: { - hits: { - total: { - value: 1, - relation: 'eq', - }, - max_score: 1.0, - hits: [ - { - _index: '.kibana-event-log-8.2.0-000001', - _id: 'dJkWa38B1ylB1EvsAckB', - _score: 1.0, - _source: { - event: { - outcome: 'success', + outcomeAndMessage: { + hits: { + total: { + value: 1, + relation: 'eq', + }, + max_score: 1.0, + hits: [ + { + _index: '.kibana-event-log-8.2.0-000001', + _id: 'dJkWa38B1ylB1EvsAckB', + _score: 1.0, + _source: { + event: { + outcome: 'success', + }, + message: + "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", }, - message: - "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", }, - }, - ], + ], + }, + }, + scheduleDelay: { + value: 3.074e9, + }, + totalSearchDuration: { + value: 0.0, + }, + esSearchDuration: { + value: 0.0, + }, + executionDuration: { + value: 1.0279e10, + }, + executeStartTime: { + value: 1.646769067607e12, + value_as_string: '2022-03-08T19:51:07.607Z', }, }, - scheduleDelay: { - value: 3.074e9, - }, - totalSearchDuration: { - value: 0.0, - }, - esSearchDuration: { - value: 0.0, - }, - executionDuration: { - value: 1.0279e10, - }, - executeStartTime: { - value: 1.646769067607e12, - value_as_string: '2022-03-08T19:51:07.607Z', + actionExecution: { + meta: {}, + doc_count: 0, + actionOutcomes: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [], + }, }, }, - actionExecution: { - meta: {}, - doc_count: 0, - actionOutcomes: { - doc_count_error_upper_bound: 0, - sum_other_doc_count: 0, - buckets: [], + { + key: '41b2755e-765a-4044-9745-b03875d5e79a', + doc_count: 32, + timeoutMessage: { + meta: {}, + doc_count: 0, + }, + alertCounts: { + meta: {}, + buckets: { + activeAlerts: { + doc_count: 5, + }, + newAlerts: { + doc_count: 5, + }, + recoveredAlerts: { + doc_count: 5, + }, + }, }, - }, - }, - { - key: '41b2755e-765a-4044-9745-b03875d5e79a', - doc_count: 32, - timeoutMessage: { - meta: {}, - doc_count: 0, - }, - alertCounts: { - meta: {}, - buckets: { - activeAlerts: { - doc_count: 5, + ruleExecution: { + meta: {}, + doc_count: 1, + numTriggeredActions: { + value: 5.0, }, - newAlerts: { - doc_count: 5, + numScheduledActions: { + value: 5.0, }, - recoveredAlerts: { - doc_count: 5, + outcomeAndMessage: { + hits: { + total: { + value: 1, + relation: 'eq', + }, + max_score: 1.0, + hits: [ + { + _index: '.kibana-event-log-8.2.0-000001', + _id: 'a4wIZX8B8TGQpG7Xwpnz', + _score: 1.0, + _source: { + event: { + outcome: 'success', + }, + message: + "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", + }, + }, + ], + }, + }, + scheduleDelay: { + value: 3.126e9, + }, + totalSearchDuration: { + value: 0.0, + }, + esSearchDuration: { + value: 0.0, + }, + executionDuration: { + value: 1.165e9, + }, + executeStartTime: { + value: 1.646667545604e12, + value_as_string: '2022-03-07T15:39:05.604Z', }, }, - }, - ruleExecution: { - meta: {}, - doc_count: 1, - numTriggeredActions: { - value: 5.0, - }, - numScheduledActions: { - value: 5.0, - }, - outcomeAndMessage: { - hits: { - total: { - value: 1, - relation: 'eq', - }, - max_score: 1.0, - hits: [ + actionExecution: { + meta: {}, + doc_count: 5, + actionOutcomes: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ { - _index: '.kibana-event-log-8.2.0-000001', - _id: 'a4wIZX8B8TGQpG7Xwpnz', - _score: 1.0, - _source: { - event: { - outcome: 'success', - }, - message: - "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", - }, + key: 'success', + doc_count: 5, }, ], }, }, - scheduleDelay: { - value: 3.126e9, - }, - totalSearchDuration: { - value: 0.0, - }, - esSearchDuration: { - value: 0.0, - }, - executionDuration: { - value: 1.165e9, - }, - executeStartTime: { - value: 1.646667545604e12, - value_as_string: '2022-03-07T15:39:05.604Z', - }, }, - actionExecution: { - meta: {}, - doc_count: 5, - actionOutcomes: { - doc_count_error_upper_bound: 0, - sum_other_doc_count: 0, - buckets: [ - { - key: 'success', - doc_count: 5, - }, - ], - }, - }, - }, - ], - }, - executionUuidCardinality: { - value: 374, + ], + }, + executionUuidCardinality: { + value: 374, + }, }, }, }; @@ -921,185 +963,189 @@ describe('formatExecutionLogResult', () => { test('should format results correctly when action errors occur', () => { const results = { aggregations: { - executionUuid: { + excludeExecuteStart: { meta: {}, - doc_count_error_upper_bound: 0, - sum_other_doc_count: 0, - buckets: [ - { - key: 'ecf7ac4c-1c15-4a1d-818a-cacbf57f6158', - doc_count: 32, - timeoutMessage: { - meta: {}, - doc_count: 0, - }, - alertCounts: { - meta: {}, - buckets: { - activeAlerts: { - doc_count: 5, + doc_count: 875, + executionUuid: { + meta: {}, + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'ecf7ac4c-1c15-4a1d-818a-cacbf57f6158', + doc_count: 32, + timeoutMessage: { + meta: {}, + doc_count: 0, + }, + alertCounts: { + meta: {}, + buckets: { + activeAlerts: { + doc_count: 5, + }, + newAlerts: { + doc_count: 5, + }, + recoveredAlerts: { + doc_count: 5, + }, }, - newAlerts: { - doc_count: 5, + }, + ruleExecution: { + meta: {}, + doc_count: 1, + numTriggeredActions: { + value: 5.0, }, - recoveredAlerts: { - doc_count: 5, + numScheduledActions: { + value: 5.0, }, - }, - }, - ruleExecution: { - meta: {}, - doc_count: 1, - numTriggeredActions: { - value: 5.0, - }, - numScheduledActions: { - value: 5.0, - }, - outcomeAndMessage: { - hits: { - total: { - value: 1, - relation: 'eq', - }, - max_score: 1.0, - hits: [ - { - _index: '.kibana-event-log-8.2.0-000001', - _id: '7xKcb38BcntAq5ycFwiu', - _score: 1.0, - _source: { - event: { - outcome: 'success', + outcomeAndMessage: { + hits: { + total: { + value: 1, + relation: 'eq', + }, + max_score: 1.0, + hits: [ + { + _index: '.kibana-event-log-8.2.0-000001', + _id: '7xKcb38BcntAq5ycFwiu', + _score: 1.0, + _source: { + event: { + outcome: 'success', + }, + message: + "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", }, - message: - "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", }, + ], + }, + }, + scheduleDelay: { + value: 3.126e9, + }, + totalSearchDuration: { + value: 0.0, + }, + esSearchDuration: { + value: 0.0, + }, + executionDuration: { + value: 1.374e9, + }, + executeStartTime: { + value: 1.646844973039e12, + value_as_string: '2022-03-09T16:56:13.039Z', + }, + }, + actionExecution: { + meta: {}, + doc_count: 5, + actionOutcomes: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'failure', + doc_count: 5, }, ], }, }, - scheduleDelay: { - value: 3.126e9, - }, - totalSearchDuration: { - value: 0.0, - }, - esSearchDuration: { - value: 0.0, - }, - executionDuration: { - value: 1.374e9, - }, - executeStartTime: { - value: 1.646844973039e12, - value_as_string: '2022-03-09T16:56:13.039Z', - }, }, - actionExecution: { - meta: {}, - doc_count: 5, - actionOutcomes: { - doc_count_error_upper_bound: 0, - sum_other_doc_count: 0, - buckets: [ - { - key: 'failure', + { + key: '61bb867b-661a-471f-bf92-23471afa10b3', + doc_count: 32, + timeoutMessage: { + meta: {}, + doc_count: 0, + }, + alertCounts: { + meta: {}, + buckets: { + activeAlerts: { doc_count: 5, }, - ], + newAlerts: { + doc_count: 5, + }, + recoveredAlerts: { + doc_count: 5, + }, + }, }, - }, - }, - { - key: '61bb867b-661a-471f-bf92-23471afa10b3', - doc_count: 32, - timeoutMessage: { - meta: {}, - doc_count: 0, - }, - alertCounts: { - meta: {}, - buckets: { - activeAlerts: { - doc_count: 5, + ruleExecution: { + meta: {}, + doc_count: 1, + numTriggeredActions: { + value: 5.0, }, - newAlerts: { - doc_count: 5, + numScheduledActions: { + value: 5.0, }, - recoveredAlerts: { - doc_count: 5, + outcomeAndMessage: { + hits: { + total: { + value: 1, + relation: 'eq', + }, + max_score: 1.0, + hits: [ + { + _index: '.kibana-event-log-8.2.0-000001', + _id: 'zRKbb38BcntAq5ycOwgk', + _score: 1.0, + _source: { + event: { + outcome: 'success', + }, + message: + "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", + }, + }, + ], + }, + }, + scheduleDelay: { + value: 3.133e9, + }, + totalSearchDuration: { + value: 0.0, + }, + esSearchDuration: { + value: 0.0, + }, + executionDuration: { + value: 4.18e8, + }, + executeStartTime: { + value: 1.646844917518e12, + value_as_string: '2022-03-09T16:55:17.518Z', }, }, - }, - ruleExecution: { - meta: {}, - doc_count: 1, - numTriggeredActions: { - value: 5.0, - }, - numScheduledActions: { - value: 5.0, - }, - outcomeAndMessage: { - hits: { - total: { - value: 1, - relation: 'eq', - }, - max_score: 1.0, - hits: [ + actionExecution: { + meta: {}, + doc_count: 5, + actionOutcomes: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ { - _index: '.kibana-event-log-8.2.0-000001', - _id: 'zRKbb38BcntAq5ycOwgk', - _score: 1.0, - _source: { - event: { - outcome: 'success', - }, - message: - "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", - }, + key: 'success', + doc_count: 5, }, ], }, }, - scheduleDelay: { - value: 3.133e9, - }, - totalSearchDuration: { - value: 0.0, - }, - esSearchDuration: { - value: 0.0, - }, - executionDuration: { - value: 4.18e8, - }, - executeStartTime: { - value: 1.646844917518e12, - value_as_string: '2022-03-09T16:55:17.518Z', - }, }, - actionExecution: { - meta: {}, - doc_count: 5, - actionOutcomes: { - doc_count_error_upper_bound: 0, - sum_other_doc_count: 0, - buckets: [ - { - key: 'success', - doc_count: 5, - }, - ], - }, - }, - }, - ], - }, - executionUuidCardinality: { - value: 417, + ], + }, + executionUuidCardinality: { + value: 417, + }, }, }, }; diff --git a/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.ts b/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.ts index 6f8d0d8059b69..fbe72508dab2b 100644 --- a/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.ts +++ b/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.ts @@ -68,10 +68,15 @@ interface IExecutionUuidAggBucket extends estypes.AggregationsStringTermsBucketK }; } -interface ExecutionUuidAggResult +export interface ExecutionUuidAggResult extends estypes.AggregationsAggregateBase { buckets: TBucket[]; } + +interface ExcludeExecuteStartAggResult extends estypes.AggregationsAggregateBase { + executionUuid: ExecutionUuidAggResult; + executionUuidCardinality: estypes.AggregationsCardinalityAggregate; +} export interface IExecutionLogAggOptions { page: number; perPage: number; @@ -112,104 +117,119 @@ export function getExecutionLogAggregation({ page, perPage, sort }: IExecutionLo } return { - // Get total number of executions - executionUuidCardinality: { - cardinality: { - field: EXECUTION_UUID_FIELD, - }, - }, - executionUuid: { - // Bucket by execution UUID - terms: { - field: EXECUTION_UUID_FIELD, - size: DEFAULT_MAX_BUCKETS_LIMIT, - order: formatSortForTermSort(sort), + excludeExecuteStart: { + filter: { + bool: { + must_not: [ + { + term: { + [ACTION_FIELD]: 'execute-start', + }, + }, + ], + }, }, aggs: { - // Bucket sort to allow paging through executions - executionUuidSorted: { - bucket_sort: { - sort: formatSortForBucketSort(sort), - from: (page - 1) * perPage, - size: perPage, - gap_policy: 'insert_zeros' as estypes.AggregationsGapPolicy, + // Get total number of executions + executionUuidCardinality: { + cardinality: { + field: EXECUTION_UUID_FIELD, }, }, - // Get counts for types of alerts and whether there was an execution timeout - alertCounts: { - filters: { - filters: { - newAlerts: { match: { [ACTION_FIELD]: 'new-instance' } }, - activeAlerts: { match: { [ACTION_FIELD]: 'active-instance' } }, - recoveredAlerts: { match: { [ACTION_FIELD]: 'recovered-instance' } }, - }, + executionUuid: { + // Bucket by execution UUID + terms: { + field: EXECUTION_UUID_FIELD, + size: DEFAULT_MAX_BUCKETS_LIMIT, + order: formatSortForTermSort(sort), }, - }, - // Filter by action execute doc and get information from this event - actionExecution: { - filter: getProviderAndActionFilter('actions', 'execute'), aggs: { - actionOutcomes: { - terms: { - field: OUTCOME_FIELD, - size: 2, - }, - }, - }, - }, - // Filter by rule execute doc and get information from this event - ruleExecution: { - filter: getProviderAndActionFilter('alerting', 'execute'), - aggs: { - executeStartTime: { - min: { - field: START_FIELD, - }, - }, - scheduleDelay: { - max: { - field: SCHEDULE_DELAY_FIELD, - }, - }, - totalSearchDuration: { - max: { - field: TOTAL_SEARCH_DURATION_FIELD, - }, - }, - esSearchDuration: { - max: { - field: ES_SEARCH_DURATION_FIELD, - }, - }, - numTriggeredActions: { - max: { - field: NUMBER_OF_TRIGGERED_ACTIONS_FIELD, + // Bucket sort to allow paging through executions + executionUuidSorted: { + bucket_sort: { + sort: formatSortForBucketSort(sort), + from: (page - 1) * perPage, + size: perPage, + gap_policy: 'insert_zeros' as estypes.AggregationsGapPolicy, }, }, - numScheduledActions: { - max: { - field: NUMBER_OF_SCHEDULED_ACTIONS_FIELD, + // Get counts for types of alerts and whether there was an execution timeout + alertCounts: { + filters: { + filters: { + newAlerts: { match: { [ACTION_FIELD]: 'new-instance' } }, + activeAlerts: { match: { [ACTION_FIELD]: 'active-instance' } }, + recoveredAlerts: { match: { [ACTION_FIELD]: 'recovered-instance' } }, + }, }, }, - executionDuration: { - max: { - field: DURATION_FIELD, + // Filter by action execute doc and get information from this event + actionExecution: { + filter: getProviderAndActionFilter('actions', 'execute'), + aggs: { + actionOutcomes: { + terms: { + field: OUTCOME_FIELD, + size: 2, + }, + }, }, }, - outcomeAndMessage: { - top_hits: { - size: 1, - _source: { - includes: [OUTCOME_FIELD, MESSAGE_FIELD, ERROR_MESSAGE_FIELD], + // Filter by rule execute doc and get information from this event + ruleExecution: { + filter: getProviderAndActionFilter('alerting', 'execute'), + aggs: { + executeStartTime: { + min: { + field: START_FIELD, + }, + }, + scheduleDelay: { + max: { + field: SCHEDULE_DELAY_FIELD, + }, + }, + totalSearchDuration: { + max: { + field: TOTAL_SEARCH_DURATION_FIELD, + }, + }, + esSearchDuration: { + max: { + field: ES_SEARCH_DURATION_FIELD, + }, + }, + numTriggeredActions: { + max: { + field: NUMBER_OF_TRIGGERED_ACTIONS_FIELD, + }, + }, + numScheduledActions: { + max: { + field: NUMBER_OF_SCHEDULED_ACTIONS_FIELD, + }, + }, + executionDuration: { + max: { + field: DURATION_FIELD, + }, + }, + outcomeAndMessage: { + top_hits: { + size: 1, + _source: { + includes: [OUTCOME_FIELD, MESSAGE_FIELD, ERROR_MESSAGE_FIELD], + }, + }, }, }, }, + // If there was a timeout, this filter will return non-zero doc count + timeoutMessage: { + filter: getProviderAndActionFilter('alerting', 'execute-timeout'), + }, }, }, - // If there was a timeout, this filter will return non-zero doc count - timeoutMessage: { - filter: getProviderAndActionFilter('alerting', 'execute-timeout'), - }, }, }, }; @@ -280,13 +300,14 @@ export function formatExecutionLogResult( ): IExecutionLogResult { const { aggregations } = results; - if (!aggregations) { + if (!aggregations || !aggregations.excludeExecuteStart) { return EMPTY_EXECUTION_LOG_RESULT; } - const total = (aggregations.executionUuidCardinality as estypes.AggregationsCardinalityAggregate) - .value; - const buckets = (aggregations.executionUuid as ExecutionUuidAggResult).buckets; + const aggs = aggregations.excludeExecuteStart as ExcludeExecuteStartAggResult; + + const total = aggs.executionUuidCardinality.value; + const buckets = aggs.executionUuid.buckets; return { total, diff --git a/x-pack/plugins/alerting/server/lib/get_alert_notify_when_type.test.ts b/x-pack/plugins/alerting/server/lib/get_rule_notify_when_type.test.ts similarity index 64% rename from x-pack/plugins/alerting/server/lib/get_alert_notify_when_type.test.ts rename to x-pack/plugins/alerting/server/lib/get_rule_notify_when_type.test.ts index 92e7673c2e48e..747f5a8a8cd21 100644 --- a/x-pack/plugins/alerting/server/lib/get_alert_notify_when_type.test.ts +++ b/x-pack/plugins/alerting/server/lib/get_rule_notify_when_type.test.ts @@ -5,20 +5,20 @@ * 2.0. */ -import { getAlertNotifyWhenType } from './get_alert_notify_when_type'; +import { getRuleNotifyWhenType } from './get_rule_notify_when_type'; test(`should return 'notifyWhen' value if value is set and throttle is null`, () => { - expect(getAlertNotifyWhenType('onActionGroupChange', null)).toEqual('onActionGroupChange'); + expect(getRuleNotifyWhenType('onActionGroupChange', null)).toEqual('onActionGroupChange'); }); test(`should return 'notifyWhen' value if value is set and throttle is defined`, () => { - expect(getAlertNotifyWhenType('onActionGroupChange', '10m')).toEqual('onActionGroupChange'); + expect(getRuleNotifyWhenType('onActionGroupChange', '10m')).toEqual('onActionGroupChange'); }); test(`should return 'onThrottleInterval' value if 'notifyWhen' is null and throttle is defined`, () => { - expect(getAlertNotifyWhenType(null, '10m')).toEqual('onThrottleInterval'); + expect(getRuleNotifyWhenType(null, '10m')).toEqual('onThrottleInterval'); }); test(`should return 'onActiveAlert' value if 'notifyWhen' is null and throttle is null`, () => { - expect(getAlertNotifyWhenType(null, null)).toEqual('onActiveAlert'); + expect(getRuleNotifyWhenType(null, null)).toEqual('onActiveAlert'); }); diff --git a/x-pack/plugins/alerting/server/lib/get_alert_notify_when_type.ts b/x-pack/plugins/alerting/server/lib/get_rule_notify_when_type.ts similarity index 77% rename from x-pack/plugins/alerting/server/lib/get_alert_notify_when_type.ts rename to x-pack/plugins/alerting/server/lib/get_rule_notify_when_type.ts index a4bb0fe68a25b..53ccacde75e5c 100644 --- a/x-pack/plugins/alerting/server/lib/get_alert_notify_when_type.ts +++ b/x-pack/plugins/alerting/server/lib/get_rule_notify_when_type.ts @@ -5,12 +5,12 @@ * 2.0. */ -import { AlertNotifyWhenType } from '../types'; +import { RuleNotifyWhenType } from '../types'; -export function getAlertNotifyWhenType( - notifyWhen: AlertNotifyWhenType | null, +export function getRuleNotifyWhenType( + notifyWhen: RuleNotifyWhenType | null, throttle: string | null -): AlertNotifyWhenType { +): RuleNotifyWhenType { // We allow notifyWhen to be null for backwards compatibility. If it is null, determine its // value based on whether the throttle is set to a value or null return notifyWhen ? notifyWhen! : throttle ? 'onThrottleInterval' : 'onActiveAlert'; diff --git a/x-pack/plugins/alerting/server/lib/index.ts b/x-pack/plugins/alerting/server/lib/index.ts index 22dbeff82b2d1..57c9a92a8d915 100644 --- a/x-pack/plugins/alerting/server/lib/index.ts +++ b/x-pack/plugins/alerting/server/lib/index.ts @@ -9,15 +9,15 @@ export { parseDuration, validateDurationSchema } from '../../common/parse_durati export type { ILicenseState } from './license_state'; export { LicenseState } from './license_state'; export { validateRuleTypeParams } from './validate_rule_type_params'; -export { getAlertNotifyWhenType } from './get_alert_notify_when_type'; +export { getRuleNotifyWhenType } from './get_rule_notify_when_type'; export { verifyApiAccess } from './license_api_access'; export { ErrorWithReason, getReasonFromError, isErrorWithReason } from './error_with_reason'; export type { - AlertTypeDisabledReason, + RuleTypeDisabledReason, ErrorThatHandlesItsOwnResponse, ElasticsearchError, } from './errors'; -export { AlertTypeDisabledError, RuleMutedError, isErrorThatHandlesItsOwnResponse } from './errors'; +export { RuleTypeDisabledError, RuleMutedError, isErrorThatHandlesItsOwnResponse } from './errors'; export { executionStatusFromState, executionStatusFromError, diff --git a/x-pack/plugins/alerting/server/lib/is_alerting_error.test.ts b/x-pack/plugins/alerting/server/lib/is_alerting_error.test.ts index 643ca9b3f752b..214b95c5ef50c 100644 --- a/x-pack/plugins/alerting/server/lib/is_alerting_error.test.ts +++ b/x-pack/plugins/alerting/server/lib/is_alerting_error.test.ts @@ -9,7 +9,7 @@ import { isAlertSavedObjectNotFoundError, isEsUnavailableError } from './is_aler import { ErrorWithReason } from './error_with_reason'; import { SavedObjectsErrorHelpers } from '../../../../../src/core/server'; import uuid from 'uuid'; -import { AlertExecutionStatusErrorReasons } from '../types'; +import { RuleExecutionStatusErrorReasons } from '../types'; describe('isAlertSavedObjectNotFoundError', () => { const id = uuid.v4(); @@ -27,7 +27,7 @@ describe('isAlertSavedObjectNotFoundError', () => { }); test('identifies SavedObjects Not Found errors wrapped in an ErrorWithReason', () => { - const error = new ErrorWithReason(AlertExecutionStatusErrorReasons.Read, errorSONF); + const error = new ErrorWithReason(RuleExecutionStatusErrorReasons.Read, errorSONF); expect(isAlertSavedObjectNotFoundError(error, id)).toBe(true); }); }); @@ -48,7 +48,7 @@ describe('isEsUnavailableError', () => { }); test('identifies es unavailable errors wrapped in an ErrorWithReason', () => { - const error = new ErrorWithReason(AlertExecutionStatusErrorReasons.Read, errorSONF); + const error = new ErrorWithReason(RuleExecutionStatusErrorReasons.Read, errorSONF); expect(isEsUnavailableError(error, id)).toBe(true); }); }); diff --git a/x-pack/plugins/alerting/server/lib/license_state.ts b/x-pack/plugins/alerting/server/lib/license_state.ts index 162823f8d5850..340d608002fc5 100644 --- a/x-pack/plugins/alerting/server/lib/license_state.ts +++ b/x-pack/plugins/alerting/server/lib/license_state.ts @@ -17,12 +17,12 @@ import { PLUGIN } from '../constants/plugin'; import { getRuleTypeFeatureUsageName } from './get_rule_type_feature_usage_name'; import { RuleType, - AlertTypeParams, - AlertTypeState, + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, } from '../types'; -import { AlertTypeDisabledError } from './errors/alert_type_disabled'; +import { RuleTypeDisabledError } from './errors/rule_type_disabled'; export type ILicenseState = PublicMethodsOf; @@ -148,9 +148,9 @@ export class LicenseState { } public ensureLicenseForRuleType< - Params extends AlertTypeParams, - ExtractedParams extends AlertTypeParams, - State extends AlertTypeState, + Params extends RuleTypeParams, + ExtractedParams extends RuleTypeParams, + State extends RuleTypeState, InstanceState extends AlertInstanceState, InstanceContext extends AlertInstanceContext, ActionGroupIds extends string, @@ -179,7 +179,7 @@ export class LicenseState { } switch (check.reason) { case 'unavailable': - throw new AlertTypeDisabledError( + throw new RuleTypeDisabledError( i18n.translate('xpack.alerting.serverSideErrors.unavailableLicenseErrorMessage', { defaultMessage: 'Rule type {ruleTypeId} is disabled because license information is not available at this time.', @@ -190,7 +190,7 @@ export class LicenseState { 'license_unavailable' ); case 'expired': - throw new AlertTypeDisabledError( + throw new RuleTypeDisabledError( i18n.translate('xpack.alerting.serverSideErrors.expirerdLicenseErrorMessage', { defaultMessage: 'Rule type {ruleTypeId} is disabled because your {licenseType} license has expired.', @@ -199,7 +199,7 @@ export class LicenseState { 'license_expired' ); case 'invalid': - throw new AlertTypeDisabledError( + throw new RuleTypeDisabledError( i18n.translate('xpack.alerting.serverSideErrors.invalidLicenseErrorMessage', { defaultMessage: 'Rule {ruleTypeId} is disabled because it requires a {licenseType} license. Go to License Management to view upgrade options.', diff --git a/x-pack/plugins/alerting/server/lib/rule_execution_status.test.ts b/x-pack/plugins/alerting/server/lib/rule_execution_status.test.ts index 44a9e41c89052..ff43f4ffac8a9 100644 --- a/x-pack/plugins/alerting/server/lib/rule_execution_status.test.ts +++ b/x-pack/plugins/alerting/server/lib/rule_execution_status.test.ts @@ -7,8 +7,8 @@ import { loggingSystemMock } from '../../../../../src/core/server/mocks'; import { - AlertExecutionStatusErrorReasons, - AlertExecutionStatusWarningReasons, + RuleExecutionStatusErrorReasons, + RuleExecutionStatusWarningReasons, RuleExecutionState, } from '../types'; import { @@ -115,7 +115,7 @@ describe('RuleExecutionStatus', () => { checkDateIsNearNow(status.lastExecutionDate); expect(status.warning).toEqual({ message: translations.taskRunner.warning.maxExecutableActions, - reason: AlertExecutionStatusWarningReasons.MAX_EXECUTABLE_ACTIONS, + reason: RuleExecutionStatusWarningReasons.MAX_EXECUTABLE_ACTIONS, }); expect(status.status).toBe('warning'); expect(status.error).toBe(undefined); @@ -136,7 +136,7 @@ describe('RuleExecutionStatus', () => { test('error with a reason', () => { const status = executionStatusFromError( - new ErrorWithReason(AlertExecutionStatusErrorReasons.Execute, new Error('hoo!')) + new ErrorWithReason(RuleExecutionStatusErrorReasons.Execute, new Error('hoo!')) ); expect(status.status).toBe('error'); expect(status.error).toMatchInlineSnapshot(` @@ -151,7 +151,7 @@ describe('RuleExecutionStatus', () => { describe('ruleExecutionStatusToRaw()', () => { const date = new Date('2020-09-03T16:26:58Z'); const status = 'ok'; - const reason = AlertExecutionStatusErrorReasons.Decrypt; + const reason = RuleExecutionStatusErrorReasons.Decrypt; const error = { reason, message: 'wops' }; test('status without an error', () => { @@ -213,7 +213,7 @@ describe('RuleExecutionStatus', () => { describe('ruleExecutionStatusFromRaw()', () => { const date = new Date('2020-09-03T16:26:58Z').toISOString(); const status = 'active'; - const reason = AlertExecutionStatusErrorReasons.Execute; + const reason = RuleExecutionStatusErrorReasons.Execute; const error = { reason, message: 'wops' }; test('no input', () => { diff --git a/x-pack/plugins/alerting/server/lib/rule_execution_status.ts b/x-pack/plugins/alerting/server/lib/rule_execution_status.ts index 9a446d2383c66..a87aed321b16b 100644 --- a/x-pack/plugins/alerting/server/lib/rule_execution_status.ts +++ b/x-pack/plugins/alerting/server/lib/rule_execution_status.ts @@ -7,29 +7,29 @@ import { Logger } from 'src/core/server'; import { - AlertExecutionStatus, - AlertExecutionStatusValues, - AlertExecutionStatusWarningReasons, + RuleExecutionStatus, + RuleExecutionStatusValues, + RuleExecutionStatusWarningReasons, RawRuleExecutionStatus, RuleExecutionState, } from '../types'; import { getReasonFromError } from './error_with_reason'; import { getEsErrorMessage } from './errors'; -import { AlertExecutionStatuses } from '../../common'; +import { RuleExecutionStatuses } from '../../common'; import { translations } from '../constants/translations'; import { ActionsCompletion } from '../task_runner/types'; -export function executionStatusFromState(state: RuleExecutionState): AlertExecutionStatus { +export function executionStatusFromState(state: RuleExecutionState): RuleExecutionStatus { const alertIds = Object.keys(state.alertInstances ?? {}); const hasIncompleteAlertExecution = state.alertExecutionStore.triggeredActionsStatus === ActionsCompletion.PARTIAL; - let status: AlertExecutionStatuses = - alertIds.length === 0 ? AlertExecutionStatusValues[0] : AlertExecutionStatusValues[1]; + let status: RuleExecutionStatuses = + alertIds.length === 0 ? RuleExecutionStatusValues[0] : RuleExecutionStatusValues[1]; if (hasIncompleteAlertExecution) { - status = AlertExecutionStatusValues[5]; + status = RuleExecutionStatusValues[5]; } return { @@ -40,14 +40,14 @@ export function executionStatusFromState(state: RuleExecutionState): AlertExecut status, ...(hasIncompleteAlertExecution && { warning: { - reason: AlertExecutionStatusWarningReasons.MAX_EXECUTABLE_ACTIONS, + reason: RuleExecutionStatusWarningReasons.MAX_EXECUTABLE_ACTIONS, message: translations.taskRunner.warning.maxExecutableActions, }, }), }; } -export function executionStatusFromError(error: Error): AlertExecutionStatus { +export function executionStatusFromError(error: Error): RuleExecutionStatus { return { lastExecutionDate: new Date(), status: 'error', @@ -64,7 +64,7 @@ export function ruleExecutionStatusToRaw({ status, error, warning, -}: AlertExecutionStatus): RawRuleExecutionStatus { +}: RuleExecutionStatus): RawRuleExecutionStatus { return { lastExecutionDate: lastExecutionDate.toISOString(), lastDuration: lastDuration ?? 0, @@ -79,7 +79,7 @@ export function ruleExecutionStatusFromRaw( logger: Logger, ruleId: string, rawRuleExecutionStatus?: Partial | null | undefined -): AlertExecutionStatus | undefined { +): RuleExecutionStatus | undefined { if (!rawRuleExecutionStatus) return undefined; const { @@ -98,7 +98,7 @@ export function ruleExecutionStatusFromRaw( parsedDateMillis = Date.now(); } - const executionStatus: AlertExecutionStatus = { + const executionStatus: RuleExecutionStatus = { status, lastExecutionDate: new Date(parsedDateMillis), }; @@ -119,7 +119,7 @@ export function ruleExecutionStatusFromRaw( } export const getRuleExecutionStatusPending = (lastExecutionDate: string) => ({ - status: 'pending' as AlertExecutionStatuses, + status: 'pending' as RuleExecutionStatuses, lastExecutionDate, error: null, warning: null, diff --git a/x-pack/plugins/alerting/server/lib/validate_rule_type_params.ts b/x-pack/plugins/alerting/server/lib/validate_rule_type_params.ts index eef6ecb32c1b1..b791b05499263 100644 --- a/x-pack/plugins/alerting/server/lib/validate_rule_type_params.ts +++ b/x-pack/plugins/alerting/server/lib/validate_rule_type_params.ts @@ -6,11 +6,11 @@ */ import Boom from '@hapi/boom'; -import { AlertTypeParams, AlertTypeParamsValidator } from '../types'; +import { RuleTypeParams, RuleTypeParamsValidator } from '../types'; -export function validateRuleTypeParams( +export function validateRuleTypeParams( params: Record, - validator?: AlertTypeParamsValidator + validator?: RuleTypeParamsValidator ): Params { if (!validator) { return params as Params; diff --git a/x-pack/plugins/alerting/server/lib/wrap_scoped_cluster_client.ts b/x-pack/plugins/alerting/server/lib/wrap_scoped_cluster_client.ts index 69d4817f21a4e..914d6f8c6da30 100644 --- a/x-pack/plugins/alerting/server/lib/wrap_scoped_cluster_client.ts +++ b/x-pack/plugins/alerting/server/lib/wrap_scoped_cluster_client.ts @@ -22,7 +22,7 @@ import type { } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { IScopedClusterClient, ElasticsearchClient, Logger } from 'src/core/server'; import { RuleExecutionMetrics } from '../types'; -import { Alert as Rule } from '../types'; +import { Rule } from '../types'; type RuleInfo = Pick & { spaceId: string }; interface WrapScopedClusterClientFactoryOpts { diff --git a/x-pack/plugins/alerting/server/mocks.ts b/x-pack/plugins/alerting/server/mocks.ts index a94b30b59104c..d9951b4a79759 100644 --- a/x-pack/plugins/alerting/server/mocks.ts +++ b/x-pack/plugins/alerting/server/mocks.ts @@ -12,7 +12,9 @@ import { elasticsearchServiceMock, savedObjectsClientMock, uiSettingsServiceMock, + httpServerMock, } from '../../../../src/core/server/mocks'; +import { dataPluginMock } from '../../../../src/plugins/data/server/mocks'; import { AlertInstanceContext, AlertInstanceState } from './types'; export { rulesClientMock }; @@ -94,7 +96,7 @@ const createAbortableSearchServiceMock = () => { }; }; -const createAlertServicesMock = < +const createRuleExecutorServicesMock = < InstanceState extends AlertInstanceState = AlertInstanceState, InstanceContext extends AlertInstanceContext = AlertInstanceContext >() => { @@ -111,13 +113,18 @@ const createAlertServicesMock = < shouldWriteAlerts: () => true, shouldStopExecution: () => true, search: createAbortableSearchServiceMock(), + searchSourceClient: Promise.resolve( + dataPluginMock + .createStartContract() + .search.searchSource.asScoped(httpServerMock.createKibanaRequest()) + ), }; }; -export type AlertServicesMock = ReturnType; +export type RuleExecutorServicesMock = ReturnType; export const alertsMock = { createAlertFactory: createAlertFactoryMock, createSetup: createSetupMock, createStart: createStartMock, - createAlertServices: createAlertServicesMock, + createRuleExecutorServices: createRuleExecutorServicesMock, }; diff --git a/x-pack/plugins/alerting/server/plugin.test.ts b/x-pack/plugins/alerting/server/plugin.test.ts index 450c177d72473..8eb73aa25954b 100644 --- a/x-pack/plugins/alerting/server/plugin.test.ts +++ b/x-pack/plugins/alerting/server/plugin.test.ts @@ -19,6 +19,7 @@ import { AlertingConfig } from './config'; import { RuleType } from './types'; import { eventLogMock } from '../../event_log/server/mocks'; import { actionsMock } from '../../actions/server/mocks'; +import { dataPluginMock } from '../../../../src/plugins/data/server/mocks'; import { monitoringCollectionMock } from '../../monitoring_collection/server/mocks'; const generateAlertingConfig = (): AlertingConfig => ({ @@ -276,6 +277,7 @@ describe('Alerting Plugin', () => { licensing: licensingMock.createStart(), eventLog: eventLogMock.createStart(), taskManager: taskManagerMock.createStart(), + data: dataPluginMock.createStartContract(), }); expect(encryptedSavedObjectsSetup.canEncrypt).toEqual(false); @@ -313,6 +315,7 @@ describe('Alerting Plugin', () => { licensing: licensingMock.createStart(), eventLog: eventLogMock.createStart(), taskManager: taskManagerMock.createStart(), + data: dataPluginMock.createStartContract(), }); const fakeRequest = { @@ -361,6 +364,7 @@ describe('Alerting Plugin', () => { licensing: licensingMock.createStart(), eventLog: eventLogMock.createStart(), taskManager: taskManagerMock.createStart(), + data: dataPluginMock.createStartContract(), }); const fakeRequest = { diff --git a/x-pack/plugins/alerting/server/plugin.ts b/x-pack/plugins/alerting/server/plugin.ts index 8fa394445fe50..85279ec615331 100644 --- a/x-pack/plugins/alerting/server/plugin.ts +++ b/x-pack/plugins/alerting/server/plugin.ts @@ -45,8 +45,8 @@ import { AlertInstanceState, AlertsHealth, RuleType, - AlertTypeParams, - AlertTypeState, + RuleTypeParams, + RuleTypeState, } from './types'; import { registerAlertingUsageCollector } from './usage'; import { initializeAlertingTelemetry, scheduleAlertingTelemetry } from './usage/task'; @@ -63,6 +63,7 @@ import { getHealth } from './health/get_health'; import { AlertingAuthorizationClientFactory } from './alerting_authorization_client_factory'; import { AlertingAuthorization } from './authorization'; import { getSecurityHealth, SecurityHealth } from './lib/get_security_health'; +import { PluginStart as DataPluginStart } from '../../../../src/plugins/data/server'; import { MonitoringCollectionSetup } from '../../monitoring_collection/server'; import { registerNodeCollector, registerClusterCollector, InMemoryMetrics } from './monitoring'; import { getExecutionConfigForRuleType } from './lib/get_rules_config'; @@ -84,9 +85,9 @@ export const LEGACY_EVENT_LOG_ACTIONS = { export interface PluginSetupContract { registerType< - Params extends AlertTypeParams = AlertTypeParams, - ExtractedParams extends AlertTypeParams = AlertTypeParams, - State extends AlertTypeState = AlertTypeState, + Params extends RuleTypeParams = RuleTypeParams, + ExtractedParams extends RuleTypeParams = RuleTypeParams, + State extends RuleTypeState = RuleTypeState, InstanceState extends AlertInstanceState = AlertInstanceState, InstanceContext extends AlertInstanceContext = AlertInstanceContext, ActionGroupIds extends string = never, @@ -139,6 +140,7 @@ export interface AlertingPluginsStart { licensing: LicensingPluginStart; spaces?: SpacesPluginStart; security?: SecurityPluginStart; + data: DataPluginStart; } export class AlertingPlugin { @@ -285,9 +287,9 @@ export class AlertingPlugin { return { registerType: < - Params extends AlertTypeParams = never, - ExtractedParams extends AlertTypeParams = never, - State extends AlertTypeState = never, + Params extends RuleTypeParams = never, + ExtractedParams extends RuleTypeParams = never, + State extends RuleTypeState = never, InstanceState extends AlertInstanceState = never, InstanceContext extends AlertInstanceContext = never, ActionGroupIds extends string = never, @@ -407,6 +409,7 @@ export class AlertingPlugin { taskRunnerFactory.initialize({ logger, + data: plugins.data, savedObjects: core.savedObjects, uiSettings: core.uiSettings, elasticsearch: core.elasticsearch, diff --git a/x-pack/plugins/alerting/server/routes/create_rule.test.ts b/x-pack/plugins/alerting/server/routes/create_rule.test.ts index c878d8da218b1..62c7819fb5b05 100644 --- a/x-pack/plugins/alerting/server/routes/create_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/create_rule.test.ts @@ -13,9 +13,9 @@ import { verifyApiAccess } from '../lib/license_api_access'; import { mockHandlerArguments } from './_mock_handler_arguments'; import { CreateOptions } from '../rules_client'; import { rulesClientMock } from '../rules_client.mock'; -import { AlertTypeDisabledError } from '../lib'; +import { RuleTypeDisabledError } from '../lib'; import { AsApiContract } from './lib'; -import { SanitizedAlert } from '../types'; +import { SanitizedRule } from '../types'; import { encryptedSavedObjectsMock } from '../../../encrypted_saved_objects/server/mocks'; import { usageCountersServiceMock } from 'src/plugins/usage_collection/server/usage_counters/usage_counters_service.mock'; @@ -33,7 +33,7 @@ describe('createRuleRoute', () => { const createdAt = new Date(); const updatedAt = new Date(); - const mockedAlert: SanitizedAlert<{ bar: boolean }> = { + const mockedAlert: SanitizedRule<{ bar: boolean }> = { alertTypeId: '1', consumer: 'bar', name: 'abc', @@ -82,7 +82,7 @@ describe('createRuleRoute', () => { ], }; - const createResult: AsApiContract> = { + const createResult: AsApiContract> = { ...ruleToCreate, mute_all: mockedAlert.muteAll, created_by: mockedAlert.createdBy, @@ -471,7 +471,7 @@ describe('createRuleRoute', () => { const [, handler] = router.post.mock.calls[0]; - rulesClient.create.mockRejectedValue(new AlertTypeDisabledError('Fail', 'license_invalid')); + rulesClient.create.mockRejectedValue(new RuleTypeDisabledError('Fail', 'license_invalid')); const [context, req, res] = mockHandlerArguments({ rulesClient }, { body: ruleToCreate }, [ 'ok', diff --git a/x-pack/plugins/alerting/server/routes/create_rule.ts b/x-pack/plugins/alerting/server/routes/create_rule.ts index ed124bfbd3a2d..5278f748f0ce4 100644 --- a/x-pack/plugins/alerting/server/routes/create_rule.ts +++ b/x-pack/plugins/alerting/server/routes/create_rule.ts @@ -6,7 +6,7 @@ */ import { schema } from '@kbn/config-schema'; -import { validateDurationSchema, AlertTypeDisabledError } from '../lib'; +import { validateDurationSchema, RuleTypeDisabledError } from '../lib'; import { CreateOptions } from '../rules_client'; import { RewriteRequestCase, @@ -16,11 +16,11 @@ import { countUsageOfPredefinedIds, } from './lib'; import { - SanitizedAlert, + SanitizedRule, validateNotifyWhenType, - AlertTypeParams, + RuleTypeParams, BASE_ALERTING_API_PATH, - AlertNotifyWhenType, + RuleNotifyWhenType, } from '../types'; import { RouteOptions } from '.'; @@ -46,7 +46,7 @@ export const bodySchema = schema.object({ notify_when: schema.string({ validate: validateNotifyWhenType }), }); -const rewriteBodyReq: RewriteRequestCase['data']> = ({ +const rewriteBodyReq: RewriteRequestCase['data']> = ({ rule_type_id: alertTypeId, notify_when: notifyWhen, ...rest @@ -55,7 +55,7 @@ const rewriteBodyReq: RewriteRequestCase['data']> alertTypeId, notifyWhen, }); -const rewriteBodyRes: RewriteResponseCase> = ({ +const rewriteBodyRes: RewriteResponseCase> = ({ actions, alertTypeId, scheduledTaskId, @@ -121,11 +121,11 @@ export const createRuleRoute = ({ router, licenseState, usageCounter }: RouteOpt }); try { - const createdRule: SanitizedAlert = - await rulesClient.create({ + const createdRule: SanitizedRule = + await rulesClient.create({ data: rewriteBodyReq({ ...rule, - notify_when: rule.notify_when as AlertNotifyWhenType, + notify_when: rule.notify_when as RuleNotifyWhenType, }), options: { id: params?.id }, }); @@ -133,7 +133,7 @@ export const createRuleRoute = ({ router, licenseState, usageCounter }: RouteOpt body: rewriteBodyRes(createdRule), }); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/disable_rule.test.ts b/x-pack/plugins/alerting/server/routes/disable_rule.test.ts index 173f1df7e1e73..baecc8f198fff 100644 --- a/x-pack/plugins/alerting/server/routes/disable_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/disable_rule.test.ts @@ -10,7 +10,7 @@ import { httpServiceMock } from 'src/core/server/mocks'; import { licenseStateMock } from '../lib/license_state.mock'; import { mockHandlerArguments } from './_mock_handler_arguments'; import { rulesClientMock } from '../rules_client.mock'; -import { AlertTypeDisabledError } from '../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../lib/errors/rule_type_disabled'; const rulesClient = rulesClientMock.create(); @@ -67,7 +67,7 @@ describe('disableRuleRoute', () => { const [, handler] = router.post.mock.calls[0]; - rulesClient.disable.mockRejectedValue(new AlertTypeDisabledError('Fail', 'license_invalid')); + rulesClient.disable.mockRejectedValue(new RuleTypeDisabledError('Fail', 'license_invalid')); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ 'ok', diff --git a/x-pack/plugins/alerting/server/routes/disable_rule.ts b/x-pack/plugins/alerting/server/routes/disable_rule.ts index 81f77cb130d50..74bf9d11166be 100644 --- a/x-pack/plugins/alerting/server/routes/disable_rule.ts +++ b/x-pack/plugins/alerting/server/routes/disable_rule.ts @@ -7,7 +7,7 @@ import { IRouter } from 'kibana/server'; import { schema } from '@kbn/config-schema'; -import { ILicenseState, AlertTypeDisabledError } from '../lib'; +import { ILicenseState, RuleTypeDisabledError } from '../lib'; import { verifyAccessAndContext } from './lib'; import { AlertingRequestHandlerContext, BASE_ALERTING_API_PATH } from '../types'; @@ -34,7 +34,7 @@ export const disableRuleRoute = ( await rulesClient.disable({ id }); return res.noContent(); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/enable_rule.test.ts b/x-pack/plugins/alerting/server/routes/enable_rule.test.ts index 4c0bae2587924..9a8b3fe1b4226 100644 --- a/x-pack/plugins/alerting/server/routes/enable_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/enable_rule.test.ts @@ -10,7 +10,7 @@ import { httpServiceMock } from 'src/core/server/mocks'; import { licenseStateMock } from '../lib/license_state.mock'; import { mockHandlerArguments } from './_mock_handler_arguments'; import { rulesClientMock } from '../rules_client.mock'; -import { AlertTypeDisabledError } from '../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../lib/errors/rule_type_disabled'; const rulesClient = rulesClientMock.create(); @@ -67,7 +67,7 @@ describe('enableRuleRoute', () => { const [, handler] = router.post.mock.calls[0]; - rulesClient.enable.mockRejectedValue(new AlertTypeDisabledError('Fail', 'license_invalid')); + rulesClient.enable.mockRejectedValue(new RuleTypeDisabledError('Fail', 'license_invalid')); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ 'ok', diff --git a/x-pack/plugins/alerting/server/routes/enable_rule.ts b/x-pack/plugins/alerting/server/routes/enable_rule.ts index 5d77e375cfce6..e62e6aa30221f 100644 --- a/x-pack/plugins/alerting/server/routes/enable_rule.ts +++ b/x-pack/plugins/alerting/server/routes/enable_rule.ts @@ -7,7 +7,7 @@ import { IRouter } from 'kibana/server'; import { schema } from '@kbn/config-schema'; -import { ILicenseState, AlertTypeDisabledError } from '../lib'; +import { ILicenseState, RuleTypeDisabledError } from '../lib'; import { verifyAccessAndContext } from './lib'; import { AlertingRequestHandlerContext, BASE_ALERTING_API_PATH } from '../types'; @@ -34,7 +34,7 @@ export const enableRuleRoute = ( await rulesClient.enable({ id }); return res.noContent(); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/find_rules.ts b/x-pack/plugins/alerting/server/routes/find_rules.ts index 1202d56edb21c..7d7f878780ac3 100644 --- a/x-pack/plugins/alerting/server/routes/find_rules.ts +++ b/x-pack/plugins/alerting/server/routes/find_rules.ts @@ -13,7 +13,7 @@ import { ILicenseState } from '../lib'; import { FindOptions, FindResult } from '../rules_client'; import { RewriteRequestCase, RewriteResponseCase, verifyAccessAndContext } from './lib'; import { - AlertTypeParams, + RuleTypeParams, AlertingRequestHandlerContext, BASE_ALERTING_API_PATH, INTERNAL_BASE_ALERTING_API_PATH, @@ -62,7 +62,7 @@ const rewriteQueryReq: RewriteRequestCase = ({ ...(hasReference ? { hasReference } : {}), ...(searchFields ? { searchFields } : {}), }); -const rewriteBodyRes: RewriteResponseCase> = ({ +const rewriteBodyRes: RewriteResponseCase> = ({ perPage, data, ...restOfResult diff --git a/x-pack/plugins/alerting/server/routes/get_rule.test.ts b/x-pack/plugins/alerting/server/routes/get_rule.test.ts index 47503374394f8..4384e02352d95 100644 --- a/x-pack/plugins/alerting/server/routes/get_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/get_rule.test.ts @@ -12,7 +12,7 @@ import { licenseStateMock } from '../lib/license_state.mock'; import { verifyApiAccess } from '../lib/license_api_access'; import { mockHandlerArguments } from './_mock_handler_arguments'; import { rulesClientMock } from '../rules_client.mock'; -import { SanitizedAlert } from '../types'; +import { SanitizedRule } from '../types'; import { AsApiContract } from './lib'; const rulesClient = rulesClientMock.create(); @@ -25,7 +25,7 @@ beforeEach(() => { }); describe('getRuleRoute', () => { - const mockedAlert: SanitizedAlert<{ + const mockedAlert: SanitizedRule<{ bar: boolean; }> = { id: '1', @@ -63,7 +63,7 @@ describe('getRuleRoute', () => { }, }; - const getResult: AsApiContract> = { + const getResult: AsApiContract> = { ...pick(mockedAlert, 'consumer', 'name', 'schedule', 'tags', 'params', 'throttle', 'enabled'), rule_type_id: mockedAlert.alertTypeId, notify_when: mockedAlert.notifyWhen, diff --git a/x-pack/plugins/alerting/server/routes/get_rule.ts b/x-pack/plugins/alerting/server/routes/get_rule.ts index 8e0e89c379fcc..52b73d22680f9 100644 --- a/x-pack/plugins/alerting/server/routes/get_rule.ts +++ b/x-pack/plugins/alerting/server/routes/get_rule.ts @@ -11,18 +11,18 @@ import { IRouter } from 'kibana/server'; import { ILicenseState } from '../lib'; import { verifyAccessAndContext, RewriteResponseCase } from './lib'; import { - AlertTypeParams, + RuleTypeParams, AlertingRequestHandlerContext, BASE_ALERTING_API_PATH, INTERNAL_BASE_ALERTING_API_PATH, - SanitizedAlert, + SanitizedRule, } from '../types'; const paramSchema = schema.object({ id: schema.string(), }); -const rewriteBodyRes: RewriteResponseCase> = ({ +const rewriteBodyRes: RewriteResponseCase> = ({ alertTypeId, createdBy, updatedBy, diff --git a/x-pack/plugins/alerting/server/routes/get_rule_execution_log.test.ts b/x-pack/plugins/alerting/server/routes/get_rule_execution_log.test.ts index f304c7be86131..2394e159a9f19 100644 --- a/x-pack/plugins/alerting/server/routes/get_rule_execution_log.test.ts +++ b/x-pack/plugins/alerting/server/routes/get_rule_execution_log.test.ts @@ -11,7 +11,7 @@ import { licenseStateMock } from '../lib/license_state.mock'; import { mockHandlerArguments } from './_mock_handler_arguments'; import { SavedObjectsErrorHelpers } from 'src/core/server'; import { rulesClientMock } from '../rules_client.mock'; -import { IExecutionLogWithErrorsResult } from '../rules_client'; +import { IExecutionLogWithErrorsResult } from '../../common'; const rulesClient = rulesClientMock.create(); jest.mock('../lib/license_api_access.ts', () => ({ diff --git a/x-pack/plugins/alerting/server/routes/legacy/create.test.ts b/x-pack/plugins/alerting/server/routes/legacy/create.test.ts index cfbef73ea58db..cd584543d57e0 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/create.test.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/create.test.ts @@ -12,8 +12,8 @@ import { licenseStateMock } from '../../lib/license_state.mock'; import { verifyApiAccess } from '../../lib/license_api_access'; import { mockHandlerArguments } from './../_mock_handler_arguments'; import { rulesClientMock } from '../../rules_client.mock'; -import { Alert } from '../../../common/alert'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { Rule } from '../../../common/rule'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { encryptedSavedObjectsMock } from '../../../../encrypted_saved_objects/server/mocks'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; @@ -57,7 +57,7 @@ describe('createAlertRoute', () => { ], }; - const createResult: Alert<{ bar: boolean }> = { + const createResult: Rule<{ bar: boolean }> = { ...mockedAlert, enabled: true, muteAll: false, @@ -436,7 +436,7 @@ describe('createAlertRoute', () => { const [, handler] = router.post.mock.calls[0]; - rulesClient.create.mockRejectedValue(new AlertTypeDisabledError('Fail', 'license_invalid')); + rulesClient.create.mockRejectedValue(new RuleTypeDisabledError('Fail', 'license_invalid')); const [context, req, res] = mockHandlerArguments({ rulesClient }, {}, ['ok', 'forbidden']); diff --git a/x-pack/plugins/alerting/server/routes/legacy/create.ts b/x-pack/plugins/alerting/server/routes/legacy/create.ts index 8deeb733fd3b5..b6669a605022d 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/create.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/create.ts @@ -10,13 +10,13 @@ import { verifyApiAccess } from '../../lib/license_api_access'; import { validateDurationSchema } from '../../lib'; import { handleDisabledApiKeysError } from './../lib/error_handler'; import { - SanitizedAlert, - AlertNotifyWhenType, - AlertTypeParams, + SanitizedRule, + RuleNotifyWhenType, + RuleTypeParams, LEGACY_BASE_ALERT_API_PATH, validateNotifyWhenType, } from '../../types'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { RouteOptions } from '..'; import { countUsageOfPredefinedIds } from '../lib'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; @@ -67,7 +67,7 @@ export const createAlertRoute = ({ router, licenseState, usageCounter }: RouteOp const rulesClient = context.alerting.getRulesClient(); const alert = req.body; const params = req.params; - const notifyWhen = alert?.notifyWhen ? (alert.notifyWhen as AlertNotifyWhenType) : null; + const notifyWhen = alert?.notifyWhen ? (alert.notifyWhen as RuleNotifyWhenType) : null; trackLegacyRouteUsage('create', usageCounter); @@ -78,16 +78,15 @@ export const createAlertRoute = ({ router, licenseState, usageCounter }: RouteOp }); try { - const alertRes: SanitizedAlert = - await rulesClient.create({ - data: { ...alert, notifyWhen }, - options: { id: params?.id }, - }); + const alertRes: SanitizedRule = await rulesClient.create({ + data: { ...alert, notifyWhen }, + options: { id: params?.id }, + }); return res.ok({ body: alertRes, }); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/legacy/disable.test.ts b/x-pack/plugins/alerting/server/routes/legacy/disable.test.ts index ac44ab37761bc..1e9f5531d19d2 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/disable.test.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/disable.test.ts @@ -10,7 +10,7 @@ import { httpServiceMock } from 'src/core/server/mocks'; import { licenseStateMock } from '../../lib/license_state.mock'; import { mockHandlerArguments } from './../_mock_handler_arguments'; import { rulesClientMock } from '../../rules_client.mock'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; const rulesClient = rulesClientMock.create(); @@ -72,7 +72,7 @@ describe('disableAlertRoute', () => { const [, handler] = router.post.mock.calls[0]; - rulesClient.disable.mockRejectedValue(new AlertTypeDisabledError('Fail', 'license_invalid')); + rulesClient.disable.mockRejectedValue(new RuleTypeDisabledError('Fail', 'license_invalid')); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ 'ok', diff --git a/x-pack/plugins/alerting/server/routes/legacy/disable.ts b/x-pack/plugins/alerting/server/routes/legacy/disable.ts index 1cba654e11a51..1345c4ae4428a 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/disable.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/disable.ts @@ -11,7 +11,7 @@ import type { AlertingRouter } from '../../types'; import { ILicenseState } from '../../lib/license_state'; import { verifyApiAccess } from '../../lib/license_api_access'; import { LEGACY_BASE_ALERT_API_PATH } from '../../../common'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; const paramSchema = schema.object({ @@ -42,7 +42,7 @@ export const disableAlertRoute = ( await rulesClient.disable({ id }); return res.noContent(); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/legacy/enable.test.ts b/x-pack/plugins/alerting/server/routes/legacy/enable.test.ts index c35fb191fae6f..eb839ba3e7b83 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/enable.test.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/enable.test.ts @@ -10,7 +10,7 @@ import { httpServiceMock } from 'src/core/server/mocks'; import { licenseStateMock } from '../../lib/license_state.mock'; import { mockHandlerArguments } from './../_mock_handler_arguments'; import { rulesClientMock } from '../../rules_client.mock'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; const rulesClient = rulesClientMock.create(); @@ -72,7 +72,7 @@ describe('enableAlertRoute', () => { const [, handler] = router.post.mock.calls[0]; - rulesClient.enable.mockRejectedValue(new AlertTypeDisabledError('Fail', 'license_invalid')); + rulesClient.enable.mockRejectedValue(new RuleTypeDisabledError('Fail', 'license_invalid')); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ 'ok', diff --git a/x-pack/plugins/alerting/server/routes/legacy/enable.ts b/x-pack/plugins/alerting/server/routes/legacy/enable.ts index 000d165ff169d..ec3b4b0a0fc20 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/enable.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/enable.ts @@ -12,7 +12,7 @@ import { ILicenseState } from '../../lib/license_state'; import { verifyApiAccess } from '../../lib/license_api_access'; import { LEGACY_BASE_ALERT_API_PATH } from '../../../common'; import { handleDisabledApiKeysError } from './../lib/error_handler'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; const paramSchema = schema.object({ @@ -44,7 +44,7 @@ export const enableAlertRoute = ( await rulesClient.enable({ id }); return res.noContent(); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/legacy/get.test.ts b/x-pack/plugins/alerting/server/routes/legacy/get.test.ts index 40c7b224c7150..8c2233ae280b7 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/get.test.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/get.test.ts @@ -12,7 +12,7 @@ import { licenseStateMock } from '../../lib/license_state.mock'; import { verifyApiAccess } from '../../lib/license_api_access'; import { mockHandlerArguments } from './../_mock_handler_arguments'; import { rulesClientMock } from '../../rules_client.mock'; -import { Alert } from '../../../common'; +import { Rule } from '../../../common'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; const rulesClient = rulesClientMock.create(); @@ -29,7 +29,7 @@ beforeEach(() => { }); describe('getAlertRoute', () => { - const mockedAlert: Alert<{ + const mockedAlert: Rule<{ bar: true; }> = { id: '1', diff --git a/x-pack/plugins/alerting/server/routes/legacy/mute_all.test.ts b/x-pack/plugins/alerting/server/routes/legacy/mute_all.test.ts index 131b5ed7960bd..9d84fd75a68c5 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/mute_all.test.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/mute_all.test.ts @@ -11,7 +11,7 @@ import { httpServiceMock } from 'src/core/server/mocks'; import { licenseStateMock } from '../../lib/license_state.mock'; import { mockHandlerArguments } from './../_mock_handler_arguments'; import { rulesClientMock } from '../../rules_client.mock'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; const rulesClient = rulesClientMock.create(); @@ -72,7 +72,7 @@ describe('muteAllAlertRoute', () => { const [, handler] = router.post.mock.calls[0]; - rulesClient.muteAll.mockRejectedValue(new AlertTypeDisabledError('Fail', 'license_invalid')); + rulesClient.muteAll.mockRejectedValue(new RuleTypeDisabledError('Fail', 'license_invalid')); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ 'ok', diff --git a/x-pack/plugins/alerting/server/routes/legacy/mute_all.ts b/x-pack/plugins/alerting/server/routes/legacy/mute_all.ts index 222abc806ede2..f35ffe93ccda4 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/mute_all.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/mute_all.ts @@ -11,7 +11,7 @@ import type { AlertingRouter } from '../../types'; import { ILicenseState } from '../../lib/license_state'; import { verifyApiAccess } from '../../lib/license_api_access'; import { LEGACY_BASE_ALERT_API_PATH } from '../../../common'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; const paramSchema = schema.object({ @@ -42,7 +42,7 @@ export const muteAllAlertRoute = ( await rulesClient.muteAll({ id }); return res.noContent(); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/legacy/mute_instance.test.ts b/x-pack/plugins/alerting/server/routes/legacy/mute_instance.test.ts index 19ce9e1d2b107..5e17c42528e14 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/mute_instance.test.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/mute_instance.test.ts @@ -11,7 +11,7 @@ import { httpServiceMock } from 'src/core/server/mocks'; import { licenseStateMock } from '../../lib/license_state.mock'; import { mockHandlerArguments } from './../_mock_handler_arguments'; import { rulesClientMock } from '../../rules_client.mock'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; const rulesClient = rulesClientMock.create(); @@ -77,7 +77,7 @@ describe('muteAlertInstanceRoute', () => { const [, handler] = router.post.mock.calls[0]; rulesClient.muteInstance.mockRejectedValue( - new AlertTypeDisabledError('Fail', 'license_invalid') + new RuleTypeDisabledError('Fail', 'license_invalid') ); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ diff --git a/x-pack/plugins/alerting/server/routes/legacy/mute_instance.ts b/x-pack/plugins/alerting/server/routes/legacy/mute_instance.ts index be1c0876d5d2e..af6aea1e0f6c7 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/mute_instance.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/mute_instance.ts @@ -13,7 +13,7 @@ import { verifyApiAccess } from '../../lib/license_api_access'; import { LEGACY_BASE_ALERT_API_PATH } from '../../../common'; import { renameKeys } from './../lib/rename_keys'; import { MuteOptions } from '../../rules_client'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; const paramSchema = schema.object({ @@ -53,7 +53,7 @@ export const muteAlertInstanceRoute = ( await rulesClient.muteInstance(renamedQuery); return res.noContent(); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/legacy/unmute_all.test.ts b/x-pack/plugins/alerting/server/routes/legacy/unmute_all.test.ts index 8259d2305b941..f3530786667ff 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/unmute_all.test.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/unmute_all.test.ts @@ -11,7 +11,7 @@ import { httpServiceMock } from 'src/core/server/mocks'; import { licenseStateMock } from '../../lib/license_state.mock'; import { mockHandlerArguments } from './../_mock_handler_arguments'; import { rulesClientMock } from '../../rules_client.mock'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; const rulesClient = rulesClientMock.create(); @@ -72,7 +72,7 @@ describe('unmuteAllAlertRoute', () => { const [, handler] = router.post.mock.calls[0]; - rulesClient.unmuteAll.mockRejectedValue(new AlertTypeDisabledError('Fail', 'license_invalid')); + rulesClient.unmuteAll.mockRejectedValue(new RuleTypeDisabledError('Fail', 'license_invalid')); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ 'ok', diff --git a/x-pack/plugins/alerting/server/routes/legacy/unmute_all.ts b/x-pack/plugins/alerting/server/routes/legacy/unmute_all.ts index 40c303e5d7633..a6cd687271cc4 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/unmute_all.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/unmute_all.ts @@ -11,7 +11,7 @@ import type { AlertingRouter } from '../../types'; import { ILicenseState } from '../../lib/license_state'; import { verifyApiAccess } from '../../lib/license_api_access'; import { LEGACY_BASE_ALERT_API_PATH } from '../../../common'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; const paramSchema = schema.object({ @@ -42,7 +42,7 @@ export const unmuteAllAlertRoute = ( await rulesClient.unmuteAll({ id }); return res.noContent(); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/legacy/unmute_instance.test.ts b/x-pack/plugins/alerting/server/routes/legacy/unmute_instance.test.ts index bbe61d715a525..fa109fa09f250 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/unmute_instance.test.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/unmute_instance.test.ts @@ -11,7 +11,7 @@ import { httpServiceMock } from 'src/core/server/mocks'; import { licenseStateMock } from '../../lib/license_state.mock'; import { mockHandlerArguments } from './../_mock_handler_arguments'; import { rulesClientMock } from '../../rules_client.mock'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; const rulesClient = rulesClientMock.create(); @@ -77,7 +77,7 @@ describe('unmuteAlertInstanceRoute', () => { const [, handler] = router.post.mock.calls[0]; rulesClient.unmuteInstance.mockRejectedValue( - new AlertTypeDisabledError('Fail', 'license_invalid') + new RuleTypeDisabledError('Fail', 'license_invalid') ); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ diff --git a/x-pack/plugins/alerting/server/routes/legacy/unmute_instance.ts b/x-pack/plugins/alerting/server/routes/legacy/unmute_instance.ts index 1c65af9961adc..d4684bda7f0fa 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/unmute_instance.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/unmute_instance.ts @@ -11,7 +11,7 @@ import type { AlertingRouter } from '../../types'; import { ILicenseState } from '../../lib/license_state'; import { verifyApiAccess } from '../../lib/license_api_access'; import { LEGACY_BASE_ALERT_API_PATH } from '../../../common'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; const paramSchema = schema.object({ @@ -43,7 +43,7 @@ export const unmuteAlertInstanceRoute = ( await rulesClient.unmuteInstance({ alertId, alertInstanceId }); return res.noContent(); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/legacy/update.test.ts b/x-pack/plugins/alerting/server/routes/legacy/update.test.ts index 799672c3cf432..5396e267fa525 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/update.test.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/update.test.ts @@ -12,8 +12,8 @@ import { licenseStateMock } from '../../lib/license_state.mock'; import { verifyApiAccess } from '../../lib/license_api_access'; import { mockHandlerArguments } from './../_mock_handler_arguments'; import { rulesClientMock } from '../../rules_client.mock'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; -import { AlertNotifyWhenType } from '../../../common'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; +import { RuleNotifyWhenType } from '../../../common'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; const rulesClient = rulesClientMock.create(); @@ -50,7 +50,7 @@ describe('updateAlertRoute', () => { }, }, ], - notifyWhen: 'onActionGroupChange' as AlertNotifyWhenType, + notifyWhen: 'onActionGroupChange' as RuleNotifyWhenType, }; it('updates an alert with proper parameters', async () => { @@ -229,7 +229,7 @@ describe('updateAlertRoute', () => { const [, handler] = router.put.mock.calls[0]; - rulesClient.update.mockRejectedValue(new AlertTypeDisabledError('Fail', 'license_invalid')); + rulesClient.update.mockRejectedValue(new RuleTypeDisabledError('Fail', 'license_invalid')); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ 'ok', diff --git a/x-pack/plugins/alerting/server/routes/legacy/update.ts b/x-pack/plugins/alerting/server/routes/legacy/update.ts index d6e6a2b3c4ae8..b740be04829e8 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/update.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/update.ts @@ -12,10 +12,10 @@ import { ILicenseState } from '../../lib/license_state'; import { verifyApiAccess } from '../../lib/license_api_access'; import { validateDurationSchema } from '../../lib'; import { handleDisabledApiKeysError } from './../lib/error_handler'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; import { - AlertNotifyWhenType, + RuleNotifyWhenType, LEGACY_BASE_ALERT_API_PATH, validateNotifyWhenType, } from '../../../common'; @@ -77,14 +77,14 @@ export const updateAlertRoute = ( schedule, tags, throttle, - notifyWhen: notifyWhen as AlertNotifyWhenType, + notifyWhen: notifyWhen as RuleNotifyWhenType, }, }); return res.ok({ body: alertRes, }); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/legacy/update_api_key.test.ts b/x-pack/plugins/alerting/server/routes/legacy/update_api_key.test.ts index 7c48f5fff357d..5ae3ec2f5387f 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/update_api_key.test.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/update_api_key.test.ts @@ -11,7 +11,7 @@ import { httpServiceMock } from 'src/core/server/mocks'; import { licenseStateMock } from '../../lib/license_state.mock'; import { mockHandlerArguments } from './../_mock_handler_arguments'; import { rulesClientMock } from '../../rules_client.mock'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; const rulesClient = rulesClientMock.create(); @@ -73,7 +73,7 @@ describe('updateApiKeyRoute', () => { const [, handler] = router.post.mock.calls[0]; rulesClient.updateApiKey.mockRejectedValue( - new AlertTypeDisabledError('Fail', 'license_invalid') + new RuleTypeDisabledError('Fail', 'license_invalid') ); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ diff --git a/x-pack/plugins/alerting/server/routes/legacy/update_api_key.ts b/x-pack/plugins/alerting/server/routes/legacy/update_api_key.ts index a45767851c5c1..ab5ff254fca86 100644 --- a/x-pack/plugins/alerting/server/routes/legacy/update_api_key.ts +++ b/x-pack/plugins/alerting/server/routes/legacy/update_api_key.ts @@ -12,7 +12,7 @@ import { ILicenseState } from '../../lib/license_state'; import { verifyApiAccess } from '../../lib/license_api_access'; import { LEGACY_BASE_ALERT_API_PATH } from '../../../common'; import { handleDisabledApiKeysError } from './../lib/error_handler'; -import { AlertTypeDisabledError } from '../../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../../lib/errors/rule_type_disabled'; import { trackLegacyRouteUsage } from '../../lib/track_legacy_route_usage'; const paramSchema = schema.object({ @@ -44,7 +44,7 @@ export const updateApiKeyRoute = ( await rulesClient.updateApiKey({ id }); return res.noContent(); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/mute_alert.test.ts b/x-pack/plugins/alerting/server/routes/mute_alert.test.ts index 284a89ea8a677..0fc28412abc6f 100644 --- a/x-pack/plugins/alerting/server/routes/mute_alert.test.ts +++ b/x-pack/plugins/alerting/server/routes/mute_alert.test.ts @@ -10,7 +10,7 @@ import { httpServiceMock } from 'src/core/server/mocks'; import { licenseStateMock } from '../lib/license_state.mock'; import { mockHandlerArguments } from './_mock_handler_arguments'; import { rulesClientMock } from '../rules_client.mock'; -import { AlertTypeDisabledError } from '../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../lib/errors/rule_type_disabled'; const rulesClient = rulesClientMock.create(); jest.mock('../lib/license_api_access.ts', () => ({ @@ -71,7 +71,7 @@ describe('muteAlertRoute', () => { const [, handler] = router.post.mock.calls[0]; rulesClient.muteInstance.mockRejectedValue( - new AlertTypeDisabledError('Fail', 'license_invalid') + new RuleTypeDisabledError('Fail', 'license_invalid') ); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ diff --git a/x-pack/plugins/alerting/server/routes/mute_alert.ts b/x-pack/plugins/alerting/server/routes/mute_alert.ts index 301d04f362313..67e6f3b4002d7 100644 --- a/x-pack/plugins/alerting/server/routes/mute_alert.ts +++ b/x-pack/plugins/alerting/server/routes/mute_alert.ts @@ -7,7 +7,7 @@ import { IRouter } from 'kibana/server'; import { schema } from '@kbn/config-schema'; -import { ILicenseState, AlertTypeDisabledError } from '../lib'; +import { ILicenseState, RuleTypeDisabledError } from '../lib'; import { MuteOptions } from '../rules_client'; import { RewriteRequestCase, verifyAccessAndContext } from './lib'; import { AlertingRequestHandlerContext, BASE_ALERTING_API_PATH } from '../types'; @@ -44,7 +44,7 @@ export const muteAlertRoute = ( await rulesClient.muteInstance(params); return res.noContent(); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/mute_all_rule.test.ts b/x-pack/plugins/alerting/server/routes/mute_all_rule.test.ts index 56e46db082514..277add6ec1647 100644 --- a/x-pack/plugins/alerting/server/routes/mute_all_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/mute_all_rule.test.ts @@ -10,7 +10,7 @@ import { httpServiceMock } from 'src/core/server/mocks'; import { licenseStateMock } from '../lib/license_state.mock'; import { mockHandlerArguments } from './_mock_handler_arguments'; import { rulesClientMock } from '../rules_client.mock'; -import { AlertTypeDisabledError } from '../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../lib/errors/rule_type_disabled'; const rulesClient = rulesClientMock.create(); jest.mock('../lib/license_api_access.ts', () => ({ @@ -66,7 +66,7 @@ describe('muteAllRuleRoute', () => { const [, handler] = router.post.mock.calls[0]; - rulesClient.muteAll.mockRejectedValue(new AlertTypeDisabledError('Fail', 'license_invalid')); + rulesClient.muteAll.mockRejectedValue(new RuleTypeDisabledError('Fail', 'license_invalid')); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ 'ok', diff --git a/x-pack/plugins/alerting/server/routes/mute_all_rule.ts b/x-pack/plugins/alerting/server/routes/mute_all_rule.ts index f6d3870ef6744..ad3c93f415ea2 100644 --- a/x-pack/plugins/alerting/server/routes/mute_all_rule.ts +++ b/x-pack/plugins/alerting/server/routes/mute_all_rule.ts @@ -7,7 +7,7 @@ import { IRouter } from 'kibana/server'; import { schema } from '@kbn/config-schema'; -import { ILicenseState, AlertTypeDisabledError } from '../lib'; +import { ILicenseState, RuleTypeDisabledError } from '../lib'; import { verifyAccessAndContext } from './lib'; import { AlertingRequestHandlerContext, BASE_ALERTING_API_PATH } from '../types'; @@ -34,7 +34,7 @@ export const muteAllRuleRoute = ( await rulesClient.muteAll({ id }); return res.noContent(); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/resolve_rule.ts b/x-pack/plugins/alerting/server/routes/resolve_rule.ts index a31cf5059b99f..e6cacb8231b5f 100644 --- a/x-pack/plugins/alerting/server/routes/resolve_rule.ts +++ b/x-pack/plugins/alerting/server/routes/resolve_rule.ts @@ -11,7 +11,7 @@ import { IRouter } from 'kibana/server'; import { ILicenseState } from '../lib'; import { verifyAccessAndContext, RewriteResponseCase } from './lib'; import { - AlertTypeParams, + RuleTypeParams, AlertingRequestHandlerContext, INTERNAL_BASE_ALERTING_API_PATH, ResolvedSanitizedRule, @@ -21,7 +21,7 @@ const paramSchema = schema.object({ id: schema.string(), }); -const rewriteBodyRes: RewriteResponseCase> = ({ +const rewriteBodyRes: RewriteResponseCase> = ({ alertTypeId, createdBy, updatedBy, diff --git a/x-pack/plugins/alerting/server/routes/snooze_rule.test.ts b/x-pack/plugins/alerting/server/routes/snooze_rule.test.ts index dbcce10cc8e3e..f7e83301385ad 100644 --- a/x-pack/plugins/alerting/server/routes/snooze_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/snooze_rule.test.ts @@ -10,7 +10,7 @@ import { httpServiceMock } from 'src/core/server/mocks'; import { licenseStateMock } from '../lib/license_state.mock'; import { mockHandlerArguments } from './_mock_handler_arguments'; import { rulesClientMock } from '../rules_client.mock'; -import { AlertTypeDisabledError } from '../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../lib/errors/rule_type_disabled'; const rulesClient = rulesClientMock.create(); jest.mock('../lib/license_api_access.ts', () => ({ @@ -113,7 +113,7 @@ describe('snoozeAlertRoute', () => { const [, handler] = router.post.mock.calls[0]; - rulesClient.snooze.mockRejectedValue(new AlertTypeDisabledError('Fail', 'license_invalid')); + rulesClient.snooze.mockRejectedValue(new RuleTypeDisabledError('Fail', 'license_invalid')); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ 'ok', diff --git a/x-pack/plugins/alerting/server/routes/unmute_alert.test.ts b/x-pack/plugins/alerting/server/routes/unmute_alert.test.ts index 09c0033542dbb..bfc281cb16b2f 100644 --- a/x-pack/plugins/alerting/server/routes/unmute_alert.test.ts +++ b/x-pack/plugins/alerting/server/routes/unmute_alert.test.ts @@ -10,7 +10,7 @@ import { httpServiceMock } from 'src/core/server/mocks'; import { licenseStateMock } from '../lib/license_state.mock'; import { mockHandlerArguments } from './_mock_handler_arguments'; import { rulesClientMock } from '../rules_client.mock'; -import { AlertTypeDisabledError } from '../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../lib/errors/rule_type_disabled'; const rulesClient = rulesClientMock.create(); jest.mock('../lib/license_api_access.ts', () => ({ @@ -71,7 +71,7 @@ describe('unmuteAlertRoute', () => { const [, handler] = router.post.mock.calls[0]; rulesClient.unmuteInstance.mockRejectedValue( - new AlertTypeDisabledError('Fail', 'license_invalid') + new RuleTypeDisabledError('Fail', 'license_invalid') ); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ diff --git a/x-pack/plugins/alerting/server/routes/unmute_alert.ts b/x-pack/plugins/alerting/server/routes/unmute_alert.ts index 58c3f59b836b1..0269f53fa8827 100644 --- a/x-pack/plugins/alerting/server/routes/unmute_alert.ts +++ b/x-pack/plugins/alerting/server/routes/unmute_alert.ts @@ -7,7 +7,7 @@ import { IRouter } from 'kibana/server'; import { schema } from '@kbn/config-schema'; -import { ILicenseState, AlertTypeDisabledError } from '../lib'; +import { ILicenseState, RuleTypeDisabledError } from '../lib'; import { MuteOptions } from '../rules_client'; import { RewriteRequestCase, verifyAccessAndContext } from './lib'; import { AlertingRequestHandlerContext, BASE_ALERTING_API_PATH } from '../types'; @@ -44,7 +44,7 @@ export const unmuteAlertRoute = ( await rulesClient.unmuteInstance(params); return res.noContent(); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/unmute_all_rule.test.ts b/x-pack/plugins/alerting/server/routes/unmute_all_rule.test.ts index 0f031c2d8cc80..ff97819506276 100644 --- a/x-pack/plugins/alerting/server/routes/unmute_all_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/unmute_all_rule.test.ts @@ -10,7 +10,7 @@ import { httpServiceMock } from 'src/core/server/mocks'; import { licenseStateMock } from '../lib/license_state.mock'; import { mockHandlerArguments } from './_mock_handler_arguments'; import { rulesClientMock } from '../rules_client.mock'; -import { AlertTypeDisabledError } from '../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../lib/errors/rule_type_disabled'; const rulesClient = rulesClientMock.create(); jest.mock('../lib/license_api_access.ts', () => ({ @@ -66,7 +66,7 @@ describe('unmuteAllRuleRoute', () => { const [, handler] = router.post.mock.calls[0]; - rulesClient.unmuteAll.mockRejectedValue(new AlertTypeDisabledError('Fail', 'license_invalid')); + rulesClient.unmuteAll.mockRejectedValue(new RuleTypeDisabledError('Fail', 'license_invalid')); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ 'ok', diff --git a/x-pack/plugins/alerting/server/routes/unmute_all_rule.ts b/x-pack/plugins/alerting/server/routes/unmute_all_rule.ts index a0b562404b0b1..05ae9be2ba6e5 100644 --- a/x-pack/plugins/alerting/server/routes/unmute_all_rule.ts +++ b/x-pack/plugins/alerting/server/routes/unmute_all_rule.ts @@ -7,7 +7,7 @@ import { IRouter } from 'kibana/server'; import { schema } from '@kbn/config-schema'; -import { ILicenseState, AlertTypeDisabledError } from '../lib'; +import { ILicenseState, RuleTypeDisabledError } from '../lib'; import { verifyAccessAndContext } from './lib'; import { AlertingRequestHandlerContext, BASE_ALERTING_API_PATH } from '../types'; @@ -34,7 +34,7 @@ export const unmuteAllRuleRoute = ( await rulesClient.unmuteAll({ id }); return res.noContent(); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/unsnooze_rule.test.ts b/x-pack/plugins/alerting/server/routes/unsnooze_rule.test.ts index a0fbf9776240a..260e4b4150043 100644 --- a/x-pack/plugins/alerting/server/routes/unsnooze_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/unsnooze_rule.test.ts @@ -10,7 +10,7 @@ import { httpServiceMock } from 'src/core/server/mocks'; import { licenseStateMock } from '../lib/license_state.mock'; import { mockHandlerArguments } from './_mock_handler_arguments'; import { rulesClientMock } from '../rules_client.mock'; -import { AlertTypeDisabledError } from '../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../lib/errors/rule_type_disabled'; const rulesClient = rulesClientMock.create(); jest.mock('../lib/license_api_access.ts', () => ({ @@ -66,7 +66,7 @@ describe('unsnoozeAlertRoute', () => { const [, handler] = router.post.mock.calls[0]; - rulesClient.unsnooze.mockRejectedValue(new AlertTypeDisabledError('Fail', 'license_invalid')); + rulesClient.unsnooze.mockRejectedValue(new RuleTypeDisabledError('Fail', 'license_invalid')); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ 'ok', diff --git a/x-pack/plugins/alerting/server/routes/update_rule.test.ts b/x-pack/plugins/alerting/server/routes/update_rule.test.ts index 46f23641f70d9..f39ad53c8786d 100644 --- a/x-pack/plugins/alerting/server/routes/update_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/update_rule.test.ts @@ -13,10 +13,10 @@ import { verifyApiAccess } from '../lib/license_api_access'; import { mockHandlerArguments } from './_mock_handler_arguments'; import { UpdateOptions } from '../rules_client'; import { rulesClientMock } from '../rules_client.mock'; -import { AlertTypeDisabledError } from '../lib/errors/alert_type_disabled'; -import { AlertNotifyWhenType } from '../../common'; +import { RuleTypeDisabledError } from '../lib/errors/rule_type_disabled'; +import { RuleNotifyWhenType } from '../../common'; import { AsApiContract } from './lib'; -import { PartialAlert } from '../types'; +import { PartialRule } from '../types'; const rulesClient = rulesClientMock.create(); jest.mock('../lib/license_api_access.ts', () => ({ @@ -50,7 +50,7 @@ describe('updateRuleRoute', () => { }, }, ], - notifyWhen: 'onActionGroupChange' as AlertNotifyWhenType, + notifyWhen: 'onActionGroupChange' as RuleNotifyWhenType, }; const updateRequest: AsApiContract['data']> = { @@ -65,7 +65,7 @@ describe('updateRuleRoute', () => { ], }; - const updateResult: AsApiContract> = { + const updateResult: AsApiContract> = { ...updateRequest, id: mockedAlert.id, updated_at: mockedAlert.updatedAt, @@ -201,7 +201,7 @@ describe('updateRuleRoute', () => { const [, handler] = router.put.mock.calls[0]; - rulesClient.update.mockRejectedValue(new AlertTypeDisabledError('Fail', 'license_invalid')); + rulesClient.update.mockRejectedValue(new RuleTypeDisabledError('Fail', 'license_invalid')); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ 'ok', diff --git a/x-pack/plugins/alerting/server/routes/update_rule.ts b/x-pack/plugins/alerting/server/routes/update_rule.ts index 007d24bb8251b..5c416e50b4ff2 100644 --- a/x-pack/plugins/alerting/server/routes/update_rule.ts +++ b/x-pack/plugins/alerting/server/routes/update_rule.ts @@ -7,8 +7,8 @@ import { schema } from '@kbn/config-schema'; import { IRouter } from 'kibana/server'; -import { ILicenseState, AlertTypeDisabledError, validateDurationSchema } from '../lib'; -import { AlertNotifyWhenType } from '../../common'; +import { ILicenseState, RuleTypeDisabledError, validateDurationSchema } from '../lib'; +import { RuleNotifyWhenType } from '../../common'; import { UpdateOptions } from '../rules_client'; import { verifyAccessAndContext, @@ -17,11 +17,11 @@ import { handleDisabledApiKeysError, } from './lib'; import { - AlertTypeParams, + RuleTypeParams, AlertingRequestHandlerContext, BASE_ALERTING_API_PATH, validateNotifyWhenType, - PartialAlert, + PartialRule, } from '../types'; const paramSchema = schema.object({ @@ -47,7 +47,7 @@ const bodySchema = schema.object({ notify_when: schema.string({ validate: validateNotifyWhenType }), }); -const rewriteBodyReq: RewriteRequestCase> = (result) => { +const rewriteBodyReq: RewriteRequestCase> = (result) => { const { notify_when: notifyWhen, ...rest } = result.data; return { ...result, @@ -57,7 +57,7 @@ const rewriteBodyReq: RewriteRequestCase> = (resu }, }; }; -const rewriteBodyRes: RewriteResponseCase> = ({ +const rewriteBodyRes: RewriteResponseCase> = ({ actions, alertTypeId, scheduledTaskId, @@ -128,7 +128,7 @@ export const updateRuleRoute = ( id, data: { ...rule, - notify_when: rule.notify_when as AlertNotifyWhenType, + notify_when: rule.notify_when as RuleNotifyWhenType, }, }) ); @@ -136,7 +136,7 @@ export const updateRuleRoute = ( body: rewriteBodyRes(alertRes), }); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/routes/update_rule_api_key.test.ts b/x-pack/plugins/alerting/server/routes/update_rule_api_key.test.ts index b4fb7602bf034..2622c260d7938 100644 --- a/x-pack/plugins/alerting/server/routes/update_rule_api_key.test.ts +++ b/x-pack/plugins/alerting/server/routes/update_rule_api_key.test.ts @@ -10,7 +10,7 @@ import { httpServiceMock } from 'src/core/server/mocks'; import { licenseStateMock } from '../lib/license_state.mock'; import { mockHandlerArguments } from './_mock_handler_arguments'; import { rulesClientMock } from '../rules_client.mock'; -import { AlertTypeDisabledError } from '../lib/errors/alert_type_disabled'; +import { RuleTypeDisabledError } from '../lib/errors/rule_type_disabled'; const rulesClient = rulesClientMock.create(); jest.mock('../lib/license_api_access.ts', () => ({ @@ -67,7 +67,7 @@ describe('updateRuleApiKeyRoute', () => { const [, handler] = router.post.mock.calls[0]; rulesClient.updateApiKey.mockRejectedValue( - new AlertTypeDisabledError('Fail', 'license_invalid') + new RuleTypeDisabledError('Fail', 'license_invalid') ); const [context, req, res] = mockHandlerArguments({ rulesClient }, { params: {}, body: {} }, [ diff --git a/x-pack/plugins/alerting/server/routes/update_rule_api_key.ts b/x-pack/plugins/alerting/server/routes/update_rule_api_key.ts index 11d76f3992efd..a6644e455a9be 100644 --- a/x-pack/plugins/alerting/server/routes/update_rule_api_key.ts +++ b/x-pack/plugins/alerting/server/routes/update_rule_api_key.ts @@ -7,7 +7,7 @@ import { IRouter } from 'kibana/server'; import { schema } from '@kbn/config-schema'; -import { ILicenseState, AlertTypeDisabledError } from '../lib'; +import { ILicenseState, RuleTypeDisabledError } from '../lib'; import { verifyAccessAndContext } from './lib'; import { AlertingRequestHandlerContext, INTERNAL_BASE_ALERTING_API_PATH } from '../types'; @@ -34,7 +34,7 @@ export const updateRuleApiKeyRoute = ( await rulesClient.updateApiKey({ id }); return res.noContent(); } catch (e) { - if (e instanceof AlertTypeDisabledError) { + if (e instanceof RuleTypeDisabledError) { return e.sendResponse(res); } throw e; diff --git a/x-pack/plugins/alerting/server/rule_type_registry.ts b/x-pack/plugins/alerting/server/rule_type_registry.ts index 35e9e312e9a1a..bc548b8ae2286 100644 --- a/x-pack/plugins/alerting/server/rule_type_registry.ts +++ b/x-pack/plugins/alerting/server/rule_type_registry.ts @@ -16,8 +16,8 @@ import { RunContext, TaskManagerSetupContract } from '../../task_manager/server' import { TaskRunnerFactory } from './task_runner'; import { RuleType, - AlertTypeParams, - AlertTypeState, + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, } from './types'; @@ -84,9 +84,9 @@ const ruleTypeIdSchema = schema.string({ }); export type NormalizedRuleType< - Params extends AlertTypeParams, - ExtractedParams extends AlertTypeParams, - State extends AlertTypeState, + Params extends RuleTypeParams, + ExtractedParams extends RuleTypeParams, + State extends RuleTypeState, InstanceState extends AlertInstanceState, InstanceContext extends AlertInstanceContext, ActionGroupIds extends string, @@ -121,9 +121,9 @@ export type NormalizedRuleType< >; export type UntypedNormalizedRuleType = NormalizedRuleType< - AlertTypeParams, - AlertTypeParams, - AlertTypeState, + RuleTypeParams, + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string, @@ -167,9 +167,9 @@ export class RuleTypeRegistry { } public register< - Params extends AlertTypeParams, - ExtractedParams extends AlertTypeParams, - State extends AlertTypeState, + Params extends RuleTypeParams, + ExtractedParams extends RuleTypeParams, + State extends RuleTypeState, InstanceState extends AlertInstanceState, InstanceContext extends AlertInstanceContext, ActionGroupIds extends string, @@ -287,9 +287,9 @@ export class RuleTypeRegistry { } public get< - Params extends AlertTypeParams = AlertTypeParams, - ExtractedParams extends AlertTypeParams = AlertTypeParams, - State extends AlertTypeState = AlertTypeState, + Params extends RuleTypeParams = RuleTypeParams, + ExtractedParams extends RuleTypeParams = RuleTypeParams, + State extends RuleTypeState = RuleTypeState, InstanceState extends AlertInstanceState = AlertInstanceState, InstanceContext extends AlertInstanceContext = AlertInstanceContext, ActionGroupIds extends string = string, @@ -382,9 +382,9 @@ function normalizedActionVariables(actionVariables: RuleType['actionVariables']) } function augmentActionGroupsWithReserved< - Params extends AlertTypeParams, - ExtractedParams extends AlertTypeParams, - State extends AlertTypeState, + Params extends RuleTypeParams, + ExtractedParams extends RuleTypeParams, + State extends RuleTypeState, InstanceState extends AlertInstanceState, InstanceContext extends AlertInstanceContext, ActionGroupIds extends string, diff --git a/x-pack/plugins/alerting/server/rules_client/lib/mapped_params_utils.ts b/x-pack/plugins/alerting/server/rules_client/lib/mapped_params_utils.ts index e9624d4604c46..26385cfac3f78 100644 --- a/x-pack/plugins/alerting/server/rules_client/lib/mapped_params_utils.ts +++ b/x-pack/plugins/alerting/server/rules_client/lib/mapped_params_utils.ts @@ -6,7 +6,7 @@ */ import { snakeCase } from 'lodash'; -import { AlertTypeParams, MappedParams, MappedParamsProperties } from '../../types'; +import { RuleTypeParams, MappedParams, MappedParamsProperties } from '../../types'; import { SavedObjectAttribute } from '../../../../../../src/core/server'; import { iterateFilterKureyNode, @@ -32,7 +32,7 @@ const SEVERITY_MAP: Record = { * The function will match params present in MAPPED_PARAMS_PROPERTIES and * return an empty object if nothing is matched. */ -export const getMappedParams = (params: AlertTypeParams) => { +export const getMappedParams = (params: RuleTypeParams) => { return Object.entries(params).reduce((result, [key, value]) => { const snakeCaseKey = snakeCase(key); diff --git a/x-pack/plugins/alerting/server/rules_client/rules_client.ts b/x-pack/plugins/alerting/server/rules_client/rules_client.ts index 901d7102f40c6..ac53486d279fd 100644 --- a/x-pack/plugins/alerting/server/rules_client/rules_client.ts +++ b/x-pack/plugins/alerting/server/rules_client/rules_client.ts @@ -22,25 +22,25 @@ import { } from '../../../../../src/core/server'; import { ActionsClient, ActionsAuthorization } from '../../../actions/server'; import { - Alert as Rule, - PartialAlert as PartialRule, + Rule, + PartialRule, RawRule, RuleTypeRegistry, - AlertAction as RuleAction, + RuleAction, IntervalSchedule, - SanitizedAlert as SanitizedRule, + SanitizedRule, RuleTaskState, AlertSummary, - AlertExecutionStatusValues as RuleExecutionStatusValues, - AlertNotifyWhenType as RuleNotifyWhenType, - AlertTypeParams as RuleTypeParams, + RuleExecutionStatusValues, + RuleNotifyWhenType, + RuleTypeParams, ResolvedSanitizedRule, - AlertWithLegacyId as RuleWithLegacyId, + RuleWithLegacyId, SanitizedRuleWithLegacyId, - PartialAlertWithLegacyId as PartialRuleWithLegacyId, + PartialRuleWithLegacyId, RawAlertInstance as RawAlert, } from '../types'; -import { validateRuleTypeParams, ruleExecutionStatusFromRaw, getAlertNotifyWhenType } from '../lib'; +import { validateRuleTypeParams, ruleExecutionStatusFromRaw, getRuleNotifyWhenType } from '../lib'; import { GrantAPIKeyResult as SecurityPluginGrantAPIKeyResult, InvalidateAPIKeyResult as SecurityPluginInvalidateAPIKeyResult, @@ -89,13 +89,10 @@ import { formatExecutionLogResult, getExecutionLogAggregation, } from '../lib/get_execution_log_aggregation'; -import { IExecutionLogResult } from '../../common'; +import { IExecutionLogWithErrorsResult } from '../../common'; import { validateSnoozeDate } from '../lib/validate_snooze_date'; import { RuleMutedError } from '../lib/errors/rule_muted'; -import { - formatExecutionErrorsResult, - IExecutionErrorsResult, -} from '../lib/format_execution_log_errors'; +import { formatExecutionErrorsResult } from '../lib/format_execution_log_errors'; export interface RegistryAlertTypeWithAuth extends RegistryRuleType { authorizedConsumers: string[]; @@ -263,7 +260,6 @@ export interface GetExecutionLogByIdParams { sort: estypes.Sort; } -export type IExecutionLogWithErrorsResult = IExecutionLogResult & IExecutionErrorsResult; interface ScheduleRuleOptions { id: string; consumer: string; @@ -406,7 +402,7 @@ export class RulesClient { const createTime = Date.now(); const legacyId = Semver.lt(this.kibanaVersion, '8.0.0') ? id : null; - const notifyWhen = getAlertNotifyWhenType(data.notifyWhen, data.throttle); + const notifyWhen = getRuleNotifyWhenType(data.notifyWhen, data.throttle); const rawRule: RawRule = { ...data, @@ -1204,7 +1200,7 @@ export class RulesClient { } const apiKeyAttributes = this.apiKeyAsAlertAttributes(createdAPIKey, username); - const notifyWhen = getAlertNotifyWhenType(data.notifyWhen, data.throttle); + const notifyWhen = getRuleNotifyWhenType(data.notifyWhen, data.throttle); let updatedObject: SavedObject; const createAttributes = this.updateMeta({ diff --git a/x-pack/plugins/alerting/server/rules_client/tests/get_execution_log.test.ts b/x-pack/plugins/alerting/server/rules_client/tests/get_execution_log.test.ts index 8a16bcb2d2fd7..df5f9252a98a0 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/get_execution_log.test.ts +++ b/x-pack/plugins/alerting/server/rules_client/tests/get_execution_log.test.ts @@ -96,185 +96,189 @@ const BaseRuleSavedObject: SavedObject = { const aggregateResults = { aggregations: { - executionUuid: { + excludeExecuteStart: { meta: {}, - doc_count_error_upper_bound: 0, - sum_other_doc_count: 0, - buckets: [ - { - key: '6705da7d-2635-499d-a6a8-1aee1ae1eac9', - doc_count: 27, - timeoutMessage: { - meta: {}, - doc_count: 0, - }, - alertCounts: { - meta: {}, - buckets: { - activeAlerts: { - doc_count: 5, + doc_count: 875, + executionUuid: { + meta: {}, + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: '6705da7d-2635-499d-a6a8-1aee1ae1eac9', + doc_count: 27, + timeoutMessage: { + meta: {}, + doc_count: 0, + }, + alertCounts: { + meta: {}, + buckets: { + activeAlerts: { + doc_count: 5, + }, + newAlerts: { + doc_count: 5, + }, + recoveredAlerts: { + doc_count: 0, + }, }, - newAlerts: { - doc_count: 5, + }, + ruleExecution: { + meta: {}, + doc_count: 1, + numTriggeredActions: { + value: 5.0, }, - recoveredAlerts: { - doc_count: 0, + numScheduledActions: { + value: 5.0, }, - }, - }, - ruleExecution: { - meta: {}, - doc_count: 1, - numTriggeredActions: { - value: 5.0, - }, - numScheduledActions: { - value: 5.0, - }, - outcomeAndMessage: { - hits: { - total: { - value: 1, - relation: 'eq', - }, - max_score: 1.0, - hits: [ - { - _index: '.kibana-event-log-8.2.0-000001', - _id: 'S4wIZX8B8TGQpG7XQZns', - _score: 1.0, - _source: { - event: { - outcome: 'success', + outcomeAndMessage: { + hits: { + total: { + value: 1, + relation: 'eq', + }, + max_score: 1.0, + hits: [ + { + _index: '.kibana-event-log-8.2.0-000001', + _id: 'S4wIZX8B8TGQpG7XQZns', + _score: 1.0, + _source: { + event: { + outcome: 'success', + }, + message: + "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", }, - message: - "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", }, + ], + }, + }, + scheduleDelay: { + value: 3.126e9, + }, + totalSearchDuration: { + value: 0.0, + }, + esSearchDuration: { + value: 0.0, + }, + executionDuration: { + value: 1.056e9, + }, + executeStartTime: { + value: 1.646667512617e12, + value_as_string: '2022-03-07T15:38:32.617Z', + }, + }, + actionExecution: { + meta: {}, + doc_count: 5, + actionOutcomes: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'success', + doc_count: 5, }, ], }, }, - scheduleDelay: { - value: 3.126e9, - }, - totalSearchDuration: { - value: 0.0, - }, - esSearchDuration: { - value: 0.0, - }, - executionDuration: { - value: 1.056e9, - }, - executeStartTime: { - value: 1.646667512617e12, - value_as_string: '2022-03-07T15:38:32.617Z', - }, }, - actionExecution: { - meta: {}, - doc_count: 5, - actionOutcomes: { - doc_count_error_upper_bound: 0, - sum_other_doc_count: 0, - buckets: [ - { - key: 'success', + { + key: '41b2755e-765a-4044-9745-b03875d5e79a', + doc_count: 32, + timeoutMessage: { + meta: {}, + doc_count: 0, + }, + alertCounts: { + meta: {}, + buckets: { + activeAlerts: { + doc_count: 5, + }, + newAlerts: { + doc_count: 5, + }, + recoveredAlerts: { doc_count: 5, }, - ], + }, }, - }, - }, - { - key: '41b2755e-765a-4044-9745-b03875d5e79a', - doc_count: 32, - timeoutMessage: { - meta: {}, - doc_count: 0, - }, - alertCounts: { - meta: {}, - buckets: { - activeAlerts: { - doc_count: 5, + ruleExecution: { + meta: {}, + doc_count: 1, + numTriggeredActions: { + value: 5.0, + }, + numScheduledActions: { + value: 5.0, + }, + outcomeAndMessage: { + hits: { + total: { + value: 1, + relation: 'eq', + }, + max_score: 1.0, + hits: [ + { + _index: '.kibana-event-log-8.2.0-000001', + _id: 'a4wIZX8B8TGQpG7Xwpnz', + _score: 1.0, + _source: { + event: { + outcome: 'success', + }, + message: + "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", + }, + }, + ], + }, }, - newAlerts: { - doc_count: 5, + scheduleDelay: { + value: 3.345e9, }, - recoveredAlerts: { - doc_count: 5, + totalSearchDuration: { + value: 0.0, + }, + esSearchDuration: { + value: 0.0, + }, + executionDuration: { + value: 1.165e9, + }, + executeStartTime: { + value: 1.646667545604e12, + value_as_string: '2022-03-07T15:39:05.604Z', }, }, - }, - ruleExecution: { - meta: {}, - doc_count: 1, - numTriggeredActions: { - value: 5.0, - }, - numScheduledActions: { - value: 5.0, - }, - outcomeAndMessage: { - hits: { - total: { - value: 1, - relation: 'eq', - }, - max_score: 1.0, - hits: [ + actionExecution: { + meta: {}, + doc_count: 5, + actionOutcomes: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ { - _index: '.kibana-event-log-8.2.0-000001', - _id: 'a4wIZX8B8TGQpG7Xwpnz', - _score: 1.0, - _source: { - event: { - outcome: 'success', - }, - message: - "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", - }, + key: 'success', + doc_count: 5, }, ], }, }, - scheduleDelay: { - value: 3.345e9, - }, - totalSearchDuration: { - value: 0.0, - }, - esSearchDuration: { - value: 0.0, - }, - executionDuration: { - value: 1.165e9, - }, - executeStartTime: { - value: 1.646667545604e12, - value_as_string: '2022-03-07T15:39:05.604Z', - }, - }, - actionExecution: { - meta: {}, - doc_count: 5, - actionOutcomes: { - doc_count_error_upper_bound: 0, - sum_other_doc_count: 0, - buckets: [ - { - key: 'success', - doc_count: 5, - }, - ], - }, }, - }, - ], - }, - executionUuidCardinality: { - value: 374, + ], + }, + executionUuidCardinality: { + value: 374, + }, }, }, }; diff --git a/x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts b/x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts index 50e6979d6ee72..ffed0e0b5efbc 100644 --- a/x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts +++ b/x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts @@ -10,14 +10,14 @@ import { SavedObjectReference, SavedObjectUnsanitizedDoc, } from 'kibana/server'; -import { AlertTypeParams } from '../../index'; +import { RuleTypeParams } from '../../index'; import { Query } from '../../../../../../src/plugins/data/common/query'; import { RawRule } from '../../types'; // These definitions are dupes of the SO-types in stack_alerts/geo_containment // There are not exported to avoid deep imports from stack_alerts plugins into here const GEO_CONTAINMENT_ID = '.geo-containment'; -interface GeoContainmentParams extends AlertTypeParams { +interface GeoContainmentParams extends RuleTypeParams { index: string; indexId: string; geoField: string; diff --git a/x-pack/plugins/alerting/server/saved_objects/migrations.ts b/x-pack/plugins/alerting/server/saved_objects/migrations.ts index 0e3dc072366c2..91e03eb4da6c2 100644 --- a/x-pack/plugins/alerting/server/saved_objects/migrations.ts +++ b/x-pack/plugins/alerting/server/saved_objects/migrations.ts @@ -17,7 +17,7 @@ import { SavedObjectAttribute, SavedObjectReference, } from '../../../../../src/core/server'; -import { RawRule, RawAlertAction, RawRuleExecutionStatus } from '../types'; +import { RawRule, RawRuleAction, RawRuleExecutionStatus } from '../types'; import { EncryptedSavedObjectsPluginSetup } from '../../../encrypted_saved_objects/server'; import type { IsMigrationNeededPredicate } from '../../../encrypted_saved_objects/server'; import { extractRefsFromGeoContainmentAlert } from './geo_containment/migrations'; @@ -353,7 +353,7 @@ function restructureConnectorsThatSupportIncident( }, }, }, - ] as RawAlertAction[]; + ] as RawRuleAction[]; } else if (action.actionTypeId === '.jira') { const { title, comments, description, issueType, priority, labels, parent, summary } = action.params.subActionParams as { @@ -385,7 +385,7 @@ function restructureConnectorsThatSupportIncident( }, }, }, - ] as RawAlertAction[]; + ] as RawRuleAction[]; } else if (action.actionTypeId === '.resilient') { const { title, comments, description, incidentTypes, severityCode, name } = action.params .subActionParams as { @@ -413,12 +413,12 @@ function restructureConnectorsThatSupportIncident( }, }, }, - ] as RawAlertAction[]; + ] as RawRuleAction[]; } } return [...acc, action]; - }, [] as RawAlertAction[]); + }, [] as RawRuleAction[]); return { ...doc, @@ -855,13 +855,13 @@ function addMappedParams( function getCorrespondingAction( actions: SavedObjectAttribute, connectorRef: string -): RawAlertAction | null { +): RawRuleAction | null { if (!Array.isArray(actions)) { return null; } else { return actions.find( - (action) => (action as RawAlertAction)?.actionRef === connectorRef - ) as RawAlertAction; + (action) => (action as RawRuleAction)?.actionRef === connectorRef + ) as RawRuleAction; } } diff --git a/x-pack/plugins/alerting/server/task_runner/alert_task_instance.test.ts b/x-pack/plugins/alerting/server/task_runner/alert_task_instance.test.ts index ef48a701d0315..f5183e9e19dcc 100644 --- a/x-pack/plugins/alerting/server/task_runner/alert_task_instance.test.ts +++ b/x-pack/plugins/alerting/server/task_runner/alert_task_instance.test.ts @@ -8,9 +8,9 @@ import { ConcreteTaskInstance, TaskStatus } from '../../../task_manager/server'; import { AlertTaskInstance, taskInstanceToAlertTaskInstance } from './alert_task_instance'; import uuid from 'uuid'; -import { SanitizedAlert } from '../types'; +import { SanitizedRule } from '../types'; -const alert: SanitizedAlert<{ +const alert: SanitizedRule<{ bar: boolean; }> = { id: 'alert-123', diff --git a/x-pack/plugins/alerting/server/task_runner/alert_task_instance.ts b/x-pack/plugins/alerting/server/task_runner/alert_task_instance.ts index a6bb6a68ceae8..fd61b37a277de 100644 --- a/x-pack/plugins/alerting/server/task_runner/alert_task_instance.ts +++ b/x-pack/plugins/alerting/server/task_runner/alert_task_instance.ts @@ -10,12 +10,12 @@ import { pipe } from 'fp-ts/lib/pipeable'; import { fold } from 'fp-ts/lib/Either'; import { ConcreteTaskInstance } from '../../../task_manager/server'; import { - SanitizedAlert, + SanitizedRule, RuleTaskState, ruleParamsSchema, ruleStateSchema, RuleTaskParams, - AlertTypeParams, + RuleTypeParams, } from '../../common'; export interface AlertTaskInstance extends ConcreteTaskInstance { @@ -26,9 +26,9 @@ export interface AlertTaskInstance extends ConcreteTaskInstance { const enumerateErrorFields = (e: t.Errors) => `${e.map(({ context }) => context.map(({ key }) => key).join('.'))}`; -export function taskInstanceToAlertTaskInstance( +export function taskInstanceToAlertTaskInstance( taskInstance: ConcreteTaskInstance, - alert?: SanitizedAlert + alert?: SanitizedRule ): AlertTaskInstance { return { ...taskInstance, diff --git a/x-pack/plugins/alerting/server/task_runner/create_execution_handler.test.ts b/x-pack/plugins/alerting/server/task_runner/create_execution_handler.test.ts index 8b97bf9266e9a..af0220ccba987 100644 --- a/x-pack/plugins/alerting/server/task_runner/create_execution_handler.test.ts +++ b/x-pack/plugins/alerting/server/task_runner/create_execution_handler.test.ts @@ -18,21 +18,16 @@ import { KibanaRequest } from 'kibana/server'; import { asSavedObjectExecutionSource } from '../../../actions/server'; import { InjectActionParamsOpts } from './inject_action_params'; import { NormalizedRuleType } from '../rule_type_registry'; -import { - AlertInstanceContext, - AlertInstanceState, - AlertTypeParams, - AlertTypeState, -} from '../types'; +import { AlertInstanceContext, AlertInstanceState, RuleTypeParams, RuleTypeState } from '../types'; jest.mock('./inject_action_params', () => ({ injectActionParams: jest.fn(), })); const ruleType: NormalizedRuleType< - AlertTypeParams, - AlertTypeParams, - AlertTypeState, + RuleTypeParams, + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, 'default' | 'other-group', @@ -66,9 +61,9 @@ const mockActionsPlugin = actionsMock.createStart(); const mockEventLogger = eventLoggerMock.create(); const createExecutionHandlerParams: jest.Mocked< CreateExecutionHandlerOptions< - AlertTypeParams, - AlertTypeParams, - AlertTypeState, + RuleTypeParams, + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, 'default' | 'other-group', diff --git a/x-pack/plugins/alerting/server/task_runner/create_execution_handler.ts b/x-pack/plugins/alerting/server/task_runner/create_execution_handler.ts index 56e1a25cb0655..7752817f17c85 100644 --- a/x-pack/plugins/alerting/server/task_runner/create_execution_handler.ts +++ b/x-pack/plugins/alerting/server/task_runner/create_execution_handler.ts @@ -9,12 +9,7 @@ import { asSavedObjectExecutionSource } from '../../../actions/server'; import { SAVED_OBJECT_REL_PRIMARY } from '../../../event_log/server'; import { EVENT_LOG_ACTIONS } from '../plugin'; import { injectActionParams } from './inject_action_params'; -import { - AlertInstanceContext, - AlertInstanceState, - AlertTypeParams, - AlertTypeState, -} from '../types'; +import { AlertInstanceContext, AlertInstanceState, RuleTypeParams, RuleTypeState } from '../types'; import { UntypedNormalizedRuleType } from '../rule_type_registry'; import { isEphemeralTaskRejectedDueToCapacityError } from '../../../task_manager/server'; @@ -26,9 +21,9 @@ export type ExecutionHandler = ( ) => Promise; export function createExecutionHandler< - Params extends AlertTypeParams, - ExtractedParams extends AlertTypeParams, - State extends AlertTypeState, + Params extends RuleTypeParams, + ExtractedParams extends RuleTypeParams, + State extends RuleTypeState, InstanceState extends AlertInstanceState, InstanceContext extends AlertInstanceContext, ActionGroupIds extends string, diff --git a/x-pack/plugins/alerting/server/task_runner/fixtures.ts b/x-pack/plugins/alerting/server/task_runner/fixtures.ts index 1c8e1776a523f..613f3ed9e1645 100644 --- a/x-pack/plugins/alerting/server/task_runner/fixtures.ts +++ b/x-pack/plugins/alerting/server/task_runner/fixtures.ts @@ -7,9 +7,9 @@ import { isNil } from 'lodash'; import { - Alert, - AlertExecutionStatusWarningReasons, - AlertTypeParams, + Rule, + RuleExecutionStatusWarningReasons, + RuleTypeParams, RecoveredActionGroup, } from '../../common'; import { getDefaultRuleMonitoring } from './task_runner'; @@ -121,7 +121,7 @@ export const mockRunNowResponse = { export const mockDate = new Date('2019-02-12T21:01:22.479Z'); -export const mockedRuleTypeSavedObject: Alert = { +export const mockedRuleTypeSavedObject: Rule = { id: '1', consumer: 'bar', createdAt: mockDate, @@ -335,7 +335,7 @@ const generateMessage = ({ } if ( status === 'warning' && - reason === AlertExecutionStatusWarningReasons.MAX_EXECUTABLE_ACTIONS + reason === RuleExecutionStatusWarningReasons.MAX_EXECUTABLE_ACTIONS ) { return `The maximum number of actions for this rule type was reached; excess actions were not triggered.`; } diff --git a/x-pack/plugins/alerting/server/task_runner/inject_action_params.ts b/x-pack/plugins/alerting/server/task_runner/inject_action_params.ts index 11ac3f92d1071..f2a41038e257e 100644 --- a/x-pack/plugins/alerting/server/task_runner/inject_action_params.ts +++ b/x-pack/plugins/alerting/server/task_runner/inject_action_params.ts @@ -6,13 +6,13 @@ */ import { i18n } from '@kbn/i18n'; -import { AlertActionParams } from '../types'; +import { RuleActionParams } from '../types'; export interface InjectActionParamsOpts { ruleId: string; spaceId: string | undefined; actionTypeId: string; - actionParams: AlertActionParams; + actionParams: RuleActionParams; } export function injectActionParams({ 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 3eed02bb10e31..21109b60e012d 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 @@ -9,12 +9,12 @@ import sinon from 'sinon'; import { schema } from '@kbn/config-schema'; import { usageCountersServiceMock } from 'src/plugins/usage_collection/server/usage_counters/usage_counters_service.mock'; import { - AlertExecutorOptions, - AlertTypeParams, - AlertTypeState, + RuleExecutorOptions, + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, - AlertExecutionStatusWarningReasons, + RuleExecutionStatusWarningReasons, } from '../types'; import { ConcreteTaskInstance, @@ -70,6 +70,7 @@ import { import { EVENT_LOG_ACTIONS } from '../plugin'; import { IN_MEMORY_METRICS } from '../monitoring'; import { translations } from '../constants/translations'; +import { dataPluginMock } from '../../../../../src/plugins/data/server/mocks'; jest.mock('uuid', () => ({ v4: () => '5f6aa57d-3e22-484e-bae8-cbed868f4d28', @@ -95,12 +96,13 @@ describe('Task Runner', () => { afterAll(() => fakeTimer.restore()); const encryptedSavedObjectsClient = encryptedSavedObjectsMock.createClient(); - const services = alertsMock.createAlertServices(); + const services = alertsMock.createRuleExecutorServices(); const actionsClient = actionsClientMock.create(); const rulesClient = rulesClientMock.create(); const ruleTypeRegistry = ruleTypeRegistryMock.create(); const savedObjectsService = savedObjectsServiceMock.createInternalStartContract(); const elasticsearchService = elasticsearchServiceMock.createInternalStart(); + const dataPlugin = dataPluginMock.createStartContract(); const uiSettingsService = uiSettingsServiceMock.createStartContract(); const inMemoryMetrics = inMemoryMetricsMock.create(); @@ -113,6 +115,7 @@ describe('Task Runner', () => { type EnqueueFunction = (options: ExecuteOptions) => Promise; const taskRunnerFactoryInitializerParams: TaskRunnerFactoryInitializerParamsType = { + data: dataPlugin, savedObjects: savedObjectsService, uiSettings: uiSettingsService, elasticsearch: elasticsearchService, @@ -279,9 +282,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -383,9 +386,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -496,9 +499,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -547,9 +550,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -604,9 +607,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -664,9 +667,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -704,9 +707,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -794,9 +797,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -862,9 +865,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -937,9 +940,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -1054,9 +1057,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -1207,9 +1210,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -1291,9 +1294,9 @@ describe('Task Runner', () => { ruleTypeWithCustomRecovery.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -1353,9 +1356,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -1564,9 +1567,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -1803,9 +1806,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -1954,9 +1957,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -2062,9 +2065,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -2166,9 +2169,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -2346,9 +2349,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -2575,9 +2578,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -2605,9 +2608,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -2649,7 +2652,7 @@ describe('Task Runner', () => { }; const warning = { - reason: AlertExecutionStatusWarningReasons.MAX_EXECUTABLE_ACTIONS, + reason: RuleExecutionStatusWarningReasons.MAX_EXECUTABLE_ACTIONS, message: translations.taskRunner.warning.maxExecutableActions, }; @@ -2659,9 +2662,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -2817,7 +2820,7 @@ describe('Task Runner', () => { status: 'warning', numberOfTriggeredActions: ruleTypeWithConfig.config.execution.actions.max, numberOfScheduledActions: mockActions.length, - reason: AlertExecutionStatusWarningReasons.MAX_EXECUTABLE_ACTIONS, + reason: RuleExecutionStatusWarningReasons.MAX_EXECUTABLE_ACTIONS, task: true, consumer: 'bar', }) @@ -2849,9 +2852,9 @@ describe('Task Runner', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string 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 d3be5e3e6623d..36c8bddb1ff82 100644 --- a/x-pack/plugins/alerting/server/task_runner/task_runner.ts +++ b/x-pack/plugins/alerting/server/task_runner/task_runner.ts @@ -14,7 +14,7 @@ import { KibanaRequest, Logger } from '../../../../../src/core/server'; import { TaskRunnerContext } from './task_runner_factory'; import { ConcreteTaskInstance, throwUnrecoverableError } from '../../../task_manager/server'; import { createExecutionHandler, ExecutionHandler } from './create_execution_handler'; -import { Alert as CreatedAlert, createAlertFactory } from '../alert'; +import { Alert, createAlertFactory } from '../alert'; import { createWrappedScopedClusterClientFactory, ElasticsearchError, @@ -26,9 +26,9 @@ import { validateRuleTypeParams, } from '../lib'; import { - Alert, - AlertExecutionStatus, - AlertExecutionStatusErrorReasons, + Rule, + RuleExecutionStatus, + RuleExecutionStatusErrorReasons, IntervalSchedule, RawAlertInstance, RawRule, @@ -39,7 +39,7 @@ import { RuleMonitoringHistory, RuleTaskState, RuleTypeRegistry, - SanitizedAlert, + SanitizedRule, } from '../types'; import { asErr, asOk, map, promiseResult, resolveErr, Resultable } from '../lib/result_type'; import { getExecutionDurationPercentiles, getExecutionSuccessRatio } from '../lib/monitoring'; @@ -51,8 +51,8 @@ import { partiallyUpdateAlert } from '../saved_objects'; import { AlertInstanceContext, AlertInstanceState, - AlertTypeParams, - AlertTypeState, + RuleTypeParams, + RuleTypeState, MONITORING_HISTORY_LIMIT, parseDuration, WithoutReservedActionGroups, @@ -91,9 +91,9 @@ export const getDefaultRuleMonitoring = (): RuleMonitoring => ({ }); export class TaskRunner< - Params extends AlertTypeParams, - ExtractedParams extends AlertTypeParams, - State extends AlertTypeState, + Params extends RuleTypeParams, + ExtractedParams extends RuleTypeParams, + State extends RuleTypeState, InstanceState extends AlertInstanceState, InstanceContext extends AlertInstanceContext, ActionGroupIds extends string, @@ -201,7 +201,7 @@ export class TaskRunner< spaceId: string, apiKey: RawRule['apiKey'], kibanaBaseUrl: string | undefined, - actions: Alert['actions'], + actions: Rule['actions'], ruleParams: Params, request: KibanaRequest ) { @@ -252,7 +252,7 @@ export class TaskRunner< } } - private isRuleSnoozed(rule: SanitizedAlert): boolean { + private isRuleSnoozed(rule: SanitizedRule): boolean { if (rule.muteAll) { return true; } @@ -288,7 +288,7 @@ export class TaskRunner< private async executeAlert( alertId: string, - alert: CreatedAlert, + alert: Alert, executionHandler: ExecutionHandler, alertExecutionStore: AlertExecutionStore ) { @@ -312,7 +312,7 @@ export class TaskRunner< private async executeAlerts( fakeRequest: KibanaRequest, - rule: SanitizedAlert, + rule: SanitizedRule, params: Params, executionHandler: ExecutionHandler, spaceId: string, @@ -343,10 +343,10 @@ export class TaskRunner< const alerts = mapValues< Record, - CreatedAlert + Alert >( alertRawInstances, - (rawAlert, alertId) => new CreatedAlert(alertId, rawAlert) + (rawAlert, alertId) => new Alert(alertId, rawAlert) ); const originalAlerts = cloneDeep(alerts); @@ -391,6 +391,7 @@ export class TaskRunner< savedObjectsClient, uiSettingsClient: this.context.uiSettings.asScopedToClient(savedObjectsClient), scopedClusterClient: wrappedScopedClusterClient.client(), + searchSourceClient: this.context.data.search.searchSource.asScoped(fakeRequest), alertFactory: createAlertFactory< InstanceState, InstanceContext, @@ -439,7 +440,7 @@ export class TaskRunner< event.event = event.event || {}; event.event.outcome = 'failure'; - throw new ErrorWithReason(AlertExecutionStatusErrorReasons.Execute, err); + throw new ErrorWithReason(RuleExecutionStatusErrorReasons.Execute, err); } event.message = `rule executed: ${ruleLabel}`; @@ -455,7 +456,7 @@ export class TaskRunner< // Cleanup alerts that are no longer scheduling actions to avoid over populating the alertInstances object const alertsWithScheduledActions = pickBy( alerts, - (alert: CreatedAlert) => alert.hasScheduledActions() + (alert: Alert) => alert.hasScheduledActions() ); const recoveredAlerts = getRecoveredAlerts(alerts, originalAlertIds); @@ -501,7 +502,7 @@ export class TaskRunner< const mutedAlertIdsSet = new Set(mutedInstanceIds); const alertsWithExecutableActions = Object.entries(alertsWithScheduledActions).filter( - ([alertName, alert]: [string, CreatedAlert]) => { + ([alertName, alert]: [string, Alert]) => { const throttled = alert.isThrottled(throttle); const muted = mutedAlertIdsSet.has(alertName); let shouldExecuteAction = true; @@ -529,7 +530,7 @@ export class TaskRunner< await Promise.all( alertsWithExecutableActions.map( - ([alertId, alert]: [string, CreatedAlert]) => + ([alertId, alert]: [string, Alert]) => this.executeAlert(alertId, alert, executionHandler, alertExecutionStore) ) ); @@ -569,7 +570,7 @@ export class TaskRunner< alertExecutionStore, alertTypeState: updatedRuleTypeState || undefined, alertInstances: mapValues< - Record>, + Record>, RawAlertInstance >(alertsWithScheduledActions, (alert) => alert.toRaw()), }; @@ -578,7 +579,7 @@ export class TaskRunner< private async validateAndExecuteRule( fakeRequest: KibanaRequest, apiKey: RawRule['apiKey'], - rule: SanitizedAlert, + rule: SanitizedRule, event: Event ) { const { @@ -616,14 +617,14 @@ export class TaskRunner< enabled = decryptedAttributes.enabled; consumer = decryptedAttributes.consumer; } catch (err) { - throw new ErrorWithReason(AlertExecutionStatusErrorReasons.Decrypt, err); + throw new ErrorWithReason(RuleExecutionStatusErrorReasons.Decrypt, err); } this.ruleConsumer = consumer; if (!enabled) { throw new ErrorWithReason( - AlertExecutionStatusErrorReasons.Disabled, + RuleExecutionStatusErrorReasons.Disabled, new Error(`Rule failed to execute because rule ran after it was disabled.`) ); } @@ -633,7 +634,7 @@ export class TaskRunner< // Get rules client with space level permissions const rulesClient = this.context.getRulesClientWithRequest(fakeRequest); - let rule: SanitizedAlert; + let rule: SanitizedRule; // Ensure API key is still valid and user has access try { @@ -650,7 +651,7 @@ export class TaskRunner< }); } } catch (err) { - throw new ErrorWithReason(AlertExecutionStatusErrorReasons.Read, err); + throw new ErrorWithReason(RuleExecutionStatusErrorReasons.Read, err); } this.ruleName = rule.name; @@ -658,7 +659,7 @@ export class TaskRunner< try { this.ruleTypeRegistry.ensureRuleTypeEnabled(rule.alertTypeId); } catch (err) { - throw new ErrorWithReason(AlertExecutionStatusErrorReasons.License, err); + throw new ErrorWithReason(RuleExecutionStatusErrorReasons.License, err); } if (rule.monitoring) { @@ -759,7 +760,7 @@ export class TaskRunner< return getDefaultRuleMonitoring(); }) ?? getDefaultRuleMonitoring(); - const executionStatus = map( + const executionStatus = map( state, (ruleExecutionState) => executionStatusFromState(ruleExecutionState), (err: ElasticsearchError) => executionStatusFromError(err) @@ -991,11 +992,11 @@ export class TaskRunner< this.inMemoryMetrics.increment(IN_MEMORY_METRICS.RULE_TIMEOUTS); // Update the rule saved object with execution status - const executionStatus: AlertExecutionStatus = { + const executionStatus: RuleExecutionStatus = { lastExecutionDate: new Date(), status: 'error', error: { - reason: AlertExecutionStatusErrorReasons.Timeout, + reason: RuleExecutionStatusErrorReasons.Timeout, message: `${this.ruleType.id}:${ruleId}: execution cancelled due to timeout - exceeded rule type timeout of ${this.ruleType.ruleTaskTimeout}`, }, }; 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 39d2aa8418394..1e24ac986f015 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 @@ -8,9 +8,9 @@ import sinon from 'sinon'; import { usageCountersServiceMock } from 'src/plugins/usage_collection/server/usage_counters/usage_counters_service.mock'; import { - AlertExecutorOptions, - AlertTypeParams, - AlertTypeState, + RuleExecutorOptions, + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, } from '../types'; @@ -32,9 +32,10 @@ import { actionsMock, actionsClientMock } from '../../../actions/server/mocks'; import { alertsMock, rulesClientMock } from '../mocks'; import { eventLoggerMock } from '../../../event_log/server/event_logger.mock'; import { IEventLogger } from '../../../event_log/server'; -import { Alert, RecoveredActionGroup } from '../../common'; +import { Rule, RecoveredActionGroup } from '../../common'; import { UntypedNormalizedRuleType } from '../rule_type_registry'; import { ruleTypeRegistryMock } from '../rule_type_registry.mock'; +import { dataPluginMock } from '../../../../../src/plugins/data/server/mocks'; import { inMemoryMetricsMock } from '../monitoring/in_memory_metrics.mock'; jest.mock('uuid', () => ({ @@ -97,13 +98,14 @@ describe('Task Runner Cancel', () => { afterAll(() => fakeTimer.restore()); const encryptedSavedObjectsClient = encryptedSavedObjectsMock.createClient(); - const services = alertsMock.createAlertServices(); + const services = alertsMock.createRuleExecutorServices(); const actionsClient = actionsClientMock.create(); const rulesClient = rulesClientMock.create(); const ruleTypeRegistry = ruleTypeRegistryMock.create(); const savedObjectsService = savedObjectsServiceMock.createInternalStartContract(); const elasticsearchService = elasticsearchServiceMock.createInternalStart(); const uiSettingsService = uiSettingsServiceMock.createStartContract(); + const dataPlugin = dataPluginMock.createStartContract(); const inMemoryMetrics = inMemoryMetricsMock.create(); type TaskRunnerFactoryInitializerParamsType = jest.Mocked & { @@ -113,6 +115,7 @@ describe('Task Runner Cancel', () => { }; const taskRunnerFactoryInitializerParams: TaskRunnerFactoryInitializerParamsType = { + data: dataPlugin, savedObjects: savedObjectsService, uiSettings: uiSettingsService, elasticsearch: elasticsearchService, @@ -135,7 +138,7 @@ describe('Task Runner Cancel', () => { const mockDate = new Date('2019-02-12T21:01:22.479Z'); - const mockedRuleSavedObject: Alert = { + const mockedRuleSavedObject: Rule = { id: '1', consumer: 'bar', createdAt: mockDate, @@ -399,9 +402,9 @@ describe('Task Runner Cancel', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -438,9 +441,9 @@ describe('Task Runner Cancel', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string @@ -473,9 +476,9 @@ describe('Task Runner Cancel', () => { ruleType.executor.mockImplementation( async ({ services: executorServices, - }: AlertExecutorOptions< - AlertTypeParams, - AlertTypeState, + }: RuleExecutorOptions< + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, string diff --git a/x-pack/plugins/alerting/server/task_runner/task_runner_factory.test.ts b/x-pack/plugins/alerting/server/task_runner/task_runner_factory.test.ts index 123f5d46e62ad..8cda4f9567d3f 100644 --- a/x-pack/plugins/alerting/server/task_runner/task_runner_factory.test.ts +++ b/x-pack/plugins/alerting/server/task_runner/task_runner_factory.test.ts @@ -24,6 +24,7 @@ import { eventLoggerMock } from '../../../event_log/server/event_logger.mock'; import { UntypedNormalizedRuleType } from '../rule_type_registry'; import { ruleTypeRegistryMock } from '../rule_type_registry.mock'; import { executionContextServiceMock } from '../../../../../src/core/server/mocks'; +import { dataPluginMock } from '../../../../../src/plugins/data/server/mocks'; import { inMemoryMetricsMock } from '../monitoring/in_memory_metrics.mock'; const inMemoryMetrics = inMemoryMetricsMock.create(); @@ -33,6 +34,7 @@ const mockUsageCounter = mockUsageCountersSetup.createUsageCounter('test'); const savedObjectsService = savedObjectsServiceMock.createInternalStartContract(); const uiSettingsService = uiSettingsServiceMock.createStartContract(); const elasticsearchService = elasticsearchServiceMock.createInternalStart(); +const dataPlugin = dataPluginMock.createStartContract(); const ruleType: UntypedNormalizedRuleType = { id: 'test', name: 'My test alert', @@ -80,6 +82,7 @@ describe('Task Runner Factory', () => { const rulesClient = rulesClientMock.create(); const taskRunnerFactoryInitializerParams: jest.Mocked = { + data: dataPlugin, savedObjects: savedObjectsService, uiSettings: uiSettingsService, elasticsearch: elasticsearchService, diff --git a/x-pack/plugins/alerting/server/task_runner/task_runner_factory.ts b/x-pack/plugins/alerting/server/task_runner/task_runner_factory.ts index f6f80e66ce9c3..2cba16152e198 100644 --- a/x-pack/plugins/alerting/server/task_runner/task_runner_factory.ts +++ b/x-pack/plugins/alerting/server/task_runner/task_runner_factory.ts @@ -21,10 +21,10 @@ import { RunContext } from '../../../task_manager/server'; import { EncryptedSavedObjectsClient } from '../../../encrypted_saved_objects/server'; import { PluginStartContract as ActionsPluginStartContract } from '../../../actions/server'; import { - AlertTypeParams, + RuleTypeParams, RuleTypeRegistry, SpaceIdToNamespaceFunction, - AlertTypeState, + RuleTypeState, AlertInstanceState, AlertInstanceContext, } from '../types'; @@ -32,10 +32,12 @@ import { TaskRunner } from './task_runner'; import { IEventLogger } from '../../../event_log/server'; import { RulesClient } from '../rules_client'; import { NormalizedRuleType } from '../rule_type_registry'; +import { PluginStart as DataPluginStart } from '../../../../../src/plugins/data/server'; import { InMemoryMetrics } from '../monitoring'; export interface TaskRunnerContext { logger: Logger; + data: DataPluginStart; savedObjects: SavedObjectsServiceStart; uiSettings: UiSettingsServiceStart; elasticsearch: ElasticsearchServiceStart; @@ -68,9 +70,9 @@ export class TaskRunnerFactory { } public create< - Params extends AlertTypeParams, - ExtractedParams extends AlertTypeParams, - State extends AlertTypeState, + Params extends RuleTypeParams, + ExtractedParams extends RuleTypeParams, + State extends RuleTypeState, InstanceState extends AlertInstanceState, InstanceContext extends AlertInstanceContext, ActionGroupIds extends string, diff --git a/x-pack/plugins/alerting/server/task_runner/transform_action_params.ts b/x-pack/plugins/alerting/server/task_runner/transform_action_params.ts index 3f9fe9e9c59e0..387bdc00125f0 100644 --- a/x-pack/plugins/alerting/server/task_runner/transform_action_params.ts +++ b/x-pack/plugins/alerting/server/task_runner/transform_action_params.ts @@ -6,10 +6,10 @@ */ import { - AlertActionParams, + RuleActionParams, AlertInstanceState, AlertInstanceContext, - AlertTypeParams, + RuleTypeParams, } from '../types'; import { PluginStartContract as ActionsPluginStartContract } from '../../../actions/server'; @@ -26,8 +26,8 @@ interface TransformActionParamsOptions { alertActionGroup: string; alertActionGroupName: string; alertActionSubgroup?: string; - actionParams: AlertActionParams; - alertParams: AlertTypeParams; + actionParams: RuleActionParams; + alertParams: RuleTypeParams; state: AlertInstanceState; kibanaBaseUrl?: string; context: AlertInstanceContext; @@ -51,7 +51,7 @@ export function transformActionParams({ state, kibanaBaseUrl, alertParams, -}: TransformActionParamsOptions): AlertActionParams { +}: TransformActionParamsOptions): RuleActionParams { // when the list of variables we pass in here changes, // the UI will need to be updated as well; see: // x-pack/plugins/triggers_actions_ui/public/application/lib/action_variables.ts diff --git a/x-pack/plugins/alerting/server/task_runner/types.ts b/x-pack/plugins/alerting/server/task_runner/types.ts index d8483139a92b9..d5ad11f246c49 100644 --- a/x-pack/plugins/alerting/server/task_runner/types.ts +++ b/x-pack/plugins/alerting/server/task_runner/types.ts @@ -9,19 +9,19 @@ import { Dictionary } from 'lodash'; import { KibanaRequest, Logger } from 'kibana/server'; import { ActionGroup, - AlertAction, + RuleAction, AlertInstanceContext, AlertInstanceState, - AlertTypeParams, - AlertTypeState, + RuleTypeParams, + RuleTypeState, IntervalSchedule, RuleExecutionState, RuleMonitoring, RuleTaskState, - SanitizedAlert, + SanitizedRule, } from '../../common'; import { ConcreteTaskInstance } from '../../../task_manager/server'; -import { Alert as CreatedAlert } from '../alert'; +import { Alert } from '../alert'; import { IEventLogger } from '../../../event_log/server'; import { NormalizedRuleType } from '../rule_type_registry'; import { ExecutionHandler } from './create_execution_handler'; @@ -48,9 +48,9 @@ export interface TrackAlertDurationsParams< InstanceState extends AlertInstanceState, InstanceContext extends AlertInstanceContext > { - originalAlerts: Dictionary>; - currentAlerts: Dictionary>; - recoveredAlerts: Dictionary>; + originalAlerts: Dictionary>; + currentAlerts: Dictionary>; + recoveredAlerts: Dictionary>; } export interface GenerateNewAndRecoveredAlertEventsParams< @@ -59,16 +59,16 @@ export interface GenerateNewAndRecoveredAlertEventsParams< > { eventLogger: IEventLogger; executionId: string; - originalAlerts: Dictionary>; - currentAlerts: Dictionary>; - recoveredAlerts: Dictionary>; + originalAlerts: Dictionary>; + currentAlerts: Dictionary>; + recoveredAlerts: Dictionary>; ruleId: string; ruleLabel: string; namespace: string | undefined; ruleType: NormalizedRuleType< - AlertTypeParams, - AlertTypeParams, - AlertTypeState, + RuleTypeParams, + RuleTypeParams, + RuleTypeState, { [x: string]: unknown; }, @@ -78,7 +78,7 @@ export interface GenerateNewAndRecoveredAlertEventsParams< string, string >; - rule: SanitizedAlert; + rule: SanitizedRule; spaceId: string; } @@ -89,7 +89,7 @@ export interface ScheduleActionsForRecoveredAlertsParams< > { logger: Logger; recoveryActionGroup: ActionGroup; - recoveredAlerts: Dictionary>; + recoveredAlerts: Dictionary>; executionHandler: ExecutionHandler; mutedAlertIdsSet: Set; ruleLabel: string; @@ -103,8 +103,8 @@ export interface LogActiveAndRecoveredAlertsParams< RecoveryActionGroupId extends string > { logger: Logger; - activeAlerts: Dictionary>; - recoveredAlerts: Dictionary>; + activeAlerts: Dictionary>; + recoveredAlerts: Dictionary>; ruleLabel: string; canSetRecoveryContext: boolean; } @@ -112,9 +112,9 @@ export interface LogActiveAndRecoveredAlertsParams< // / ExecutionHandler export interface CreateExecutionHandlerOptions< - Params extends AlertTypeParams, - ExtractedParams extends AlertTypeParams, - State extends AlertTypeState, + Params extends RuleTypeParams, + ExtractedParams extends RuleTypeParams, + State extends RuleTypeState, InstanceState extends AlertInstanceState, InstanceContext extends AlertInstanceContext, ActionGroupIds extends string, @@ -126,7 +126,7 @@ export interface CreateExecutionHandlerOptions< executionId: string; tags?: string[]; actionsPlugin: ActionsPluginStartContract; - actions: AlertAction[]; + actions: RuleAction[]; spaceId: string; apiKey: RawRule['apiKey']; kibanaBaseUrl: string | undefined; @@ -142,7 +142,7 @@ export interface CreateExecutionHandlerOptions< logger: Logger; eventLogger: IEventLogger; request: KibanaRequest; - ruleParams: AlertTypeParams; + ruleParams: RuleTypeParams; supportsEphemeralTasks: boolean; maxEphemeralActionsPerRule: number; } diff --git a/x-pack/plugins/alerting/server/types.ts b/x-pack/plugins/alerting/server/types.ts index 37df778b6185a..cfd03f4edf184 100644 --- a/x-pack/plugins/alerting/server/types.ts +++ b/x-pack/plugins/alerting/server/types.ts @@ -23,25 +23,26 @@ import { SavedObjectsClientContract, } from '../../../../src/core/server'; import { - Alert, - AlertActionParams, + Rule, + RuleTypeParams, + RuleTypeState, + RuleActionParams, + RuleExecutionStatuses, + RuleExecutionStatusErrorReasons, + RuleExecutionStatusWarningReasons, + RuleNotifyWhenType, ActionGroup, - AlertTypeParams, - AlertTypeState, AlertInstanceContext, AlertInstanceState, - AlertExecutionStatuses, - AlertExecutionStatusErrorReasons, AlertsHealth, - AlertNotifyWhenType, WithoutReservedActionGroups, ActionVariable, SanitizedRuleConfig, RuleMonitoring, MappedParams, - AlertExecutionStatusWarningReasons, } from '../common'; import { LicenseType } from '../../licensing/server'; +import { ISearchStartSearchSource } from '../../../../src/plugins/data/common'; import { RuleTypeConfig } from './config'; export type WithoutQueryAndParams = Pick>; export type SpaceIdToNamespaceFunction = (spaceId?: string) => string | undefined; @@ -68,11 +69,12 @@ export interface AlertingRequestHandlerContext extends RequestHandlerContext { */ export type AlertingRouter = IRouter; -export interface AlertServices< +export interface RuleExecutorServices< InstanceState extends AlertInstanceState = AlertInstanceState, InstanceContext extends AlertInstanceContext = AlertInstanceContext, ActionGroupIds extends string = never > { + searchSourceClient: Promise; savedObjectsClient: SavedObjectsClientContract; uiSettingsClient: IUiSettingsClient; scopedClusterClient: IScopedClusterClient; @@ -84,9 +86,9 @@ export interface AlertServices< shouldStopExecution: () => boolean; } -export interface AlertExecutorOptions< - Params extends AlertTypeParams = never, - State extends AlertTypeState = never, +export interface RuleExecutorOptions< + Params extends RuleTypeParams = never, + State extends RuleTypeState = never, InstanceState extends AlertInstanceState = never, InstanceContext extends AlertInstanceContext = never, ActionGroupIds extends string = never @@ -95,7 +97,7 @@ export interface AlertExecutorOptions< executionId: string; startedAt: Date; previousStartedAt: Date | null; - services: AlertServices; + services: RuleExecutorServices; params: Params; state: State; rule: SanitizedRuleConfig; @@ -107,29 +109,29 @@ export interface AlertExecutorOptions< updatedBy: string | null; } -export interface RuleParamsAndRefs { +export interface RuleParamsAndRefs { references: SavedObjectReference[]; params: Params; } export type ExecutorType< - Params extends AlertTypeParams = never, - State extends AlertTypeState = never, + Params extends RuleTypeParams = never, + State extends RuleTypeState = never, InstanceState extends AlertInstanceState = never, InstanceContext extends AlertInstanceContext = never, ActionGroupIds extends string = never > = ( - options: AlertExecutorOptions + options: RuleExecutorOptions ) => Promise; -export interface AlertTypeParamsValidator { +export interface RuleTypeParamsValidator { validate: (object: unknown) => Params; } export interface RuleType< - Params extends AlertTypeParams = never, - ExtractedParams extends AlertTypeParams = never, - State extends AlertTypeState = never, + Params extends RuleTypeParams = never, + ExtractedParams extends RuleTypeParams = never, + State extends RuleTypeState = never, InstanceState extends AlertInstanceState = never, InstanceContext extends AlertInstanceContext = never, ActionGroupIds extends string = never, @@ -138,7 +140,7 @@ export interface RuleType< id: string; name: string; validate?: { - params?: AlertTypeParamsValidator; + params?: RuleTypeParamsValidator; }; actionGroups: Array>; defaultActionGroupId: ActionGroup['id']; @@ -173,57 +175,57 @@ export interface RuleType< config?: RuleTypeConfig; } export type UntypedRuleType = RuleType< - AlertTypeParams, - AlertTypeState, + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext >; -export interface RawAlertAction extends SavedObjectAttributes { +export interface RawRuleAction extends SavedObjectAttributes { group: string; actionRef: string; actionTypeId: string; - params: AlertActionParams; + params: RuleActionParams; } -export interface AlertMeta extends SavedObjectAttributes { +export interface RuleMeta extends SavedObjectAttributes { versionApiKeyLastmodified?: string; } // note that the `error` property is "null-able", as we're doing a partial -// update on the alert when we update this data, but need to ensure we +// update on the rule when we update this data, but need to ensure we // delete any previous error if the current status has no error export interface RawRuleExecutionStatus extends SavedObjectAttributes { - status: AlertExecutionStatuses; + status: RuleExecutionStatuses; lastExecutionDate: string; lastDuration?: number; error: null | { - reason: AlertExecutionStatusErrorReasons; + reason: RuleExecutionStatusErrorReasons; message: string; }; warning: null | { - reason: AlertExecutionStatusWarningReasons; + reason: RuleExecutionStatusWarningReasons; message: string; }; } -export type PartialAlert = Pick, 'id'> & - Partial, 'id'>>; +export type PartialRule = Pick, 'id'> & + Partial, 'id'>>; -export interface AlertWithLegacyId extends Alert { +export interface RuleWithLegacyId extends Rule { legacyId: string | null; } -export type SanitizedRuleWithLegacyId = Omit< - AlertWithLegacyId, +export type SanitizedRuleWithLegacyId = Omit< + RuleWithLegacyId, 'apiKey' >; -export type PartialAlertWithLegacyId = Pick< - AlertWithLegacyId, +export type PartialRuleWithLegacyId = Pick< + RuleWithLegacyId, 'id' > & - Partial, 'id'>>; + Partial, 'id'>>; export interface RawRule extends SavedObjectAttributes { enabled: boolean; @@ -233,7 +235,7 @@ export interface RawRule extends SavedObjectAttributes { consumer: string; legacyId: string | null; schedule: SavedObjectAttributes; - actions: RawAlertAction[]; + actions: RawRuleAction[]; params: SavedObjectAttributes; mapped_params?: MappedParams; scheduledTaskId?: string | null; @@ -244,28 +246,15 @@ export interface RawRule extends SavedObjectAttributes { apiKey: string | null; apiKeyOwner: string | null; throttle: string | null; - notifyWhen: AlertNotifyWhenType | null; + notifyWhen: RuleNotifyWhenType | null; muteAll: boolean; mutedInstanceIds: string[]; - meta?: AlertMeta; + meta?: RuleMeta; executionStatus: RawRuleExecutionStatus; monitoring?: RuleMonitoring; snoozeEndTime?: string | null; // Remove ? when this parameter is made available in the public API } -export type AlertInfoParams = Pick< - RawRule, - | 'params' - | 'throttle' - | 'notifyWhen' - | 'muteAll' - | 'mutedInstanceIds' - | 'name' - | 'tags' - | 'createdBy' - | 'updatedBy' ->; - export interface AlertingPlugin { setup: PluginSetupContract; start: PluginStartContract; diff --git a/x-pack/plugins/alerting/server/usage/alerting_telemetry.test.ts b/x-pack/plugins/alerting/server/usage/alerting_telemetry.test.ts index 3bb64ad00a194..61383656e67d5 100644 --- a/x-pack/plugins/alerting/server/usage/alerting_telemetry.test.ts +++ b/x-pack/plugins/alerting/server/usage/alerting_telemetry.test.ts @@ -15,6 +15,7 @@ import { getExecutionsPerDayCount, getExecutionTimeoutsPerDayCount, getFailedAndUnrecognizedTasksPerDay, + parsePercentileAggsByRuleType, } from './alerting_telemetry'; describe('alerting telemetry', () => { @@ -181,6 +182,41 @@ Object { avgTotalSearchDuration: { value: 30.642857142857142, }, + percentileScheduledActions: { + values: { + '50.0': 4.0, + '90.0': 26.0, + '99.0': 26.0, + }, + }, + aggsByType: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: '.index-threshold', + doc_count: 149, + percentileScheduledActions: { + values: { + '50.0': 4.0, + '90.0': 26.0, + '99.0': 26.0, + }, + }, + }, + { + key: 'logs.alert.document.count', + doc_count: 1, + percentileScheduledActions: { + values: { + '50.0': 10.0, + '90.0': 10.0, + '99.0': 10.0, + }, + }, + }, + ], + }, }, hits: { hits: [], @@ -228,6 +264,25 @@ Object { }, countTotal: 4, countTotalFailures: 4, + scheduledActionsPercentiles: { + p50: 4, + p90: 26, + p99: 26, + }, + scheduledActionsPercentilesByType: { + p50: { + '__index-threshold': 4, + logs__alert__document__count: 10, + }, + p90: { + '__index-threshold': 26, + logs__alert__document__count: 10, + }, + p99: { + '__index-threshold': 26, + logs__alert__document__count: 10, + }, + }, }); }); @@ -316,4 +371,150 @@ Object { countTotal: 5, }); }); + + test('parsePercentileAggsByRuleType', () => { + const aggsByType = { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: '.index-threshold', + doc_count: 149, + percentileScheduledActions: { + values: { + '50.0': 4.0, + '90.0': 26.0, + '99.0': 26.0, + }, + }, + }, + { + key: 'logs.alert.document.count', + doc_count: 1, + percentileScheduledActions: { + values: { + '50.0': 10.0, + '90.0': 10.0, + '99.0': 10.0, + }, + }, + }, + { + key: 'document.test.', + doc_count: 1, + percentileScheduledActions: { + values: { + '50.0': null, + '90.0': null, + '99.0': null, + }, + }, + }, + ], + }; + expect( + parsePercentileAggsByRuleType(aggsByType.buckets, 'percentileScheduledActions.values') + ).toEqual({ + p50: { + '__index-threshold': 4, + document__test__: 0, + logs__alert__document__count: 10, + }, + p90: { + '__index-threshold': 26, + document__test__: 0, + logs__alert__document__count: 10, + }, + p99: { + '__index-threshold': 26, + document__test__: 0, + logs__alert__document__count: 10, + }, + }); + }); + + test('parsePercentileAggsByRuleType handles unknown path', () => { + const aggsByType = { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: '.index-threshold', + doc_count: 149, + percentileScheduledActions: { + values: { + '50.0': 4.0, + '90.0': 26.0, + '99.0': 26.0, + }, + }, + }, + { + key: 'logs.alert.document.count', + doc_count: 1, + percentileScheduledActions: { + values: { + '50.0': 10.0, + '90.0': 10.0, + '99.0': 10.0, + }, + }, + }, + ], + }; + expect(parsePercentileAggsByRuleType(aggsByType.buckets, 'foo.values')).toEqual({ + p50: {}, + p90: {}, + p99: {}, + }); + }); + + test('parsePercentileAggsByRuleType handles unrecognized percentiles', () => { + const aggsByType = { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: '.index-threshold', + doc_count: 149, + percentileScheduledActions: { + values: { + '50.0': 4.0, + '75.0': 8.0, + '90.0': 26.0, + '99.0': 26.0, + }, + }, + }, + { + key: 'logs.alert.document.count', + doc_count: 1, + percentileScheduledActions: { + values: { + '50.0': 10.0, + '75.0': 10.0, + '90.0': 10.0, + '99.0': 10.0, + }, + }, + }, + ], + }; + expect( + parsePercentileAggsByRuleType(aggsByType.buckets, 'percentileScheduledActions.values') + ).toEqual({ + p50: { + '__index-threshold': 4, + logs__alert__document__count: 10, + }, + p90: { + '__index-threshold': 26, + logs__alert__document__count: 10, + }, + p99: { + '__index-threshold': 26, + logs__alert__document__count: 10, + }, + }); + }); }); diff --git a/x-pack/plugins/alerting/server/usage/alerting_telemetry.ts b/x-pack/plugins/alerting/server/usage/alerting_telemetry.ts index 4fbad593d1600..2e360374faa42 100644 --- a/x-pack/plugins/alerting/server/usage/alerting_telemetry.ts +++ b/x-pack/plugins/alerting/server/usage/alerting_telemetry.ts @@ -5,8 +5,17 @@ * 2.0. */ +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { ElasticsearchClient } from 'kibana/server'; +import { get, merge } from 'lodash'; import { AlertingUsage } from './types'; +import { NUM_ALERTING_RULE_TYPES } from './alerting_usage_collector'; + +const percentileFieldNameMapping: Record = { + '50.0': 'p50', + '90.0': 'p90', + '99.0': 'p99', +}; const ruleTypeMetric = { scripted_metric: { @@ -38,6 +47,13 @@ const ruleTypeMetric = { }, }; +const scheduledActionsPercentilesAgg = { + percentiles: { + field: 'kibana.alert.rule.execution.metrics.number_of_scheduled_actions', + percents: [50, 90, 99], + }, +}; + const ruleTypeExecutionsWithDurationMetric = { scripted_metric: { init_script: @@ -409,6 +425,16 @@ export async function getExecutionsPerDayCount( avgTotalSearchDuration: { avg: { field: 'kibana.alert.rule.execution.metrics.total_search_duration_ms' }, }, + percentileScheduledActions: scheduledActionsPercentilesAgg, + aggsByType: { + terms: { + field: 'rule.category', + size: NUM_ALERTING_RULE_TYPES, + }, + aggs: { + percentileScheduledActions: scheduledActionsPercentilesAgg, + }, + }, }, }, }); @@ -439,6 +465,14 @@ export async function getExecutionsPerDayCount( searchResult.aggregations.avgTotalSearchDuration.value ); + const aggsScheduledActionsPercentiles = + // @ts-expect-error aggegation type is not specified + searchResult.aggregations.percentileScheduledActions.values; + + const aggsByTypeBuckets = + // @ts-expect-error aggegation type is not specified + searchResult.aggregations.aggsByType.buckets; + const executionFailuresAggregations = searchResult.aggregations as { failuresByReason: { value: { reasons: Record> } }; }; @@ -537,6 +571,21 @@ export async function getExecutionsPerDayCount( }), {} ), + scheduledActionsPercentiles: Object.keys(aggsScheduledActionsPercentiles).reduce( + // ES DSL aggregations are returned as `any` by esClient.search + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (acc: any, curr: string) => ({ + ...acc, + ...(percentileFieldNameMapping[curr] + ? { [percentileFieldNameMapping[curr]]: aggsScheduledActionsPercentiles[curr] } + : {}), + }), + {} + ), + scheduledActionsPercentilesByType: parsePercentileAggsByRuleType( + aggsByTypeBuckets, + 'percentileScheduledActions.values' + ), }; } @@ -701,3 +750,30 @@ function replaceDotSymbolsInRuleTypeIds(ruleTypeIdObj: Record) { {} ); } + +export function parsePercentileAggsByRuleType( + aggsByType: estypes.AggregationsStringTermsBucketKeys[], + path: string +) { + return (aggsByType ?? []).reduce( + (acc, curr) => { + const percentiles = get(curr, path, {}); + return merge( + acc, + Object.keys(percentiles).reduce((pacc, pcurr) => { + return { + ...pacc, + ...(percentileFieldNameMapping[pcurr] + ? { + [percentileFieldNameMapping[pcurr]]: { + [replaceDotSymbols(curr.key)]: percentiles[pcurr] ?? 0, + }, + } + : {}), + }; + }, {}) + ); + }, + { p50: {}, p90: {}, p99: {} } + ); +} diff --git a/x-pack/plugins/alerting/server/usage/alerting_usage_collector.ts b/x-pack/plugins/alerting/server/usage/alerting_usage_collector.ts index f375e758a8c9b..b0990bab9491d 100644 --- a/x-pack/plugins/alerting/server/usage/alerting_usage_collector.ts +++ b/x-pack/plugins/alerting/server/usage/alerting_usage_collector.ts @@ -56,6 +56,8 @@ const byTypeSchema: MakeSchemaFrom['count_by_type'] = { xpack__ml__anomaly_detection_jobs_health: { type: 'long' }, // eslint-disable-line @typescript-eslint/naming-convention }; +export const NUM_ALERTING_RULE_TYPES = Object.keys(byTypeSchema).length; + const byReasonSchema: MakeSchemaFrom['count_rules_executions_failured_by_reason_per_day'] = { // TODO: Find out an automated way to populate the keys or reformat these into an array (and change the Remote Telemetry indexer accordingly) @@ -66,6 +68,20 @@ const byReasonSchema: MakeSchemaFrom['count_rules_executions_fail unknown: { type: 'long' }, }; +const byPercentileSchema: MakeSchemaFrom['percentile_num_scheduled_actions_per_day'] = + { + p50: { type: 'long' }, + p90: { type: 'long' }, + p99: { type: 'long' }, + }; + +const byPercentileSchemaByType: MakeSchemaFrom['percentile_num_scheduled_actions_by_type_per_day'] = + { + p50: byTypeSchema, + p90: byTypeSchema, + p99: byTypeSchema, + }; + const byReasonSchemaByType: MakeSchemaFrom['count_rules_executions_failured_by_reason_by_type_per_day'] = { // TODO: Find out an automated way to populate the keys or reformat these into an array (and change the Remote Telemetry indexer accordingly) @@ -160,6 +176,16 @@ export function createAlertingUsageCollector( avg_es_search_duration_by_type_per_day: {}, avg_total_search_duration_per_day: 0, avg_total_search_duration_by_type_per_day: {}, + percentile_num_scheduled_actions_per_day: { + p50: 0, + p90: 0, + p99: 0, + }, + percentile_num_scheduled_actions_by_type_per_day: { + p50: {}, + p90: {}, + p99: {}, + }, }; } }, @@ -211,6 +237,8 @@ export function createAlertingUsageCollector( avg_es_search_duration_by_type_per_day: byTypeSchema, avg_total_search_duration_per_day: { type: 'long' }, avg_total_search_duration_by_type_per_day: byTypeSchema, + percentile_num_scheduled_actions_per_day: byPercentileSchema, + percentile_num_scheduled_actions_by_type_per_day: byPercentileSchemaByType, }, }); } diff --git a/x-pack/plugins/alerting/server/usage/task.ts b/x-pack/plugins/alerting/server/usage/task.ts index 7aee043653806..0d0d2d802a3fb 100644 --- a/x-pack/plugins/alerting/server/usage/task.ts +++ b/x-pack/plugins/alerting/server/usage/task.ts @@ -144,6 +144,10 @@ export function telemetryTaskRunner( avg_total_search_duration_per_day: dailyExecutionCounts.avgTotalSearchDuration, avg_total_search_duration_by_type_per_day: dailyExecutionCounts.avgTotalSearchDurationByType, + percentile_num_scheduled_actions_per_day: + dailyExecutionCounts.scheduledActionsPercentiles, + percentile_num_scheduled_actions_by_type_per_day: + dailyExecutionCounts.scheduledActionsPercentilesByType, }, runAt: getNextMidnight(), }; diff --git a/x-pack/plugins/alerting/server/usage/types.ts b/x-pack/plugins/alerting/server/usage/types.ts index a03483bd54007..00bd3b46f91b1 100644 --- a/x-pack/plugins/alerting/server/usage/types.ts +++ b/x-pack/plugins/alerting/server/usage/types.ts @@ -25,6 +25,16 @@ export interface AlertingUsage { string, Record >; + percentile_num_scheduled_actions_per_day: { + p50: number; + p90: number; + p99: number; + }; + percentile_num_scheduled_actions_by_type_per_day: { + p50: Record; + p90: Record; + p99: Record; + }; avg_execution_time_per_day: number; avg_execution_time_by_type_per_day: Record; avg_es_search_duration_per_day: number; diff --git a/x-pack/plugins/apm/public/components/alerting/transaction_duration_anomaly_alert_trigger/index.tsx b/x-pack/plugins/apm/public/components/alerting/transaction_duration_anomaly_alert_trigger/index.tsx index 628ba40f20efd..392adb9c589a4 100644 --- a/x-pack/plugins/apm/public/components/alerting/transaction_duration_anomaly_alert_trigger/index.tsx +++ b/x-pack/plugins/apm/public/components/alerting/transaction_duration_anomaly_alert_trigger/index.tsx @@ -60,7 +60,7 @@ export function TransactionDurationAnomalyAlertTrigger(props: Props) { ...ruleParams, }, { - windowSize: 15, + windowSize: 30, windowUnit: 'm', anomalySeverityType: ANOMALY_SEVERITY.CRITICAL, environment: ENVIRONMENT_ALL.value, diff --git a/x-pack/plugins/apm/scripts/test/api.js b/x-pack/plugins/apm/scripts/test/api.js index 5769224f90ac2..01e0198360bc3 100644 --- a/x-pack/plugins/apm/scripts/test/api.js +++ b/x-pack/plugins/apm/scripts/test/api.js @@ -57,6 +57,7 @@ const { argv } = yargs(process.argv.slice(2)) const { trial, server, runner, grep, inspect } = argv; const license = trial ? 'trial' : 'basic'; + console.log(`License: ${license}`); let ftrScript = 'functional_tests'; diff --git a/x-pack/plugins/apm/server/routes/alerts/alerting_es_client.ts b/x-pack/plugins/apm/server/routes/alerts/alerting_es_client.ts index 876d02137c3f8..ebab01464de6b 100644 --- a/x-pack/plugins/apm/server/routes/alerts/alerting_es_client.ts +++ b/x-pack/plugins/apm/server/routes/alerts/alerting_es_client.ts @@ -9,13 +9,13 @@ import { ESSearchRequest, ESSearchResponse, } from '../../../../../../src/core/types/elasticsearch'; -import { AlertServices } from '../../../../alerting/server'; +import { RuleExecutorServices } from '../../../../alerting/server'; export async function alertingEsClient({ scopedClusterClient, params, }: { - scopedClusterClient: AlertServices< + scopedClusterClient: RuleExecutorServices< never, never, never diff --git a/x-pack/plugins/apm/server/routes/alerts/register_anomaly_alert_type.ts b/x-pack/plugins/apm/server/routes/alerts/register_anomaly_alert_type.ts index 04d1fb775cea0..5affecb3541cc 100644 --- a/x-pack/plugins/apm/server/routes/alerts/register_anomaly_alert_type.ts +++ b/x-pack/plugins/apm/server/routes/alerts/register_anomaly_alert_type.ts @@ -4,44 +4,48 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ - -import { schema } from '@kbn/config-schema'; -import { compact } from 'lodash'; -import { ESSearchResponse } from 'src/core/types/elasticsearch'; +import datemath from '@elastic/datemath'; import { QueryDslQueryContainer } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import { schema } from '@kbn/config-schema'; import { ALERT_EVALUATION_THRESHOLD, ALERT_EVALUATION_VALUE, - ALERT_SEVERITY, ALERT_REASON, + ALERT_SEVERITY, } from '@kbn/rule-data-utils'; -import { createLifecycleRuleTypeFactory } from '../../../../rule_registry/server'; -import { ProcessorEvent } from '../../../common/processor_event'; -import { getSeverity } from '../../../common/anomaly_detection'; -import { - PROCESSOR_EVENT, - SERVICE_NAME, - TRANSACTION_TYPE, - SERVICE_ENVIRONMENT, -} from '../../../common/elasticsearch_fieldnames'; -import { getAlertUrlTransaction } from '../../../common/utils/formatters'; -import { asMutableArray } from '../../../common/utils/as_mutable_array'; -import { ANOMALY_SEVERITY } from '../../../common/ml_constants'; +import { compact } from 'lodash'; +import { ESSearchResponse } from 'src/core/types/elasticsearch'; import { KibanaRequest } from '../../../../../../src/core/server'; +import { termQuery } from '../../../../observability/server'; +import { createLifecycleRuleTypeFactory } from '../../../../rule_registry/server'; import { AlertType, ALERT_TYPES_CONFIG, ANOMALY_ALERT_SEVERITY_TYPES, formatAnomalyReason, } from '../../../common/alert_types'; -import { getMLJobs } from '../service_map/get_service_anomalies'; -import { apmActionVariables } from './action_variables'; -import { RegisterRuleDependencies } from './register_apm_alerts'; +import { getSeverity } from '../../../common/anomaly_detection'; +import { + ApmMlDetectorType, + getApmMlDetectorIndex, +} from '../../../common/anomaly_detection/apm_ml_detectors'; +import { + PROCESSOR_EVENT, + SERVICE_ENVIRONMENT, + SERVICE_NAME, + TRANSACTION_TYPE, +} from '../../../common/elasticsearch_fieldnames'; import { getEnvironmentEsField, getEnvironmentLabel, } from '../../../common/environment_filter_values'; -import { termQuery } from '../../../../observability/server'; +import { ANOMALY_SEVERITY } from '../../../common/ml_constants'; +import { ProcessorEvent } from '../../../common/processor_event'; +import { asMutableArray } from '../../../common/utils/as_mutable_array'; +import { getAlertUrlTransaction } from '../../../common/utils/formatters'; +import { getMLJobs } from '../service_map/get_service_anomalies'; +import { apmActionVariables } from './action_variables'; +import { RegisterRuleDependencies } from './register_apm_alerts'; const paramsSchema = schema.object({ serviceName: schema.maybe(schema.string()), @@ -130,6 +134,14 @@ export function registerAnomalyAlertType({ return {}; } + // start time must be at least 30, does like this to support rules created before this change where default was 15 + const startTime = Math.min( + datemath.parse('now-30m')!.valueOf(), + datemath + .parse(`now-${ruleParams.windowSize}${ruleParams.windowUnit}`) + ?.valueOf() || 0 + ); + const jobIds = mlJobs.map((job) => job.jobId); const anomalySearchParams = { body: { @@ -143,13 +155,17 @@ export function registerAnomalyAlertType({ { range: { timestamp: { - gte: `now-${ruleParams.windowSize}${ruleParams.windowUnit}`, + gte: startTime, format: 'epoch_millis', }, }, }, ...termQuery('partition_field_value', ruleParams.serviceName), ...termQuery('by_field_value', ruleParams.transactionType), + ...termQuery( + 'detector_index', + getApmMlDetectorIndex(ApmMlDetectorType.txLatency) + ), ] as QueryDslQueryContainer[], }, }, diff --git a/x-pack/plugins/cases/common/api/cases/case.ts b/x-pack/plugins/cases/common/api/cases/case.ts index 1bc14fa8d3ab9..251c02d931fcd 100644 --- a/x-pack/plugins/cases/common/api/cases/case.ts +++ b/x-pack/plugins/cases/common/api/cases/case.ts @@ -154,6 +154,10 @@ export const CasesFindRequestRt = rt.partial({ * The fields in the entity to return in the response */ fields: rt.union([rt.array(rt.string), rt.string]), + /** + * A KQL date. If used all cases created after (gte) the from date will be returned + */ + from: rt.string, /** * The page of objects to return */ @@ -180,11 +184,17 @@ export const CasesFindRequestRt = rt.partial({ * The order to sort by */ sortOrder: rt.union([rt.literal('desc'), rt.literal('asc')]), + + /** + * A KQL date. If used all cases created before (lte) the to date will be returned. + */ + to: rt.string, /** * The owner(s) to filter by. The user making the request must have privileges to retrieve cases of that * ownership or they will be ignored. If no owner is included, then all ownership types will be included in the response * that the user has access to. */ + owner: rt.union([rt.array(rt.string), rt.string]), }); diff --git a/x-pack/plugins/cases/common/api/cases/status.ts b/x-pack/plugins/cases/common/api/cases/status.ts index d37e68007a21d..fa3b584f07286 100644 --- a/x-pack/plugins/cases/common/api/cases/status.ts +++ b/x-pack/plugins/cases/common/api/cases/status.ts @@ -28,6 +28,14 @@ export const CasesStatusResponseRt = rt.type({ }); export const CasesStatusRequestRt = rt.partial({ + /** + * A KQL date. If used all cases created after (gte) the from date will be returned + */ + from: rt.string, + /** + * A KQL date. If used all cases created before (lte) the to date will be returned. + */ + to: rt.string, /** * The owner of the cases to retrieve the status stats from. If no owner is provided the stats for all cases * that the user has access to will be returned. diff --git a/x-pack/plugins/cases/common/constants.ts b/x-pack/plugins/cases/common/constants.ts index 122234d473d13..a1ac829b33cce 100644 --- a/x-pack/plugins/cases/common/constants.ts +++ b/x-pack/plugins/cases/common/constants.ts @@ -51,6 +51,7 @@ export const SAVED_OBJECT_TYPES = [ */ export const CASES_URL = '/api/cases' as const; +export const CASE_FIND_URL = `${CASES_URL}/_find` as const; export const CASE_DETAILS_URL = `${CASES_URL}/{case_id}` as const; export const CASE_CONFIGURE_URL = `${CASES_URL}/configure` as const; export const CASE_CONFIGURE_DETAILS_URL = `${CASES_URL}/configure/{configuration_id}` as const; diff --git a/x-pack/plugins/cases/public/client/api/index.test.ts b/x-pack/plugins/cases/public/client/api/index.test.ts index 6e52649d1e680..9dd5245c03dd4 100644 --- a/x-pack/plugins/cases/public/client/api/index.test.ts +++ b/x-pack/plugins/cases/public/client/api/index.test.ts @@ -7,16 +7,16 @@ import { httpServiceMock } from '../../../../../../src/core/public/mocks'; import { createClientAPI } from '.'; +import { allCases, casesStatus } from '../../containers/mock'; describe('createClientAPI', () => { - const http = httpServiceMock.createStartContract({ basePath: '' }); - const api = createClientAPI({ http }); - beforeEach(() => { jest.clearAllMocks(); }); describe('getRelatedCases', () => { + const http = httpServiceMock.createStartContract({ basePath: '' }); + const api = createClientAPI({ http }); const res = [ { id: 'test-id', @@ -43,4 +43,40 @@ describe('createClientAPI', () => { }); }); }); + + describe('cases', () => { + describe('find', () => { + const http = httpServiceMock.createStartContract({ basePath: '' }); + const api = createClientAPI({ http }); + http.get.mockResolvedValue(allCases); + + it('should return the correct response', async () => { + expect(await api.cases.find({ from: 'now-1d' })).toEqual(allCases); + }); + + it('should have been called with the correct path', async () => { + await api.cases.find({ perPage: 10 }); + expect(http.get).toHaveBeenCalledWith('/api/cases/_find', { + query: { perPage: 10 }, + }); + }); + }); + + describe('getAllCasesMetrics', () => { + const http = httpServiceMock.createStartContract({ basePath: '' }); + const api = createClientAPI({ http }); + http.get.mockResolvedValue(casesStatus); + + it('should return the correct response', async () => { + expect(await api.cases.getAllCasesMetrics({ from: 'now-1d' })).toEqual(casesStatus); + }); + + it('should have been called with the correct path', async () => { + await api.cases.getAllCasesMetrics({ from: 'now-1d' }); + expect(http.get).toHaveBeenCalledWith('/api/cases/status', { + query: { from: 'now-1d' }, + }); + }); + }); + }); }); diff --git a/x-pack/plugins/cases/public/client/api/index.ts b/x-pack/plugins/cases/public/client/api/index.ts index 0f98812649276..b35fff84fdb09 100644 --- a/x-pack/plugins/cases/public/client/api/index.ts +++ b/x-pack/plugins/cases/public/client/api/index.ts @@ -6,7 +6,16 @@ */ import { HttpStart } from 'kibana/public'; -import { CasesByAlertId, CasesByAlertIDRequest, getCasesFromAlertsUrl } from '../../../common/api'; +import { + CasesByAlertId, + CasesByAlertIDRequest, + CasesFindRequest, + getCasesFromAlertsUrl, + CasesResponse, + CasesStatusRequest, + CasesStatusResponse, +} from '../../../common/api'; +import { CASE_FIND_URL, CASE_STATUS_URL } from '../../../common/constants'; import { CasesUiStart } from '../../types'; export const createClientAPI = ({ http }: { http: HttpStart }): CasesUiStart['api'] => { @@ -16,5 +25,11 @@ export const createClientAPI = ({ http }: { http: HttpStart }): CasesUiStart['ap query: CasesByAlertIDRequest ): Promise => http.get(getCasesFromAlertsUrl(alertId), { query }), + cases: { + find: (query: CasesFindRequest): Promise => + http.get(CASE_FIND_URL, { query }), + getAllCasesMetrics: (query: CasesStatusRequest): Promise => + http.get(CASE_STATUS_URL, { query }), + }, }; }; diff --git a/x-pack/plugins/cases/public/client/ui/get_all_cases_selector_modal.tsx b/x-pack/plugins/cases/public/client/ui/get_all_cases_selector_modal.tsx index 18821d24e3053..1666557ec2648 100644 --- a/x-pack/plugins/cases/public/client/ui/get_all_cases_selector_modal.tsx +++ b/x-pack/plugins/cases/public/client/ui/get_all_cases_selector_modal.tsx @@ -18,19 +18,15 @@ const AllCasesSelectorModalLazy: React.FC = lazy( export const getAllCasesSelectorModalLazy = ({ owner, userCanCrud, - alertData, hiddenStatuses, onRowClick, - updateCase, onClose, }: GetAllCasesSelectorModalProps) => ( }> @@ -42,20 +38,14 @@ export const getAllCasesSelectorModalLazy = ({ * cases provider. to be further refactored https://github.com/elastic/kibana/issues/123183 */ export const getAllCasesSelectorModalNoProviderLazy = ({ - alertData, - attachments, hiddenStatuses, onRowClick, - updateCase, onClose, }: AllCasesSelectorModalProps) => ( }> 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 88aad5fb64408..c8e656b8117eb 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 @@ -17,7 +17,7 @@ import { TestProviders } from '../../common/mock'; import { casesStatus, useGetCasesMockState, mockCase, connectorsMock } from '../../containers/mock'; import { StatusAll } from '../../../common/ui/types'; -import { CaseStatuses, CommentType } from '../../../common/api'; +import { CaseStatuses } from '../../../common/api'; import { SECURITY_SOLUTION_OWNER } from '../../../common/constants'; import { getEmptyTagValue } from '../empty_value'; import { useDeleteCases } from '../../containers/use_delete_cases'; @@ -515,46 +515,6 @@ describe('AllCasesListGeneric', () => { }); }); - it('should call postComment when a case is selected in isSelectorView=true and has attachments', async () => { - const postCommentMockedValue = { status: { isLoading: false }, postComment: jest.fn() }; - usePostCommentMock.mockReturnValueOnce(postCommentMockedValue); - const wrapper = mount( - - - - ); - wrapper.find('[data-test-subj="cases-table-row-select-1"]').first().simulate('click'); - await waitFor(() => { - expect(postCommentMockedValue.postComment).toHaveBeenCalledWith({ - caseId: '1', - data: { - alertId: 'alert-id-201', - index: 'index-id-1', - owner: 'test', - rule: { - id: 'rule-id-1', - name: 'Awesome myrule', - }, - type: 'alert', - }, - }); - }); - }); - it('should call onRowClick with no cases and isSelectorView=true', async () => { useGetCasesMock.mockReturnValue({ ...defaultGetCases, 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 eae099404d318..5eac485e24c7b 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 @@ -16,14 +16,8 @@ import { FilterOptions, SortFieldCase, } from '../../../common/ui/types'; -import { - CaseStatuses, - CommentRequestAlertType, - caseStatuses, - CommentType, -} from '../../../common/api'; +import { CaseStatuses, caseStatuses } from '../../../common/api'; import { useGetCases } from '../../containers/use_get_cases'; -import { usePostComment } from '../../containers/use_post_comment'; import { useAvailableCasesOwners } from '../app/use_available_owners'; import { useCasesColumns } from './columns'; @@ -33,7 +27,6 @@ import { EuiBasicTableOnChange } from './types'; import { CasesTable } from './table'; import { useConnectors } from '../../containers/configure/use_connectors'; import { useCasesContext } from '../cases_context/use_cases_context'; -import { CaseAttachments } from '../../types'; const ProgressLoader = styled(EuiProgress)` ${({ $isShow }: { $isShow: boolean }) => @@ -52,28 +45,14 @@ const getSortField = (field: string): SortFieldCase => field === SortFieldCase.closedAt ? SortFieldCase.closedAt : SortFieldCase.createdAt; export interface AllCasesListProps { - /** - * @deprecated Use the attachments prop instead - */ - alertData?: Omit; hiddenStatuses?: CaseStatusWithAllStatus[]; isSelectorView?: boolean; onRowClick?: (theCase?: Case) => void; - updateCase?: (newCase: Case) => void; doRefresh?: () => void; - attachments?: CaseAttachments; } export const AllCasesList = React.memo( - ({ - alertData, - attachments, - hiddenStatuses = [], - isSelectorView = false, - onRowClick, - updateCase, - doRefresh, - }) => { + ({ hiddenStatuses = [], isSelectorView = false, onRowClick, doRefresh }) => { const { owner, userCanCrud } = useCasesContext(); const hasOwner = !!owner.length; const availableSolutions = useAvailableCasesOwners(); @@ -97,8 +76,6 @@ export const AllCasesList = React.memo( setSelectedCases, } = useGetCases({ initialFilterOptions }); - // Post Comment to Case - const { postComment, isLoading: isCommentUpdating } = usePostComment(); const { connectors } = useConnectors(); const sorting = useMemo( @@ -181,19 +158,6 @@ export const AllCasesList = React.memo( const showActions = userCanCrud && !isSelectorView; - // TODO remove the deprecated alertData field when cleaning up - // code https://github.com/elastic/kibana/issues/123183 - // This code is to support the deprecated alertData prop - const toAttach = useMemo((): CaseAttachments | undefined => { - if (attachments !== undefined || alertData !== undefined) { - const _toAttach = attachments ?? []; - if (alertData !== undefined) { - _toAttach.push({ ...alertData, type: CommentType.alert }); - } - return _toAttach; - } - }, [alertData, attachments]); - const columns = useCasesColumns({ dispatchUpdateCaseProperty, filterStatus: filterOptions.status, @@ -204,9 +168,6 @@ export const AllCasesList = React.memo( userCanCrud, connectors, onRowClick, - attachments: toAttach, - postComment, - updateCase, showSolutionColumn: !hasOwner && availableSolutions.length > 1, }); @@ -243,7 +204,7 @@ export const AllCasesList = React.memo( size="xs" color="accent" className="essentialAnimation" - $isShow={(isCasesLoading || isLoading || isCommentUpdating) && !isDataEmpty} + $isShow={(isCasesLoading || isLoading) && !isDataEmpty} /> ( }} setFilterRefetch={setFilterRefetch} hiddenStatuses={hiddenStatuses} + displayCreateCaseButton={isSelectorView} + onCreateCasePressed={onRowClick} /> ( goToCreateCase={onRowClick} handleIsLoading={handleIsLoading} isCasesLoading={isCasesLoading} - isCommentUpdating={isCommentUpdating} + isCommentUpdating={isCasesLoading} isDataEmpty={isDataEmpty} isSelectorView={isSelectorView} onChange={tableOnChangeCallback} diff --git a/x-pack/plugins/cases/public/components/all_cases/columns.tsx b/x-pack/plugins/cases/public/components/all_cases/columns.tsx index a05673d3e095a..543e6ef6f4871 100644 --- a/x-pack/plugins/cases/public/components/all_cases/columns.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/columns.tsx @@ -38,8 +38,6 @@ import { useApplicationCapabilities, useKibana } from '../../common/lib/kibana'; import { StatusContextMenu } from '../case_action_bar/status_context_menu'; import { TruncatedText } from '../truncated_text'; import { getConnectorIcon } from '../utils'; -import { PostComment } from '../../containers/use_post_comment'; -import { CaseAttachments } from '../../types'; import type { CasesOwners } from '../../client/helpers/can_use_cases'; import { useCasesFeatures } from '../cases_context/use_cases_features'; @@ -73,9 +71,6 @@ export interface GetCasesColumn { userCanCrud: boolean; connectors?: ActionConnector[]; onRowClick?: (theCase: Case) => void; - attachments?: CaseAttachments; - postComment?: (args: PostComment) => Promise; - updateCase?: (newCase: Case) => void; showSolutionColumn?: boolean; } @@ -89,9 +84,6 @@ export const useCasesColumns = ({ userCanCrud, connectors = [], onRowClick, - attachments, - postComment, - updateCase, showSolutionColumn, }: GetCasesColumn): CasesColumns[] => { // Delete case @@ -141,24 +133,11 @@ export const useCasesColumns = ({ const assignCaseAction = useCallback( async (theCase: Case) => { - // TODO currently the API only supports to add a comment at the time - // once the API is updated we should use bulk post comment #124814 - // this operation is intentionally made in sequence - if (attachments !== undefined && attachments.length > 0) { - for (const attachment of attachments) { - await postComment?.({ - caseId: theCase.id, - data: attachment, - }); - } - updateCase?.(theCase); - } - if (onRowClick) { onRowClick(theCase); } }, - [attachments, onRowClick, postComment, updateCase] + [onRowClick] ); useEffect(() => { diff --git a/x-pack/plugins/cases/public/components/all_cases/selector_modal/all_cases_selector_modal.test.tsx b/x-pack/plugins/cases/public/components/all_cases/selector_modal/all_cases_selector_modal.test.tsx index ef01ead1cb07d..eba8888f3367a 100644 --- a/x-pack/plugins/cases/public/components/all_cases/selector_modal/all_cases_selector_modal.test.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/selector_modal/all_cases_selector_modal.test.tsx @@ -11,7 +11,6 @@ import { mount } from 'enzyme'; import { AllCasesSelectorModal } from '.'; import { TestProviders } from '../../../common/mock'; import { AllCasesList } from '../all_cases_list'; -import { SECURITY_SOLUTION_OWNER } from '../../../../common/constants'; jest.mock('../all_cases_list'); @@ -19,7 +18,6 @@ const onRowClick = jest.fn(); const defaultProps = { onRowClick, }; -const updateCase = jest.fn(); describe('AllCasesSelectorModal', () => { beforeEach(() => { @@ -50,17 +48,7 @@ describe('AllCasesSelectorModal', () => { it('pass the correct props to getAllCases method', () => { const fullProps = { ...defaultProps, - alertData: { - rule: { - id: 'rule-id', - name: 'rule', - }, - index: 'index-id', - alertId: 'alert-id', - owner: SECURITY_SOLUTION_OWNER, - }, hiddenStatuses: [], - updateCase, }; mount( @@ -72,10 +60,8 @@ describe('AllCasesSelectorModal', () => { // @ts-ignore idk what this mock style is but it works ¯\_(ツ)_/¯ expect(AllCasesList.type.mock.calls[0][0]).toEqual( expect.objectContaining({ - alertData: fullProps.alertData, hiddenStatuses: fullProps.hiddenStatuses, isSelectorView: true, - updateCase, }) ); }); 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 ba553b28a34e0..581ecef47ad88 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 @@ -16,20 +16,13 @@ import { } from '@elastic/eui'; import styled from 'styled-components'; import { Case, CaseStatusWithAllStatus } from '../../../../common/ui/types'; -import { CommentRequestAlertType } from '../../../../common/api'; import * as i18n from '../../../common/translations'; import { AllCasesList } from '../all_cases_list'; -import { CaseAttachments } from '../../../types'; + export interface AllCasesSelectorModalProps { - /** - * @deprecated Use the attachments prop instead - */ - alertData?: Omit; hiddenStatuses?: CaseStatusWithAllStatus[]; onRowClick?: (theCase?: Case) => void; - updateCase?: (newCase: Case) => void; onClose?: () => void; - attachments?: CaseAttachments; } const Modal = styled(EuiModal)` @@ -40,7 +33,7 @@ const Modal = styled(EuiModal)` `; export const AllCasesSelectorModal = React.memo( - ({ alertData, attachments, hiddenStatuses, onRowClick, updateCase, onClose }) => { + ({ hiddenStatuses, onRowClick, onClose }) => { const [isModalOpen, setIsModalOpen] = useState(true); const closeModal = useCallback(() => { if (onClose) { @@ -66,12 +59,9 @@ export const AllCasesSelectorModal = React.memo( diff --git a/x-pack/plugins/cases/public/components/all_cases/selector_modal/use_cases_add_to_existing_case_modal.test.tsx b/x-pack/plugins/cases/public/components/all_cases/selector_modal/use_cases_add_to_existing_case_modal.test.tsx index b0e316e891744..25360800554b2 100644 --- a/x-pack/plugins/cases/public/components/all_cases/selector_modal/use_cases_add_to_existing_case_modal.test.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/selector_modal/use_cases_add_to_existing_case_modal.test.tsx @@ -5,42 +5,82 @@ * 2.0. */ -/* eslint-disable react/display-name */ - -import { renderHook } from '@testing-library/react-hooks'; +import { waitFor } from '@testing-library/dom'; +import { act, renderHook } from '@testing-library/react-hooks'; +import userEvent from '@testing-library/user-event'; import React from 'react'; -import { CaseStatuses, StatusAll } from '../../../../common'; +import AllCasesSelectorModal from '.'; +import { Case, CaseStatuses, StatusAll } from '../../../../common'; +import { AppMockRenderer, createAppMockRenderer } from '../../../common/mock'; +import { useCasesToast } from '../../../common/use_cases_toast'; +import { alertComment } from '../../../containers/mock'; +import { usePostComment } from '../../../containers/use_post_comment'; +import { SupportedCaseAttachment } from '../../../types'; import { CasesContext } from '../../cases_context'; import { CasesContextStoreActionsList } from '../../cases_context/cases_context_reducer'; import { useCasesAddToExistingCaseModal } from './use_cases_add_to_existing_case_modal'; + jest.mock('../../../common/use_cases_toast'); +jest.mock('../../../containers/use_post_comment'); +// dummy mock, will call onRowclick when rendering +jest.mock('./all_cases_selector_modal', () => { + return { + AllCasesSelectorModal: jest.fn(), + }; +}); + +const useCasesToastMock = useCasesToast as jest.Mock; + +const AllCasesSelectorModalMock = AllCasesSelectorModal as unknown as jest.Mock; + +// test component to test the hook integration +const TestComponent: React.FC = () => { + const hook = useCasesAddToExistingCaseModal({ + attachments: [alertComment as SupportedCaseAttachment], + }); + + const onClick = () => { + hook.open(); + }; + + return +
+
+

+ + Authentications + +

+
+
+
+

+ Showing: 0 users +

+
+ +
+ +
+ + + + +
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + +
+
+ + + User + + + + + + Successes + + + + + + Failures + + + + + + Last success + + + + + + Last successful source + + + + + + Last successful destination + + + + + + Last failure + + + + + + Last failed source + + + + + + Last failed destination + + +
+
+ + No items found + +
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+`; diff --git a/x-pack/plugins/security_solution/public/common/components/authentication/__snapshots__/authentications_user_table.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/authentication/__snapshots__/authentications_user_table.test.tsx.snap new file mode 100644 index 0000000000000..0796eebbe95fc --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/authentication/__snapshots__/authentications_user_table.test.tsx.snap @@ -0,0 +1,538 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Authentication User Table Component rendering it renders the user authentication table 1`] = ` +.c2 { + margin-top: 8px; +} + +.c2 .siemSubtitle__item { + color: #7a7f89; + font-size: 12px; + line-height: 1.5; +} + +.c1 { + margin-bottom: 24px; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; +} + +.c0 { + position: relative; +} + +.c3 tbody th, +.c3 tbody td { + vertical-align: top; +} + +.c3 tbody .euiTableCellContent { + display: block; +} + +.c4 { + margin-top: 4px; +} + +@media only screen and (min-width:575px) { + .c2 .siemSubtitle__item { + display: inline-block; + margin-right: 16px; + } + + .c2 .siemSubtitle__item:last-child { + margin-right: 0; + } +} + +
+
+
+
+
+
+
+
+ +
+
+

+ + Authentications + +

+
+
+
+

+ Showing: 0 users +

+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + +
+
+ + + User + + + + + + Successes + + + + + + Failures + + + + + + Last success + + + + + + Last successful source + + + + + + Last successful destination + + + + + + Last failure + + + + + + Last failed source + + + + + + Last failed destination + + +
+
+ + No items found + +
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+`; diff --git a/x-pack/plugins/security_solution/public/common/components/authentication/authentications_host_table.test.tsx b/x-pack/plugins/security_solution/public/common/components/authentication/authentications_host_table.test.tsx new file mode 100644 index 0000000000000..9138e35252597 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/authentication/authentications_host_table.test.tsx @@ -0,0 +1,118 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license 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 '../../mock/match_media'; + +import * as i18n from './translations'; +import { AuthenticationsHostTable } from './authentications_host_table'; +import { hostsModel } from '../../../hosts/store'; +import { TestProviders } from '../../../common/mock'; +import { useAuthentications } from '../../../common/containers/authentications'; +import { useQueryToggle } from '../../../common/containers/query_toggle'; + +jest.mock('../../../common/containers/query_toggle', () => ({ + useQueryToggle: jest.fn().mockReturnValue({ toggleStatus: true, setToggleStatus: jest.fn() }), +})); +jest.mock('../../containers/authentications', () => ({ + useAuthentications: jest.fn().mockReturnValue([ + false, + { + authentications: [], + totalCount: 0, + pageInfo: {}, + loadPage: jest.fn(), + inspect: {}, + isInspected: false, + refetch: jest.fn(), + }, + ]), +})); + +describe('Authentication Host Table Component', () => { + const mockUseAuthentications = useAuthentications as jest.Mock; + const mockUseQueryToggle = useQueryToggle as jest.Mock; + + const startDate = '2020-07-07T08:20:18.966Z'; + const endDate = '3000-01-01T00:00:00.000Z'; + const defaultProps = { + type: hostsModel.HostsType.page, + startDate, + endDate, + skip: false, + setQuery: jest.fn(), + indexNames: [], + }; + + afterEach(() => { + jest.clearAllMocks(); + }); + + describe('rendering', () => { + test('it renders the host authentication table', () => { + const { getByTestId } = render( + + + + ); + + expect(getByTestId('authentications-host-table-loading-false')).toMatchSnapshot(); + }); + }); + + describe('columns', () => { + test('on hosts page, we expect to get all 9 columns', () => { + const { queryAllByRole, queryByText } = render( + + + + ); + + expect(queryAllByRole('columnheader').length).toEqual(9); + + // it should have Last Successful Destination column + expect(queryByText(i18n.LAST_SUCCESSFUL_DESTINATION)).toBeInTheDocument(); + // it should have Last Failed Destination column + expect(queryByText(i18n.LAST_FAILED_DESTINATION)).toBeInTheDocument(); + }); + + test('on hosts page, we expect to get 7 user details columns', () => { + const { queryAllByRole, queryByText } = render( + + + + ); + + expect(queryAllByRole('columnheader').length).toEqual(7); + + // it should not have Successful Destination column + expect(queryByText(i18n.LAST_SUCCESSFUL_DESTINATION)).not.toBeInTheDocument(); + // it should not have Failed Destination column + expect(queryByText(i18n.LAST_FAILED_DESTINATION)).not.toBeInTheDocument(); + }); + }); + + it('toggleStatus=true, do not skip', () => { + render( + + + + ); + expect(mockUseAuthentications.mock.calls[0][0].skip).toEqual(false); + }); + + it('toggleStatus=false, skip', () => { + mockUseQueryToggle.mockReturnValue({ toggleStatus: false, setToggleStatus: jest.fn() }); + render( + + + + ); + expect(mockUseAuthentications.mock.calls[0][0].skip).toEqual(true); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/authentication/authentications_host_table.tsx b/x-pack/plugins/security_solution/public/common/components/authentication/authentications_host_table.tsx new file mode 100644 index 0000000000000..710b862570086 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/authentication/authentications_host_table.tsx @@ -0,0 +1,137 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license 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, useEffect, useState } from 'react'; + +import { getOr } from 'lodash/fp'; +import { useDispatch } from 'react-redux'; +import { PaginatedTable } from '../paginated_table'; + +import { useIsExperimentalFeatureEnabled } from '../../hooks/use_experimental_features'; + +import * as i18n from './translations'; +import { + getHostDetailsAuthenticationColumns, + getHostsPageAuthenticationColumns, + rowItems, +} from './helpers'; +import { useAuthentications } from '../../containers/authentications'; +import { useQueryInspector } from '../page/manage_query'; +import { HostsComponentsQueryProps } from '../../../hosts/pages/navigation/types'; +import { hostsActions, hostsModel, hostsSelectors } from '../../../hosts/store'; +import { useQueryToggle } from '../../containers/query_toggle'; +import { useDeepEqualSelector } from '../../hooks/use_selector'; +import { AuthStackByField } from '../../../../common/search_strategy'; + +const TABLE_QUERY_ID = 'authenticationsHostsTableQuery'; + +const tableType = hostsModel.HostsTableType.authentications; + +const AuthenticationsHostTableComponent: React.FC = ({ + docValueFields, + endDate, + filterQuery, + indexNames, + skip, + startDate, + type, + setQuery, + deleteQuery, +}) => { + const usersEnabled = useIsExperimentalFeatureEnabled('usersEnabled'); + const dispatch = useDispatch(); + const { toggleStatus } = useQueryToggle(TABLE_QUERY_ID); + const [querySkip, setQuerySkip] = useState(skip || !toggleStatus); + useEffect(() => { + setQuerySkip(skip || !toggleStatus); + }, [skip, toggleStatus]); + + const getAuthenticationsSelector = hostsSelectors.authenticationsSelector(); + const { activePage, limit } = useDeepEqualSelector((state) => + getAuthenticationsSelector(state, type) + ); + + const [ + loading, + { authentications, totalCount, pageInfo, loadPage, inspect, isInspected, refetch }, + ] = useAuthentications({ + docValueFields, + endDate, + filterQuery, + indexNames, + skip: querySkip, + startDate, + stackByField: AuthStackByField.userName, + activePage, + limit, + }); + + const columns = + type === hostsModel.HostsType.details + ? getHostDetailsAuthenticationColumns(usersEnabled) + : getHostsPageAuthenticationColumns(usersEnabled); + + const updateLimitPagination = useCallback( + (newLimit) => + dispatch( + hostsActions.updateTableLimit({ + hostsType: type, + limit: newLimit, + tableType, + }) + ), + [type, dispatch] + ); + + const updateActivePage = useCallback( + (newPage) => + dispatch( + hostsActions.updateTableActivePage({ + activePage: newPage, + hostsType: type, + tableType, + }) + ), + [type, dispatch] + ); + + useQueryInspector({ + queryId: TABLE_QUERY_ID, + loading, + refetch, + setQuery, + deleteQuery, + inspect, + }); + + return ( + + ); +}; + +AuthenticationsHostTableComponent.displayName = 'AuthenticationsHostTableComponent'; + +export const AuthenticationsHostTable = React.memo(AuthenticationsHostTableComponent); diff --git a/x-pack/plugins/security_solution/public/common/components/authentication/authentications_user_table.test.tsx b/x-pack/plugins/security_solution/public/common/components/authentication/authentications_user_table.test.tsx new file mode 100644 index 0000000000000..6be9c630a20bf --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/authentication/authentications_user_table.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; 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 '../../mock/match_media'; + +import { TestProviders } from '../../../common/mock'; +import { useAuthentications } from '../../../common/containers/authentications'; +import { useQueryToggle } from '../../../common/containers/query_toggle'; +import { AuthenticationsUserTable } from './authentications_user_table'; +import { usersModel } from '../../../users/store'; + +jest.mock('../../../common/containers/query_toggle', () => ({ + useQueryToggle: jest.fn().mockReturnValue({ toggleStatus: true, setToggleStatus: jest.fn() }), +})); +jest.mock('../../containers/authentications', () => ({ + useAuthentications: jest.fn().mockReturnValue([ + false, + { + authentications: [], + totalCount: 0, + pageInfo: {}, + loadPage: jest.fn(), + inspect: {}, + isInspected: false, + refetch: jest.fn(), + }, + ]), +})); + +describe('Authentication User Table Component', () => { + const mockUseAuthentications = useAuthentications as jest.Mock; + const mockUseQueryToggle = useQueryToggle as jest.Mock; + + const startDate = '2020-07-07T08:20:18.966Z'; + const endDate = '3000-01-01T00:00:00.000Z'; + const defaultProps = { + type: usersModel.UsersType.page, + startDate, + endDate, + skip: false, + setQuery: jest.fn(), + indexNames: [], + }; + + afterEach(() => { + jest.clearAllMocks(); + }); + + describe('rendering', () => { + test('it renders the user authentication table', () => { + const { getByTestId } = render( + + + + ); + + expect(getByTestId('table-users-authentications-loading-false')).toMatchSnapshot(); + }); + }); + + it('toggleStatus=true, do not skip', () => { + render( + + + + ); + expect(mockUseAuthentications.mock.calls[0][0].skip).toEqual(false); + }); + + it('toggleStatus=false, skip', () => { + mockUseQueryToggle.mockReturnValue({ toggleStatus: false, setToggleStatus: jest.fn() }); + render( + + + + ); + expect(mockUseAuthentications.mock.calls[0][0].skip).toEqual(true); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/authentication/authentications_user_table.tsx b/x-pack/plugins/security_solution/public/common/components/authentication/authentications_user_table.tsx new file mode 100644 index 0000000000000..572c06ef4da90 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/authentication/authentications_user_table.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, { useCallback, useEffect, useMemo, useState } from 'react'; + +import { getOr } from 'lodash/fp'; +import { useDispatch } from 'react-redux'; +import { AuthStackByField } from '../../../../common/search_strategy/security_solution/users/authentications'; +import { PaginatedTable } from '../paginated_table'; + +import { useIsExperimentalFeatureEnabled } from '../../hooks/use_experimental_features'; + +import * as i18n from './translations'; +import { getHostsPageAuthenticationColumns, rowItems } from './helpers'; +import { useAuthentications } from '../../containers/authentications'; +import { useQueryInspector } from '../page/manage_query'; +import { useQueryToggle } from '../../containers/query_toggle'; +import { useDeepEqualSelector } from '../../hooks/use_selector'; +import { usersActions, usersModel, usersSelectors } from '../../../users/store'; +import { UsersComponentsQueryProps } from '../../../users/pages/navigation/types'; + +const TABLE_QUERY_ID = 'authenticationsUsersTableQuery'; + +const AuthenticationsUserTableComponent: React.FC = ({ + docValueFields, + endDate, + filterQuery, + indexNames, + skip, + startDate, + type, + setQuery, + deleteQuery, +}) => { + const usersEnabled = useIsExperimentalFeatureEnabled('usersEnabled'); + + const dispatch = useDispatch(); + const { toggleStatus } = useQueryToggle(TABLE_QUERY_ID); + const [querySkip, setQuerySkip] = useState(skip || !toggleStatus); + useEffect(() => { + setQuerySkip(skip || !toggleStatus); + }, [skip, toggleStatus]); + + const getAuthenticationsSelector = useMemo(() => usersSelectors.authenticationsSelector(), []); + const { activePage, limit } = useDeepEqualSelector((state) => getAuthenticationsSelector(state)); + + const [ + loading, + { authentications, totalCount, pageInfo, loadPage, inspect, isInspected, refetch }, + ] = useAuthentications({ + docValueFields, + endDate, + filterQuery, + indexNames, + skip: querySkip, + startDate, + activePage, + limit, + stackByField: AuthStackByField.userName, + }); + + const columns = getHostsPageAuthenticationColumns(usersEnabled); + + const updateLimitPagination = useCallback( + (newLimit) => + dispatch( + usersActions.updateTableLimit({ + usersType: type, + limit: newLimit, + tableType: usersModel.UsersTableType.authentications, + }) + ), + [type, dispatch] + ); + + const updateActivePage = useCallback( + (newPage) => + dispatch( + usersActions.updateTableActivePage({ + activePage: newPage, + usersType: type, + tableType: usersModel.UsersTableType.authentications, + }) + ), + [type, dispatch] + ); + + useQueryInspector({ + queryId: TABLE_QUERY_ID, + loading, + refetch, + setQuery, + deleteQuery, + inspect, + }); + + return ( + + ); +}; + +AuthenticationsUserTableComponent.displayName = 'AuthenticationsUserTableComponent'; + +export const AuthenticationsUserTable = React.memo(AuthenticationsUserTableComponent); diff --git a/x-pack/plugins/security_solution/public/common/components/authentication/helpers.tsx b/x-pack/plugins/security_solution/public/common/components/authentication/helpers.tsx new file mode 100644 index 0000000000000..d541e0e452943 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/authentication/helpers.tsx @@ -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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { has } from 'lodash/fp'; +import React from 'react'; + +import { DragEffects, DraggableWrapper } from '../drag_and_drop/draggable_wrapper'; +import { escapeDataProviderId } from '../drag_and_drop/helpers'; +import { getEmptyTagValue } from '../empty_value'; +import { FormattedRelativePreferenceDate } from '../formatted_date'; +import { Columns, ItemsPerRow } from '../paginated_table'; +import { IS_OPERATOR } from '../../../timelines/components/timeline/data_providers/data_provider'; +import { Provider } from '../../../timelines/components/timeline/data_providers/provider'; +import { getRowItemDraggables } from '../tables/helpers'; + +import * as i18n from './translations'; +import { HostDetailsLink, NetworkDetailsLink, UserDetailsLink } from '../links'; +import { AuthenticationsEdges } from '../../../../common/search_strategy'; +import { AuthTableColumns } from './types'; + +export const getHostDetailsAuthenticationColumns = (usersEnabled: boolean): AuthTableColumns => [ + getUserColumn(usersEnabled), + SUCCESS_COLUMN, + FAILURES_COLUMN, + LAST_SUCCESSFUL_TIME_COLUMN, + LAST_SUCCESSFUL_SOURCE_COLUMN, + LAST_FAILED_TIME_COLUMN, + LAST_FAILED_SOURCE_COLUMN, +]; + +export const getHostsPageAuthenticationColumns = (usersEnabled: boolean): AuthTableColumns => [ + getUserColumn(usersEnabled), + SUCCESS_COLUMN, + FAILURES_COLUMN, + LAST_SUCCESSFUL_TIME_COLUMN, + LAST_SUCCESSFUL_SOURCE_COLUMN, + LAST_SUCCESSFUL_DESTINATION_COLUMN, + LAST_FAILED_TIME_COLUMN, + LAST_FAILED_SOURCE_COLUMN, + LAST_FAILED_DESTINATION_COLUMN, +]; + +export const rowItems: ItemsPerRow[] = [ + { + text: i18n.ROWS_5, + numberOfRow: 5, + }, + { + text: i18n.ROWS_10, + numberOfRow: 10, + }, +]; + +const FAILURES_COLUMN: Columns = { + name: i18n.FAILURES, + truncateText: false, + mobileOptions: { show: true }, + render: ({ node }) => { + const id = escapeDataProviderId(`authentications-table-${node._id}-failures-${node.failures}`); + return ( + + snapshot.isDragging ? ( + + + + ) : ( + node.failures + ) + } + /> + ); + }, + width: '8%', +}; +const LAST_SUCCESSFUL_TIME_COLUMN: Columns = { + name: i18n.LAST_SUCCESSFUL_TIME, + truncateText: false, + mobileOptions: { show: true }, + render: ({ node }) => + has('lastSuccess.timestamp', node) && node.lastSuccess?.timestamp != null ? ( + + ) : ( + getEmptyTagValue() + ), +}; +const LAST_SUCCESSFUL_SOURCE_COLUMN: Columns = { + name: i18n.LAST_SUCCESSFUL_SOURCE, + truncateText: false, + mobileOptions: { show: true }, + render: ({ node }) => + getRowItemDraggables({ + rowItems: node.lastSuccess?.source?.ip || null, + attrName: 'source.ip', + idPrefix: `authentications-table-${node._id}-lastSuccessSource`, + render: (item) => , + }), +}; +const LAST_SUCCESSFUL_DESTINATION_COLUMN: Columns = { + name: i18n.LAST_SUCCESSFUL_DESTINATION, + truncateText: false, + mobileOptions: { show: true }, + render: ({ node }) => + getRowItemDraggables({ + rowItems: node.lastSuccess?.host?.name ?? null, + attrName: 'host.name', + idPrefix: `authentications-table-${node._id}-lastSuccessfulDestination`, + render: (item) => , + }), +}; +const LAST_FAILED_TIME_COLUMN: Columns = { + name: i18n.LAST_FAILED_TIME, + truncateText: false, + mobileOptions: { show: true }, + render: ({ node }) => + has('lastFailure.timestamp', node) && node.lastFailure?.timestamp != null ? ( + + ) : ( + getEmptyTagValue() + ), +}; +const LAST_FAILED_SOURCE_COLUMN: Columns = { + name: i18n.LAST_FAILED_SOURCE, + truncateText: false, + mobileOptions: { show: true }, + render: ({ node }) => + getRowItemDraggables({ + rowItems: node.lastFailure?.source?.ip || null, + attrName: 'source.ip', + idPrefix: `authentications-table-${node._id}-lastFailureSource`, + render: (item) => , + }), +}; +const LAST_FAILED_DESTINATION_COLUMN: Columns = { + name: i18n.LAST_FAILED_DESTINATION, + truncateText: false, + mobileOptions: { show: true }, + render: ({ node }) => + getRowItemDraggables({ + rowItems: node.lastFailure?.host?.name || null, + attrName: 'host.name', + idPrefix: `authentications-table-${node._id}-lastFailureDestination`, + render: (item) => , + }), +}; + +const getUserColumn = ( + usersEnabled: boolean +): Columns => ({ + name: i18n.USER, + truncateText: false, + mobileOptions: { show: true }, + render: ({ node }) => + getRowItemDraggables({ + rowItems: node.stackedValue, + attrName: 'user.name', + idPrefix: `authentications-table-${node._id}-userName`, + render: (item) => (usersEnabled ? : <>{item}), + }), +}); + +const SUCCESS_COLUMN: Columns = { + name: i18n.SUCCESSES, + truncateText: false, + mobileOptions: { show: true }, + render: ({ node }) => { + const id = escapeDataProviderId( + `authentications-table-${node._id}-node-successes-${node.successes}` + ); + return ( + + snapshot.isDragging ? ( + + + + ) : ( + node.successes + ) + } + /> + ); + }, + width: '8%', +}; diff --git a/x-pack/plugins/security_solution/public/hosts/components/authentications_table/translations.ts b/x-pack/plugins/security_solution/public/common/components/authentication/translations.ts similarity index 100% rename from x-pack/plugins/security_solution/public/hosts/components/authentications_table/translations.ts rename to x-pack/plugins/security_solution/public/common/components/authentication/translations.ts diff --git a/x-pack/plugins/security_solution/public/common/components/authentication/types.ts b/x-pack/plugins/security_solution/public/common/components/authentication/types.ts new file mode 100644 index 0000000000000..c686263fa8d12 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/authentication/types.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 { AuthenticationsEdges } from '../../../../common/search_strategy'; +import { Columns } from '../paginated_table'; + +export type AuthTableColumns = + | [ + Columns, + Columns, + Columns, + Columns, + Columns, + Columns, + Columns, + Columns, + Columns + ] + | [ + Columns, + Columns, + Columns, + Columns, + Columns, + Columns, + Columns + ]; diff --git a/x-pack/plugins/security_solution/public/overview/components/landing_cards/index.tsx b/x-pack/plugins/security_solution/public/common/components/landing_cards/index.tsx similarity index 98% rename from x-pack/plugins/security_solution/public/overview/components/landing_cards/index.tsx rename to x-pack/plugins/security_solution/public/common/components/landing_cards/index.tsx index d8852d8603518..20ad45da680ec 100644 --- a/x-pack/plugins/security_solution/public/overview/components/landing_cards/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/landing_cards/index.tsx @@ -22,7 +22,7 @@ import endpointPng from '../../images/endpoint.png'; import siemPng from '../../images/siem.png'; import videoSvg from '../../images/video.svg'; import { ADD_DATA_PATH } from '../../../../common/constants'; -import { useKibana } from '../../../common/lib/kibana'; +import { useKibana } from '../../lib/kibana'; const imgUrls = { siem: siemPng, diff --git a/x-pack/plugins/security_solution/public/overview/components/landing_cards/translations.tsx b/x-pack/plugins/security_solution/public/common/components/landing_cards/translations.tsx similarity index 100% rename from x-pack/plugins/security_solution/public/overview/components/landing_cards/translations.tsx rename to x-pack/plugins/security_solution/public/common/components/landing_cards/translations.tsx diff --git a/x-pack/plugins/security_solution/public/common/components/landing_page/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/landing_page/__snapshots__/index.test.tsx.snap new file mode 100644 index 0000000000000..d55ce293d69df --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/landing_page/__snapshots__/index.test.tsx.snap @@ -0,0 +1,7 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`LandingPageComponent component renders page properly 1`] = ` + + + +`; diff --git a/x-pack/plugins/security_solution/public/common/components/landing_page/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/landing_page/index.test.tsx new file mode 100644 index 0000000000000..0e27280cc2c4f --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/landing_page/index.test.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 { shallow } from 'enzyme'; +import React from 'react'; + +import { LandingPageComponent } from './index'; + +describe('LandingPageComponent component', () => { + it('renders page properly', () => { + const EmptyComponent = shallow(); + expect(EmptyComponent).toMatchSnapshot(); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/landing_page/index.tsx b/x-pack/plugins/security_solution/public/common/components/landing_page/index.tsx new file mode 100644 index 0000000000000..310420524040d --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/landing_page/index.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { memo } from 'react'; +import { LandingCards } from '../landing_cards'; +import { SecuritySolutionPageWrapper } from '../page_wrapper'; + +export const LandingPageComponent = memo(() => { + return ( + + + + ); +}); + +LandingPageComponent.displayName = 'LandingPageComponent'; diff --git a/x-pack/plugins/security_solution/public/common/components/link_to/__mocks__/index.ts b/x-pack/plugins/security_solution/public/common/components/link_to/__mocks__/index.ts index baf4965467b51..15ac66ffddfd1 100644 --- a/x-pack/plugins/security_solution/public/common/components/link_to/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/public/common/components/link_to/__mocks__/index.ts @@ -8,7 +8,7 @@ import { SecurityPageName } from '../../../../app/types'; export { getDetectionEngineUrl } from '../redirect_to_detection_engine'; -export { getAppOverviewUrl } from '../redirect_to_overview'; +export { getAppLandingUrl } from '../redirect_to_landing'; export { getHostDetailsUrl, getHostsUrl } from '../redirect_to_hosts'; export { getNetworkUrl, getNetworkDetailsUrl } from '../redirect_to_network'; export { getTimelineTabsUrl, getTimelineUrl } from '../redirect_to_timelines'; diff --git a/x-pack/plugins/security_solution/public/common/components/link_to/index.ts b/x-pack/plugins/security_solution/public/common/components/link_to/index.ts index 2f7f876bda9bc..2f9b3542d765b 100644 --- a/x-pack/plugins/security_solution/public/common/components/link_to/index.ts +++ b/x-pack/plugins/security_solution/public/common/components/link_to/index.ts @@ -14,7 +14,6 @@ import { SecurityNavKey } from '../navigation/types'; import { SecurityPageName } from '../../../app/types'; export { getDetectionEngineUrl, getRuleDetailsUrl } from './redirect_to_detection_engine'; -export { getAppOverviewUrl } from './redirect_to_overview'; export { getHostDetailsUrl, getTabsOnHostDetailsUrl, getHostsUrl } from './redirect_to_hosts'; export { getNetworkUrl, getNetworkDetailsUrl } from './redirect_to_network'; export { getTimelineTabsUrl, getTimelineUrl } from './redirect_to_timelines'; diff --git a/x-pack/plugins/security_solution/public/common/components/link_to/redirect_to_landing.tsx b/x-pack/plugins/security_solution/public/common/components/link_to/redirect_to_landing.tsx new file mode 100644 index 0000000000000..10ef61da0b814 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/link_to/redirect_to_landing.tsx @@ -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. + */ + +import { appendSearch } from './helpers'; + +export const getAppLandingUrl = (path: string, search?: string) => `${path}${appendSearch(search)}`; diff --git a/x-pack/plugins/security_solution/public/common/components/link_to/redirect_to_overview.tsx b/x-pack/plugins/security_solution/public/common/components/link_to/redirect_to_overview.tsx deleted file mode 100644 index 6a83edd7442de..0000000000000 --- a/x-pack/plugins/security_solution/public/common/components/link_to/redirect_to_overview.tsx +++ /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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { appendSearch } from './helpers'; -import { LANDING_PATH } from '../../../../common/constants'; - -export const getAppOverviewUrl = (overviewPath: string, search?: string) => - `${overviewPath}${appendSearch(search)}`; - -export const getAppLandingUrl = (search?: string) => `${LANDING_PATH}${appendSearch(search)}`; diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.test.ts b/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.test.ts index 5639721403cbd..7d2bfaa405cb2 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.test.ts +++ b/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.test.ts @@ -158,7 +158,7 @@ describe('Navigation Breadcrumbs', () => { ); expect(breadcrumbs).toEqual([ { - href: 'securitySolutionUI/overview', + href: 'securitySolutionUI/get_started', text: 'Security', }, { @@ -178,7 +178,7 @@ describe('Navigation Breadcrumbs', () => { getUrlForAppMock ); expect(breadcrumbs).toEqual([ - { text: 'Security', href: 'securitySolutionUI/overview' }, + { text: 'Security', href: 'securitySolutionUI/get_started' }, { text: 'Network', href: "securitySolutionUI/network?sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)))", @@ -196,7 +196,7 @@ describe('Navigation Breadcrumbs', () => { getUrlForAppMock ); expect(breadcrumbs).toEqual([ - { text: 'Security', href: 'securitySolutionUI/overview' }, + { text: 'Security', href: 'securitySolutionUI/get_started' }, { text: 'Timelines', href: "securitySolutionUI/timelines?sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)))", @@ -210,7 +210,7 @@ describe('Navigation Breadcrumbs', () => { getUrlForAppMock ); expect(breadcrumbs).toEqual([ - { text: 'Security', href: 'securitySolutionUI/overview' }, + { text: 'Security', href: 'securitySolutionUI/get_started' }, { text: 'Hosts', href: "securitySolutionUI/hosts?sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)))", @@ -229,7 +229,7 @@ describe('Navigation Breadcrumbs', () => { getUrlForAppMock ); expect(breadcrumbs).toEqual([ - { text: 'Security', href: 'securitySolutionUI/overview' }, + { text: 'Security', href: 'securitySolutionUI/get_started' }, { text: 'Network', href: "securitySolutionUI/network?sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)))", @@ -248,7 +248,7 @@ describe('Navigation Breadcrumbs', () => { getUrlForAppMock ); expect(breadcrumbs).toEqual([ - { text: 'Security', href: 'securitySolutionUI/overview' }, + { text: 'Security', href: 'securitySolutionUI/get_started' }, { text: 'Network', href: "securitySolutionUI/network?sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)))", @@ -267,7 +267,7 @@ describe('Navigation Breadcrumbs', () => { getUrlForAppMock ); expect(breadcrumbs).toEqual([ - { text: 'Security', href: 'securitySolutionUI/overview' }, + { text: 'Security', href: 'securitySolutionUI/get_started' }, { text: 'Alerts', href: '', @@ -281,7 +281,7 @@ describe('Navigation Breadcrumbs', () => { getUrlForAppMock ); expect(breadcrumbs).toEqual([ - { text: 'Security', href: 'securitySolutionUI/overview' }, + { text: 'Security', href: 'securitySolutionUI/get_started' }, { text: 'Exceptions', href: '', @@ -295,7 +295,7 @@ describe('Navigation Breadcrumbs', () => { getUrlForAppMock ); expect(breadcrumbs).toEqual([ - { text: 'Security', href: 'securitySolutionUI/overview' }, + { text: 'Security', href: 'securitySolutionUI/get_started' }, { text: 'Rules', href: "securitySolutionUI/rules?sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)))", @@ -309,7 +309,7 @@ describe('Navigation Breadcrumbs', () => { getUrlForAppMock ); expect(breadcrumbs).toEqual([ - { text: 'Security', href: 'securitySolutionUI/overview' }, + { text: 'Security', href: 'securitySolutionUI/get_started' }, { text: 'Rules', href: "securitySolutionUI/rules?sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)))", @@ -335,7 +335,7 @@ describe('Navigation Breadcrumbs', () => { getUrlForAppMock ); expect(breadcrumbs).toEqual([ - { text: 'Security', href: 'securitySolutionUI/overview' }, + { text: 'Security', href: 'securitySolutionUI/get_started' }, { text: 'Rules', href: "securitySolutionUI/rules?sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)))", @@ -361,7 +361,7 @@ describe('Navigation Breadcrumbs', () => { getUrlForAppMock ); expect(breadcrumbs).toEqual([ - { text: 'Security', href: 'securitySolutionUI/overview' }, + { text: 'Security', href: 'securitySolutionUI/get_started' }, { text: 'Rules', href: "securitySolutionUI/rules?sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)))", @@ -406,7 +406,7 @@ describe('Navigation Breadcrumbs', () => { getUrlForAppMock ); expect(breadcrumbs).toEqual([ - { text: 'Security', href: 'securitySolutionUI/overview' }, + { text: 'Security', href: 'securitySolutionUI/get_started' }, { text: 'Endpoints', href: '', @@ -428,7 +428,7 @@ describe('Navigation Breadcrumbs', () => { expect(setBreadcrumbsMock).toBeCalledWith([ expect.objectContaining({ text: 'Security', - href: 'securitySolutionUI/overview', + href: 'securitySolutionUI/get_started', onClick: expect.any(Function), }), expect.objectContaining({ diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts b/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts index 83ee6ce481250..fead76ff1b2eb 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts +++ b/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts @@ -26,7 +26,7 @@ import { AdministrationRouteSpyState, UsersRouteSpyState, } from '../../../utils/route/types'; -import { getAppOverviewUrl } from '../../link_to'; +import { getAppLandingUrl } from '../../link_to/redirect_to_landing'; import { timelineActions } from '../../../../../public/timelines/store/timeline'; import { TimelineId } from '../../../../../common/types/timeline'; import { TabNavigationProps } from '../tab_navigation/types'; @@ -91,10 +91,11 @@ export const getBreadcrumbsForRoute = ( getUrlForApp: GetUrlForApp ): ChromeBreadcrumb[] | null => { const spyState: RouteSpyState = omit('navTabs', object); - const overviewPath = getUrlForApp(APP_UI_ID, { deepLinkId: SecurityPageName.overview }); + const landingPath = getUrlForApp(APP_UI_ID, { deepLinkId: SecurityPageName.landing }); + const siemRootBreadcrumb: ChromeBreadcrumb = { text: APP_NAME, - href: getAppOverviewUrl(overviewPath), + href: getAppLandingUrl(landingPath), }; if (isHostsRoutes(spyState) && object.navTabs) { const tempNav: SearchNavTab = { urlKey: 'host', isDetailPage: false }; diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/index.test.tsx index 601794dd25917..c76ba7a43cb30 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/index.test.tsx @@ -115,16 +115,6 @@ describe('useSecuritySolutionNavigation', () => { Object { "id": "main", "items": Array [ - Object { - "data-href": "securitySolutionUI/overview?query=(language:kuery,query:'host.name:%22security-solution-es%22')&sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)))", - "data-test-subj": "navigation-overview", - "disabled": false, - "href": "securitySolutionUI/overview?query=(language:kuery,query:'host.name:%22security-solution-es%22')&sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)))", - "id": "overview", - "isSelected": false, - "name": "Overview", - "onClick": [Function], - }, Object { "data-href": "securitySolutionUI/get_started?query=(language:kuery,query:'host.name:%22security-solution-es%22')&sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)))", "data-test-subj": "navigation-get_started", @@ -135,6 +125,16 @@ describe('useSecuritySolutionNavigation', () => { "name": "Getting started", "onClick": [Function], }, + Object { + "data-href": "securitySolutionUI/overview?query=(language:kuery,query:'host.name:%22security-solution-es%22')&sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)))", + "data-test-subj": "navigation-overview", + "disabled": false, + "href": "securitySolutionUI/overview?query=(language:kuery,query:'host.name:%22security-solution-es%22')&sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)))", + "id": "overview", + "isSelected": false, + "name": "Overview", + "onClick": [Function], + }, ], "name": "", }, diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/use_navigation_items.tsx b/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/use_navigation_items.tsx index 14b007be4764d..7985f5244e84f 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/use_navigation_items.tsx +++ b/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/use_navigation_items.tsx @@ -77,8 +77,8 @@ function usePrimaryNavigationItemsToDisplay(navTabs: Record) { id: 'main', name: '', items: [ - navTabs[SecurityPageName.overview], navTabs[SecurityPageName.landing], + navTabs[SecurityPageName.overview], // Temporary check for detectionAndResponse while page is feature flagged ...(navTabs[SecurityPageName.detectionAndResponse] != null ? [navTabs[SecurityPageName.detectionAndResponse]] diff --git a/x-pack/plugins/security_solution/public/common/components/paginated_table/index.tsx b/x-pack/plugins/security_solution/public/common/components/paginated_table/index.tsx index 3b27dc0fcfac6..fc2fe1ac5b361 100644 --- a/x-pack/plugins/security_solution/public/common/components/paginated_table/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/paginated_table/index.tsx @@ -25,7 +25,6 @@ import styled from 'styled-components'; import { Direction } from '../../../../common/search_strategy'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../common/constants'; -import { AuthTableColumns } from '../../../hosts/components/authentications_table'; import { HostsTableColumns } from '../../../hosts/components/hosts_table'; import { NetworkDnsColumns } from '../../../network/components/network_dns_table/columns'; import { NetworkHttpColumns } from '../../../network/components/network_http_table/columns'; @@ -51,6 +50,7 @@ import { Panel } from '../panel'; import { InspectButtonContainer } from '../inspect'; import { useQueryToggle } from '../../containers/query_toggle'; import { UsersTableColumns } from '../../../users/components/all_users'; +import { AuthTableColumns } from '../authentication/types'; const DEFAULT_DATA_TEST_SUBJ = 'paginated-table'; diff --git a/x-pack/plugins/security_solution/public/hosts/containers/authentications/index.test.tsx b/x-pack/plugins/security_solution/public/common/containers/authentications/index.test.tsx similarity index 82% rename from x-pack/plugins/security_solution/public/hosts/containers/authentications/index.test.tsx rename to x-pack/plugins/security_solution/public/common/containers/authentications/index.test.tsx index 1f6ee4cb276ec..cf7953bb8922c 100644 --- a/x-pack/plugins/security_solution/public/hosts/containers/authentications/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/containers/authentications/index.test.tsx @@ -6,9 +6,10 @@ */ import { act, renderHook } from '@testing-library/react-hooks'; +import { AuthStackByField } from '../../../../common/search_strategy'; import { TestProviders } from '../../../common/mock'; +import { HostsType } from '../../../hosts/store/model'; import { useAuthentications } from './index'; -import { HostsType } from '../../store/model'; describe('authentications', () => { it('skip = true will cancel any running request', () => { @@ -19,6 +20,9 @@ describe('authentications', () => { indexNames: ['cool'], type: HostsType.page, skip: false, + stackByField: AuthStackByField.hostName, + activePage: 0, + limit: 10, }; const { rerender } = renderHook(() => useAuthentications(localProps), { wrapper: TestProviders, diff --git a/x-pack/plugins/security_solution/public/hosts/containers/authentications/index.tsx b/x-pack/plugins/security_solution/public/common/containers/authentications/index.tsx similarity index 85% rename from x-pack/plugins/security_solution/public/hosts/containers/authentications/index.tsx rename to x-pack/plugins/security_solution/public/common/containers/authentications/index.tsx index 1ff27e4b29917..593d5e4186e29 100644 --- a/x-pack/plugins/security_solution/public/hosts/containers/authentications/index.tsx +++ b/x-pack/plugins/security_solution/public/common/containers/authentications/index.tsx @@ -5,24 +5,22 @@ * 2.0. */ -import { noop, pick } from 'lodash/fp'; +import { noop } from 'lodash/fp'; import { useCallback, useEffect, useRef, useState } from 'react'; import deepEqual from 'fast-deep-equal'; import { Subscription } from 'rxjs'; import { isCompleteResponse, isErrorResponse } from '../../../../../../../src/plugins/data/common'; -import { HostsQueries } from '../../../../common/search_strategy/security_solution'; import { - HostAuthenticationsRequestOptions, - HostAuthenticationsStrategyResponse, AuthenticationsEdges, - PageInfoPaginated, - DocValueFields, - SortField, -} from '../../../../common/search_strategy'; + AuthStackByField, + UserAuthenticationsRequestOptions, + UserAuthenticationsStrategyResponse, + UsersQueries, +} from '../../../../common/search_strategy/security_solution'; +import { PageInfoPaginated, DocValueFields, SortField } from '../../../../common/search_strategy'; import { ESTermQuery } from '../../../../common/typed_json'; -import { useDeepEqualSelector } from '../../../common/hooks/use_selector'; import { inputsModel } from '../../../common/store'; import { createFilter } from '../../../common/containers/helpers'; import { generateTablePaginationOptions } from '../../../common/components/paginated_table/helpers'; @@ -30,17 +28,12 @@ import { useKibana } from '../../../common/lib/kibana'; import { getInspectResponse } from '../../../helpers'; import { InspectResponse } from '../../../types'; -import { hostsModel, hostsSelectors } from '../../store'; - import * as i18n from './translations'; import { useTransforms } from '../../../transforms/containers/use_transforms'; import { useAppToasts } from '../../../common/hooks/use_app_toasts'; -export const ID = 'hostsAuthenticationsQuery'; - export interface AuthenticationArgs { authentications: AuthenticationsEdges[]; - id: string; inspect: InspectResponse; isInspected: boolean; loading: boolean; @@ -56,8 +49,10 @@ interface UseAuthentications { endDate: string; indexNames: string[]; startDate: string; - type: hostsModel.HostsType; skip: boolean; + stackByField: AuthStackByField; + activePage: number; + limit: number; } export const useAuthentications = ({ @@ -66,20 +61,18 @@ export const useAuthentications = ({ endDate, indexNames, startDate, - type, + activePage, + limit, skip, + stackByField, }: UseAuthentications): [boolean, AuthenticationArgs] => { - const getAuthenticationsSelector = hostsSelectors.authenticationsSelector(); - const { activePage, limit } = useDeepEqualSelector((state) => - pick(['activePage', 'limit'], getAuthenticationsSelector(state, type)) - ); const { data } = useKibana().services; const refetch = useRef(noop); const abortCtrl = useRef(new AbortController()); const searchSubscription$ = useRef(new Subscription()); const [loading, setLoading] = useState(false); const [authenticationsRequest, setAuthenticationsRequest] = - useState(null); + useState(null); const { getTransformChangesIfTheyExist } = useTransforms(); const { addError, addWarning } = useAppToasts(); @@ -101,7 +94,6 @@ export const useAuthentications = ({ const [authenticationsResponse, setAuthenticationsResponse] = useState({ authentications: [], - id: ID, inspect: { dsl: [], response: [], @@ -119,7 +111,7 @@ export const useAuthentications = ({ }); const authenticationsSearch = useCallback( - (request: HostAuthenticationsRequestOptions | null) => { + (request: UserAuthenticationsRequestOptions | null) => { if (request == null || skip) { return; } @@ -128,7 +120,7 @@ export const useAuthentications = ({ setLoading(true); searchSubscription$.current = data.search - .search(request, { + .search(request, { strategy: 'securitySolutionSearchStrategy', abortSignal: abortCtrl.current.signal, }) @@ -171,7 +163,7 @@ export const useAuthentications = ({ useEffect(() => { setAuthenticationsRequest((prevRequest) => { const { indices, factoryQueryType, timerange } = getTransformChangesIfTheyExist({ - factoryQueryType: HostsQueries.authentications, + factoryQueryType: UsersQueries.authentications, indices: indexNames, filterQuery, timerange: { @@ -187,6 +179,7 @@ export const useAuthentications = ({ docValueFields: docValueFields ?? [], factoryQueryType, filterQuery: createFilter(filterQuery), + stackByField, pagination: generateTablePaginationOptions(activePage, limit), timerange, sort: {} as SortField, @@ -202,6 +195,7 @@ export const useAuthentications = ({ endDate, filterQuery, indexNames, + stackByField, limit, startDate, getTransformChangesIfTheyExist, diff --git a/x-pack/plugins/security_solution/public/hosts/containers/authentications/translations.ts b/x-pack/plugins/security_solution/public/common/containers/authentications/translations.ts similarity index 100% rename from x-pack/plugins/security_solution/public/hosts/containers/authentications/translations.ts rename to x-pack/plugins/security_solution/public/common/containers/authentications/translations.ts diff --git a/x-pack/plugins/security_solution/public/overview/images/endpoint.png b/x-pack/plugins/security_solution/public/common/images/endpoint.png similarity index 100% rename from x-pack/plugins/security_solution/public/overview/images/endpoint.png rename to x-pack/plugins/security_solution/public/common/images/endpoint.png diff --git a/x-pack/plugins/security_solution/public/overview/images/siem.png b/x-pack/plugins/security_solution/public/common/images/siem.png similarity index 100% rename from x-pack/plugins/security_solution/public/overview/images/siem.png rename to x-pack/plugins/security_solution/public/common/images/siem.png diff --git a/x-pack/plugins/security_solution/public/overview/images/video.svg b/x-pack/plugins/security_solution/public/common/images/video.svg similarity index 100% rename from x-pack/plugins/security_solution/public/overview/images/video.svg rename to x-pack/plugins/security_solution/public/common/images/video.svg diff --git a/x-pack/plugins/security_solution/public/common/utils/empty_view/use_show_pages_with_empty_view.test.tsx b/x-pack/plugins/security_solution/public/common/utils/empty_view/use_show_pages_with_empty_view.test.tsx index 01dbfbed6a0c2..b46b3b4177239 100644 --- a/x-pack/plugins/security_solution/public/common/utils/empty_view/use_show_pages_with_empty_view.test.tsx +++ b/x-pack/plugins/security_solution/public/common/utils/empty_view/use_show_pages_with_empty_view.test.tsx @@ -13,13 +13,17 @@ jest.mock('../route/use_route_spy', () => ({ .fn() .mockImplementationOnce(() => [{ pageName: 'hosts' }]) .mockImplementationOnce(() => [{ pageName: 'rules' }]) - .mockImplementationOnce(() => [{ pageName: 'network' }]), + .mockImplementationOnce(() => [{ pageName: 'network' }]) + .mockImplementationOnce(() => [{ pageName: 'get_started' }]) + .mockImplementationOnce(() => [{ pageName: 'get_started' }]), })); jest.mock('../../../common/containers/sourcerer', () => ({ useSourcererDataView: jest .fn() .mockImplementationOnce(() => [{ indicesExist: false }]) .mockImplementationOnce(() => [{ indicesExist: false }]) + .mockImplementationOnce(() => [{ indicesExist: true }]) + .mockImplementationOnce(() => [{ indicesExist: false }]) .mockImplementationOnce(() => [{ indicesExist: true }]), })); @@ -48,4 +52,22 @@ describe('use show pages with empty view', () => { expect(emptyResult).toEqual(true); }); }); + + it('apply empty view for the landing page if indices do not exist', async () => { + await act(async () => { + const { result, waitForNextUpdate } = renderHook(() => useShowPagesWithEmptyView()); + await waitForNextUpdate(); + const emptyResult = result.current; + expect(emptyResult).toEqual(true); + }); + }); + + it('apply empty view for the landing page if indices exist', async () => { + await act(async () => { + const { result, waitForNextUpdate } = renderHook(() => useShowPagesWithEmptyView()); + await waitForNextUpdate(); + const emptyResult = result.current; + expect(emptyResult).toEqual(true); + }); + }); }); diff --git a/x-pack/plugins/security_solution/public/common/utils/empty_view/use_show_pages_with_empty_view.tsx b/x-pack/plugins/security_solution/public/common/utils/empty_view/use_show_pages_with_empty_view.tsx index f863cecffe3d6..3ef27addb8efe 100644 --- a/x-pack/plugins/security_solution/public/common/utils/empty_view/use_show_pages_with_empty_view.tsx +++ b/x-pack/plugins/security_solution/public/common/utils/empty_view/use_show_pages_with_empty_view.tsx @@ -25,7 +25,8 @@ export const useShowPagesWithEmptyView = () => { const [{ pageName }] = useRouteSpy(); const { indicesExist } = useSourcererDataView(); - const shouldShowEmptyState = isPageNameWithEmptyView(pageName) && !indicesExist; + const shouldShowEmptyState = + (isPageNameWithEmptyView(pageName) && !indicesExist) || pageName === SecurityPageName.landing; const [showEmptyState, setShowEmptyState] = useState(shouldShowEmptyState); diff --git a/x-pack/plugins/security_solution/public/detections/components/osquery/osquery_flyout.tsx b/x-pack/plugins/security_solution/public/detections/components/osquery/osquery_flyout.tsx index 3262fc36abf75..0001c2966c1bc 100644 --- a/x-pack/plugins/security_solution/public/detections/components/osquery/osquery_flyout.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/osquery/osquery_flyout.tsx @@ -45,7 +45,7 @@ export const OsqueryFlyout: React.FC = ({ agentId, onClose } - + diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/actions_description.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/actions_description.tsx index 43b703512d6e6..8618575a7a4c9 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/actions_description.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/actions_description.tsx @@ -7,9 +7,9 @@ import React from 'react'; import { startCase } from 'lodash/fp'; -import { AlertAction } from '../../../../../../alerting/common'; +import { RuleAction } from '../../../../../../alerting/common'; -const ActionsDescription = ({ actions }: { actions: AlertAction[] }) => { +const ActionsDescription = ({ actions }: { actions: RuleAction[] }) => { if (!actions.length) return null; return ( @@ -21,12 +21,12 @@ const ActionsDescription = ({ actions }: { actions: AlertAction[] }) => { ); }; -export const buildActionsDescription = (actions: AlertAction[], title: string) => ({ +export const buildActionsDescription = (actions: RuleAction[], title: string) => ({ title: actions.length ? title : '', description: , }); -const getActionTypeName = (actionTypeId: AlertAction['actionTypeId']) => { +const getActionTypeName = (actionTypeId: RuleAction['actionTypeId']) => { if (!actionTypeId) return ''; const actionType = actionTypeId.split('.')[1]; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/rule_actions_field/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/rule_actions_field/index.tsx index 55154def55b50..5fb7266e228a5 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/rule_actions_field/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/rule_actions_field/index.tsx @@ -20,7 +20,7 @@ import { loadActionTypes, ActionVariables, } from '../../../../../../triggers_actions_ui/public'; -import { AlertAction } from '../../../../../../alerting/common'; +import { RuleAction } from '../../../../../../alerting/common'; import { convertArrayToCamelCase, useKibana } from '../../../../common/lib/kibana'; import { FORM_ERRORS_TITLE } from './translations'; @@ -87,8 +87,8 @@ export const RuleActionsField: React.FC = ({ triggersActionsUi: { actionTypeRegistry }, } = useKibana().services; - const actions: AlertAction[] = useMemo( - () => (!isEmpty(field.value) ? (field.value as AlertAction[]) : []), + const actions: RuleAction[] = useMemo( + () => (!isEmpty(field.value) ? (field.value as RuleAction[]) : []), [field.value] ); @@ -105,7 +105,7 @@ export const RuleActionsField: React.FC = ({ const setActionIdByIndex = useCallback( (id: string, index: number) => { - const updatedActions = [...(actions as Array>)]; + const updatedActions = [...(actions as Array>)]; updatedActions[index] = deepMerge(updatedActions[index], { id }); field.setValue(updatedActions); }, @@ -114,7 +114,7 @@ export const RuleActionsField: React.FC = ({ ); const setAlertActionsProperty = useCallback( - (updatedActions: AlertAction[]) => field.setValue(updatedActions), + (updatedActions: RuleAction[]) => field.setValue(updatedActions), [field] ); diff --git a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/api.test.ts b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/api.test.ts index c8d8b5bb6ffd0..3c534ca7294a5 100644 --- a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/api.test.ts +++ b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/api.test.ts @@ -143,7 +143,7 @@ describe('Detections Rules API', () => { method: 'GET', query: { filter: - '(alert.attributes.name: "hello world" OR alert.attributes.params.index: "hello world" OR alert.attributes.params.threat.tactic.id: "hello world" OR alert.attributes.params.threat.tactic.name: "hello world" OR alert.attributes.params.threat.technique.id: "hello world" OR alert.attributes.params.threat.technique.name: "hello world")', + '(alert.attributes.name: "hello world" OR alert.attributes.params.index: "hello world" OR alert.attributes.params.threat.tactic.id: "hello world" OR alert.attributes.params.threat.tactic.name: "hello world" OR alert.attributes.params.threat.technique.id: "hello world" OR alert.attributes.params.threat.technique.name: "hello world" OR alert.attributes.params.threat.technique.subtechnique.id: "hello world" OR alert.attributes.params.threat.technique.subtechnique.name: "hello world")', page: 1, per_page: 20, sort_field: 'enabled', @@ -172,7 +172,7 @@ describe('Detections Rules API', () => { method: 'GET', query: { filter: - '(alert.attributes.name: "\\" OR (foo:bar)" OR alert.attributes.params.index: "\\" OR (foo:bar)" OR alert.attributes.params.threat.tactic.id: "\\" OR (foo:bar)" OR alert.attributes.params.threat.tactic.name: "\\" OR (foo:bar)" OR alert.attributes.params.threat.technique.id: "\\" OR (foo:bar)" OR alert.attributes.params.threat.technique.name: "\\" OR (foo:bar)")', + '(alert.attributes.name: "\\" OR (foo:bar)" OR alert.attributes.params.index: "\\" OR (foo:bar)" OR alert.attributes.params.threat.tactic.id: "\\" OR (foo:bar)" OR alert.attributes.params.threat.tactic.name: "\\" OR (foo:bar)" OR alert.attributes.params.threat.technique.id: "\\" OR (foo:bar)" OR alert.attributes.params.threat.technique.name: "\\" OR (foo:bar)" OR alert.attributes.params.threat.technique.subtechnique.id: "\\" OR (foo:bar)" OR alert.attributes.params.threat.technique.subtechnique.name: "\\" OR (foo:bar)")', page: 1, per_page: 20, sort_field: 'enabled', @@ -383,7 +383,7 @@ describe('Detections Rules API', () => { method: 'GET', query: { filter: - 'alert.attributes.tags: "__internal_immutable:false" AND alert.attributes.tags: "__internal_immutable:true" AND alert.attributes.tags:("hello" AND "world") AND (alert.attributes.name: "ruleName" OR alert.attributes.params.index: "ruleName" OR alert.attributes.params.threat.tactic.id: "ruleName" OR alert.attributes.params.threat.tactic.name: "ruleName" OR alert.attributes.params.threat.technique.id: "ruleName" OR alert.attributes.params.threat.technique.name: "ruleName")', + 'alert.attributes.tags: "__internal_immutable:false" AND alert.attributes.tags: "__internal_immutable:true" AND alert.attributes.tags:("hello" AND "world") AND (alert.attributes.name: "ruleName" OR alert.attributes.params.index: "ruleName" OR alert.attributes.params.threat.tactic.id: "ruleName" OR alert.attributes.params.threat.tactic.name: "ruleName" OR alert.attributes.params.threat.technique.id: "ruleName" OR alert.attributes.params.threat.technique.name: "ruleName" OR alert.attributes.params.threat.technique.subtechnique.id: "ruleName" OR alert.attributes.params.threat.technique.subtechnique.name: "ruleName")', page: 1, per_page: 20, sort_field: 'enabled', diff --git a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/types.ts b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/types.ts index 797f67e1fbae5..9438d409f0914 100644 --- a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/types.ts +++ b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/types.ts @@ -43,8 +43,8 @@ import { } from '../../../../../common/detection_engine/schemas/request'; /** - * Params is an "record", since it is a type of AlertActionParams which is action templates. - * @see x-pack/plugins/alerting/common/alert.ts + * Params is an "record", since it is a type of RuleActionParams which is action templates. + * @see x-pack/plugins/alerting/common/rule.ts * @deprecated Use the one from @kbn/security-io-ts-alerting-types */ export const action = t.exact( diff --git a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/utils.test.ts b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/utils.test.ts index e3d2300972a51..a26a4aec3ec02 100644 --- a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/utils.test.ts +++ b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/utils.test.ts @@ -27,7 +27,7 @@ describe('convertRulesFilterToKQL', () => { const kql = convertRulesFilterToKQL({ ...filterOptions, filter: 'foo' }); expect(kql).toBe( - '(alert.attributes.name: "foo" OR alert.attributes.params.index: "foo" OR alert.attributes.params.threat.tactic.id: "foo" OR alert.attributes.params.threat.tactic.name: "foo" OR alert.attributes.params.threat.technique.id: "foo" OR alert.attributes.params.threat.technique.name: "foo")' + '(alert.attributes.name: "foo" OR alert.attributes.params.index: "foo" OR alert.attributes.params.threat.tactic.id: "foo" OR alert.attributes.params.threat.tactic.name: "foo" OR alert.attributes.params.threat.technique.id: "foo" OR alert.attributes.params.threat.technique.name: "foo" OR alert.attributes.params.threat.technique.subtechnique.id: "foo" OR alert.attributes.params.threat.technique.subtechnique.name: "foo")' ); }); @@ -35,7 +35,7 @@ describe('convertRulesFilterToKQL', () => { const kql = convertRulesFilterToKQL({ ...filterOptions, filter: '" OR (foo: bar)' }); expect(kql).toBe( - '(alert.attributes.name: "\\" OR (foo: bar)" OR alert.attributes.params.index: "\\" OR (foo: bar)" OR alert.attributes.params.threat.tactic.id: "\\" OR (foo: bar)" OR alert.attributes.params.threat.tactic.name: "\\" OR (foo: bar)" OR alert.attributes.params.threat.technique.id: "\\" OR (foo: bar)" OR alert.attributes.params.threat.technique.name: "\\" OR (foo: bar)")' + '(alert.attributes.name: "\\" OR (foo: bar)" OR alert.attributes.params.index: "\\" OR (foo: bar)" OR alert.attributes.params.threat.tactic.id: "\\" OR (foo: bar)" OR alert.attributes.params.threat.tactic.name: "\\" OR (foo: bar)" OR alert.attributes.params.threat.technique.id: "\\" OR (foo: bar)" OR alert.attributes.params.threat.technique.name: "\\" OR (foo: bar)" OR alert.attributes.params.threat.technique.subtechnique.id: "\\" OR (foo: bar)" OR alert.attributes.params.threat.technique.subtechnique.name: "\\" OR (foo: bar)")' ); }); @@ -66,7 +66,7 @@ describe('convertRulesFilterToKQL', () => { }); expect(kql).toBe( - `alert.attributes.tags: "${INTERNAL_IMMUTABLE_KEY}:true" AND alert.attributes.tags:(\"tag1\" AND \"tag2\") AND (alert.attributes.name: \"foo\" OR alert.attributes.params.index: \"foo\" OR alert.attributes.params.threat.tactic.id: \"foo\" OR alert.attributes.params.threat.tactic.name: \"foo\" OR alert.attributes.params.threat.technique.id: \"foo\" OR alert.attributes.params.threat.technique.name: \"foo\")` + `alert.attributes.tags: "${INTERNAL_IMMUTABLE_KEY}:true" AND alert.attributes.tags:("tag1" AND "tag2") AND (alert.attributes.name: "foo" OR alert.attributes.params.index: "foo" OR alert.attributes.params.threat.tactic.id: "foo" OR alert.attributes.params.threat.tactic.name: "foo" OR alert.attributes.params.threat.technique.id: "foo" OR alert.attributes.params.threat.technique.name: "foo" OR alert.attributes.params.threat.technique.subtechnique.id: "foo" OR alert.attributes.params.threat.technique.subtechnique.name: "foo")` ); }); }); diff --git a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/utils.ts b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/utils.ts index f5e52fd6362c1..069746223731c 100644 --- a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/utils.ts +++ b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/utils.ts @@ -16,6 +16,8 @@ const SEARCHABLE_RULE_PARAMS = [ 'alert.attributes.params.threat.tactic.name', 'alert.attributes.params.threat.technique.id', 'alert.attributes.params.threat.technique.name', + 'alert.attributes.params.threat.technique.subtechnique.id', + 'alert.attributes.params.threat.technique.subtechnique.name', ]; /** diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/detection_engine.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/detection_engine.tsx index 5bd6875032e03..3fc05c0ef428f 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/detection_engine.tsx +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/detection_engine.tsx @@ -40,7 +40,6 @@ import { AlertsTable } from '../../components/alerts_table'; import { NoApiIntegrationKeyCallOut } from '../../components/callouts/no_api_integration_callout'; import { AlertsHistogramPanel } from '../../components/alerts_kpis/alerts_histogram_panel'; import { useUserData } from '../../components/user_info'; -import { OverviewEmpty } from '../../../overview/components/overview_empty'; import { DetectionEngineNoIndex } from './detection_engine_no_index'; import { useListsConfig } from '../../containers/detection_engine/lists/use_lists_config'; import { DetectionEngineUserUnauthenticated } from './detection_engine_user_unauthenticated'; @@ -77,6 +76,7 @@ import { } from '../../components/alerts_table/alerts_filter_group'; import { EmptyPage } from '../../../common/components/empty_page'; import { HeaderPage } from '../../../common/components/header_page'; +import { LandingPageComponent } from '../../../common/components/landing_page'; /** * Need a 100% height here to account for the graph/analyze tool, which sets no explicit height parameters, but fills the available space. */ @@ -389,10 +389,7 @@ const DetectionEnginePageComponent: React.FC = ({ ) : ( - - - - + )} ); diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/feature_tour/rules_feature_tour.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/feature_tour/rules_feature_tour.tsx new file mode 100644 index 0000000000000..59a26a2289190 --- /dev/null +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/feature_tour/rules_feature_tour.tsx @@ -0,0 +1,147 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + EuiButtonIcon, + EuiFlexGroup, + EuiFlexItem, + EuiSpacer, + EuiStatelessTourStep, + EuiText, + EuiTourActions, + EuiTourState, + EuiTourStep, + EuiTourStepProps, + useEuiTour, +} from '@elastic/eui'; +import { noop } from 'lodash'; +import React, { FC, useEffect, useMemo, useState } from 'react'; +import { RULES_MANAGEMENT_FEATURE_TOUR_STORAGE_KEY } from '../../../../../../../common/constants'; +import { useKibana } from '../../../../../../common/lib/kibana'; +import * as i18n from './translations'; + +export interface RulesFeatureTourContextType { + steps: EuiTourStepProps[]; + actions: EuiTourActions; +} + +export const SEARCH_CAPABILITIES_TOUR_ANCHOR = 'search-capabilities-tour-anchor'; + +const TOUR_POPOVER_WIDTH = 400; + +const tourConfig: EuiTourState = { + currentTourStep: 1, + isTourActive: true, + tourPopoverWidth: TOUR_POPOVER_WIDTH, + tourSubtitle: i18n.TOUR_TITLE, +}; + +const stepsConfig: EuiStatelessTourStep[] = [ + { + step: 1, + title: i18n.SEARCH_CAPABILITIES_TITLE, + content: {i18n.SEARCH_CAPABILITIES_DESCRIPTION}, + stepsTotal: 1, + children: <>, + onFinish: noop, + maxWidth: TOUR_POPOVER_WIDTH, + }, +]; + +export const RulesFeatureTour: FC = () => { + const { storage } = useKibana().services; + + const restoredState = useMemo( + () => ({ + ...tourConfig, + ...storage.get(RULES_MANAGEMENT_FEATURE_TOUR_STORAGE_KEY), + }), + [storage] + ); + + const [tourSteps, tourActions, tourState] = useEuiTour(stepsConfig, restoredState); + + useEffect(() => { + const { isTourActive, currentTourStep } = tourState; + storage.set(RULES_MANAGEMENT_FEATURE_TOUR_STORAGE_KEY, { isTourActive, currentTourStep }); + }, [tourState, storage]); + + const [shouldShowSearchCapabilitiesTour, setShouldShowSearchCapabilitiesTour] = useState(false); + + useEffect(() => { + /** + * Wait until the tour target elements are visible on the page and mount + * EuiTourStep components only after that. Otherwise, the tours would never + * show up on the page. + */ + const observer = new MutationObserver(() => { + if (document.querySelector(`#${SEARCH_CAPABILITIES_TOUR_ANCHOR}`)) { + setShouldShowSearchCapabilitiesTour(true); + observer.disconnect(); + } + }); + + observer.observe(document.body, { + childList: true, + subtree: true, + }); + + return () => observer.disconnect(); + }, []); + + const enhancedSteps = useMemo( + () => + tourSteps.map((item, index) => ({ + ...item, + content: ( + <> + {item.content} + {tourSteps.length > 1 && ( + <> + + + + + + + + + + + )} + + ), + })), + [tourSteps, tourActions] + ); + + return shouldShowSearchCapabilitiesTour ? ( + + ) : null; +}; diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/feature_tour/rules_feature_tour_context.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/feature_tour/rules_feature_tour_context.tsx deleted file mode 100644 index aaa483e49fca7..0000000000000 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/feature_tour/rules_feature_tour_context.tsx +++ /dev/null @@ -1,150 +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, { createContext, useContext, useEffect, useMemo, FC } from 'react'; -import { - EuiButtonIcon, - EuiFlexGroup, - EuiFlexItem, - EuiSpacer, - EuiTourState, - EuiStatelessTourStep, - EuiTourStepProps, - EuiTourActions, - useEuiTour, -} from '@elastic/eui'; - -import { noop } from 'lodash'; -import { invariant } from '../../../../../../../common/utils/invariant'; -import { useKibana } from '../../../../../../common/lib/kibana'; -import { RULES_MANAGEMENT_FEATURE_TOUR_STORAGE_KEY } from '../../../../../../../common/constants'; - -import * as i18n from './translations'; - -export interface RulesFeatureTourContextType { - steps: EuiTourStepProps[]; - actions: EuiTourActions; -} - -const TOUR_POPOVER_WIDTH = 360; - -const tourConfig: EuiTourState = { - currentTourStep: 1, - isTourActive: true, - tourPopoverWidth: TOUR_POPOVER_WIDTH, - tourSubtitle: i18n.TOUR_TITLE, -}; - -// This is an example. Replace with the steps for your particular version. Don't forget to use i18n. -const stepsConfig: EuiStatelessTourStep[] = [ - { - step: 1, - title: 'A new feature', - content:

{'This feature allows for...'}

, - stepsTotal: 2, - children: <>, - onFinish: noop, - maxWidth: TOUR_POPOVER_WIDTH, - }, - { - step: 2, - title: 'Another feature', - content:

{'This another feature allows for...'}

, - stepsTotal: 2, - children: <>, - onFinish: noop, - anchorPosition: 'rightUp', - maxWidth: TOUR_POPOVER_WIDTH, - }, -]; - -const RulesFeatureTourContext = createContext(null); - -/** - * Context for new rules features, displayed in demo tour(euiTour) - * It has a common state in useEuiTour, which allows transition from one step to the next, for components within it[context] - * It also stores tour's state in localStorage - */ -export const RulesFeatureTourContextProvider: FC = ({ children }) => { - const { storage } = useKibana().services; - - const restoredState = useMemo( - () => ({ - ...tourConfig, - ...(storage.get(RULES_MANAGEMENT_FEATURE_TOUR_STORAGE_KEY) ?? tourConfig), - }), - [storage] - ); - - const [tourSteps, tourActions, tourState] = useEuiTour(stepsConfig, restoredState); - - const enhancedSteps = useMemo(() => { - return tourSteps.map((item, index, array) => { - return { - ...item, - content: ( - <> - {item.content} - - - - - - - - - - - ), - }; - }); - }, [tourSteps, tourActions]); - - const providerValue = useMemo( - () => ({ steps: enhancedSteps, actions: tourActions }), - [enhancedSteps, tourActions] - ); - - useEffect(() => { - const { isTourActive, currentTourStep } = tourState; - storage.set(RULES_MANAGEMENT_FEATURE_TOUR_STORAGE_KEY, { isTourActive, currentTourStep }); - }, [tourState, storage]); - - return ( - - {children} - - ); -}; - -export const useRulesFeatureTourContext = (): RulesFeatureTourContextType => { - const rulesFeatureTourContext = useContext(RulesFeatureTourContext); - invariant( - rulesFeatureTourContext, - 'useRulesFeatureTourContext should be used inside RulesFeatureTourContextProvider' - ); - - return rulesFeatureTourContext; -}; - -export const useRulesFeatureTourContextOptional = (): RulesFeatureTourContextType | null => { - const rulesFeatureTourContext = useContext(RulesFeatureTourContext); - - return rulesFeatureTourContext; -}; diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/feature_tour/translations.ts b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/feature_tour/translations.ts index bfcda64bb13dd..45715c6ca76d8 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/feature_tour/translations.ts +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/feature_tour/translations.ts @@ -13,3 +13,32 @@ export const TOUR_TITLE = i18n.translate( defaultMessage: "What's new", } ); + +export const PREVIOUS_STEP_LABEL = i18n.translate( + 'xpack.securitySolution.detectionEngine.rules.allRules.featureTour.previousStepLabel', + { + defaultMessage: 'Go to previous step', + } +); + +export const NEXT_STEP_LABEL = i18n.translate( + 'xpack.securitySolution.detectionEngine.rules.allRules.featureTour.nextStepLabel', + { + defaultMessage: 'Go to next step', + } +); + +export const SEARCH_CAPABILITIES_TITLE = i18n.translate( + 'xpack.securitySolution.detectionEngine.rules.allRules.featureTour.searchCapabilitiesTitle', + { + defaultMessage: 'Enhanced search capabilities', + } +); + +export const SEARCH_CAPABILITIES_DESCRIPTION = i18n.translate( + 'xpack.securitySolution.detectionEngine.rules.allRules.featureTour.searchCapabilitiesDescription', + { + defaultMessage: + 'It is now possible to search rules by index patterns, like "filebeat-*", or by MITRE ATT&CK™ tactics or techniques, like "Defense Evasion" or "TA0005".', + } +); diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/index.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/index.tsx index e8c7742125c74..282158cc66d53 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/index.tsx @@ -8,6 +8,7 @@ import { EuiSpacer } from '@elastic/eui'; import React, { useState } from 'react'; import { CreatePreBuiltRules } from '../../../../containers/detection_engine/rules'; +import { RulesFeatureTour } from './feature_tour/rules_feature_tour'; import { RulesTables } from './rules_tables'; import { AllRulesTabs, RulesTableToolbar } from './rules_table_toolbar'; @@ -45,6 +46,7 @@ export const AllRules = React.memo( return ( <> + theme.eui.euiSizeXS}; `; +const SearchBarWrapper = styled(EuiFlexItem)` + & .euiPopover, + & .euiPopover__anchor { + // This is needed to "cancel" styles passed down from EuiTourStep that + // interfere with EuiFieldSearch and don't allow it to take the full width + display: block; + } +`; + interface RulesTableFiltersProps { rulesCustomInstalled: number | null; rulesInstalled: number | null; @@ -69,15 +79,16 @@ const RulesTableFiltersComponent = ({ return ( - + - + diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/translations.ts b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/translations.ts index f99ebc2c72c26..09949cc5c1a09 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/translations.ts +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/translations.ts @@ -408,7 +408,8 @@ export const SEARCH_RULES = i18n.translate( export const SEARCH_PLACEHOLDER = i18n.translate( 'xpack.securitySolution.detectionEngine.rules.allRules.searchPlaceholder', { - defaultMessage: 'Search by rule name, index pattern, or MITRE ATT&CK tactic or technique', + defaultMessage: + 'Rule name, index pattern (e.g., "filebeat-*"), or MITRE ATT&CK™ tactic or technique (e.g., "Defense Evasion" or "TA0005")', } ); diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts index c1141ba527dbd..567e408089883 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts @@ -17,7 +17,7 @@ import { } from '@kbn/securitysolution-io-ts-alerting-types'; import type { Filter } from '@kbn/es-query'; import { RuleAlertAction } from '../../../../../common/detection_engine/types'; -import { AlertAction } from '../../../../../../alerting/common'; +import { RuleAction } from '../../../../../../alerting/common'; import { FieldValueQueryBar } from '../../../components/rules/query_bar'; import { FieldValueTimeline } from '../../../components/rules/pick_timeline'; import { FieldValueThreshold } from '../../../components/rules/threshold_input'; @@ -143,7 +143,7 @@ export interface ScheduleStepRule { } export interface ActionsStepRule { - actions: AlertAction[]; + actions: RuleAction[]; enabled: boolean; kibanaSiemAppUrl?: string; throttle?: string | null; diff --git a/x-pack/plugins/security_solution/public/helpers.test.tsx b/x-pack/plugins/security_solution/public/helpers.test.tsx index dd380fc3ccd39..4f39ea32c6d5d 100644 --- a/x-pack/plugins/security_solution/public/helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/helpers.test.tsx @@ -193,7 +193,7 @@ describe('RedirectRoute', () => { } as unknown as Capabilities; expect(shallow()).toMatchInlineSnapshot(` `); }); @@ -205,7 +205,7 @@ describe('RedirectRoute', () => { } as unknown as Capabilities; expect(shallow()).toMatchInlineSnapshot(` `); }); @@ -217,7 +217,7 @@ describe('RedirectRoute', () => { } as unknown as Capabilities; expect(shallow()).toMatchInlineSnapshot(` `); }); @@ -229,7 +229,7 @@ describe('RedirectRoute', () => { } as unknown as Capabilities; expect(shallow()).toMatchInlineSnapshot(` `); }); @@ -241,7 +241,7 @@ describe('RedirectRoute', () => { } as unknown as Capabilities; expect(shallow()).toMatchInlineSnapshot(` `); }); diff --git a/x-pack/plugins/security_solution/public/helpers.tsx b/x-pack/plugins/security_solution/public/helpers.tsx index fa0b8d115ea40..adc22b96d2050 100644 --- a/x-pack/plugins/security_solution/public/helpers.tsx +++ b/x-pack/plugins/security_solution/public/helpers.tsx @@ -18,7 +18,7 @@ import { RULES_PATH, SERVER_APP_ID, CASES_FEATURE_ID, - OVERVIEW_PATH, + LANDING_PATH, CASES_PATH, } from '../common/constants'; import { Ecs } from '../common/ecs'; @@ -138,7 +138,7 @@ export const manageOldSiemRoutes = async (coreStart: CoreStart) => { break; default: application.navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.overview, + deepLinkId: SecurityPageName.landing, replace: true, path, }); @@ -197,12 +197,12 @@ export const RedirectRoute = React.memo<{ capabilities: Capabilities }>(({ capab const overviewAvailable = isSubPluginAvailable('overview', capabilities); const casesAvailable = isSubPluginAvailable(CASES_SUB_PLUGIN_KEY, capabilities); if (overviewAvailable) { - return ; + return ; } if (casesAvailable) { return ; } - return ; + return ; }); RedirectRoute.displayName = 'RedirectRoute'; diff --git a/x-pack/plugins/security_solution/public/hosts/components/authentications_table/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/hosts/components/authentications_table/__snapshots__/index.test.tsx.snap deleted file mode 100644 index bffd5e2261ad9..0000000000000 --- a/x-pack/plugins/security_solution/public/hosts/components/authentications_table/__snapshots__/index.test.tsx.snap +++ /dev/null @@ -1,113 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Authentication Table Component rendering it renders the authentication table 1`] = ` - -`; diff --git a/x-pack/plugins/security_solution/public/hosts/components/authentications_table/index.test.tsx b/x-pack/plugins/security_solution/public/hosts/components/authentications_table/index.test.tsx deleted file mode 100644 index 2ec333e335639..0000000000000 --- a/x-pack/plugins/security_solution/public/hosts/components/authentications_table/index.test.tsx +++ /dev/null @@ -1,94 +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 { shallow } from 'enzyme'; -import { getOr } from 'lodash/fp'; -import React from 'react'; -import { Provider as ReduxStoreProvider } from 'react-redux'; - -import '../../../common/mock/match_media'; -import { - mockGlobalState, - SUB_PLUGINS_REDUCER, - kibanaObservable, - createSecuritySolutionStorageMock, -} from '../../../common/mock'; -import { createStore, State } from '../../../common/store'; -import { hostsModel } from '../../store'; -import { mockData } from './mock'; -import * as i18n from './translations'; -import { AuthenticationTable, getAuthenticationColumnsCurated } from '.'; - -describe('Authentication Table Component', () => { - const loadPage = jest.fn(); - const state: State = mockGlobalState; - - const { storage } = createSecuritySolutionStorageMock(); - let store = createStore(state, SUB_PLUGINS_REDUCER, kibanaObservable, storage); - - beforeEach(() => { - store = createStore(state, SUB_PLUGINS_REDUCER, kibanaObservable, storage); - }); - - describe('rendering', () => { - test('it renders the authentication table', () => { - const wrapper = shallow( - - - - ); - - expect(wrapper.find('Memo(AuthenticationTableComponent)')).toMatchSnapshot(); - }); - }); - - describe('columns', () => { - test('on hosts page, we expect to get all columns', () => { - expect(getAuthenticationColumnsCurated(hostsModel.HostsType.page, false).length).toEqual(9); - }); - - test('on host details page, we expect to remove two columns', () => { - const columns = getAuthenticationColumnsCurated(hostsModel.HostsType.details, false); - expect(columns.length).toEqual(7); - }); - - test('on host details page, we should have Last Failed Destination column', () => { - const columns = getAuthenticationColumnsCurated(hostsModel.HostsType.page, false); - expect(columns.some((col) => col.name === i18n.LAST_FAILED_DESTINATION)).toEqual(true); - }); - - test('on host details page, we should not have Last Failed Destination column', () => { - const columns = getAuthenticationColumnsCurated(hostsModel.HostsType.details, false); - expect(columns.some((col) => col.name === i18n.LAST_FAILED_DESTINATION)).toEqual(false); - }); - - test('on host page, we should have Last Successful Destination column', () => { - const columns = getAuthenticationColumnsCurated(hostsModel.HostsType.page, false); - expect(columns.some((col) => col.name === i18n.LAST_SUCCESSFUL_DESTINATION)).toEqual(true); - }); - - test('on host details page, we should not have Last Successful Destination column', () => { - const columns = getAuthenticationColumnsCurated(hostsModel.HostsType.details, false); - expect(columns.some((col) => col.name === i18n.LAST_SUCCESSFUL_DESTINATION)).toEqual(false); - }); - }); -}); diff --git a/x-pack/plugins/security_solution/public/hosts/components/authentications_table/index.tsx b/x-pack/plugins/security_solution/public/hosts/components/authentications_table/index.tsx deleted file mode 100644 index 2bbda82e15315..0000000000000 --- a/x-pack/plugins/security_solution/public/hosts/components/authentications_table/index.tsx +++ /dev/null @@ -1,330 +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 { has } from 'lodash/fp'; -import React, { useCallback, useMemo } from 'react'; -import { useDispatch } from 'react-redux'; - -import { AuthenticationsEdges } from '../../../../common/search_strategy/security_solution/hosts/authentications'; - -import { - DragEffects, - DraggableWrapper, -} from '../../../common/components/drag_and_drop/draggable_wrapper'; -import { escapeDataProviderId } from '../../../common/components/drag_and_drop/helpers'; -import { getEmptyTagValue } from '../../../common/components/empty_value'; -import { FormattedRelativePreferenceDate } from '../../../common/components/formatted_date'; -import { - HostDetailsLink, - NetworkDetailsLink, - UserDetailsLink, -} from '../../../common/components/links'; -import { Columns, ItemsPerRow, PaginatedTable } from '../../../common/components/paginated_table'; -import { IS_OPERATOR } from '../../../timelines/components/timeline/data_providers/data_provider'; -import { Provider } from '../../../timelines/components/timeline/data_providers/provider'; -import { getRowItemDraggables } from '../../../common/components/tables/helpers'; -import { useDeepEqualSelector } from '../../../common/hooks/use_selector'; -import { useIsExperimentalFeatureEnabled } from '../../../common/hooks/use_experimental_features'; - -import { hostsActions, hostsModel, hostsSelectors } from '../../store'; - -import * as i18n from './translations'; - -const tableType = hostsModel.HostsTableType.authentications; - -interface AuthenticationTableProps { - data: AuthenticationsEdges[]; - fakeTotalCount: number; - loading: boolean; - loadPage: (newActivePage: number) => void; - id: string; - isInspect: boolean; - setQuerySkip: (skip: boolean) => void; - showMorePagesIndicator: boolean; - totalCount: number; - type: hostsModel.HostsType; -} - -export type AuthTableColumns = [ - Columns, - Columns, - Columns, - Columns, - Columns, - Columns, - Columns, - Columns, - Columns -]; - -const rowItems: ItemsPerRow[] = [ - { - text: i18n.ROWS_5, - numberOfRow: 5, - }, - { - text: i18n.ROWS_10, - numberOfRow: 10, - }, -]; - -const AuthenticationTableComponent: React.FC = ({ - data, - fakeTotalCount, - id, - isInspect, - loading, - loadPage, - setQuerySkip, - showMorePagesIndicator, - totalCount, - type, -}) => { - const dispatch = useDispatch(); - const getAuthenticationsSelector = useMemo(() => hostsSelectors.authenticationsSelector(), []); - const { activePage, limit } = useDeepEqualSelector((state) => - getAuthenticationsSelector(state, type) - ); - - const updateLimitPagination = useCallback( - (newLimit) => - dispatch( - hostsActions.updateTableLimit({ - hostsType: type, - limit: newLimit, - tableType, - }) - ), - [type, dispatch] - ); - - const updateActivePage = useCallback( - (newPage) => - dispatch( - hostsActions.updateTableActivePage({ - activePage: newPage, - hostsType: type, - tableType, - }) - ), - [type, dispatch] - ); - - const usersEnabled = useIsExperimentalFeatureEnabled('usersEnabled'); - const columns = useMemo( - () => getAuthenticationColumnsCurated(type, usersEnabled), - [type, usersEnabled] - ); - - return ( - - ); -}; - -AuthenticationTableComponent.displayName = 'AuthenticationTableComponent'; - -export const AuthenticationTable = React.memo(AuthenticationTableComponent); - -const getAuthenticationColumns = (usersEnabled: boolean): AuthTableColumns => [ - { - name: i18n.USER, - truncateText: false, - mobileOptions: { show: true }, - render: ({ node }) => - getRowItemDraggables({ - rowItems: node.user.name, - attrName: 'user.name', - idPrefix: `authentications-table-${node._id}-userName`, - render: (item) => (usersEnabled ? : <>{item}), - }), - }, - { - name: i18n.SUCCESSES, - truncateText: false, - mobileOptions: { show: true }, - render: ({ node }) => { - const id = escapeDataProviderId( - `authentications-table-${node._id}-node-successes-${node.successes}` - ); - return ( - - snapshot.isDragging ? ( - - - - ) : ( - node.successes - ) - } - /> - ); - }, - width: '8%', - }, - { - name: i18n.FAILURES, - truncateText: false, - mobileOptions: { show: true }, - render: ({ node }) => { - const id = escapeDataProviderId( - `authentications-table-${node._id}-failures-${node.failures}` - ); - return ( - - snapshot.isDragging ? ( - - - - ) : ( - node.failures - ) - } - /> - ); - }, - width: '8%', - }, - { - name: i18n.LAST_SUCCESSFUL_TIME, - truncateText: false, - mobileOptions: { show: true }, - render: ({ node }) => - has('lastSuccess.timestamp', node) && node.lastSuccess?.timestamp != null ? ( - - ) : ( - getEmptyTagValue() - ), - }, - { - name: i18n.LAST_SUCCESSFUL_SOURCE, - truncateText: false, - mobileOptions: { show: true }, - render: ({ node }) => - getRowItemDraggables({ - rowItems: node.lastSuccess?.source?.ip || null, - attrName: 'source.ip', - idPrefix: `authentications-table-${node._id}-lastSuccessSource`, - render: (item) => , - }), - }, - { - name: i18n.LAST_SUCCESSFUL_DESTINATION, - truncateText: false, - mobileOptions: { show: true }, - render: ({ node }) => - getRowItemDraggables({ - rowItems: node.lastSuccess?.host?.name ?? null, - attrName: 'host.name', - idPrefix: `authentications-table-${node._id}-lastSuccessfulDestination`, - render: (item) => , - }), - }, - { - name: i18n.LAST_FAILED_TIME, - truncateText: false, - mobileOptions: { show: true }, - render: ({ node }) => - has('lastFailure.timestamp', node) && node.lastFailure?.timestamp != null ? ( - - ) : ( - getEmptyTagValue() - ), - }, - { - name: i18n.LAST_FAILED_SOURCE, - truncateText: false, - mobileOptions: { show: true }, - render: ({ node }) => - getRowItemDraggables({ - rowItems: node.lastFailure?.source?.ip || null, - attrName: 'source.ip', - idPrefix: `authentications-table-${node._id}-lastFailureSource`, - render: (item) => , - }), - }, - { - name: i18n.LAST_FAILED_DESTINATION, - truncateText: false, - mobileOptions: { show: true }, - render: ({ node }) => - getRowItemDraggables({ - rowItems: node.lastFailure?.host?.name || null, - attrName: 'host.name', - idPrefix: `authentications-table-${node._id}-lastFailureDestination`, - render: (item) => , - }), - }, -]; - -export const getAuthenticationColumnsCurated = ( - pageType: hostsModel.HostsType, - usersEnabled: boolean -): AuthTableColumns => { - const columns = getAuthenticationColumns(usersEnabled); - - // Columns to exclude from host details pages - if (pageType === hostsModel.HostsType.details) { - return [i18n.LAST_FAILED_DESTINATION, i18n.LAST_SUCCESSFUL_DESTINATION].reduce((acc, name) => { - acc.splice( - acc.findIndex((column) => column.name === name), - 1 - ); - return acc; - }, columns); - } - - return columns; -}; diff --git a/x-pack/plugins/security_solution/public/hosts/components/authentications_table/mock.ts b/x-pack/plugins/security_solution/public/hosts/components/authentications_table/mock.ts deleted file mode 100644 index caf441b34ca90..0000000000000 --- a/x-pack/plugins/security_solution/public/hosts/components/authentications_table/mock.ts +++ /dev/null @@ -1,119 +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 * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { HostAuthenticationsStrategyResponse } from '../../../../common/search_strategy/security_solution/hosts/authentications'; - -export const mockData: { Authentications: HostAuthenticationsStrategyResponse } = { - Authentications: { - rawResponse: { - took: 880, - timed_out: false, - _shards: { - total: 26, - successful: 26, - skipped: 0, - failed: 0, - }, - hits: { - total: 2, - hits: [], - }, - aggregations: { - group_by_users: { - buckets: [ - { - key: 'SYSTEM', - doc_count: 4, - failures: { - doc_count: 0, - lastFailure: { hits: { total: 0, max_score: null, hits: [] } }, - hits: { total: 0, max_score: null, hits: [] }, - }, - successes: { - doc_count: 4, - lastSuccess: { hits: { total: 4, max_score: null } }, - }, - }, - ], - doc_count_error_upper_bound: -1, - sum_other_doc_count: 566, - }, - }, - } as estypes.SearchResponse, - totalCount: 54, - edges: [ - { - node: { - _id: 'cPsuhGcB0WOhS6qyTKC0', - failures: 10, - successes: 0, - user: { name: ['Evan Hassanabad'] }, - lastSuccess: { - timestamp: '2019-01-23T22:35:32.222Z', - source: { - ip: ['127.0.0.1'], - }, - host: { - id: ['host-id-1'], - name: ['host-1'], - }, - }, - lastFailure: { - timestamp: '2019-01-23T22:35:32.222Z', - source: { - ip: ['8.8.8.8'], - }, - host: { - id: ['host-id-1'], - name: ['host-2'], - }, - }, - }, - cursor: { - value: '98966fa2013c396155c460d35c0902be', - }, - }, - { - node: { - _id: 'KwQDiWcB0WOhS6qyXmrW', - failures: 10, - successes: 0, - user: { name: ['Braden Hassanabad'] }, - lastSuccess: { - timestamp: '2019-01-23T22:35:32.222Z', - source: { - ip: ['127.0.0.1'], - }, - host: { - id: ['host-id-1'], - name: ['host-1'], - }, - }, - lastFailure: { - timestamp: '2019-01-23T22:35:32.222Z', - source: { - ip: ['8.8.8.8'], - }, - host: { - id: ['host-id-1'], - name: ['host-2'], - }, - }, - }, - cursor: { - value: 'aa7ca589f1b8220002f2fc61c64cfbf1', - }, - }, - ], - pageInfo: { - activePage: 1, - fakeTotalCount: 50, - showMorePagesIndicator: true, - }, - }, -}; diff --git a/x-pack/plugins/security_solution/public/hosts/components/hosts_table/index.tsx b/x-pack/plugins/security_solution/public/hosts/components/hosts_table/index.tsx index 42c8254ffd183..1326f24b5335f 100644 --- a/x-pack/plugins/security_solution/public/hosts/components/hosts_table/index.tsx +++ b/x-pack/plugins/security_solution/public/hosts/components/hosts_table/index.tsx @@ -8,7 +8,6 @@ import React, { useMemo, useCallback } from 'react'; import { useDispatch } from 'react-redux'; -import { assertUnreachable } from '../../../../common/utility_types'; import { Columns, Criteria, @@ -204,7 +203,6 @@ const getNodeField = (field: HostsFields): string => { case HostsFields.lastSeen: return 'node.lastSeen'; } - assertUnreachable(field); }; export const HostsTable = React.memo(HostsTableComponent); diff --git a/x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx b/x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx index 45daa31a4ec37..f1b03c7a3c4c4 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx +++ b/x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx @@ -36,7 +36,6 @@ import { setAbsoluteRangeDatePicker } from '../../../common/store/inputs/actions import { SpyRoute } from '../../../common/utils/route/spy_routes'; import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; -import { OverviewEmpty } from '../../../overview/components/overview_empty'; import { HostDetailsTabs } from './details_tabs'; import { navTabsHostDetails } from './nav_tabs'; import { HostDetailsProps } from './types'; @@ -54,6 +53,7 @@ import { manageQuery } from '../../../common/components/page/manage_query'; import { useInvalidFilterQuery } from '../../../common/hooks/use_invalid_filter_query'; import { useSourcererDataView } from '../../../common/containers/sourcerer'; import { useIsExperimentalFeatureEnabled } from '../../../common/hooks/use_experimental_features'; +import { LandingPageComponent } from '../../../common/components/landing_page'; const HostOverviewManage = manageQuery(HostOverview); @@ -227,9 +227,7 @@ const HostDetailsComponent: React.FC = ({ detailName, hostDeta ) : ( - - - + )} diff --git a/x-pack/plugins/security_solution/public/hosts/pages/hosts.test.tsx b/x-pack/plugins/security_solution/public/hosts/pages/hosts.test.tsx index d82189ab1e3bb..bdf249dc07526 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/hosts.test.tsx +++ b/x-pack/plugins/security_solution/public/hosts/pages/hosts.test.tsx @@ -25,8 +25,7 @@ import { Hosts } from './hosts'; import { HostsTabs } from './hosts_tabs'; import { useSourcererDataView } from '../../common/containers/sourcerer'; import { mockCasesContract } from '../../../../cases/public/mocks'; -import { APP_UI_ID, SecurityPageName } from '../../../common/constants'; -import { getAppLandingUrl } from '../../common/components/link_to/redirect_to_overview'; +import { LandingPageComponent } from '../../common/components/landing_page'; jest.mock('../../common/containers/sourcerer'); @@ -93,17 +92,15 @@ describe('Hosts - rendering', () => { indicesExist: false, }); - mount( + const wrapper = mount( ); - expect(mockNavigateToApp).toHaveBeenCalledWith(APP_UI_ID, { - deepLinkId: SecurityPageName.landing, - path: getAppLandingUrl(), - }); + + expect(wrapper.find(LandingPageComponent).exists()).toBe(true); }); test('it DOES NOT render the Setup Instructions text when an index is available', async () => { diff --git a/x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx b/x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx index 3b57a22d15a6a..8d2255655b685 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx +++ b/x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx @@ -35,7 +35,6 @@ import { setAbsoluteRangeDatePicker } from '../../common/store/inputs/actions'; import { SpyRoute } from '../../common/utils/route/spy_routes'; import { getEsQueryConfig } from '../../../../../../src/plugins/data/common'; import { useMlCapabilities } from '../../common/components/ml/hooks/use_ml_capabilities'; -import { OverviewEmpty } from '../../overview/components/overview_empty'; import { Display } from './display'; import { HostsTabs } from './hosts_tabs'; import { navTabsHosts } from './nav_tabs'; @@ -56,6 +55,8 @@ import { useInvalidFilterQuery } from '../../common/hooks/use_invalid_filter_que import { ID } from '../containers/hosts'; import { useIsExperimentalFeatureEnabled } from '../../common/hooks/use_experimental_features'; import { filterHostExternalAlertData } from '../../common/components/visualization_actions/utils'; +import { LandingPageComponent } from '../../common/components/landing_page'; +import { Loader } from '../../common/components/loader'; /** * Need a 100% height here to account for the graph/analyze tool, which sets no explicit height parameters, but fills the available space. @@ -128,7 +129,8 @@ const HostsComponent = () => { }, [dispatch] ); - const { docValueFields, indicesExist, indexPattern, selectedPatterns } = useSourcererDataView(); + const { docValueFields, indicesExist, indexPattern, selectedPatterns, loading } = + useSourcererDataView(); const [filterQuery, kqlError] = useMemo( () => convertToBuildEsQuery({ @@ -179,6 +181,10 @@ const HostsComponent = () => { [containerElement, onSkipFocusBeforeEventsTable, onSkipFocusAfterEventsTable] ); + if (loading) { + return ; + } + return ( <> {indicesExist ? ( @@ -240,9 +246,7 @@ const HostsComponent = () => { ) : ( - - - + )} diff --git a/x-pack/plugins/security_solution/public/hosts/pages/index.tsx b/x-pack/plugins/security_solution/public/hosts/pages/index.tsx index e42be25941ea7..00afec5da3756 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/index.tsx +++ b/x-pack/plugins/security_solution/public/hosts/pages/index.tsx @@ -50,7 +50,12 @@ export const HostsContainer = React.memo(() => ( match: { params: { detailName }, }, - }) => } + }) => ( + + )} /> { - const mockUseAuthentications = useAuthentications as jest.Mock; - const mockUseQueryToggle = useQueryToggle as jest.Mock; - const defaultProps = { - indexNames: [], - setQuery: jest.fn(), - skip: false, - startDate: '2019-06-25T04:31:59.345Z', - endDate: '2019-06-25T06:31:59.345Z', - type: HostsType.page, - }; - beforeEach(() => { - jest.clearAllMocks(); - mockUseQueryToggle.mockReturnValue({ toggleStatus: true, setToggleStatus: jest.fn() }); - mockUseAuthentications.mockReturnValue([ - false, - { - authentications: [], - id: '123', - inspect: { - dsl: [], - response: [], - }, - isInspected: false, - totalCount: 0, - pageInfo: { activePage: 1, fakeTotalCount: 100, showMorePagesIndicator: false }, - loadPage: jest.fn(), - refetch: jest.fn(), - }, - ]); - }); - it('toggleStatus=true, do not skip', () => { - render( - - - - ); - expect(mockUseAuthentications.mock.calls[0][0].skip).toEqual(false); - }); - it('toggleStatus=false, skip', () => { - mockUseQueryToggle.mockReturnValue({ toggleStatus: false, setToggleStatus: jest.fn() }); - render( - - - - ); - expect(mockUseAuthentications.mock.calls[0][0].skip).toEqual(true); - }); -}); diff --git a/x-pack/plugins/security_solution/public/hosts/pages/navigation/authentications_query_tab_body.tsx b/x-pack/plugins/security_solution/public/hosts/pages/navigation/authentications_query_tab_body.tsx index 1096085b93016..0f6de80343b11 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/navigation/authentications_query_tab_body.tsx +++ b/x-pack/plugins/security_solution/public/hosts/pages/navigation/authentications_query_tab_body.tsx @@ -5,11 +5,7 @@ * 2.0. */ -import { getOr } from 'lodash/fp'; -import React, { useEffect, useState } from 'react'; -import { AuthenticationTable } from '../../components/authentications_table'; -import { manageQuery } from '../../../common/components/page/manage_query'; -import { useAuthentications } from '../../containers/authentications'; +import React from 'react'; import { HostsComponentsQueryProps } from './types'; import { MatrixHistogramOption, @@ -22,11 +18,9 @@ import * as i18n from '../translations'; import { MatrixHistogramType } from '../../../../common/search_strategy/security_solution'; import { authenticationLensAttributes } from '../../../common/components/visualization_actions/lens_attributes/hosts/authentication'; import { LensAttributes } from '../../../common/components/visualization_actions/types'; -import { useQueryToggle } from '../../../common/containers/query_toggle'; +import { AuthenticationsHostTable } from '../../../common/components/authentication/authentications_host_table'; -const AuthenticationTableManage = manageQuery(AuthenticationTable); - -const ID = 'authenticationsHistogramQuery'; +const HISTOGRAM_QUERY_ID = 'authenticationsHistogramQuery'; const authenticationsStackByOptions: MatrixHistogramOption[] = [ { @@ -77,59 +71,28 @@ const AuthenticationsQueryTabBodyComponent: React.FC startDate, type, }) => { - const { toggleStatus } = useQueryToggle(ID); - const [querySkip, setQuerySkip] = useState(skip || !toggleStatus); - useEffect(() => { - setQuerySkip(skip || !toggleStatus); - }, [skip, toggleStatus]); - const [ - loading, - { authentications, totalCount, pageInfo, loadPage, id, inspect, isInspected, refetch }, - ] = useAuthentications({ - docValueFields, - endDate, - filterQuery, - indexNames, - skip: querySkip, - startDate, - type, - }); - - useEffect(() => { - return () => { - if (deleteQuery) { - deleteQuery({ id: ID }); - } - }; - }, [deleteQuery]); - return ( <> - ); diff --git a/x-pack/plugins/security_solution/public/management/components/artifact_entry_card/components/text_value_display.tsx b/x-pack/plugins/security_solution/public/management/components/artifact_entry_card/components/text_value_display.tsx index dedb2c0ada87e..327eb963bbb7d 100644 --- a/x-pack/plugins/security_solution/public/management/components/artifact_entry_card/components/text_value_display.tsx +++ b/x-pack/plugins/security_solution/public/management/components/artifact_entry_card/components/text_value_display.tsx @@ -43,7 +43,7 @@ export const TextValueDisplay = memo( }, [bold, children]); return ( - + {withTooltip && 'string' === typeof children && children.length > 0 && diff --git a/x-pack/plugins/security_solution/public/management/components/console/README.md b/x-pack/plugins/security_solution/public/management/components/console/README.md new file mode 100644 index 0000000000000..0ebdf347880ea --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/components/console/README.md @@ -0,0 +1,11 @@ +# Console and Console Management + +## Console + +A terminal-like console component that focuses on the user's interactions with the "terminal" and not with what commands are available. Commands are defined on input to the component via a prop. Can be used standalone, and is used with `ConsoleManagement` as well (see below). + + +## Console Management + +The `` context component and associated `useConsoleManager()` hook allows for the management of consoles in the app by ensuring that one can show/hide/terminate consoles as well as get a list of consoles that are "running". Each console's history is maintained when a console is hidden and re-displayed when it is opened again. + diff --git a/x-pack/plugins/security_solution/public/management/components/console/components/command_input/command_input.test.tsx b/x-pack/plugins/security_solution/public/management/components/console/components/command_input/command_input.test.tsx index e61318227cb1f..94f9d202b0736 100644 --- a/x-pack/plugins/security_solution/public/management/components/console/components/command_input/command_input.test.tsx +++ b/x-pack/plugins/security_solution/public/management/components/console/components/command_input/command_input.test.tsx @@ -5,9 +5,9 @@ * 2.0. */ -import { ConsoleProps } from '../../console'; import { AppContextTestRender } from '../../../../../common/mock/endpoint'; import { ConsoleTestSetup, getConsoleTestSetup } from '../../mocks'; +import { ConsoleProps } from '../../types'; describe('When entering data into the Console input', () => { let render: (props?: Partial) => ReturnType; diff --git a/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/components/confirm_terminate.tsx b/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/components/confirm_terminate.tsx new file mode 100644 index 0000000000000..4489654a16e54 --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/components/confirm_terminate.tsx @@ -0,0 +1,88 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license 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, { memo } from 'react'; +import { + EuiButton, + EuiButtonEmpty, + EuiCallOut, + EuiFlexGroup, + EuiFlexItem, + EuiFocusTrap, + EuiPanel, + EuiSpacer, + EuiText, +} from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; + +export interface ConfirmTerminateProps { + onConfirm: () => void; + onCancel: () => void; +} + +export const ConfirmTerminate = memo(({ onConfirm, onCancel }) => { + return ( +
+ + + + } + > + + + + + + + + + + + + + + + + + + + + + +
+ ); +}); +ConfirmTerminate.displayName = 'ConfirmTerminate'; diff --git a/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/components/console_popup.tsx b/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/components/console_popup.tsx new file mode 100644 index 0000000000000..a6cd5a4d5e906 --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/components/console_popup.tsx @@ -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 React, { memo, PropsWithChildren, ReactNode, useCallback, useMemo, useState } from 'react'; +import { + EuiButton, + EuiButtonEmpty, + EuiIcon, + EuiModalBody, + EuiModalFooter, + EuiModalHeader, + EuiModalHeaderTitle, +} from '@elastic/eui'; +import styled from 'styled-components'; +import { FormattedMessage } from '@kbn/i18n-react'; +import classNames from 'classnames'; +import { ConfirmTerminate } from './confirm_terminate'; + +const ConsolePopupWrapper = styled.div` + position: fixed; + top: 100px; + right: 0; + min-height: 60vh; + min-width: 40vw; + max-width: 70vw; + + &.is-hidden { + display: none; + } + + &.is-confirming .modal-content { + opacity: 0.3; + } + + .console-holder { + height: 100%; + } + + .terminate-confirm-panel { + max-width: 85%; + flex-grow: 0; + } +`; + +type ConsolePopupProps = PropsWithChildren<{ + isHidden: boolean; + onTerminate: () => void; + onHide: () => void; + title?: ReactNode; +}>; + +export const ConsolePopup = memo( + ({ children, isHidden, title = '', onTerminate, onHide }) => { + const [showTerminateConfirm, setShowTerminateConfirm] = useState(false); + + const cssClassNames = useMemo(() => { + return classNames({ + euiModal: true, + 'euiModal--maxWidth-default': true, + 'is-hidden': isHidden, + 'is-confirming': showTerminateConfirm, + }); + }, [isHidden, showTerminateConfirm]); + + const handleTerminateOnClick = useCallback(() => { + setShowTerminateConfirm(true); + }, []); + + const handleTerminateOnConfirm = useCallback(() => { + setShowTerminateConfirm(false); + onTerminate(); + }, [onTerminate]); + + const handleTerminateOnCancel = useCallback(() => { + setShowTerminateConfirm(false); + }, []); + + return ( + +
+ {!isHidden && ( + + +

+ {title} +

+
+
+ )} + + {/* + IMPORTANT: The Modal body (below) is always shown. This is how the command history + of each command is persisted - by allowing the consoles to still be + rendered (Console takes care of hiding it own UI in this case) + */} + +
{children}
+
+ + {!isHidden && ( + + + + + + + + + )} +
+ + {!isHidden && showTerminateConfirm && ( + + )} +
+ ); + } +); +ConsolePopup.displayName = 'ConsolePopup'; diff --git a/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/console_manager.test.tsx b/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/console_manager.test.tsx new file mode 100644 index 0000000000000..ef8fb8c37f4c9 --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/console_manager.test.tsx @@ -0,0 +1,369 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { renderHook as _renderHook, RenderHookResult, act } from '@testing-library/react-hooks'; +import { ConsoleManager, useConsoleManager } from './console_manager'; +import React, { memo } from 'react'; +import type { + ConsoleManagerClient, + ConsoleRegistrationInterface, + RegisteredConsoleClient, +} from './types'; +import { + AppContextTestRender, + createAppRootMockRenderer, +} from '../../../../../common/mock/endpoint'; +import { ConsoleManagerTestComponent, getNewConsoleRegistrationMock } from './mocks'; +import userEvent from '@testing-library/user-event'; +import { waitFor } from '@testing-library/react'; +import { enterConsoleCommand } from '../../mocks'; + +describe('When using ConsoleManager', () => { + describe('and using the ConsoleManagerInterface via the hook', () => { + type RenderResultInterface = RenderHookResult; + + let renderHook: () => RenderResultInterface; + let renderResult: RenderResultInterface; + + const registerNewConsole = (): ConsoleRegistrationInterface => { + const newConsole = getNewConsoleRegistrationMock(); + + act(() => { + renderResult.result.current.register(newConsole); + }); + + return newConsole; + }; + + beforeEach(() => { + const { AppWrapper } = createAppRootMockRenderer(); + + const RenderWrapper = memo(({ children }) => { + return ( + + {children} + + ); + }); + RenderWrapper.displayName = 'RenderWrapper'; + + renderHook = () => { + renderResult = _renderHook(useConsoleManager, { + wrapper: RenderWrapper, + }); + + return renderResult; + }; + }); + + it('should return the expected interface', async () => { + renderHook(); + + expect(renderResult.result.current).toEqual({ + getList: expect.any(Function), + getOne: expect.any(Function), + hide: expect.any(Function), + register: expect.any(Function), + show: expect.any(Function), + terminate: expect.any(Function), + }); + }); + + it('should register a console', () => { + const newConsole = getNewConsoleRegistrationMock(); + + renderHook(); + act(() => { + renderResult.result.current.register(newConsole); + }); + + expect(renderResult.result.current.getOne(newConsole.id)).toEqual({ + id: newConsole.id, + title: newConsole.title, + meta: newConsole.meta, + show: expect.any(Function), + hide: expect.any(Function), + terminate: expect.any(Function), + isVisible: expect.any(Function), + }); + }); + + it('should show a console by `id`', async () => { + renderHook(); + const { id: consoleId } = registerNewConsole(); + act(() => { + renderResult.result.current.show(consoleId); + }); + + expect(renderResult.result.current.getOne(consoleId)!.isVisible()).toBe(true); + }); + + it('should throw if attempting to show a console with invalid `id`', () => { + renderHook(); + + expect(() => renderResult.result.current.show('some id')).toThrow( + 'Console with id some id not found' + ); + }); + + it('should hide a console by `id`', () => { + renderHook(); + const { id: consoleId } = registerNewConsole(); + act(() => { + renderResult.result.current.show(consoleId); + }); + + expect(renderResult.result.current.getOne(consoleId)!.isVisible()).toBe(true); + + act(() => { + renderResult.result.current.hide(consoleId); + }); + + expect(renderResult.result.current.getOne(consoleId)!.isVisible()).toBe(false); + }); + + it('should throw if attempting to hide a console with invalid `id`', () => { + renderHook(); + + expect(() => renderResult.result.current.hide('some id')).toThrow( + 'Console with id some id not found' + ); + }); + + it('should terminate a console by `id`', () => { + renderHook(); + const { id: consoleId } = registerNewConsole(); + + expect(renderResult.result.current.getOne(consoleId)).toBeTruthy(); + + act(() => { + renderResult.result.current.terminate(consoleId); + }); + + expect(renderResult.result.current.getOne(consoleId)).toBeUndefined(); + }); + + it('should call `onBeforeTerminate()`', () => { + renderHook(); + const { id: consoleId, onBeforeTerminate } = registerNewConsole(); + + act(() => { + renderResult.result.current.terminate(consoleId); + }); + + expect(onBeforeTerminate).toHaveBeenCalled(); + }); + + it('should throw if attempting to terminate a console with invalid `id`', () => { + renderHook(); + + expect(() => renderResult.result.current.terminate('some id')).toThrow( + 'Console with id some id not found' + ); + }); + + it('should return list of registered consoles when calling `getList()`', () => { + renderHook(); + registerNewConsole(); + registerNewConsole(); + + expect(renderResult.result.current.getList()).toHaveLength(2); + }); + + describe('and using the Registered Console client interface', () => { + let consoleId: string; + let registeredConsole: Readonly; + + beforeEach(() => { + renderHook(); + ({ id: consoleId } = registerNewConsole()); + registeredConsole = renderResult.result.current.getOne(consoleId)!; + }); + + it('should have the expected interface', () => { + expect(registeredConsole).toEqual({ + id: expect.any(String), + meta: expect.any(Object), + title: expect.anything(), + show: expect.any(Function), + hide: expect.any(Function), + terminate: expect.any(Function), + isVisible: expect.any(Function), + }); + }); + + it('should display the console when `.show()` is called', async () => { + registeredConsole.show(); + await renderResult.waitForNextUpdate(); + + expect(registeredConsole.isVisible()).toBe(true); + }); + + it('should hide the console when `.hide()` is called', async () => { + registeredConsole.show(); + await renderResult.waitForNextUpdate(); + expect(registeredConsole.isVisible()).toBe(true); + + registeredConsole.hide(); + await renderResult.waitForNextUpdate(); + expect(registeredConsole.isVisible()).toBe(false); + }); + + it('should un-register the console when `.terminate() is called', async () => { + registeredConsole.terminate(); + await renderResult.waitForNextUpdate(); + + expect(renderResult.result.current.getOne(consoleId)).toBeUndefined(); + }); + }); + }); + + describe('and when the console popup is rendered into the page', () => { + let render: () => Promise>; + let renderResult: ReturnType; + + const clickOnRegisterNewConsole = () => { + act(() => { + userEvent.click(renderResult.getByTestId('registerNewConsole')); + }); + }; + + const openRunningConsole = async () => { + act(() => { + userEvent.click(renderResult.queryAllByTestId('showRunningConsole')[0]); + }); + + await waitFor(() => { + expect( + renderResult.getByTestId('consolePopupWrapper').classList.contains('is-hidden') + ).toBe(false); + }); + }; + + beforeEach(() => { + const mockedContext = createAppRootMockRenderer(); + + render = async () => { + renderResult = mockedContext.render( + + + + ); + + clickOnRegisterNewConsole(); + + await waitFor(() => { + expect(renderResult.queryAllByTestId('runningConsole').length).toBeGreaterThan(0); + }); + + await openRunningConsole(); + + return renderResult; + }; + }); + + it('should show the title', async () => { + await render(); + + expect(renderResult.getByTestId('consolePopupHeader').textContent).toMatch(/Test console/); + }); + + it('should show the console', async () => { + await render(); + + expect(renderResult.getByTestId('testRunningConsole')).toBeTruthy(); + }); + + it('should show `terminate` button', async () => { + await render(); + + expect(renderResult.getByTestId('consolePopupTerminateButton')).toBeTruthy(); + }); + + it('should show `hide` button', async () => { + await render(); + + expect(renderResult.getByTestId('consolePopupHideButton')).toBeTruthy(); + }); + + it('should hide the console popup', async () => { + await render(); + userEvent.click(renderResult.getByTestId('consolePopupHideButton')); + + await waitFor(() => { + expect( + renderResult.getByTestId('consolePopupWrapper').classList.contains('is-hidden') + ).toBe(true); + }); + }); + + it("should persist a console's command output history on hide/show", async () => { + await render(); + enterConsoleCommand(renderResult, 'help', { dataTestSubj: 'testRunningConsole' }); + enterConsoleCommand(renderResult, 'help', { dataTestSubj: 'testRunningConsole' }); + + await waitFor(() => { + expect(renderResult.queryAllByTestId('testRunningConsole-historyItem')).toHaveLength(2); + }); + + userEvent.click(renderResult.getByTestId('consolePopupHideButton')); + await waitFor(() => { + expect( + renderResult.getByTestId('consolePopupWrapper').classList.contains('is-hidden') + ).toBe(true); + }); + + await openRunningConsole(); + + await waitFor(() => { + expect(renderResult.queryAllByTestId('testRunningConsole-historyItem')).toHaveLength(2); + }); + }); + + describe('and the terminate confirmation is shown', () => { + const clickOnTerminateButton = async () => { + userEvent.click(renderResult.getByTestId('consolePopupTerminateButton')); + + await waitFor(() => { + expect(renderResult.getByTestId('consolePopupTerminateConfirmModal')).toBeTruthy(); + }); + }; + + beforeEach(async () => { + await render(); + await clickOnTerminateButton(); + }); + + it('should show confirmation when terminate button is clicked', async () => { + expect(renderResult.getByTestId('consolePopupTerminateConfirmMessage')).toBeTruthy(); + }); + + it('should show cancel and terminate buttons', async () => { + expect(renderResult.getByTestId('consolePopupTerminateModalCancelButton')).toBeTruthy(); + expect(renderResult.getByTestId('consolePopupTerminateModalTerminateButton')).toBeTruthy(); + }); + + it('should hide the confirmation when cancel is clicked', async () => { + userEvent.click(renderResult.getByTestId('consolePopupTerminateModalCancelButton')); + + await waitFor(() => { + expect(renderResult.queryByTestId('consolePopupTerminateConfirmModal')).toBeNull(); + }); + }); + + it('should terminate when terminate is clicked', async () => { + userEvent.click(renderResult.getByTestId('consolePopupTerminateModalTerminateButton')); + + await waitFor(() => { + expect( + renderResult.getByTestId('consolePopupWrapper').classList.contains('is-hidden') + ).toBe(true); + }); + }); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/console_manager.tsx b/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/console_manager.tsx new file mode 100644 index 0000000000000..f7af8b51d3a15 --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/console_manager.tsx @@ -0,0 +1,306 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license 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, { + memo, + PropsWithChildren, + useCallback, + useContext, + useMemo, + useRef, + useState, +} from 'react'; +import { ConsolePopup } from './components/console_popup'; +import { + ConsoleManagerClient, + ConsoleRegistrationInterface, + RegisteredConsoleClient, +} from './types'; +import { Console } from '../../console'; + +interface ManagedConsole { + client: RegisteredConsoleClient; + consoleProps: ConsoleRegistrationInterface['consoleProps']; + console: JSX.Element; // actual console component + isOpen: boolean; + key: symbol; + onBeforeTerminate?: ConsoleRegistrationInterface['onBeforeTerminate']; +} + +type RunningConsoleStorage = Record; + +interface ConsoleManagerInternalClient { + /** + * Returns the managed console record for the given ConsoleProps object if its being managed + * @param key + */ + getManagedConsole(key: ManagedConsole['key']): ManagedConsole | undefined; +} + +interface ConsoleManagerContextClients { + client: ConsoleManagerClient; + internal: ConsoleManagerInternalClient; +} + +const ConsoleManagerContext = React.createContext( + undefined +); + +export type ConsoleManagerProps = PropsWithChildren<{ + storage?: RunningConsoleStorage; +}>; + +/** + * A console management context. Allow for the show/hide of consoles without them loosing their + * command history while running in "hidden" mode. + */ +export const ConsoleManager = memo(({ storage = {}, children }) => { + const [consoleStorage, setConsoleStorage] = useState(storage); + + // `consoleStorageRef` keeps a copy (reference) to the latest copy of the `consoleStorage` so that + // some exposed methods (ex. `RegisteredConsoleClient`) are guaranteed to be immutable and function + // as expected between state updates without having to re-update every record stored in the `ConsoleStorage` + const consoleStorageRef = useRef(); + consoleStorageRef.current = consoleStorage; + + const validateIdOrThrow = useCallback((id: string) => { + if (!consoleStorageRef.current?.[id]) { + throw new Error(`Console with id ${id} not found`); + } + }, []); // << IMPORTANT: this callback should have no dependencies + + const show = useCallback( + (id) => { + validateIdOrThrow(id); + + setConsoleStorage((prevState) => { + const newState = { ...prevState }; + + // if any is visible, hide it + Object.entries(newState).forEach(([consoleId, managedConsole]) => { + if (managedConsole.isOpen) { + newState[consoleId] = { + ...managedConsole, + isOpen: false, + }; + } + }); + + newState[id] = { + ...newState[id], + isOpen: true, + }; + + return newState; + }); + }, + [validateIdOrThrow] // << IMPORTANT: this callback should have only immutable dependencies + ); + + const hide = useCallback( + (id) => { + validateIdOrThrow(id); + + setConsoleStorage((prevState) => { + return { + ...prevState, + [id]: { + ...prevState[id], + isOpen: false, + }, + }; + }); + }, + [validateIdOrThrow] // << IMPORTANT: this callback should have only immutable dependencies + ); + + const terminate = useCallback( + (id) => { + validateIdOrThrow(id); + + setConsoleStorage((prevState) => { + const { onBeforeTerminate } = prevState[id]; + + if (onBeforeTerminate) { + onBeforeTerminate(); + } + + const newState = { ...prevState }; + delete newState[id]; + + return newState; + }); + }, + [validateIdOrThrow] // << IMPORTANT: this callback should have only immutable dependencies + ); + + const getOne = useCallback( + >(id: string) => { + if (consoleStorageRef.current?.[id]) { + return consoleStorageRef.current[id].client as Readonly>; + } + }, + [] // << IMPORTANT: this callback should have no dependencies or only immutable dependencies + ); + + const getList = useCallback(< + Meta extends object = Record + >() => { + return Object.values(consoleStorage).map( + (managedConsole) => managedConsole.client + ) as ReadonlyArray>>; + }, [consoleStorage]); // << This callack should always use `consoleStorage` + + const isVisible = useCallback((id: string): boolean => { + if (consoleStorageRef.current?.[id]) { + return consoleStorageRef.current[id].isOpen; + } + + return false; + }, []); // << IMPORTANT: this callback should have no dependencies + + const register = useCallback( + ({ id, title, meta, consoleProps, ...otherRegisterProps }) => { + if (consoleStorage[id]) { + throw new Error(`Console with id ${id} already registered`); + } + + const managedKey = Symbol(id); + // Referencing/using the interface methods here (defined in the outer scope of this function) + // is ok because those are immutable and thus will not change between state changes + const showThisConsole = show.bind(null, id); + const hideThisConsole = hide.bind(null, id); + const terminateThisConsole = terminate.bind(null, id); + const isThisConsoleVisible = isVisible.bind(null, id); + + const managedConsole: ManagedConsole = { + ...otherRegisterProps, + client: { + id, + title, + meta, + // The use of `setTimeout()` below is needed because this client interface can be consumed + // prior to the component state being updated. Placing a delay on the execution of these + // methods allows for state to be updated first and then the action is applied. + // So someone can do: `.register({...}).show()` and it will work + show: () => { + setTimeout(showThisConsole, 0); + }, + hide: () => { + setTimeout(hideThisConsole, 0); + }, + terminate: () => { + setTimeout(terminateThisConsole, 0); + }, + isVisible: () => isThisConsoleVisible(), + }, + consoleProps, + console: , + isOpen: false, + key: managedKey, + }; + + setConsoleStorage((prevState) => { + return { + ...prevState, + [id]: managedConsole, + }; + }); + + return managedConsole.client; + }, + [consoleStorage, hide, isVisible, show, terminate] + ); + + const consoleManagerClient = useMemo(() => { + return { + register, + show, + hide, + terminate, + getOne, + getList, + }; + }, [getList, getOne, hide, register, show, terminate]); + + const consoleManageContextClients = useMemo(() => { + return { + client: consoleManagerClient, + internal: { + getManagedConsole(key): ManagedConsole | undefined { + return Object.values(consoleStorage).find((managedConsole) => managedConsole.key === key); + }, + }, + }; + }, [consoleManagerClient, consoleStorage]); + + const visibleConsole = useMemo(() => { + return Object.values(consoleStorage).find((managedConsole) => managedConsole.isOpen); + }, [consoleStorage]); + + const handleOnTerminate = useCallback(() => { + if (visibleConsole) { + consoleManagerClient.terminate(visibleConsole.client.id); + } + }, [consoleManagerClient, visibleConsole]); + + const handleOnHide = useCallback(() => { + if (visibleConsole) { + consoleManagerClient.hide(visibleConsole.client.id); + } + }, [consoleManagerClient, visibleConsole]); + + const runningConsoles = useMemo(() => { + return Object.values(consoleStorage).map((managedConsole) => managedConsole.console); + }, [consoleStorage]); + + return ( + + {children} + + + {runningConsoles} + + + ); +}); +ConsoleManager.displayName = 'ConsoleManager'; + +/** + * Returns the interface for managing consoles withing a `` context. + */ +export const useConsoleManager = (): ConsoleManagerClient => { + const consoleManagerClients = useContext(ConsoleManagerContext); + + if (!consoleManagerClients) { + throw new Error('ConsoleManagerContext not found'); + } + + return consoleManagerClients.client; +}; + +/** + * For internal use within Console code only! + * Hook will return the `ManagedConsole` interface stored in the manager if it finds + * the `ConsoleProps` provided on input to be one that the ConsoleManager is tracking. + * + * @protected + */ +export const useWithManagedConsole = ( + key: ManagedConsole['key'] | undefined +): ManagedConsole | undefined => { + const consoleManagerClients = useContext(ConsoleManagerContext); + + if (key && consoleManagerClients) { + return consoleManagerClients.internal.getManagedConsole(key); + } +}; diff --git a/x-pack/plugins/infra/server/routes/log_sources/index.ts b/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/index.ts similarity index 78% rename from x-pack/plugins/infra/server/routes/log_sources/index.ts rename to x-pack/plugins/security_solution/public/management/components/console/components/console_manager/index.ts index 75163863db9e7..d2fa363844042 100644 --- a/x-pack/plugins/infra/server/routes/log_sources/index.ts +++ b/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/index.ts @@ -5,5 +5,4 @@ * 2.0. */ -export * from './configuration'; -export * from './status'; +export { ConsoleManager, useConsoleManager } from './console_manager'; diff --git a/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/mocks.tsx b/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/mocks.tsx new file mode 100644 index 0000000000000..57ec4246caf41 --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/mocks.tsx @@ -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 React, { memo, useCallback } from 'react'; +import { EuiButton, EuiFlexGroup, EuiFlexItem, EuiSpacer } from '@elastic/eui'; +import { ConsoleRegistrationInterface, RegisteredConsoleClient } from './types'; +import { useConsoleManager } from './console_manager'; +import { getCommandServiceMock } from '../../mocks'; + +export const getNewConsoleRegistrationMock = ( + overrides: Partial = {} +): ConsoleRegistrationInterface => { + return { + id: Math.random().toString(36), + title: 'Test console', + meta: { about: 'for unit testing ' }, + consoleProps: { + 'data-test-subj': 'testRunningConsole', + commandService: getCommandServiceMock(), + }, + onBeforeTerminate: jest.fn(), + ...overrides, + }; +}; + +const RunningConsole = memo<{ registeredConsole: RegisteredConsoleClient }>( + ({ registeredConsole }) => { + const handleShowOnClick = useCallback(() => { + registeredConsole.show(); + }, [registeredConsole]); + + return ( +
+ + + {registeredConsole.title} + + + + {'show'} + + + + +
+ ); + } +); +RunningConsole.displayName = 'RunningConsole'; + +export const ConsoleManagerTestComponent = memo(() => { + const consoleManager = useConsoleManager(); + const handleRegisterNewConsoleOnClick = useCallback(() => { + consoleManager.register(getNewConsoleRegistrationMock()); + }, [consoleManager]); + + return ( +
+
+ + {'Register and show new managed console'} + +
+
+ {consoleManager.getList().map((registeredConsole) => { + return ( + + ); + })} +
+
+ ); +}); +ConsoleManagerTestComponent.displayName = 'ConsoleManagerTestComponent'; diff --git a/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/types.ts b/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/types.ts new file mode 100644 index 0000000000000..241d3183e1fdc --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/components/console/components/console_manager/types.ts @@ -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 type { ReactNode } from 'react'; +import { ConsoleProps } from '../../types'; + +export interface ConsoleRegistrationInterface> { + id: string; + /** The title for the console popup */ + title: ReactNode; + consoleProps: ConsoleProps; + onBeforeTerminate?: () => void; + /** + * Any additional metadata about the console. Helpful for when consuming Registered consoles + * (ex. could hold the details data for the Host that the console is opened against) + */ + meta?: Meta; +} + +export interface RegisteredConsoleClient> + extends Pick, 'id' | 'title' | 'meta'> { + show(): void; + + hide(): void; + + terminate(): void; + + isVisible(): boolean; +} + +export interface ConsoleManagerClient { + /** Registers a new console */ + register(console: ConsoleRegistrationInterface): Readonly; + + /** Opens console in a dialog */ + show(id: string): void; + + /** Hides the console (minimize) */ + hide(id: string): void; + + /** Removes the console from management and calls `onBeforeClose` if one was defined */ + terminate(id: string): void; + + /** Retrieve a running console */ + getOne>( + id: string + ): Readonly> | undefined; + + /** Get a list of running consoles */ + getList>(): ReadonlyArray< + Readonly> + >; +} diff --git a/x-pack/plugins/security_solution/public/management/components/console/components/console_state/state_update_handlers/handle_execute_command.test.tsx b/x-pack/plugins/security_solution/public/management/components/console/components/console_state/state_update_handlers/handle_execute_command.test.tsx index b6a8e4db52340..06ecc344d5596 100644 --- a/x-pack/plugins/security_solution/public/management/components/console/components/console_state/state_update_handlers/handle_execute_command.test.tsx +++ b/x-pack/plugins/security_solution/public/management/components/console/components/console_state/state_update_handlers/handle_execute_command.test.tsx @@ -6,11 +6,11 @@ */ import React from 'react'; -import { ConsoleProps } from '../../../console'; import { AppContextTestRender } from '../../../../../../common/mock/endpoint'; import { getConsoleTestSetup } from '../../../mocks'; import type { ConsoleTestSetup } from '../../../mocks'; import { waitFor } from '@testing-library/react'; +import { ConsoleProps } from '../../../types'; describe('When a Console command is entered by the user', () => { let render: (props?: Partial) => ReturnType; diff --git a/x-pack/plugins/security_solution/public/management/components/console/console.test.tsx b/x-pack/plugins/security_solution/public/management/components/console/console.test.tsx index 9adeaa72d683e..e0722c5cf68ce 100644 --- a/x-pack/plugins/security_solution/public/management/components/console/console.test.tsx +++ b/x-pack/plugins/security_solution/public/management/components/console/console.test.tsx @@ -6,9 +6,9 @@ */ import { AppContextTestRender } from '../../../common/mock/endpoint'; -import { ConsoleProps } from './console'; import { getConsoleTestSetup } from './mocks'; import userEvent from '@testing-library/user-event'; +import { ConsoleProps } from './types'; describe('When using Console component', () => { let render: (props?: Partial) => ReturnType; diff --git a/x-pack/plugins/security_solution/public/management/components/console/console.tsx b/x-pack/plugins/security_solution/public/management/components/console/console.tsx index 6c64a045c86fe..0f3645037df02 100644 --- a/x-pack/plugins/security_solution/public/management/components/console/console.tsx +++ b/x-pack/plugins/security_solution/public/management/components/console/console.tsx @@ -6,13 +6,14 @@ */ import React, { memo, useCallback, useRef } from 'react'; -import { CommonProps, EuiFlexGroup, EuiFlexItem, EuiPanel } from '@elastic/eui'; +import { EuiFlexGroup, EuiFlexItem, EuiPanel } from '@elastic/eui'; import styled from 'styled-components'; import { HistoryOutput } from './components/history_output'; import { CommandInput, CommandInputProps } from './components/command_input'; -import { CommandServiceInterface } from './types'; +import { ConsoleProps } from './types'; import { ConsoleStateProvider } from './components/console_state'; import { useTestIdGenerator } from '../hooks/use_test_id_generator'; +import { useWithManagedConsole } from './components/console_manager/console_manager'; // FIXME:PT implement dark mode for the console or light mode switch @@ -43,58 +44,65 @@ const ConsoleWindow = styled.div` } `; -export interface ConsoleProps extends CommonProps, Pick { - commandService: CommandServiceInterface; -} +export const Console = memo( + ({ prompt, commandService, managedKey, ...commonProps }) => { + const consoleWindowRef = useRef(null); + const inputFocusRef: CommandInputProps['focusRef'] = useRef(null); + const getTestId = useTestIdGenerator(commonProps['data-test-subj']); + const managedConsole = useWithManagedConsole(managedKey); -export const Console = memo(({ prompt, commandService, ...commonProps }) => { - const consoleWindowRef = useRef(null); - const inputFocusRef: CommandInputProps['focusRef'] = useRef(null); - const getTestId = useTestIdGenerator(commonProps['data-test-subj']); + const scrollToBottom = useCallback(() => { + // We need the `setTimeout` here because in some cases, the command output + // will take a bit of time to populate its content due to the use of Promises + setTimeout(() => { + if (consoleWindowRef.current) { + consoleWindowRef.current.scrollTop = consoleWindowRef.current.scrollHeight; + } + }, 1); - const scrollToBottom = useCallback(() => { - // We need the `setTimeout` here because in some cases, the command output - // will take a bit of time to populate its content due to the use of Promises - setTimeout(() => { - if (consoleWindowRef.current) { - consoleWindowRef.current.scrollTop = consoleWindowRef.current.scrollHeight; - } - }, 1); - - // NOTE: its IMPORTANT that this callback does NOT have any dependencies, because - // it is stored in State and currently not updated if it changes - }, []); + // NOTE: its IMPORTANT that this callback does NOT have any dependencies, because + // it is stored in State and currently not updated if it changes + }, []); - const handleConsoleClick = useCallback(() => { - if (inputFocusRef.current) { - inputFocusRef.current(); - } - }, []); + const handleConsoleClick = useCallback(() => { + if (inputFocusRef.current) { + inputFocusRef.current(); + } + }, []); - return ( - + return ( - - - - - - - - - - + {/* + If this is a managed console, then we only show its content if it is open. + The state provider, however, continues to be rendered so that as updates to pending + commands are received, those will still make it to the console's state and be + shown when the console is eventually opened again. + */} + {!managedConsole || managedConsole.isOpen ? ( + + + + + + + + + + + + + ) : null} - - ); -}); + ); + } +); Console.displayName = 'Console'; diff --git a/x-pack/plugins/security_solution/public/management/components/console/index.ts b/x-pack/plugins/security_solution/public/management/components/console/index.ts index 81244b3013b36..4264aa5a8f830 100644 --- a/x-pack/plugins/security_solution/public/management/components/console/index.ts +++ b/x-pack/plugins/security_solution/public/management/components/console/index.ts @@ -6,5 +6,10 @@ */ export { Console } from './console'; -export type { ConsoleProps } from './console'; -export type { CommandServiceInterface, CommandDefinition, Command } from './types'; +export { ConsoleManager, useConsoleManager } from './components/console_manager'; +export type { CommandServiceInterface, CommandDefinition, Command, ConsoleProps } from './types'; +export type { + ConsoleRegistrationInterface, + RegisteredConsoleClient, + ConsoleManagerClient, +} from './components/console_manager/types'; diff --git a/x-pack/plugins/security_solution/public/management/components/console/mocks.tsx b/x-pack/plugins/security_solution/public/management/components/console/mocks.tsx index 693daf83ed6ea..d89c5f5374d47 100644 --- a/x-pack/plugins/security_solution/public/management/components/console/mocks.tsx +++ b/x-pack/plugins/security_solution/public/management/components/console/mocks.tsx @@ -12,8 +12,7 @@ import { EuiCode } from '@elastic/eui'; import userEvent from '@testing-library/user-event'; import { act } from '@testing-library/react'; import { Console } from './console'; -import type { ConsoleProps } from './console'; -import type { Command, CommandServiceInterface } from './types'; +import type { Command, CommandServiceInterface, ConsoleProps } from './types'; import type { AppContextTestRender } from '../../../common/mock/endpoint'; import { createAppRootMockRenderer } from '../../../common/mock/endpoint'; import { CommandDefinition } from './types'; @@ -37,6 +36,39 @@ export interface ConsoleTestSetup { ): void; } +/** + * Finds the console in the Render Result and enters the command provided + * @param renderResult + * @param cmd + * @param inputOnly + * @param useKeyboard + * @param dataTestSubj + */ +export const enterConsoleCommand = ( + renderResult: ReturnType, + cmd: string, + { + inputOnly = false, + useKeyboard = false, + dataTestSubj = 'test', + }: Partial<{ inputOnly: boolean; useKeyboard: boolean; dataTestSubj: string }> = {} +): void => { + const keyCaptureInput = renderResult.getByTestId(`${dataTestSubj}-keyCapture-input`); + + act(() => { + if (useKeyboard) { + userEvent.click(keyCaptureInput); + userEvent.keyboard(cmd); + } else { + userEvent.type(keyCaptureInput, cmd); + } + + if (!inputOnly) { + userEvent.keyboard('{enter}'); + } + }); +}; + export const getConsoleTestSetup = (): ConsoleTestSetup => { const mockedContext = createAppRootMockRenderer(); @@ -64,24 +96,8 @@ export const getConsoleTestSetup = (): ConsoleTestSetup => { )); }; - const enterCommand: ConsoleTestSetup['enterCommand'] = ( - cmd, - { inputOnly = false, useKeyboard = false } = {} - ) => { - const keyCaptureInput = renderResult.getByTestId('test-keyCapture-input'); - - act(() => { - if (useKeyboard) { - userEvent.click(keyCaptureInput); - userEvent.keyboard(cmd); - } else { - userEvent.type(keyCaptureInput, cmd); - } - - if (!inputOnly) { - userEvent.keyboard('{enter}'); - } - }); + const enterCommand: ConsoleTestSetup['enterCommand'] = (cmd, options = {}) => { + enterConsoleCommand(renderResult, cmd, options); }; return { diff --git a/x-pack/plugins/security_solution/public/management/components/console/types.ts b/x-pack/plugins/security_solution/public/management/components/console/types.ts index e2b6d5c2a84aa..6b15f03988313 100644 --- a/x-pack/plugins/security_solution/public/management/components/console/types.ts +++ b/x-pack/plugins/security_solution/public/management/components/console/types.ts @@ -6,6 +6,7 @@ */ import { ReactNode } from 'react'; +import { CommonProps } from '@elastic/eui'; import { ParsedArgData, ParsedCommandInput } from './service/parsed_command_input'; export interface CommandDefinition { @@ -62,3 +63,14 @@ export interface CommandServiceInterface { */ getCommandUsage?: (command: CommandDefinition) => Promise<{ result: ReactNode }>; } + +export interface ConsoleProps extends CommonProps { + commandService: CommandServiceInterface; + prompt?: string; + /** + * For internal use only! + * Provided by the ConsoleManager to indicate that the console is being managed by it + * @private + */ + managedKey?: symbol; +} diff --git a/x-pack/plugins/security_solution/public/management/pages/blocklist/view/components/blocklist_form.tsx b/x-pack/plugins/security_solution/public/management/pages/blocklist/view/components/blocklist_form.tsx index 8d56c5842df02..9ec96e8f74ca8 100644 --- a/x-pack/plugins/security_solution/public/management/pages/blocklist/view/components/blocklist_form.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/blocklist/view/components/blocklist_form.tsx @@ -287,16 +287,19 @@ export const BlockListForm = memo( const handleOnDescriptionChange = useCallback( (event: React.ChangeEvent) => { + const nextItem = { + ...item, + description: event.target.value, + }; + validateValues(nextItem); + onChange({ isValid: isValid(errorsRef.current), - item: { - ...item, - description: event.target.value, - }, + item: nextItem, }); setHasFormChanged(true); }, - [onChange, item] + [onChange, item, validateValues] ); const handleOnOsChange = useCallback( diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/dev_console.tsx b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/dev_console.tsx index 7fb057809919e..6761a32c6fb65 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/dev_console.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/dev_console.tsx @@ -5,8 +5,16 @@ * 2.0. */ -import React, { memo, useMemo } from 'react'; -import { EuiCode } from '@elastic/eui'; +import React, { memo, useCallback, useMemo } from 'react'; +import { + EuiButton, + EuiCode, + EuiFlexGroup, + EuiFlexItem, + EuiPanel, + EuiSpacer, + EuiText, +} from '@elastic/eui'; import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features'; import { useUrlParams } from '../../../components/hooks/use_url_params'; import { @@ -14,6 +22,8 @@ import { CommandDefinition, CommandServiceInterface, Console, + RegisteredConsoleClient, + useConsoleManager, } from '../../../components/console'; const delay = async (ms: number = 4000) => new Promise((r) => setTimeout(r, ms)); @@ -25,6 +35,17 @@ class DevCommandService implements CommandServiceInterface { name: 'cmd1', about: 'Runs cmd1', }, + { + name: 'get-file', + about: 'retrieve a file from the endpoint', + args: { + file: { + required: true, + allowMultiples: false, + about: 'the file path for the file to be retrieved', + }, + }, + }, { name: 'cmd2', about: 'runs cmd 2', @@ -71,25 +92,101 @@ class DevCommandService implements CommandServiceInterface { } } +const RunningConsole = memo<{ registeredConsole: RegisteredConsoleClient }>( + ({ registeredConsole }) => { + const handleShowOnClick = useCallback(() => { + registeredConsole.show(); + }, [registeredConsole]); + + const handleTerminateOnClick = useCallback(() => { + registeredConsole.terminate(); + }, [registeredConsole]); + + return ( + <> + + {registeredConsole.title} + + + + + {'terminate'} + + + + {'show'} + + + + + + + ); + } +); +RunningConsole.displayName = 'RunningConsole'; + // ------------------------------------------------------------ // FOR DEV PURPOSES ONLY // FIXME:PT Delete once we have support via row actions menu // ------------------------------------------------------------ -export const DevConsole = memo(() => { - const isConsoleEnabled = useIsExperimentalFeatureEnabled('responseActionsConsoleEnabled'); - - const consoleService = useMemo(() => { +export const ShowDevConsole = memo(() => { + const consoleManager = useConsoleManager(); + const commandService = useMemo(() => { return new DevCommandService(); }, []); + const handleRegisterOnClick = useCallback(() => { + consoleManager + .register({ + id: Math.random().toString(36), // getId(), + title: 'Test console here', + meta: { + foo: 'bar', + }, + consoleProps: { + prompt: '>>', + commandService, + 'data-test-subj': 'dev', + }, + }) + .show(); + }, [commandService, consoleManager]); + + return ( + + + + {'Open a managed console'} + + + {consoleManager.getList<{ foo: string }>().map((registeredConsole) => { + return ( + + ); + })} + + + + + + +

{'Un-managed console'}

+
+ + + +
+ ); +}); +ShowDevConsole.displayName = 'ShowDevConsole'; + +export const DevConsole = memo(() => { + const isConsoleEnabled = useIsExperimentalFeatureEnabled('responseActionsConsoleEnabled'); const { urlParams: { showConsole = false }, } = useUrlParams(); - return isConsoleEnabled && showConsole ? ( -
- -
- ) : null; + return isConsoleEnabled && showConsole ? : null; }); DevConsole.displayName = 'DevConsole'; diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_apps_grid/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_apps_grid/__snapshots__/index.test.tsx.snap index 9ec4b93c7c8af..665122574de70 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_apps_grid/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_apps_grid/__snapshots__/index.test.tsx.snap @@ -513,7 +513,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -523,7 +523,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -559,7 +559,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -569,7 +569,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -678,7 +678,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -743,7 +743,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -773,7 +773,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -785,7 +785,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` class="euiSpacer euiSpacer--l" />
Trusted App 0 @@ -895,7 +895,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -905,7 +905,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -941,7 +941,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -951,7 +951,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -1060,7 +1060,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -1125,7 +1125,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -1155,7 +1155,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -1167,7 +1167,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` class="euiSpacer euiSpacer--l" />
Trusted App 1 @@ -1277,7 +1277,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -1287,7 +1287,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -1323,7 +1323,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -1333,7 +1333,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -1442,7 +1442,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -1507,7 +1507,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -1537,7 +1537,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -1549,7 +1549,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` class="euiSpacer euiSpacer--l" />
Trusted App 2 @@ -1659,7 +1659,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -1669,7 +1669,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -1705,7 +1705,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -1715,7 +1715,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -1824,7 +1824,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -1889,7 +1889,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -1919,7 +1919,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -1931,7 +1931,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` class="euiSpacer euiSpacer--l" />
Trusted App 3 @@ -2041,7 +2041,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -2051,7 +2051,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -2087,7 +2087,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -2097,7 +2097,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -2206,7 +2206,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -2271,7 +2271,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -2301,7 +2301,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -2313,7 +2313,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` class="euiSpacer euiSpacer--l" />
Trusted App 4 @@ -2423,7 +2423,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -2433,7 +2433,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -2469,7 +2469,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -2479,7 +2479,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -2588,7 +2588,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -2653,7 +2653,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -2683,7 +2683,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -2695,7 +2695,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` class="euiSpacer euiSpacer--l" />
Trusted App 5 @@ -2805,7 +2805,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -2815,7 +2815,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -2851,7 +2851,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -2861,7 +2861,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -2970,7 +2970,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -3035,7 +3035,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -3065,7 +3065,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -3077,7 +3077,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` class="euiSpacer euiSpacer--l" />
Trusted App 6 @@ -3187,7 +3187,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -3197,7 +3197,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -3233,7 +3233,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -3243,7 +3243,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -3352,7 +3352,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -3417,7 +3417,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -3447,7 +3447,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -3459,7 +3459,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` class="euiSpacer euiSpacer--l" />
Trusted App 7 @@ -3569,7 +3569,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -3579,7 +3579,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -3615,7 +3615,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -3625,7 +3625,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -3734,7 +3734,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -3799,7 +3799,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -3829,7 +3829,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -3841,7 +3841,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` class="euiSpacer euiSpacer--l" />
Trusted App 8 @@ -3951,7 +3951,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -3961,7 +3961,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -3997,7 +3997,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -4007,7 +4007,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -4116,7 +4116,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -4181,7 +4181,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -4211,7 +4211,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -4223,7 +4223,7 @@ exports[`TrustedAppsGrid renders correctly when loaded data 1`] = ` class="euiSpacer euiSpacer--l" />
Trusted App 9 @@ -4665,7 +4665,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -4675,7 +4675,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -4711,7 +4711,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -4721,7 +4721,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -4830,7 +4830,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -4895,7 +4895,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -4925,7 +4925,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -4937,7 +4937,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time class="euiSpacer euiSpacer--l" />
Trusted App 0 @@ -5047,7 +5047,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -5057,7 +5057,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -5093,7 +5093,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -5103,7 +5103,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -5212,7 +5212,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -5277,7 +5277,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -5307,7 +5307,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -5319,7 +5319,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time class="euiSpacer euiSpacer--l" />
Trusted App 1 @@ -5429,7 +5429,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -5439,7 +5439,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -5475,7 +5475,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -5485,7 +5485,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -5594,7 +5594,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -5659,7 +5659,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -5689,7 +5689,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -5701,7 +5701,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time class="euiSpacer euiSpacer--l" />
Trusted App 2 @@ -5811,7 +5811,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -5821,7 +5821,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -5857,7 +5857,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -5867,7 +5867,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -5976,7 +5976,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -6041,7 +6041,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -6071,7 +6071,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -6083,7 +6083,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time class="euiSpacer euiSpacer--l" />
Trusted App 3 @@ -6193,7 +6193,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -6203,7 +6203,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -6239,7 +6239,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -6249,7 +6249,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -6358,7 +6358,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -6423,7 +6423,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -6453,7 +6453,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -6465,7 +6465,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time class="euiSpacer euiSpacer--l" />
Trusted App 4 @@ -6575,7 +6575,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -6585,7 +6585,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -6621,7 +6621,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -6631,7 +6631,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -6740,7 +6740,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -6805,7 +6805,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -6835,7 +6835,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -6847,7 +6847,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time class="euiSpacer euiSpacer--l" />
Trusted App 5 @@ -6957,7 +6957,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -6967,7 +6967,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -7003,7 +7003,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -7013,7 +7013,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -7122,7 +7122,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -7187,7 +7187,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -7217,7 +7217,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -7229,7 +7229,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time class="euiSpacer euiSpacer--l" />
Trusted App 6 @@ -7339,7 +7339,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -7349,7 +7349,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -7385,7 +7385,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -7395,7 +7395,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -7504,7 +7504,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -7569,7 +7569,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -7599,7 +7599,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -7611,7 +7611,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time class="euiSpacer euiSpacer--l" />
Trusted App 7 @@ -7721,7 +7721,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -7731,7 +7731,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -7767,7 +7767,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -7777,7 +7777,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -7886,7 +7886,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -7951,7 +7951,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -7981,7 +7981,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -7993,7 +7993,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time class="euiSpacer euiSpacer--l" />
Trusted App 8 @@ -8103,7 +8103,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -8113,7 +8113,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -8149,7 +8149,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -8159,7 +8159,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -8268,7 +8268,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -8333,7 +8333,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -8363,7 +8363,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -8375,7 +8375,7 @@ exports[`TrustedAppsGrid renders correctly when loading data for the second time class="euiSpacer euiSpacer--l" />
Trusted App 9 @@ -8774,7 +8774,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -8784,7 +8784,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -8820,7 +8820,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -8830,7 +8830,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -8939,7 +8939,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -9004,7 +9004,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -9034,7 +9034,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -9046,7 +9046,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not class="euiSpacer euiSpacer--l" />
Trusted App 0 @@ -9156,7 +9156,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -9166,7 +9166,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -9202,7 +9202,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -9212,7 +9212,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -9321,7 +9321,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -9386,7 +9386,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -9416,7 +9416,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -9428,7 +9428,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not class="euiSpacer euiSpacer--l" />
Trusted App 1 @@ -9538,7 +9538,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -9548,7 +9548,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -9584,7 +9584,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -9594,7 +9594,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -9703,7 +9703,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -9768,7 +9768,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -9798,7 +9798,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -9810,7 +9810,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not class="euiSpacer euiSpacer--l" />
Trusted App 2 @@ -9920,7 +9920,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -9930,7 +9930,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -9966,7 +9966,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -9976,7 +9976,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -10085,7 +10085,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -10150,7 +10150,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -10180,7 +10180,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -10192,7 +10192,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not class="euiSpacer euiSpacer--l" />
Trusted App 3 @@ -10302,7 +10302,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -10312,7 +10312,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -10348,7 +10348,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -10358,7 +10358,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -10467,7 +10467,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -10532,7 +10532,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -10562,7 +10562,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -10574,7 +10574,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not class="euiSpacer euiSpacer--l" />
Trusted App 4 @@ -10684,7 +10684,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -10694,7 +10694,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -10730,7 +10730,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -10740,7 +10740,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -10849,7 +10849,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -10914,7 +10914,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -10944,7 +10944,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -10956,7 +10956,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not class="euiSpacer euiSpacer--l" />
Trusted App 5 @@ -11066,7 +11066,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -11076,7 +11076,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -11112,7 +11112,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -11122,7 +11122,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -11231,7 +11231,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -11296,7 +11296,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -11326,7 +11326,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -11338,7 +11338,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not class="euiSpacer euiSpacer--l" />
Trusted App 6 @@ -11448,7 +11448,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -11458,7 +11458,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -11494,7 +11494,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -11504,7 +11504,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -11613,7 +11613,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -11678,7 +11678,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -11708,7 +11708,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -11720,7 +11720,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not class="euiSpacer euiSpacer--l" />
Trusted App 7 @@ -11830,7 +11830,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -11840,7 +11840,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -11876,7 +11876,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -11886,7 +11886,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -11995,7 +11995,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -12060,7 +12060,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -12090,7 +12090,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -12102,7 +12102,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not class="euiSpacer euiSpacer--l" />
Trusted App 8 @@ -12212,7 +12212,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-label" >
Last updated
@@ -12222,7 +12222,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-updated-value" >
1 minute ago @@ -12258,7 +12258,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-label" >
Created
@@ -12268,7 +12268,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-header-created-value" >
1 minute ago @@ -12377,7 +12377,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-createdBy-value" >
someone
@@ -12442,7 +12442,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-touchedBy-updatedBy-value" >
someone
@@ -12472,7 +12472,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not data-test-subj="trustedAppCard-subHeader-effectScope-value" >
Applied globally
@@ -12484,7 +12484,7 @@ exports[`TrustedAppsGrid renders correctly when new page and page size set (not class="euiSpacer euiSpacer--l" />
Trusted App 9 diff --git a/x-pack/plugins/security_solution/public/network/pages/details/index.tsx b/x-pack/plugins/security_solution/public/network/pages/details/index.tsx index ef7dea5164468..f8aa0a5d85730 100644 --- a/x-pack/plugins/security_solution/public/network/pages/details/index.tsx +++ b/x-pack/plugins/security_solution/public/network/pages/details/index.tsx @@ -38,7 +38,6 @@ import { inputsSelectors } from '../../../common/store'; import { setAbsoluteRangeDatePicker } from '../../../common/store/inputs/actions'; import { setNetworkDetailsTablesActivePageToZero } from '../../store/actions'; import { SpyRoute } from '../../../common/utils/route/spy_routes'; -import { OverviewEmpty } from '../../../overview/components/overview_empty'; import { NetworkHttpQueryTable } from './network_http_query_table'; import { NetworkTopCountriesQueryTable } from './network_top_countries_query_table'; import { NetworkTopNFlowQueryTable } from './network_top_n_flow_query_table'; @@ -50,6 +49,7 @@ import { networkModel } from '../../store'; import { SecurityPageName } from '../../../app/types'; import { useSourcererDataView } from '../../../common/containers/sourcerer'; import { useInvalidFilterQuery } from '../../../common/hooks/use_invalid_filter_query'; +import { LandingPageComponent } from '../../../common/components/landing_page'; export { getBreadcrumbs } from './utils'; const NetworkDetailsManage = manageQuery(IpOverview); @@ -301,9 +301,7 @@ const NetworkDetailsComponent: React.FC = () => { ) : ( - - - + )} diff --git a/x-pack/plugins/security_solution/public/network/pages/network.test.tsx b/x-pack/plugins/security_solution/public/network/pages/network.test.tsx index 23cd7f707dfe8..bf300569d6e23 100644 --- a/x-pack/plugins/security_solution/public/network/pages/network.test.tsx +++ b/x-pack/plugins/security_solution/public/network/pages/network.test.tsx @@ -25,8 +25,7 @@ import { inputsActions } from '../../common/store/inputs'; import { Network } from './network'; import { NetworkRoutes } from './navigation'; import { mockCasesContract } from '../../../../cases/public/mocks'; -import { APP_UI_ID, SecurityPageName } from '../../../common/constants'; -import { getAppLandingUrl } from '../../common/components/link_to/redirect_to_overview'; +import { LandingPageComponent } from '../../common/components/landing_page'; jest.mock('../../common/containers/sourcerer'); @@ -119,13 +118,13 @@ describe('Network page - rendering', () => { beforeEach(() => { jest.clearAllMocks(); }); - test('it renders the Setup Instructions text when no index is available', () => { + test('it renders getting started page when no index is available', () => { mockUseSourcererDataView.mockReturnValue({ selectedPatterns: [], indicesExist: false, }); - mount( + const wrapper = mount( @@ -133,13 +132,10 @@ describe('Network page - rendering', () => { ); - expect(mockNavigateToApp).toHaveBeenCalledWith(APP_UI_ID, { - deepLinkId: SecurityPageName.landing, - path: getAppLandingUrl(), - }); + expect(wrapper.find(LandingPageComponent).exists()).toBe(true); }); - test('it DOES NOT render the Setup Instructions text when an index is available', async () => { + test('it DOES NOT render getting started page when an index is available', async () => { mockUseSourcererDataView.mockReturnValue({ selectedPatterns: [], indicesExist: true, diff --git a/x-pack/plugins/security_solution/public/network/pages/network.tsx b/x-pack/plugins/security_solution/public/network/pages/network.tsx index 422d2877a8504..634a96b0e74df 100644 --- a/x-pack/plugins/security_solution/public/network/pages/network.tsx +++ b/x-pack/plugins/security_solution/public/network/pages/network.tsx @@ -36,7 +36,6 @@ import { SpyRoute } from '../../common/utils/route/spy_routes'; import { Display } from '../../hosts/pages/display'; import { networkModel } from '../store'; import { navTabsNetwork, NetworkRoutes, NetworkRoutesLoading } from './navigation'; -import { OverviewEmpty } from '../../overview/components/overview_empty'; import * as i18n from './translations'; import { NetworkComponentProps } from './types'; import { NetworkRouteType } from './navigation/types'; @@ -52,6 +51,7 @@ import { useSourcererDataView } from '../../common/containers/sourcerer'; import { useDeepEqualSelector, useShallowEqualSelector } from '../../common/hooks/use_selector'; import { useInvalidFilterQuery } from '../../common/hooks/use_invalid_filter_query'; import { filterNetworkExternalAlertData } from '../../common/components/visualization_actions/utils'; +import { LandingPageComponent } from '../../common/components/landing_page'; /** * Need a 100% height here to account for the graph/analyze tool, which sets no explicit height parameters, but fills the available space. */ @@ -234,9 +234,7 @@ const NetworkComponent = React.memo( ) : ( - - - + )} diff --git a/x-pack/plugins/security_solution/public/overview/components/overview_empty/index.test.tsx b/x-pack/plugins/security_solution/public/overview/components/overview_empty/index.test.tsx deleted file mode 100644 index db157e9fc7135..0000000000000 --- a/x-pack/plugins/security_solution/public/overview/components/overview_empty/index.test.tsx +++ /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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { shallow } from 'enzyme'; -import { OverviewEmpty } from '.'; -import { APP_UI_ID, SecurityPageName } from '../../../../common/constants'; -import { getAppLandingUrl } from '../../../common/components/link_to/redirect_to_overview'; - -const mockNavigateToApp = jest.fn(); -jest.mock('../../../common/lib/kibana', () => { - const original = jest.requireActual('../../../common/lib/kibana'); - - return { - ...original, - useKibana: () => ({ - services: { - ...original.useKibana().services, - application: { - ...original.useKibana().services.application, - navigateToApp: mockNavigateToApp, - }, - }, - }), - }; -}); - -describe('Redirect to landing page', () => { - it('render with correct actions ', () => { - shallow(); - expect(mockNavigateToApp).toHaveBeenCalledWith(APP_UI_ID, { - deepLinkId: SecurityPageName.landing, - path: getAppLandingUrl(), - }); - }); -}); diff --git a/x-pack/plugins/security_solution/public/overview/components/overview_empty/index.tsx b/x-pack/plugins/security_solution/public/overview/components/overview_empty/index.tsx deleted file mode 100644 index 91395aa21486f..0000000000000 --- a/x-pack/plugins/security_solution/public/overview/components/overview_empty/index.tsx +++ /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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { useKibana } from '../../../common/lib/kibana'; -import { APP_UI_ID, SecurityPageName } from '../../../../common/constants'; -import { getAppLandingUrl } from '../../../common/components/link_to/redirect_to_overview'; - -const OverviewEmptyComponent: React.FC = () => { - const { navigateToApp } = useKibana().services.application; - - navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.landing, - path: getAppLandingUrl(), - }); - return null; -}; - -OverviewEmptyComponent.displayName = 'OverviewEmptyComponent'; - -export const OverviewEmpty = React.memo(OverviewEmptyComponent); diff --git a/x-pack/plugins/security_solution/public/overview/pages/detection_response.tsx b/x-pack/plugins/security_solution/public/overview/pages/detection_response.tsx index e29ea1e923a63..f3dc4d400c9c2 100644 --- a/x-pack/plugins/security_solution/public/overview/pages/detection_response.tsx +++ b/x-pack/plugins/security_solution/public/overview/pages/detection_response.tsx @@ -11,7 +11,6 @@ import { SiemSearchBar } from '../../common/components/search_bar'; import { SecuritySolutionPageWrapper } from '../../common/components/page_wrapper'; // import { useGlobalTime } from '../../common/containers/use_global_time'; -import { OverviewEmpty } from '../components/overview_empty'; import { SpyRoute } from '../../common/utils/route/spy_routes'; import { SecurityPageName } from '../../app/types'; import { useSourcererDataView } from '../../common/containers/sourcerer'; @@ -20,6 +19,7 @@ import { HeaderPage } from '../../common/components/header_page'; import { useShallowEqualSelector } from '../../common/hooks/use_selector'; import { DETECTION_RESPONSE_TITLE, UPDATED, UPDATING } from './translations'; import { inputsSelectors } from '../../common/store/selectors'; +import { LandingPageComponent } from '../../common/components/landing_page'; const DetectionResponseComponent = () => { const getGlobalQuery = useMemo(() => inputsSelectors.globalQuery(), []); @@ -90,7 +90,7 @@ const DetectionResponseComponent = () => { ) : ( - + )} diff --git a/x-pack/plugins/security_solution/public/overview/pages/landing.tsx b/x-pack/plugins/security_solution/public/overview/pages/landing.tsx index 0554f1f51c28a..0b9760d2a8db4 100644 --- a/x-pack/plugins/security_solution/public/overview/pages/landing.tsx +++ b/x-pack/plugins/security_solution/public/overview/pages/landing.tsx @@ -8,15 +8,12 @@ import React, { memo } from 'react'; import { SpyRoute } from '../../common/utils/route/spy_routes'; import { SecurityPageName } from '../../../common/constants'; -import { SecuritySolutionPageWrapper } from '../../common/components/page_wrapper'; -import { LandingCards } from '../components/landing_cards'; +import { LandingPageComponent } from '../../common/components/landing_page'; export const LandingPage = memo(() => { return ( <> - - - + ); diff --git a/x-pack/plugins/security_solution/public/overview/pages/overview.test.tsx b/x-pack/plugins/security_solution/public/overview/pages/overview.test.tsx index e5be86a1c9f91..cd941e26e20a6 100644 --- a/x-pack/plugins/security_solution/public/overview/pages/overview.test.tsx +++ b/x-pack/plugins/security_solution/public/overview/pages/overview.test.tsx @@ -27,9 +27,8 @@ import { useIsExperimentalFeatureEnabled } from '../../common/hooks/use_experime import { initialUserPrivilegesState } from '../../common/components/user_privileges/user_privileges_context'; import { EndpointPrivileges } from '../../../common/endpoint/types'; import { useHostRiskScore } from '../../risk_score/containers'; -import { APP_UI_ID, SecurityPageName } from '../../../common/constants'; -import { getAppLandingUrl } from '../../common/components/link_to/redirect_to_overview'; import { mockCasesContract } from '../../../../cases/public/mocks'; +import { LandingPageComponent } from '../../common/components/landing_page'; const mockNavigateToApp = jest.fn(); jest.mock('../../common/lib/kibana', () => { @@ -303,8 +302,8 @@ describe('Overview', () => { mockUseMessagesStorage.mockImplementation(() => endpointNoticeMessage(false)); }); - it('renders the Setup Instructions text', () => { - mount( + it('renders getting started page', () => { + const wrapper = mount( @@ -312,10 +311,7 @@ describe('Overview', () => { ); - expect(mockNavigateToApp).toHaveBeenCalledWith(APP_UI_ID, { - deepLinkId: SecurityPageName.landing, - path: getAppLandingUrl(), - }); + expect(wrapper.find(LandingPageComponent).exists()).toBe(true); }); }); }); diff --git a/x-pack/plugins/security_solution/public/overview/pages/overview.tsx b/x-pack/plugins/security_solution/public/overview/pages/overview.tsx index ca95f41e0ea12..3f3d37cd3abae 100644 --- a/x-pack/plugins/security_solution/public/overview/pages/overview.tsx +++ b/x-pack/plugins/security_solution/public/overview/pages/overview.tsx @@ -17,7 +17,6 @@ import { useFetchIndex } from '../../common/containers/source'; import { EventsByDataset } from '../components/events_by_dataset'; import { EventCounts } from '../components/event_counts'; -import { OverviewEmpty } from '../components/overview_empty'; import { StatefulSidebar } from '../components/sidebar'; import { SignalsByCategory } from '../components/signals_by_category'; import { inputsSelectors } from '../../common/store'; @@ -34,6 +33,7 @@ import { useUserPrivileges } from '../../common/components/user_privileges'; import { RiskyHostLinks } from '../components/overview_risky_host_links'; import { useAlertsPrivileges } from '../../detections/containers/detection_engine/alerts/use_alerts_privileges'; import { useIsExperimentalFeatureEnabled } from '../../common/hooks/use_experimental_features'; +import { LandingPageComponent } from '../../common/components/landing_page'; const OverviewComponent = () => { const getGlobalFiltersQuerySelector = useMemo( @@ -173,7 +173,7 @@ const OverviewComponent = () => { ) : ( - + )} diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx b/x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx index 1330795841653..242767eac2432 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx @@ -22,12 +22,12 @@ import { useKibana } from '../../../../common/lib/kibana'; import { convertToBuildEsQuery } from '../../../../common/lib/keury'; import { inputsSelectors } from '../../../../common/store'; import { setAbsoluteRangeDatePicker } from '../../../../common/store/inputs/actions'; -import { OverviewEmpty } from '../../../../overview/components/overview_empty'; import { getEsQueryConfig } from '../../../../../../../../src/plugins/data/common'; import { useSourcererDataView } from '../../../../common/containers/sourcerer'; import { useNetworkDetails } from '../../../../network/containers/details'; import { networkModel } from '../../../../network/store'; import { useAnomaliesTableData } from '../../../../common/components/ml/anomaly/use_anomalies_table_data'; +import { LandingCards } from '../../../../common/components/landing_cards'; interface ExpandableNetworkProps { expandedNetwork: { ip: string; flowTarget: FlowTarget }; @@ -141,6 +141,6 @@ export const ExpandableNetworkDetails = ({ narrowDateRange={narrowDateRange} /> ) : ( - + ); }; diff --git a/x-pack/plugins/security_solution/public/timelines/pages/timelines_page.tsx b/x-pack/plugins/security_solution/public/timelines/pages/timelines_page.tsx index 6151316cc303d..bf402eb56c291 100644 --- a/x-pack/plugins/security_solution/public/timelines/pages/timelines_page.tsx +++ b/x-pack/plugins/security_solution/public/timelines/pages/timelines_page.tsx @@ -15,7 +15,6 @@ import { HeaderPage } from '../../common/components/header_page'; import { SecuritySolutionPageWrapper } from '../../common/components/page_wrapper'; import { useKibana } from '../../common/lib/kibana'; import { SpyRoute } from '../../common/utils/route/spy_routes'; -import { OverviewEmpty } from '../../overview/components/overview_empty'; import { StatefulOpenTimeline } from '../components/open_timeline'; import { NEW_TEMPLATE_TIMELINE } from '../components/timeline/properties/translations'; import { NewTemplateTimeline } from '../components/timeline/properties/new_template_timeline'; @@ -23,6 +22,7 @@ import { NewTimeline } from '../components/timeline/properties/helpers'; import * as i18n from './translations'; import { SecurityPageName } from '../../app/types'; import { useSourcererDataView } from '../../common/containers/sourcerer'; +import { LandingPageComponent } from '../../common/components/landing_page'; const TimelinesContainer = styled.div` width: 100%; @@ -92,9 +92,7 @@ export const TimelinesPageComponent: React.FC = () => { ) : ( - - - + )} diff --git a/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes.test.ts b/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes.test.ts index 5c6e10ae8f7ce..702d259f98615 100644 --- a/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes.test.ts +++ b/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes.test.ts @@ -15,6 +15,7 @@ import { MatrixHistogramType, NetworkKpiQueries, NetworkQueries, + UsersQueries, } from '../../../common/search_strategy'; /** Get the return type of createIndicesFromPrefix for TypeScript checks against expected */ @@ -75,11 +76,11 @@ describe('get_transform_changes', () => { test('it gets a transform change for authentications', () => { expect( getTransformChanges({ - factoryQueryType: HostsQueries.authentications, + factoryQueryType: UsersQueries.authentications, settings: getTransformConfigSchemaMock().settings[0], }) ).toEqual({ - factoryQueryType: HostsQueries.authenticationsEntities, + factoryQueryType: UsersQueries.authenticationsEntities, indices: ['.estc_all_user_ent*'], }); }); diff --git a/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes.ts b/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes.ts index 6e327457a683d..1a72c556490a5 100644 --- a/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes.ts +++ b/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes.ts @@ -9,6 +9,7 @@ import { getTransformChangesForHosts } from './get_transform_changes_for_hosts'; import { getTransformChangesForKpi } from './get_transform_changes_for_kpi'; import { getTransformChangesForMatrixHistogram } from './get_transform_changes_for_matrix_histogram'; import { getTransformChangesForNetwork } from './get_transform_changes_for_network'; +import { getTransformChangesForUsers } from './get_transform_changes_for_users'; import { GetTransformChanges } from './types'; export const getTransformChanges: GetTransformChanges = ({ @@ -26,6 +27,11 @@ export const getTransformChanges: GetTransformChanges = ({ return hostTransform; } + const userTransform = getTransformChangesForUsers({ factoryQueryType, settings }); + if (userTransform != null) { + return userTransform; + } + const networkTransform = getTransformChangesForNetwork({ factoryQueryType, settings, diff --git a/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_for_hosts.test.ts b/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_for_hosts.test.ts index e76c2ee2575ff..8223e3a9cd6e6 100644 --- a/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_for_hosts.test.ts +++ b/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_for_hosts.test.ts @@ -25,18 +25,6 @@ describe('get_transform_changes_for_host', () => { }); }); - test('it gets a transform change for authentications', () => { - expect( - getTransformChangesForHosts({ - factoryQueryType: HostsQueries.authentications, - settings: getTransformConfigSchemaMock().settings[0], - }) - ).toEqual({ - factoryQueryType: HostsQueries.authenticationsEntities, - indices: ['.estc_all_user_ent*'], - }); - }); - test('it returns an "undefined" for another value', () => { expect( getTransformChangesForHosts({ diff --git a/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_for_hosts.ts b/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_for_hosts.ts index 95a5e04bd9e51..265b2857d5397 100644 --- a/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_for_hosts.ts +++ b/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_for_hosts.ts @@ -30,15 +30,6 @@ export const getTransformChangesForHosts: GetTransformChanges = ({ factoryQueryType: HostsQueries.hostsEntities, }; } - case HostsQueries.authentications: { - return { - indices: createIndicesFromPrefix({ - prefix: settings.prefix, - transformIndices: ['user_ent*'], - }), - factoryQueryType: HostsQueries.authenticationsEntities, - }; - } default: { return undefined; } diff --git a/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_for_users.test.ts b/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_for_users.test.ts new file mode 100644 index 0000000000000..ae3690d72baba --- /dev/null +++ b/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_for_users.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 { UsersQueries } from '../../../common/search_strategy'; +import { getTransformChangesForUsers } from './get_transform_changes_for_users'; +import { getTransformConfigSchemaMock } from './transform_config_schema.mock'; + +/** Get the return type of getTransformChangesForUsers for TypeScript checks against expected */ +type ReturnTypeGetTransformChangesForUsers = ReturnType; + +describe('get_transform_changes_for_user', () => { + test('it gets a transform change for authentications', () => { + expect( + getTransformChangesForUsers({ + factoryQueryType: UsersQueries.authentications, + settings: getTransformConfigSchemaMock().settings[0], + }) + ).toEqual({ + factoryQueryType: UsersQueries.authenticationsEntities, + indices: ['.estc_all_user_ent*'], + }); + }); + + test('it returns an "undefined" for another value', () => { + expect( + getTransformChangesForUsers({ + factoryQueryType: UsersQueries.details, + settings: getTransformConfigSchemaMock().settings[0], + }) + ).toEqual(undefined); + }); +}); diff --git a/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_for_users.ts b/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_for_users.ts new file mode 100644 index 0000000000000..a91bc05bb7383 --- /dev/null +++ b/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_for_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 { UsersQueries } from '../../../common/search_strategy'; +import { createIndicesFromPrefix } from './create_indices_from_prefix'; +import { GetTransformChanges } from './types'; + +/** + * Given a factory query type this will return the transform changes such as the transform indices if it matches + * the correct type, otherwise it will return "undefined" + * @param factoryQueryType The query type to check if we have a transform for it and are capable of rendering one or not + * @param settings The settings configuration to get the prefix from + * @returns The transform type if we have one, otherwise undefined + */ +export const getTransformChangesForUsers: GetTransformChanges = ({ + factoryQueryType, + settings, +}) => { + switch (factoryQueryType) { + case UsersQueries.authentications: { + return { + indices: createIndicesFromPrefix({ + prefix: settings.prefix, + transformIndices: ['user_ent*'], + }), + factoryQueryType: UsersQueries.authenticationsEntities, + }; + } + default: { + return undefined; + } + } +}; diff --git a/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_if_they_exist.test.ts b/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_if_they_exist.test.ts index 7a4e11526d83e..19c9ba5596027 100644 --- a/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_if_they_exist.test.ts +++ b/x-pack/plugins/security_solution/public/transforms/utils/get_transform_changes_if_they_exist.test.ts @@ -35,7 +35,7 @@ describe('get_transform_changes_if_they_exist', () => { test('returns transformed settings if our settings is enabled', () => { expect( getTransformChangesIfTheyExist({ - factoryQueryType: HostsQueries.authentications, + factoryQueryType: HostsQueries.hosts, indices: ['auditbeat-*'], transformSettings: { ...getTransformConfigSchemaMock(), enabled: true }, // sets enabled to true filterQuery: undefined, @@ -47,15 +47,15 @@ describe('get_transform_changes_if_they_exist', () => { }, }) ).toMatchObject>({ - indices: ['.estc_all_user_ent*'], - factoryQueryType: HostsQueries.authenticationsEntities, + indices: ['.estc_all_host_ent*'], + factoryQueryType: HostsQueries.hostsEntities, }); }); test('returns regular settings if our settings is disabled', () => { expect( getTransformChangesIfTheyExist({ - factoryQueryType: HostsQueries.authentications, + factoryQueryType: HostsQueries.hosts, indices: ['auditbeat-*'], transformSettings: { ...getTransformConfigSchemaMock(), enabled: false }, // sets enabled to false filterQuery: undefined, @@ -68,7 +68,7 @@ describe('get_transform_changes_if_they_exist', () => { }) ).toMatchObject>({ indices: ['auditbeat-*'], - factoryQueryType: HostsQueries.authentications, + factoryQueryType: HostsQueries.hosts, }); }); }); @@ -77,7 +77,7 @@ describe('get_transform_changes_if_they_exist', () => { test('returns regular settings if filter is set to something other than match_all', () => { expect( getTransformChangesIfTheyExist({ - factoryQueryType: HostsQueries.authentications, + factoryQueryType: HostsQueries.hosts, indices: ['auditbeat-*'], transformSettings: getTransformConfigSchemaMock(), filterQuery: { @@ -97,14 +97,14 @@ describe('get_transform_changes_if_they_exist', () => { }) ).toMatchObject>({ indices: ['auditbeat-*'], - factoryQueryType: HostsQueries.authentications, + factoryQueryType: HostsQueries.hosts, }); }); test('returns transformed settings if filter is set to something such as match_all', () => { expect( getTransformChangesIfTheyExist({ - factoryQueryType: HostsQueries.authentications, + factoryQueryType: HostsQueries.hosts, indices: ['auditbeat-*'], transformSettings: getTransformConfigSchemaMock(), filterQuery: { @@ -123,15 +123,15 @@ describe('get_transform_changes_if_they_exist', () => { }, }) ).toMatchObject>({ - indices: ['.estc_all_user_ent*'], - factoryQueryType: HostsQueries.authenticationsEntities, + indices: ['.estc_all_host_ent*'], + factoryQueryType: HostsQueries.hostsEntities, }); }); test('returns transformed settings if filter is set to undefined', () => { expect( getTransformChangesIfTheyExist({ - factoryQueryType: HostsQueries.authentications, + factoryQueryType: HostsQueries.hosts, indices: ['auditbeat-*'], transformSettings: getTransformConfigSchemaMock(), filterQuery: undefined, // undefined should return transform @@ -143,8 +143,8 @@ describe('get_transform_changes_if_they_exist', () => { }, }) ).toMatchObject>({ - indices: ['.estc_all_user_ent*'], - factoryQueryType: HostsQueries.authenticationsEntities, + indices: ['.estc_all_host_ent*'], + factoryQueryType: HostsQueries.hostsEntities, }); }); }); @@ -153,7 +153,7 @@ describe('get_transform_changes_if_they_exist', () => { test('returns regular settings if timerange is less than an hour', () => { expect( getTransformChangesIfTheyExist({ - factoryQueryType: HostsQueries.authentications, + factoryQueryType: HostsQueries.hosts, indices: ['auditbeat-*'], transformSettings: getTransformConfigSchemaMock(), filterQuery: undefined, @@ -166,14 +166,14 @@ describe('get_transform_changes_if_they_exist', () => { }) ).toMatchObject>({ indices: ['auditbeat-*'], - factoryQueryType: HostsQueries.authentications, + factoryQueryType: HostsQueries.hosts, }); }); test('returns regular settings if timerange is invalid', () => { expect( getTransformChangesIfTheyExist({ - factoryQueryType: HostsQueries.authentications, + factoryQueryType: HostsQueries.hosts, indices: ['auditbeat-*'], transformSettings: getTransformConfigSchemaMock(), filterQuery: undefined, @@ -186,14 +186,14 @@ describe('get_transform_changes_if_they_exist', () => { }) ).toMatchObject>({ indices: ['auditbeat-*'], - factoryQueryType: HostsQueries.authentications, + factoryQueryType: HostsQueries.hosts, }); }); test('returns transformed settings if timerange is greater than an hour', () => { expect( getTransformChangesIfTheyExist({ - factoryQueryType: HostsQueries.authentications, + factoryQueryType: HostsQueries.hosts, indices: ['auditbeat-*'], transformSettings: getTransformConfigSchemaMock(), filterQuery: undefined, @@ -205,8 +205,8 @@ describe('get_transform_changes_if_they_exist', () => { }, }) ).toMatchObject>({ - indices: ['.estc_all_user_ent*'], - factoryQueryType: HostsQueries.authenticationsEntities, + indices: ['.estc_all_host_ent*'], + factoryQueryType: HostsQueries.hostsEntities, }); }); }); @@ -215,7 +215,7 @@ describe('get_transform_changes_if_they_exist', () => { test('it returns regular settings if settings do not match', () => { expect( getTransformChangesIfTheyExist({ - factoryQueryType: HostsQueries.authentications, + factoryQueryType: HostsQueries.hosts, indices: ['should-not-match-*'], // index doesn't match anything transformSettings: getTransformConfigSchemaMock(), filterQuery: undefined, @@ -228,14 +228,14 @@ describe('get_transform_changes_if_they_exist', () => { }) ).toMatchObject>({ indices: ['should-not-match-*'], - factoryQueryType: HostsQueries.authentications, + factoryQueryType: HostsQueries.hosts, }); }); test('it returns transformed settings if settings do match', () => { expect( getTransformChangesIfTheyExist({ - factoryQueryType: HostsQueries.authentications, + factoryQueryType: HostsQueries.hosts, indices: [ 'auditbeat-*', 'endgame-*', @@ -255,8 +255,8 @@ describe('get_transform_changes_if_they_exist', () => { }, }) ).toMatchObject>({ - indices: ['.estc_all_user_ent*'], - factoryQueryType: HostsQueries.authenticationsEntities, + indices: ['.estc_all_host_ent*'], + factoryQueryType: HostsQueries.hostsEntities, }); }); }); diff --git a/x-pack/plugins/security_solution/public/users/pages/details/index.tsx b/x-pack/plugins/security_solution/public/users/pages/details/index.tsx index 36ace6a6b4543..3dfe67de92c81 100644 --- a/x-pack/plugins/security_solution/public/users/pages/details/index.tsx +++ b/x-pack/plugins/security_solution/public/users/pages/details/index.tsx @@ -26,7 +26,6 @@ import { setAbsoluteRangeDatePicker } from '../../../common/store/inputs/actions import { SpyRoute } from '../../../common/utils/route/spy_routes'; import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; -import { OverviewEmpty } from '../../../overview/components/overview_empty'; import { UsersDetailsTabs } from './details_tabs'; import { navTabsUsersDetails } from './nav_tabs'; import { UsersDetailsProps } from './types'; @@ -52,6 +51,7 @@ import { getCriteriaFromUsersType } from '../../../common/components/ml/criteria import { UsersType } from '../../store/model'; import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; import { useMlCapabilities } from '../../../common/components/ml/hooks/use_ml_capabilities'; +import { LandingPageComponent } from '../../../common/components/landing_page'; const QUERY_ID = 'UsersDetailsQueryId'; const UsersDetailsComponent: React.FC = ({ @@ -194,11 +194,7 @@ const UsersDetailsComponent: React.FC = ({ ) : ( - - - - - + )} diff --git a/x-pack/plugins/security_solution/public/users/pages/index.tsx b/x-pack/plugins/security_solution/public/users/pages/index.tsx index f1f4e545ae9fd..0449ab59688fa 100644 --- a/x-pack/plugins/security_solution/public/users/pages/index.tsx +++ b/x-pack/plugins/security_solution/public/users/pages/index.tsx @@ -31,7 +31,12 @@ export const UsersContainer = React.memo(() => { match: { params: { detailName }, }, - }) => } + }) => ( + + )} /> { - const { toggleStatus } = useQueryToggle(ID); - const [querySkip, setQuerySkip] = useState(skip || !toggleStatus); - useEffect(() => { - setQuerySkip(skip || !toggleStatus); - }, [skip, toggleStatus]); - - const [ - loading, - { authentications, totalCount, pageInfo, loadPage, id, inspect, isInspected, refetch }, - ] = useAuthentications({ - docValueFields, - endDate, - filterQuery, - indexNames, - skip: querySkip, - startDate, - // TODO Move authentication table and hook store to 'public/common' folder when 'usersEnabled' FF is removed - // @ts-ignore - type, - deleteQuery, - }); return ( - ); }; diff --git a/x-pack/plugins/security_solution/public/users/pages/users.tsx b/x-pack/plugins/security_solution/public/users/pages/users.tsx index 6acd2ddf32a3c..ae5b485142f9c 100644 --- a/x-pack/plugins/security_solution/public/users/pages/users.tsx +++ b/x-pack/plugins/security_solution/public/users/pages/users.tsx @@ -29,7 +29,6 @@ import { setAbsoluteRangeDatePicker } from '../../common/store/inputs/actions'; import { SpyRoute } from '../../common/utils/route/spy_routes'; import { getEsQueryConfig } from '../../../../../../src/plugins/data/common'; -import { OverviewEmpty } from '../../overview/components/overview_empty'; import { UsersTabs } from './users_tabs'; import { navTabsUsers } from './nav_tabs'; import * as i18n from './translations'; @@ -49,6 +48,7 @@ import { UsersTableType } from '../store/model'; import { hasMlUserPermissions } from '../../../common/machine_learning/has_ml_user_permissions'; import { useMlCapabilities } from '../../common/components/ml/hooks/use_ml_capabilities'; import { useIsExperimentalFeatureEnabled } from '../../common/hooks/use_experimental_features'; +import { LandingPageComponent } from '../../common/components/landing_page'; const ID = 'UsersQueryId'; @@ -220,11 +220,7 @@ const UsersComponent = () => { ) : ( - - - - - + )} diff --git a/x-pack/plugins/security_solution/public/users/pages/users_tabs.test.tsx b/x-pack/plugins/security_solution/public/users/pages/users_tabs.test.tsx index e3807f359a0ff..c3ffdc646966f 100644 --- a/x-pack/plugins/security_solution/public/users/pages/users_tabs.test.tsx +++ b/x-pack/plugins/security_solution/public/users/pages/users_tabs.test.tsx @@ -15,8 +15,7 @@ import { SecuritySolutionTabNavigation } from '../../common/components/navigatio import { Users } from './users'; import { useSourcererDataView } from '../../common/containers/sourcerer'; import { mockCasesContext } from '../../../../cases/public/mocks/mock_cases_context'; -import { APP_UI_ID, SecurityPageName } from '../../../common/constants'; -import { getAppLandingUrl } from '../../common/components/link_to/redirect_to_overview'; +import { LandingPageComponent } from '../../common/components/landing_page'; jest.mock('../../common/containers/sourcerer'); jest.mock('../../common/components/search_bar', () => ({ @@ -73,22 +72,20 @@ const mockHistory = { }; const mockUseSourcererDataView = useSourcererDataView as jest.Mock; describe('Users - rendering', () => { - test('it renders the Setup Instructions text when no index is available', async () => { + test('it renders getting started page when no index is available', async () => { mockUseSourcererDataView.mockReturnValue({ indicesExist: false, }); - mount( + const wrapper = mount( ); - expect(mockNavigateToApp).toHaveBeenCalledWith(APP_UI_ID, { - deepLinkId: SecurityPageName.landing, - path: getAppLandingUrl(), - }); + + expect(wrapper.find(LandingPageComponent).exists()).toBe(true); }); test('it should render tab navigation', async () => { diff --git a/x-pack/plugins/security_solution/public/users/store/selectors.ts b/x-pack/plugins/security_solution/public/users/store/selectors.ts index bdeacef2bf774..1ccedf3b5da20 100644 --- a/x-pack/plugins/security_solution/public/users/store/selectors.ts +++ b/x-pack/plugins/security_solution/public/users/store/selectors.ts @@ -21,3 +21,6 @@ export const userRiskScoreSelector = () => export const usersRiskScoreSeverityFilterSelector = () => createSelector(selectUserPage, (users) => users.queries[UsersTableType.risk].severitySelection); + +export const authenticationsSelector = () => + createSelector(selectUserPage, (users) => users.queries[UsersTableType.authentications]); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/migrations/create_migration_index.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/migrations/create_migration_index.ts index 0c3da2a114595..b1f1ecf85746a 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/migrations/create_migration_index.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/migrations/create_migration_index.ts @@ -37,8 +37,8 @@ export const createMigrationIndex = async ({ body: { settings: { index: { + // @ts-expect-error `name` is required on IndicesIndexSettingsLifecycle lifecycle: { - // @ts-expect-error typings don't contain the property yet indexing_complete: true, }, }, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_create_notifications.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_create_notifications.ts index 13e4b405ca26b..f28dd8b45b035 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_create_notifications.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_create_notifications.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { SanitizedAlert } from '../../../../../alerting/common'; +import { SanitizedRule } from '../../../../../alerting/common'; import { SERVER_APP_ID, LEGACY_NOTIFICATIONS_ID } from '../../../../common/constants'; // eslint-disable-next-line no-restricted-imports import { CreateNotificationParams, LegacyRuleNotificationAlertTypeParams } from './legacy_types'; @@ -22,7 +22,7 @@ export const legacyCreateNotifications = async ({ ruleAlertId, interval, name, -}: CreateNotificationParams): Promise> => +}: CreateNotificationParams): Promise> => rulesClient.create({ data: { name, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_find_notifications.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_find_notifications.ts index 51584879a4bd9..a7fa01226f008 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_find_notifications.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_find_notifications.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { AlertTypeParams, FindResult } from '../../../../../alerting/server'; +import { RuleTypeParams, FindResult } from '../../../../../alerting/server'; import { LEGACY_NOTIFICATIONS_ID } from '../../../../common/constants'; // eslint-disable-next-line no-restricted-imports import { LegacyFindNotificationParams } from './legacy_types'; @@ -32,7 +32,7 @@ export const legacyFindNotifications = async ({ filter, sortField, sortOrder, -}: LegacyFindNotificationParams): Promise> => +}: LegacyFindNotificationParams): Promise> => rulesClient.find({ options: { fields, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_read_notifications.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_read_notifications.ts index 9e2fb9515bb82..f6c6f0f982660 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_read_notifications.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_read_notifications.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { AlertTypeParams, SanitizedAlert } from '../../../../../alerting/common'; +import { RuleTypeParams, SanitizedRule } from '../../../../../alerting/common'; // eslint-disable-next-line no-restricted-imports import { LegacyReadNotificationParams, legacyIsAlertType } from './legacy_types'; // eslint-disable-next-line no-restricted-imports @@ -19,7 +19,7 @@ export const legacyReadNotifications = async ({ rulesClient, id, ruleAlertId, -}: LegacyReadNotificationParams): Promise | null> => { +}: LegacyReadNotificationParams): Promise | null> => { if (id != null) { try { const notification = await rulesClient.get({ id }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_rules_notification_alert_type.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_rules_notification_alert_type.test.ts index 20aac86a336e0..c49e6d060c7c0 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_rules_notification_alert_type.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_rules_notification_alert_type.test.ts @@ -10,7 +10,7 @@ import { getAlertMock } from '../routes/__mocks__/request_responses'; // eslint-disable-next-line no-restricted-imports import { legacyRulesNotificationAlertType } from './legacy_rules_notification_alert_type'; import { buildSignalsSearchQuery } from './build_signals_query'; -import { alertsMock, AlertServicesMock } from '../../../../../alerting/server/mocks'; +import { alertsMock, RuleExecutorServicesMock } from '../../../../../alerting/server/mocks'; // eslint-disable-next-line no-restricted-imports import { LegacyNotificationExecutorOptions } from './legacy_types'; import { @@ -30,10 +30,10 @@ describe('legacyRules_notification_alert_type', () => { let payload: LegacyNotificationExecutorOptions; let alert: ReturnType; let logger: ReturnType; - let alertServices: AlertServicesMock; + let alertServices: RuleExecutorServicesMock; beforeEach(() => { - alertServices = alertsMock.createAlertServices(); + alertServices = alertsMock.createRuleExecutorServices(); logger = loggingSystemMock.createLogger(); payload = { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_types.ts index 225ac707b1f2d..44cca599a0468 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/legacy_types.ts @@ -9,28 +9,28 @@ import { schema, TypeOf } from '@kbn/config-schema'; import { RulesClient, - PartialAlert, + PartialRule, RuleType, - AlertTypeParams, - AlertTypeState, + RuleTypeParams, + RuleTypeState, AlertInstanceState, AlertInstanceContext, - AlertExecutorOptions, + RuleExecutorOptions, } from '../../../../../alerting/server'; -import { Alert, AlertAction } from '../../../../../alerting/common'; +import { Rule, RuleAction } from '../../../../../alerting/common'; import { LEGACY_NOTIFICATIONS_ID } from '../../../../common/constants'; /** * @deprecated Once we are confident all rules relying on side-car actions SO's have been migrated to SO references we should remove this function */ -export interface LegacyRuleNotificationAlertTypeParams extends AlertTypeParams { +export interface LegacyRuleNotificationAlertTypeParams extends RuleTypeParams { ruleAlertId: string; } /** * @deprecated Once we are confident all rules relying on side-car actions SO's have been migrated to SO references we should remove this function */ -export type LegacyRuleNotificationAlertType = Alert; +export type LegacyRuleNotificationAlertType = Rule; /** * @deprecated Once we are confident all rules relying on side-car actions SO's have been migrated to SO references we should remove this function @@ -56,7 +56,7 @@ export interface LegacyClients { * @deprecated Once we are confident all rules relying on side-car actions SO's have been migrated to SO references we should remove this function */ export interface LegacyNotificationAlertParams { - actions: AlertAction[]; + actions: RuleAction[]; enabled: boolean; ruleAlertId: string; interval: string; @@ -81,7 +81,7 @@ export interface LegacyReadNotificationParams { * @deprecated Once we are confident all rules relying on side-car actions SO's have been migrated to SO references we should remove this function */ export const legacyIsAlertType = ( - partialAlert: PartialAlert + partialAlert: PartialRule ): partialAlert is LegacyRuleNotificationAlertType => { return partialAlert.alertTypeId === LEGACY_NOTIFICATIONS_ID; }; @@ -89,9 +89,9 @@ export const legacyIsAlertType = ( /** * @deprecated Once we are confident all rules relying on side-car actions SO's have been migrated to SO references we should remove this function */ -export type LegacyNotificationExecutorOptions = AlertExecutorOptions< +export type LegacyNotificationExecutorOptions = RuleExecutorOptions< LegacyRuleNotificationAlertTypeParams, - AlertTypeState, + RuleTypeState, AlertInstanceState, AlertInstanceContext >; @@ -106,7 +106,7 @@ export const legacyIsNotificationAlertExecutor = ( ): obj is RuleType< LegacyRuleNotificationAlertTypeParams, LegacyRuleNotificationAlertTypeParams, - AlertTypeState, + RuleTypeState, AlertInstanceState, AlertInstanceContext > => { @@ -120,7 +120,7 @@ export type LegacyNotificationAlertTypeDefinition = Omit< RuleType< LegacyRuleNotificationAlertTypeParams, LegacyRuleNotificationAlertTypeParams, - AlertTypeState, + RuleTypeState, AlertInstanceState, AlertInstanceContext, 'default' @@ -131,7 +131,7 @@ export type LegacyNotificationAlertTypeDefinition = Omit< services, params, state, - }: LegacyNotificationExecutorOptions) => Promise; + }: LegacyNotificationExecutorOptions) => Promise; }; /** diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/schedule_notification_actions.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/schedule_notification_actions.test.ts index eebda81fd63f0..a10f4a59c7359 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/schedule_notification_actions.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/notifications/schedule_notification_actions.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { AlertServicesMock, alertsMock } from '../../../../../alerting/server/mocks'; +import { RuleExecutorServicesMock, alertsMock } from '../../../../../alerting/server/mocks'; import { sampleThresholdAlert } from '../rule_types/__mocks__/threshold'; import { NotificationRuleTypeParams, @@ -13,7 +13,7 @@ import { } from './schedule_notification_actions'; describe('schedule_notification_actions', () => { - const alertServices: AlertServicesMock = alertsMock.createAlertServices(); + const alertServices: RuleExecutorServicesMock = alertsMock.createRuleExecutorServices(); const alertId = 'fb30ddd1-5edc-43e2-9afb-3bcd970b78ee'; const notificationRuleParams: NotificationRuleTypeParams = { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_responses.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_responses.ts index 0c9418657a4eb..09e7dc543019f 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_responses.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_responses.ts @@ -35,7 +35,7 @@ import { getFinalizeSignalsMigrationSchemaMock } from '../../../../../common/det import { EqlSearchResponse } from '../../../../../common/detection_engine/types'; import { getSignalsMigrationStatusSchemaMock } from '../../../../../common/detection_engine/schemas/request/get_signals_migration_status_schema.mock'; import { RuleParams } from '../../schemas/rule_schemas'; -import { SanitizedAlert, ResolvedSanitizedRule } from '../../../../../../alerting/common'; +import { SanitizedRule, ResolvedSanitizedRule } from '../../../../../../alerting/common'; import { getQueryRuleParams } from '../../schemas/rule_schemas.mock'; import { getPerformBulkActionSchemaMock, @@ -391,7 +391,7 @@ export const nonRuleAlert = (isRuleRegistryEnabled: boolean) => ({ export const getAlertMock = ( isRuleRegistryEnabled: boolean, params: T -): SanitizedAlert => ({ +): SanitizedRule => ({ id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', name: 'Detect Root/Admin Users', tags: [`${INTERNAL_RULE_ID_KEY}:rule-1`, `${INTERNAL_IMMUTABLE_KEY}:false`], diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/perform_bulk_action_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/perform_bulk_action_route.ts index 4c4eee366ab84..94294192531f8 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/perform_bulk_action_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/perform_bulk_action_route.ts @@ -14,7 +14,7 @@ import { SavedObjectsClientContract } from 'kibana/server'; import { RuleAlertType } from '../../rules/types'; import type { RulesClient } from '../../../../../../alerting/server'; -import { SanitizedAlert } from '../../../../../../alerting/common'; +import { SanitizedRule } from '../../../../../../alerting/common'; import { DETECTION_ENGINE_RULES_BULK_ACTION, @@ -211,7 +211,7 @@ export const migrateRuleActions = async ({ rulesClient: RulesClient; savedObjectsClient: SavedObjectsClientContract; rule: RuleAlertType; -}): Promise> => { +}): Promise> => { const migratedRule = await legacyMigrate({ rulesClient, savedObjectsClient, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/preview_rules_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/preview_rules_route.ts index 3deb87e864f25..5e7e0504c99ed 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/preview_rules_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/preview_rules_route.ts @@ -7,7 +7,9 @@ import moment from 'moment'; import uuid from 'uuid'; import { transformError } from '@kbn/securitysolution-es-utils'; +import type { StartServicesAccessor } from 'kibana/server'; import { IRuleDataClient } from '../../../../../../rule_registry/server'; +import type { StartPlugins } from '../../../../plugin'; import { buildSiemResponse } from '../utils'; import { convertCreateAPIToInternalSchema } from '../../schemas/rule_converters'; import { RuleParams } from '../../schemas/rule_schemas'; @@ -30,7 +32,7 @@ import { RuleExecutionStatus } from '../../../../../common/detection_engine/sche import { AlertInstanceContext, AlertInstanceState, - AlertTypeState, + RuleTypeState, parseDuration, } from '../../../../../../alerting/common'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths @@ -59,7 +61,8 @@ export const previewRulesRoute = async ( security: SetupPlugins['security'], ruleOptions: CreateRuleOptions, securityRuleTypeOptions: CreateSecurityRuleTypeWrapperProps, - previewRuleDataClient: IRuleDataClient + previewRuleDataClient: IRuleDataClient, + getStartServices: StartServicesAccessor ) => { router.post( { @@ -78,6 +81,8 @@ export const previewRulesRoute = async ( return siemResponse.error({ statusCode: 400, body: validationErrors }); } try { + const [, { data }] = await getStartServices(); + const searchSourceClient = data.search.searchSource.asScoped(request); const savedObjectsClient = context.core.savedObjects.client; const siemClient = context.securitySolution.getAppClient(); @@ -124,7 +129,7 @@ export const previewRulesRoute = async ( const runExecutors = async < TParams extends RuleParams, - TState extends AlertTypeState, + TState extends RuleTypeState, TInstanceState extends AlertInstanceState, TInstanceContext extends AlertInstanceContext, TActionGroupIds extends string = '' @@ -203,6 +208,7 @@ export const previewRulesRoute = async ( abortController, scopedClusterClient: context.core.elasticsearch.client, }), + searchSourceClient, uiSettingsClient: context.core.uiSettings.client, }, spaceId, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils.test.ts index 0ca665bb10584..04823606faf3e 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils.test.ts @@ -27,7 +27,7 @@ import { INTERNAL_IDENTIFIER } from '../../../../../common/constants'; import { PartialFilter } from '../../types'; import { BulkError, createBulkErrorObject } from '../utils'; import { getOutputRuleAlertForRest } from '../__mocks__/utils'; -import { PartialAlert } from '../../../../../../alerting/server'; +import { PartialRule } from '../../../../../../alerting/server'; import { createRulesAndExceptionsStreamFromNdJson } from '../../rules/create_rules_stream_from_ndjson'; import { RuleAlertType } from '../../rules/types'; import { ImportRulesSchemaDecoded } from '../../../../../common/detection_engine/schemas/request/import_rules_schema'; @@ -383,7 +383,7 @@ describe.each([ }); test('returns 500 if the data is not of type siem alert', () => { - const unsafeCast = { data: [{ random: 1 }] } as unknown as PartialAlert; + const unsafeCast = { data: [{ random: 1 }] } as unknown as PartialRule; const output = transform(unsafeCast, undefined, isRuleRegistryEnabled); expect(output).toBeNull(); }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils.ts index da07f5ae1a23a..bd74e83f5a664 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils.ts @@ -15,7 +15,7 @@ import { RuleExecutionSummary } from '../../../../../common/detection_engine/sch import { RulesSchema } from '../../../../../common/detection_engine/schemas/response/rules_schema'; import { ImportRulesSchemaDecoded } from '../../../../../common/detection_engine/schemas/request/import_rules_schema'; import { CreateRulesBulkSchema } from '../../../../../common/detection_engine/schemas/request/create_rules_bulk_schema'; -import { PartialAlert, FindResult } from '../../../../../../alerting/server'; +import { PartialRule, FindResult } from '../../../../../../alerting/server'; import { ActionsClient, FindActionResult } from '../../../../../../actions/server'; import { INTERNAL_IDENTIFIER } from '../../../../../common/constants'; import { RuleAlertType, isAlertType } from '../../rules/types'; @@ -121,7 +121,7 @@ export const transformFindAlerts = ( }; export const transform = ( - rule: PartialAlert, + rule: PartialRule, ruleExecutionSummary?: RuleExecutionSummary | null, isRuleRegistryEnabled?: boolean, legacyRuleActions?: LegacyRulesActionsSavedObject | null diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/validate.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/validate.ts index e743e26e8da3f..293f73b9dcd05 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/validate.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/validate.ts @@ -16,7 +16,7 @@ import { RulesSchema, rulesSchema, } from '../../../../../common/detection_engine/schemas/response/rules_schema'; -import { PartialAlert } from '../../../../../../alerting/server'; +import { PartialRule } from '../../../../../../alerting/server'; import { isAlertType } from '../../rules/types'; import { createBulkErrorObject, BulkError } from '../utils'; import { transform } from './utils'; @@ -26,7 +26,7 @@ import { LegacyRulesActionsSavedObject } from '../../rule_actions/legacy_get_rul import { internalRuleToAPIResponse } from '../../schemas/rule_converters'; export const transformValidate = ( - rule: PartialAlert, + rule: PartialRule, ruleExecutionSummary: RuleExecutionSummary | null, isRuleRegistryEnabled?: boolean, legacyRuleActions?: LegacyRulesActionsSavedObject | null @@ -45,7 +45,7 @@ export const transformValidate = ( }; export const newTransformValidate = ( - rule: PartialAlert, + rule: PartialRule, ruleExecutionSummary: RuleExecutionSummary | null, isRuleRegistryEnabled?: boolean, legacyRuleActions?: LegacyRulesActionsSavedObject | null @@ -65,7 +65,7 @@ export const newTransformValidate = ( export const transformValidateBulkError = ( ruleId: string, - rule: PartialAlert, + rule: PartialRule, ruleExecutionSummary: RuleExecutionSummary | null, isRuleRegistryEnabled?: boolean ): RulesSchema | BulkError => { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_create_rule_actions_saved_object.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_create_rule_actions_saved_object.ts index df27a5bcc280d..55e3ae3b346bc 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_create_rule_actions_saved_object.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_create_rule_actions_saved_object.ts @@ -6,7 +6,7 @@ */ import { SavedObjectReference } from 'kibana/server'; -import { AlertServices } from '../../../../../alerting/server'; +import { RuleExecutorServices } from '../../../../../alerting/server'; // eslint-disable-next-line no-restricted-imports import { legacyRuleActionsSavedObjectType } from './legacy_saved_object_mappings'; // eslint-disable-next-line no-restricted-imports @@ -18,15 +18,15 @@ import { legacyGetThrottleOptions, legacyTransformActionToReference, } from './legacy_utils'; -import { AlertAction } from '../../../../../alerting/common'; +import { RuleAction } from '../../../../../alerting/common'; /** * @deprecated Once we are confident all rules relying on side-car actions SO's have been migrated to SO references we should remove this function */ interface LegacyCreateRuleActionsSavedObject { ruleAlertId: string; - savedObjectsClient: AlertServices['savedObjectsClient']; - actions: AlertAction[] | undefined; + savedObjectsClient: RuleExecutorServices['savedObjectsClient']; + actions: RuleAction[] | undefined; throttle: string | null | undefined; } diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_get_bulk_rule_actions_saved_object.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_get_bulk_rule_actions_saved_object.ts index feaaa7f3e6c08..df135e9c1c8ef 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_get_bulk_rule_actions_saved_object.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_get_bulk_rule_actions_saved_object.ts @@ -9,7 +9,7 @@ import { chunk } from 'lodash'; import { SavedObjectsFindOptionsReference } from 'kibana/server'; import { Logger } from 'src/core/server'; -import { AlertServices } from '../../../../../alerting/server'; +import { RuleExecutorServices } from '../../../../../alerting/server'; // eslint-disable-next-line no-restricted-imports import { legacyRuleActionsSavedObjectType } from './legacy_saved_object_mappings'; // eslint-disable-next-line no-restricted-imports @@ -25,7 +25,7 @@ import { initPromisePool } from '../../../utils/promise_pool'; */ interface LegacyGetBulkRuleActionsSavedObject { alertIds: string[]; - savedObjectsClient: AlertServices['savedObjectsClient']; + savedObjectsClient: RuleExecutorServices['savedObjectsClient']; logger: Logger; } diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_get_rule_actions_saved_object.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_get_rule_actions_saved_object.ts index d972c6535b3b6..de47e127daa73 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_get_rule_actions_saved_object.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_get_rule_actions_saved_object.ts @@ -7,7 +7,7 @@ import { SavedObjectsFindOptionsReference } from 'kibana/server'; import { Logger } from 'src/core/server'; -import { AlertServices } from '../../../../../alerting/server'; +import { RuleExecutorServices } from '../../../../../alerting/server'; // eslint-disable-next-line no-restricted-imports import { legacyRuleActionsSavedObjectType } from './legacy_saved_object_mappings'; @@ -24,7 +24,7 @@ import { legacyGetRuleActionsFromSavedObject } from './legacy_utils'; */ interface LegacyGetRuleActionsSavedObject { ruleAlertId: string; - savedObjectsClient: AlertServices['savedObjectsClient']; + savedObjectsClient: RuleExecutorServices['savedObjectsClient']; logger: Logger; } diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_types.ts index 36f81709b293f..475f17b8b58a3 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_types.ts @@ -6,7 +6,7 @@ */ import { SavedObjectAttributes } from 'kibana/server'; -import { AlertActionParams } from '../../../../../alerting/common'; +import { RuleActionParams } from '../../../../../alerting/common'; /** * This was the pre-7.16 version of LegacyRuleAlertAction and how it was stored on disk pre-7.16. @@ -16,7 +16,7 @@ import { AlertActionParams } from '../../../../../alerting/common'; export interface LegacyRuleAlertAction { group: string; id: string; - params: AlertActionParams; + params: RuleActionParams; action_type_id: string; } @@ -26,7 +26,7 @@ export interface LegacyRuleAlertAction { */ export interface LegacyRuleAlertSavedObjectAction { group: string; - params: AlertActionParams; + params: RuleActionParams; action_type_id: string; actionRef: string; } diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_update_or_create_rule_actions_saved_object.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_update_or_create_rule_actions_saved_object.ts index d56d4ff921bd3..f700f78fd41b6 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_update_or_create_rule_actions_saved_object.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_update_or_create_rule_actions_saved_object.ts @@ -6,8 +6,8 @@ */ import { Logger } from 'src/core/server'; -import { AlertAction } from '../../../../../alerting/common'; -import { AlertServices } from '../../../../../alerting/server'; +import { RuleAction } from '../../../../../alerting/common'; +import { RuleExecutorServices } from '../../../../../alerting/server'; // eslint-disable-next-line no-restricted-imports import { legacyGetRuleActionsSavedObject } from './legacy_get_rule_actions_saved_object'; @@ -21,8 +21,8 @@ import { legacyUpdateRuleActionsSavedObject } from './legacy_update_rule_actions */ interface LegacyUpdateOrCreateRuleActionsSavedObject { ruleAlertId: string; - savedObjectsClient: AlertServices['savedObjectsClient']; - actions: AlertAction[] | undefined; + savedObjectsClient: RuleExecutorServices['savedObjectsClient']; + actions: RuleAction[] | undefined; throttle: string | null | undefined; logger: Logger; } diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_update_rule_actions_saved_object.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_update_rule_actions_saved_object.ts index fbbbda24e48be..feb6895b87a2f 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_update_rule_actions_saved_object.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_update_rule_actions_saved_object.ts @@ -6,7 +6,7 @@ */ import { SavedObjectReference } from 'kibana/server'; -import { AlertServices } from '../../../../../alerting/server'; +import { RuleExecutorServices } from '../../../../../alerting/server'; // eslint-disable-next-line no-restricted-imports import { legacyRuleActionsSavedObjectType } from './legacy_saved_object_mappings'; // eslint-disable-next-line no-restricted-imports @@ -21,15 +21,15 @@ import { } from './legacy_utils'; // eslint-disable-next-line no-restricted-imports import { LegacyIRuleActionsAttributesSavedObjectAttributes } from './legacy_types'; -import { AlertAction } from '../../../../../alerting/common'; +import { RuleAction } from '../../../../../alerting/common'; /** * @deprecated Once we are confident all rules relying on side-car actions SO's have been migrated to SO references we should remove this function */ interface LegacyUpdateRuleActionsSavedObject { ruleAlertId: string; - savedObjectsClient: AlertServices['savedObjectsClient']; - actions: AlertAction[] | undefined; + savedObjectsClient: RuleExecutorServices['savedObjectsClient']; + actions: RuleAction[] | undefined; throttle: string | null | undefined; ruleActions: LegacyRulesActionsSavedObject; } diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_utils.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_utils.test.ts index 448548e96884b..0d5e4e704d7ff 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_utils.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_utils.test.ts @@ -8,7 +8,7 @@ import { SavedObjectsUpdateResponse } from 'kibana/server'; import { loggingSystemMock } from 'src/core/server/mocks'; -import { AlertAction } from '../../../../../alerting/common'; +import { RuleAction } from '../../../../../alerting/common'; // eslint-disable-next-line no-restricted-imports import { legacyRuleActionsSavedObjectType } from './legacy_saved_object_mappings'; @@ -343,7 +343,7 @@ describe('legacy_utils', () => { describe('legacyTransformActionToReference', () => { type FuncReturn = ReturnType; - const alertAction: AlertAction = { + const alertAction: RuleAction = { id: '123', group: 'group_1', params: { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_utils.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_utils.ts index 78f6c7419ae66..b84550d56dbd5 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_utils.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_utils.ts @@ -8,7 +8,7 @@ import { SavedObjectsUpdateResponse } from 'kibana/server'; import { Logger } from 'src/core/server'; -import { AlertAction } from '../../../../../alerting/common'; +import { RuleAction } from '../../../../../alerting/common'; // eslint-disable-next-line no-restricted-imports import { @@ -112,7 +112,7 @@ export const legacyGetActionReference = (id: string, index: number) => ({ * @deprecated Once we are confident all rules relying on side-car actions SO's have been migrated to SO references we should remove this function */ export const legacyTransformActionToReference = ( - alertAction: AlertAction, + alertAction: RuleAction, index: number ): LegacyRuleAlertSavedObjectAction => ({ actionRef: `action_${index}`, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/types.ts index 2537f7eeeaf72..fdcddd52d5c66 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/types.ts @@ -10,11 +10,11 @@ import { Moment } from 'moment'; import { Logger } from '@kbn/logging'; import { ExceptionListItemSchema } from '@kbn/securitysolution-io-ts-list-types'; -import { AlertExecutorOptions, RuleType } from '../../../../../alerting/server'; +import { RuleExecutorOptions, RuleType } from '../../../../../alerting/server'; import { AlertInstanceContext, AlertInstanceState, - AlertTypeState, + RuleTypeState, WithoutReservedActionGroups, } from '../../../../../alerting/common'; import { ListClient } from '../../../../../lists/server'; @@ -34,7 +34,7 @@ import { IEventLogService } from '../../../../../event_log/server'; import { ITelemetryEventsSender } from '../../telemetry/sender'; import { RuleExecutionLogForExecutorsFactory } from '../rule_execution_log'; -export interface SecurityAlertTypeReturnValue { +export interface SecurityAlertTypeReturnValue { bulkCreateTimes: string[]; createdSignalsCount: number; createdSignals: unknown[]; @@ -65,7 +65,7 @@ export interface RunOpts { export type SecurityAlertType< TParams extends RuleParams, - TState extends AlertTypeState, + TState extends RuleTypeState, TInstanceContext extends AlertInstanceContext = {}, TActionGroupIds extends string = never > = Omit< @@ -73,7 +73,7 @@ export type SecurityAlertType< 'executor' > & { executor: ( - options: AlertExecutorOptions< + options: RuleExecutorOptions< TParams, TState, AlertInstanceState, @@ -99,7 +99,7 @@ export type CreateSecurityRuleTypeWrapper = ( options: CreateSecurityRuleTypeWrapperProps ) => < TParams extends RuleParams, - TState extends AlertTypeState, + TState extends RuleTypeState, TInstanceContext extends AlertInstanceContext = {} >( type: SecurityAlertType diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/utils/index.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/utils/index.ts index ac2f6495b8b46..59e2b9f2f597b 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/utils/index.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/utils/index.ts @@ -5,10 +5,10 @@ * 2.0. */ -import { AlertTypeState } from '../../../../../../alerting/server'; +import { RuleTypeState } from '../../../../../../alerting/server'; import { SecurityAlertTypeReturnValue } from '../types'; -export const createResultObject = (state: TState) => { +export const createResultObject = (state: TState) => { const result: SecurityAlertTypeReturnValue = { bulkCreateTimes: [], createdSignalsCount: 0, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.ts index ef9d198d2040f..863d1104ded36 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.ts @@ -12,7 +12,7 @@ import { normalizeThresholdObject, } from '../../../../common/detection_engine/utils'; import { transformRuleToAlertAction } from '../../../../common/detection_engine/transform_actions'; -import { AlertTypeParams, SanitizedAlert } from '../../../../../alerting/common'; +import { RuleTypeParams, SanitizedRule } from '../../../../../alerting/common'; import { DEFAULT_INDICATOR_SOURCE_PATH, NOTIFICATION_THROTTLE_NO_ACTIONS, @@ -77,8 +77,8 @@ export const createRules = async ({ actions, isRuleRegistryEnabled, id, -}: CreateRulesOptions): Promise> => { - const rule = await rulesClient.create({ +}: CreateRulesOptions): Promise> => { + const rule = await rulesClient.create({ options: { id, }, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/duplicate_rule.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/duplicate_rule.ts index 2ccd5f21366ee..1b15f71a1827c 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/duplicate_rule.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/duplicate_rule.ts @@ -10,7 +10,7 @@ import uuid from 'uuid'; import { i18n } from '@kbn/i18n'; import { ruleTypeMappings, SIGNALS_ID } from '@kbn/securitysolution-rules'; -import { SanitizedAlert } from '../../../../../alerting/common'; +import { SanitizedRule } from '../../../../../alerting/common'; import { SERVER_APP_ID } from '../../../../common/constants'; import { InternalRuleCreate, RuleParams } from '../schemas/rule_schemas'; import { addTags } from './add_tags'; @@ -23,7 +23,7 @@ const DUPLICATE_TITLE = i18n.translate( ); export const duplicateRule = ( - rule: SanitizedAlert, + rule: SanitizedRule, isRuleRegistryEnabled: boolean ): InternalRuleCreate => { const newRuleId = uuid.v4(); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/get_export_all.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/get_export_all.ts index c0389de766ea5..81db46bb9fee2 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/get_export_all.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/get_export_all.ts @@ -9,7 +9,7 @@ import { transformDataToNdjson } from '@kbn/securitysolution-utils'; import { Logger } from 'src/core/server'; import { ExceptionListClient } from '../../../../../lists/server'; -import { RulesClient, AlertServices } from '../../../../../alerting/server'; +import { RulesClient, RuleExecutorServices } from '../../../../../alerting/server'; import { getNonPackagedRules } from './get_existing_prepackaged_rules'; import { getExportDetailsNdjson } from './get_export_details_ndjson'; import { transformAlertsToRules } from '../routes/rules/utils'; @@ -21,7 +21,7 @@ import { legacyGetBulkRuleActionsSavedObject } from '../rule_actions/legacy_get_ export const getExportAll = async ( rulesClient: RulesClient, exceptionsClient: ExceptionListClient | undefined, - savedObjectsClient: AlertServices['savedObjectsClient'], + savedObjectsClient: RuleExecutorServices['savedObjectsClient'], logger: Logger, isRuleRegistryEnabled: boolean ): Promise<{ diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/get_export_by_object_ids.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/get_export_by_object_ids.ts index 1181995e0ae4a..9da3cc3cfdde3 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/get_export_by_object_ids.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/get_export_by_object_ids.ts @@ -11,7 +11,7 @@ import { transformDataToNdjson } from '@kbn/securitysolution-utils'; import { Logger } from 'src/core/server'; import { ExceptionListClient } from '../../../../../lists/server'; import { RulesSchema } from '../../../../common/detection_engine/schemas/response/rules_schema'; -import { RulesClient, AlertServices } from '../../../../../alerting/server'; +import { RulesClient, RuleExecutorServices } from '../../../../../alerting/server'; import { getExportDetailsNdjson } from './get_export_details_ndjson'; @@ -43,7 +43,7 @@ export interface RulesErrors { export const getExportByObjectIds = async ( rulesClient: RulesClient, exceptionsClient: ExceptionListClient | undefined, - savedObjectsClient: AlertServices['savedObjectsClient'], + savedObjectsClient: RuleExecutorServices['savedObjectsClient'], objects: Array<{ rule_id: string }>, logger: Logger, isRuleRegistryEnabled: boolean @@ -81,7 +81,7 @@ export const getExportByObjectIds = async ( export const getRulesFromObjects = async ( rulesClient: RulesClient, - savedObjectsClient: AlertServices['savedObjectsClient'], + savedObjectsClient: RuleExecutorServices['savedObjectsClient'], objects: Array<{ rule_id: string }>, logger: Logger, isRuleRegistryEnabled: boolean diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/install_prepacked_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/install_prepacked_rules.ts index 3f7191a970020..59fcca766f1b9 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/install_prepacked_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/install_prepacked_rules.ts @@ -6,7 +6,7 @@ */ import { AddPrepackagedRulesSchemaDecoded } from '../../../../common/detection_engine/schemas/request/add_prepackaged_rules_schema'; -import { SanitizedAlert, AlertTypeParams } from '../../../../../alerting/common'; +import { SanitizedRule, RuleTypeParams } from '../../../../../alerting/common'; import { RulesClient } from '../../../../../alerting/server'; import { createRules } from './create_rules'; import { PartialFilter } from '../types'; @@ -16,8 +16,8 @@ export const installPrepackagedRules = ( rules: AddPrepackagedRulesSchemaDecoded[], outputIndex: string, isRuleRegistryEnabled: boolean -): Array>> => - rules.reduce>>>((acc, rule) => { +): Array>> => + rules.reduce>>>((acc, rule) => { const { anomaly_threshold: anomalyThreshold, author, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/patch_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/patch_rules.ts index b862dca6a022a..8b86f139cd742 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/patch_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/patch_rules.ts @@ -7,7 +7,7 @@ import { validate } from '@kbn/securitysolution-io-ts-utils'; import { defaults } from 'lodash/fp'; -import { PartialAlert } from '../../../../../alerting/server'; +import { PartialRule } from '../../../../../alerting/server'; import { transformRuleToAlertAction } from '../../../../common/detection_engine/transform_actions'; import { normalizeMachineLearningJobIds, @@ -85,7 +85,7 @@ export const patchRules = async ({ anomalyThreshold, machineLearningJobId, actions, -}: PatchRulesOptions): Promise | null> => { +}: PatchRulesOptions): Promise | null> => { if (rule == null) { return null; } diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/read_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/read_rules.ts index 2571791164b6b..b866755e00371 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/read_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/read_rules.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { ResolvedSanitizedRule, SanitizedAlert } from '../../../../../alerting/common'; +import { ResolvedSanitizedRule, SanitizedRule } from '../../../../../alerting/common'; import { INTERNAL_RULE_ID_KEY } from '../../../../common/constants'; import { RuleParams } from '../schemas/rule_schemas'; import { findRules } from './find_rules'; @@ -25,7 +25,7 @@ export const readRules = async ({ id, ruleId, }: ReadRuleOptions): Promise< - SanitizedAlert | ResolvedSanitizedRule | null + SanitizedRule | ResolvedSanitizedRule | null > => { if (id != null) { try { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/types.ts index 7e66f1d0aa7a2..6c98ba56b9c88 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/types.ts @@ -93,13 +93,13 @@ import { NamespaceOrUndefined, } from '../../../../common/detection_engine/schemas/common'; -import { RulesClient, PartialAlert } from '../../../../../alerting/server'; -import { SanitizedAlert } from '../../../../../alerting/common'; +import { RulesClient, PartialRule } from '../../../../../alerting/server'; +import { SanitizedRule } from '../../../../../alerting/common'; import { PartialFilter } from '../types'; import { RuleParams } from '../schemas/rule_schemas'; import { IRuleExecutionLogForRoutes } from '../rule_execution_log'; -export type RuleAlertType = SanitizedAlert; +export type RuleAlertType = SanitizedRule; // eslint-disable-next-line @typescript-eslint/no-explicit-any export interface IRuleAssetSOAttributes extends Record { @@ -126,14 +126,14 @@ export interface Clients { export const isAlertTypes = ( isRuleRegistryEnabled: boolean, - partialAlert: Array> + partialAlert: Array> ): partialAlert is RuleAlertType[] => { return partialAlert.every((rule) => isAlertType(isRuleRegistryEnabled, rule)); }; export const isAlertType = ( isRuleRegistryEnabled: boolean, - partialAlert: PartialAlert + partialAlert: PartialRule ): partialAlert is RuleAlertType => { const ruleTypeValues = Object.values(ruleTypeMappings) as unknown as string[]; return isRuleRegistryEnabled @@ -287,5 +287,5 @@ export interface FindRuleOptions { export interface LegacyMigrateParams { rulesClient: RulesClient; savedObjectsClient: SavedObjectsClientContract; - rule: SanitizedAlert | null | undefined; + rule: SanitizedRule | null | undefined; } diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_prepacked_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_prepacked_rules.ts index ceb6a3739bd6c..93b038fbb58ce 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_prepacked_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_prepacked_rules.ts @@ -9,7 +9,7 @@ import { chunk } from 'lodash/fp'; import { SavedObjectsClientContract } from 'kibana/server'; import { AddPrepackagedRulesSchemaDecoded } from '../../../../common/detection_engine/schemas/request/add_prepackaged_rules_schema'; import { MAX_RULES_TO_UPDATE_IN_PARALLEL } from '../../../../common/constants'; -import { RulesClient, PartialAlert } from '../../../../../alerting/server'; +import { RulesClient, PartialRule } from '../../../../../alerting/server'; import { patchRules } from './patch_rules'; import { readRules } from './read_rules'; import { PartialFilter } from '../types'; @@ -67,7 +67,7 @@ export const createPromises = ( outputIndex: string, isRuleRegistryEnabled: boolean, ruleExecutionLog: IRuleExecutionLogForRoutes -): Array | null>> => { +): Array | null>> => { return rules.map(async (rule) => { const { author, @@ -202,7 +202,7 @@ export const createPromises = ( // the existing rule exceptionsList, actions: migratedRule.actions.map(transformAlertToRuleAction), // Actions come from the existing rule - })) as PartialAlert; // TODO: Replace AddPrepackagedRulesSchema with type specific rules schema so we can clean up these types + })) as PartialRule; // TODO: Replace AddPrepackagedRulesSchema with type specific rules schema so we can clean up these types } else { // Note: we do not pass down enabled as we do not want to suddenly disable // or enable rules on the user when they were not expecting it if a rule updates diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_rules.ts index 6c13955aaab58..23038df541ff2 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_rules.ts @@ -9,7 +9,7 @@ import { validate } from '@kbn/securitysolution-io-ts-utils'; import { DEFAULT_MAX_SIGNALS } from '../../../../common/constants'; import { transformRuleToAlertAction } from '../../../../common/detection_engine/transform_actions'; -import { PartialAlert } from '../../../../../alerting/server'; +import { PartialRule } from '../../../../../alerting/server'; import { UpdateRulesOptions } from './types'; import { addTags } from './add_tags'; @@ -30,7 +30,7 @@ export const updateRules = async ({ defaultOutputIndex, existingRule, ruleUpdate, -}: UpdateRulesOptions): Promise | null> => { +}: UpdateRulesOptions): Promise | null> => { if (existingRule == null) { return null; } diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/utils.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/utils.test.ts index 448d1b1a1db63..06324f4827b84 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/utils.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/utils.test.ts @@ -14,7 +14,7 @@ import { transformFromAlertThrottle, transformActions, } from './utils'; -import { AlertAction, SanitizedAlert } from '../../../../../alerting/common'; +import { RuleAction, SanitizedRule } from '../../../../../alerting/common'; import { RuleParams } from '../schemas/rule_schemas'; import { NOTIFICATION_THROTTLE_NO_ACTIONS, @@ -297,7 +297,7 @@ describe('utils', () => { params: {}, }, ], - } as SanitizedAlert, + } as SanitizedRule, undefined ) ).toEqual(NOTIFICATION_THROTTLE_NO_ACTIONS); @@ -310,7 +310,7 @@ describe('utils', () => { muteAll: false, notifyWhen: 'onActiveAlert', actions: [], - } as unknown as SanitizedAlert, + } as unknown as SanitizedRule, undefined ) ).toEqual(NOTIFICATION_THROTTLE_NO_ACTIONS); @@ -324,7 +324,7 @@ describe('utils', () => { notifyWhen: 'onThrottleInterval', actions: [], throttle: '1d', - } as unknown as SanitizedAlert, + } as unknown as SanitizedRule, undefined ) ).toEqual(NOTIFICATION_THROTTLE_NO_ACTIONS); @@ -344,7 +344,7 @@ describe('utils', () => { params: {}, }, ], - } as SanitizedAlert, + } as SanitizedRule, undefined ) ).toEqual(NOTIFICATION_THROTTLE_RULE); @@ -363,7 +363,7 @@ describe('utils', () => { params: {}, }, ], - } as SanitizedAlert, + } as SanitizedRule, undefined ) ).toEqual(NOTIFICATION_THROTTLE_RULE); @@ -397,7 +397,7 @@ describe('utils', () => { params: {}, }, ], - } as SanitizedAlert, + } as SanitizedRule, legacyRuleActions ) ).toEqual(NOTIFICATION_THROTTLE_NO_ACTIONS); @@ -424,7 +424,7 @@ describe('utils', () => { muteAll: true, notifyWhen: 'onActiveAlert', actions: [], - } as unknown as SanitizedAlert, + } as unknown as SanitizedRule, legacyRuleActions ) ).toEqual(NOTIFICATION_THROTTLE_RULE); @@ -451,7 +451,7 @@ describe('utils', () => { muteAll: true, notifyWhen: 'onActiveAlert', actions: null, - } as unknown as SanitizedAlert, + } as unknown as SanitizedRule, legacyRuleActions ) ).toEqual(NOTIFICATION_THROTTLE_RULE); @@ -460,7 +460,7 @@ describe('utils', () => { describe('#transformActions', () => { test('It transforms two alert actions', () => { - const alertAction: AlertAction[] = [ + const alertAction: RuleAction[] = [ { id: 'id_1', group: 'group', @@ -493,7 +493,7 @@ describe('utils', () => { }); test('It transforms two alert actions but not a legacyRuleActions if this is also passed in', () => { - const alertAction: AlertAction[] = [ + const alertAction: RuleAction[] = [ { id: 'id_1', group: 'group', @@ -538,7 +538,7 @@ describe('utils', () => { }); test('It will transform the legacyRuleActions if the alertAction is an empty array', () => { - const alertAction: AlertAction[] = []; + const alertAction: RuleAction[] = []; const legacyRuleActions: LegacyRuleActions = { id: 'id_1', ruleThrottle: '', diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/utils.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/utils.ts index 73039697268e6..fe5785d841b8f 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/utils.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/utils.ts @@ -28,7 +28,7 @@ import type { } from '@kbn/securitysolution-io-ts-alerting-types'; import type { ListArrayOrUndefined } from '@kbn/securitysolution-io-ts-list-types'; import type { VersionOrUndefined } from '@kbn/securitysolution-io-ts-types'; -import { AlertAction, AlertNotifyWhenType, SanitizedAlert } from '../../../../../alerting/common'; +import { RuleAction, RuleNotifyWhenType, SanitizedRule } from '../../../../../alerting/common'; import { DescriptionOrUndefined, AnomalyThresholdOrUndefined, @@ -194,7 +194,7 @@ export const calculateName = ({ */ export const transformToNotifyWhen = ( throttle: string | null | undefined -): AlertNotifyWhenType | null => { +): RuleNotifyWhenType | null => { if (throttle == null || throttle === NOTIFICATION_THROTTLE_NO_ACTIONS) { return null; // Although I return null, this does not change the value of the "notifyWhen" and it keeps the current value of "notifyWhen" } else if (throttle === NOTIFICATION_THROTTLE_RULE) { @@ -232,7 +232,7 @@ export const transformToAlertThrottle = (throttle: string | null | undefined): s * @returns The actions of the FullResponseSchema */ export const transformActions = ( - alertAction: AlertAction[] | undefined, + alertAction: RuleAction[] | undefined, legacyRuleActions: LegacyRuleActions | null | undefined ): FullResponseSchema['actions'] => { if (alertAction != null && alertAction.length !== 0) { @@ -254,7 +254,7 @@ export const transformActions = ( * @returns The "security_solution" throttle */ export const transformFromAlertThrottle = ( - rule: SanitizedAlert, + rule: SanitizedRule, legacyRuleActions: LegacyRuleActions | null | undefined ): string => { if (legacyRuleActions == null || (rule.actions != null && rule.actions.length > 0)) { @@ -288,9 +288,9 @@ export const maybeMute = async ({ muteAll, throttle, }: { - id: SanitizedAlert['id']; + id: SanitizedRule['id']; rulesClient: RulesClient; - muteAll: SanitizedAlert['muteAll']; + muteAll: SanitizedRule['muteAll']; throttle: string | null | undefined; }): Promise => { if (muteAll && throttle !== NOTIFICATION_THROTTLE_NO_ACTIONS) { @@ -310,7 +310,7 @@ export const legacyMigrate = async ({ rulesClient, savedObjectsClient, rule, -}: LegacyMigrateParams): Promise | null | undefined> => { +}: LegacyMigrateParams): Promise | null | undefined> => { if (rule == null || rule.id == null) { return rule; } diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/schemas/rule_converters.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/schemas/rule_converters.ts index fbfab6304a4aa..d72cdc560543f 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/schemas/rule_converters.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/schemas/rule_converters.ts @@ -31,7 +31,7 @@ import { AppClient } from '../../../types'; import { addTags } from '../rules/add_tags'; import { DEFAULT_MAX_SIGNALS, SERVER_APP_ID } from '../../../../common/constants'; import { transformRuleToAlertAction } from '../../../../common/detection_engine/transform_actions'; -import { ResolvedSanitizedRule, SanitizedAlert } from '../../../../../alerting/common'; +import { ResolvedSanitizedRule, SanitizedRule } from '../../../../../alerting/common'; import { transformTags } from '../routes/rules/utils'; import { transformFromAlertThrottle, @@ -283,7 +283,7 @@ export const commonParamsCamelToSnake = (params: BaseRuleParams) => { }; export const internalRuleToAPIResponse = ( - rule: SanitizedAlert | ResolvedSanitizedRule, + rule: SanitizedRule | ResolvedSanitizedRule, ruleExecutionSummary?: RuleExecutionSummary | null, legacyRuleActions?: LegacyRuleActions | null ): FullResponseSchema => { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/bulk_create_ml_signals.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/bulk_create_ml_signals.ts index 1a35d9f0771fe..fdd6dcf0f4da2 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/bulk_create_ml_signals.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/bulk_create_ml_signals.ts @@ -12,7 +12,7 @@ import { Logger } from '../../../../../../../src/core/server'; import { AlertInstanceContext, AlertInstanceState, - AlertServices, + RuleExecutorServices, } from '../../../../../alerting/server'; import { GenericBulkCreateResponse } from '../rule_types/factories'; import { AnomalyResults, Anomaly } from '../../machine_learning'; @@ -25,7 +25,7 @@ import { BaseFieldsLatest } from '../../../../common/detection_engine/schemas/al interface BulkCreateMlSignalsParams { someResult: AnomalyResults; completeRule: CompleteRule; - services: AlertServices; + services: RuleExecutorServices; logger: Logger; id: string; signalsIndex: string; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/eql.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/eql.test.ts index 604a3a79e7152..e7810e6fe0078 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/eql.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/eql.test.ts @@ -7,7 +7,7 @@ import dateMath from '@elastic/datemath'; import { loggingSystemMock } from 'src/core/server/mocks'; -import { alertsMock, AlertServicesMock } from '../../../../../../alerting/server/mocks'; +import { alertsMock, RuleExecutorServicesMock } from '../../../../../../alerting/server/mocks'; import { eqlExecutor } from './eql'; import { getExceptionListItemSchemaMock } from '../../../../../../lists/common/schemas/response/exception_list_item_schema.mock'; import { getEntryListMock } from '../../../../../../lists/common/schemas/types/entry_list.mock'; @@ -22,7 +22,7 @@ jest.mock('../../routes/index/get_index_version'); describe('eql_executor', () => { const version = '8.0.0'; let logger: ReturnType; - let alertServices: AlertServicesMock; + let alertServices: RuleExecutorServicesMock; (getIndexVersion as jest.Mock).mockReturnValue(SIGNALS_TEMPLATE_VERSION); const params = getEqlRuleParams(); const eqlCompleteRule = getCompleteRuleMock(params); @@ -33,7 +33,7 @@ describe('eql_executor', () => { }; beforeEach(() => { - alertServices = alertsMock.createAlertServices(); + alertServices = alertsMock.createRuleExecutorServices(); logger = loggingSystemMock.createLogger(); alertServices.scopedClusterClient.asCurrentUser.eql.search.mockResolvedValue({ hits: { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/eql.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/eql.ts index dd9d5e2938e67..6975445f5d04f 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/eql.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/eql.ts @@ -11,7 +11,7 @@ import { Logger } from 'src/core/server'; import { AlertInstanceContext, AlertInstanceState, - AlertServices, + RuleExecutorServices, } from '../../../../../../alerting/server'; import { buildEqlSearchRequest } from '../build_events_query'; import { hasLargeValueItem } from '../../../../../common/detection_engine/utils'; @@ -54,7 +54,7 @@ export const eqlExecutor = async ({ tuple: RuleRangeTuple; exceptionItems: ExceptionListItemSchema[]; experimentalFeatures: ExperimentalFeatures; - services: AlertServices; + services: RuleExecutorServices; version: string; logger: Logger; bulkCreate: BulkCreate; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/ml.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/ml.test.ts index 9b93ba182785f..417382b0bd05a 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/ml.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/ml.test.ts @@ -7,7 +7,7 @@ import dateMath from '@elastic/datemath'; import { loggingSystemMock } from 'src/core/server/mocks'; -import { alertsMock, AlertServicesMock } from '../../../../../../alerting/server/mocks'; +import { alertsMock, RuleExecutorServicesMock } from '../../../../../../alerting/server/mocks'; import { mlExecutor } from './ml'; import { getExceptionListItemSchemaMock } from '../../../../../../lists/common/schemas/response/exception_list_item_schema.mock'; import { getCompleteRuleMock, getMlRuleParams } from '../../schemas/rule_schemas.mock'; @@ -26,7 +26,7 @@ describe('ml_executor', () => { let mlMock: ReturnType; const exceptionItems = [getExceptionListItemSchemaMock()]; let logger: ReturnType; - let alertServices: AlertServicesMock; + let alertServices: RuleExecutorServicesMock; const params = getMlRuleParams(); const mlCompleteRule = getCompleteRuleMock(params); @@ -44,7 +44,7 @@ describe('ml_executor', () => { beforeEach(() => { jobsSummaryMock = jest.fn(); - alertServices = alertsMock.createAlertServices(); + alertServices = alertsMock.createRuleExecutorServices(); logger = loggingSystemMock.createLogger(); mlMock = mlPluginServerMock.createSetupContract(); mlMock.jobServiceProvider.mockReturnValue({ diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/ml.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/ml.ts index 3610c45017019..d20885ebb9292 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/ml.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/ml.ts @@ -10,7 +10,7 @@ import type { ExceptionListItemSchema } from '@kbn/securitysolution-io-ts-list-t import { AlertInstanceContext, AlertInstanceState, - AlertServices, + RuleExecutorServices, } from '../../../../../../alerting/server'; import { ListClient } from '../../../../../../lists/server'; import { isJobStarted } from '../../../../../common/machine_learning/helpers'; @@ -41,7 +41,7 @@ export const mlExecutor = async ({ ml: SetupPlugins['ml']; listClient: ListClient; exceptionItems: ExceptionListItemSchema[]; - services: AlertServices; + services: RuleExecutorServices; logger: Logger; buildRuleMessage: BuildRuleMessage; bulkCreate: BulkCreate; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/query.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/query.ts index 5f1ab1c2dd5ff..da1e93bf76b54 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/query.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/query.ts @@ -10,7 +10,7 @@ import type { ExceptionListItemSchema } from '@kbn/securitysolution-io-ts-list-t import { AlertInstanceContext, AlertInstanceState, - AlertServices, + RuleExecutorServices, } from '../../../../../../alerting/server'; import { ListClient } from '../../../../../../lists/server'; import { getFilter } from '../get_filter'; @@ -44,7 +44,7 @@ export const queryExecutor = async ({ listClient: ListClient; exceptionItems: ExceptionListItemSchema[]; experimentalFeatures: ExperimentalFeatures; - services: AlertServices; + services: RuleExecutorServices; version: string; searchAfterSize: number; logger: Logger; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threat_match.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threat_match.ts index 00edf2fffc8e0..1aedf7111e078 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threat_match.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threat_match.ts @@ -10,7 +10,7 @@ import type { ExceptionListItemSchema } from '@kbn/securitysolution-io-ts-list-t import { AlertInstanceContext, AlertInstanceState, - AlertServices, + RuleExecutorServices, } from '../../../../../../alerting/server'; import { ListClient } from '../../../../../../lists/server'; import { getInputIndex } from '../get_input_output_index'; @@ -42,7 +42,7 @@ export const threatMatchExecutor = async ({ tuple: RuleRangeTuple; listClient: ListClient; exceptionItems: ExceptionListItemSchema[]; - services: AlertServices; + services: RuleExecutorServices; version: string; searchAfterSize: number; logger: Logger; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threshold.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threshold.test.ts index e01e3498c2c7a..14c56aa3bc9be 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threshold.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threshold.test.ts @@ -9,7 +9,7 @@ import dateMath from '@elastic/datemath'; import { loggingSystemMock } from 'src/core/server/mocks'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { elasticsearchClientMock } from 'src/core/server/elasticsearch/client/mocks'; -import { alertsMock, AlertServicesMock } from '../../../../../../alerting/server/mocks'; +import { alertsMock, RuleExecutorServicesMock } from '../../../../../../alerting/server/mocks'; import { thresholdExecutor } from './threshold'; import { getExceptionListItemSchemaMock } from '../../../../../../lists/common/schemas/response/exception_list_item_schema.mock'; import { getEntryListMock } from '../../../../../../lists/common/schemas/types/entry_list.mock'; @@ -22,7 +22,7 @@ import { ThresholdRuleParams } from '../../schemas/rule_schemas'; describe('threshold_executor', () => { const version = '8.0.0'; let logger: ReturnType; - let alertServices: AlertServicesMock; + let alertServices: RuleExecutorServicesMock; const params = getThresholdRuleParams(); const thresholdCompleteRule = getCompleteRuleMock(params); @@ -40,7 +40,7 @@ describe('threshold_executor', () => { }); beforeEach(() => { - alertServices = alertsMock.createAlertServices(); + alertServices = alertsMock.createRuleExecutorServices(); alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValue( elasticsearchClientMock.createSuccessTransportRequestPromise(sampleEmptyDocSearchResults()) ); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threshold.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threshold.ts index 441baa7ee94fd..7055269abacda 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threshold.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/executors/threshold.ts @@ -13,7 +13,7 @@ import { Logger } from 'src/core/server'; import { AlertInstanceContext, AlertInstanceState, - AlertServices, + RuleExecutorServices, } from '../../../../../../alerting/server'; import { hasLargeValueItem } from '../../../../../common/detection_engine/utils'; import { CompleteRule, ThresholdRuleParams } from '../../schemas/rule_schemas'; @@ -60,7 +60,7 @@ export const thresholdExecutor = async ({ tuple: RuleRangeTuple; exceptionItems: ExceptionListItemSchema[]; experimentalFeatures: ExperimentalFeatures; - services: AlertServices; + services: RuleExecutorServices; version: string; logger: Logger; buildRuleMessage: BuildRuleMessage; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_filter.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_filter.test.ts index 49f70eafd7d3a..6e824a9a639a3 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_filter.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_filter.test.ts @@ -6,18 +6,18 @@ */ import { getFilter } from './get_filter'; -import { alertsMock, AlertServicesMock } from '../../../../../alerting/server/mocks'; +import { alertsMock, RuleExecutorServicesMock } from '../../../../../alerting/server/mocks'; import { getExceptionListItemSchemaMock } from '../../../../../lists/common/schemas/response/exception_list_item_schema.mock'; describe('get_filter', () => { - let servicesMock: AlertServicesMock; + let servicesMock: RuleExecutorServicesMock; beforeAll(() => { jest.resetAllMocks(); }); beforeEach(() => { - servicesMock = alertsMock.createAlertServices(); + servicesMock = alertsMock.createRuleExecutorServices(); servicesMock.savedObjectsClient.get.mockImplementation(async (type: string, id: string) => ({ id, type, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_filter.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_filter.ts index f113e84c88ba8..d674cc9a3e5a1 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_filter.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_filter.ts @@ -18,7 +18,7 @@ import { import { AlertInstanceContext, AlertInstanceState, - AlertServices, + RuleExecutorServices, } from '../../../../../alerting/server'; import { PartialFilter } from '../types'; import { withSecuritySpan } from '../../../utils/with_security_span'; @@ -30,7 +30,7 @@ interface GetFilterArgs { language: LanguageOrUndefined; query: QueryOrUndefined; savedId: SavedIdOrUndefined; - services: AlertServices; + services: RuleExecutorServices; index: IndexOrUndefined; lists: ExceptionListItemSchema[]; } diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_input_output_index.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_input_output_index.test.ts index 2aaa56493df60..fea6ac75677bf 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_input_output_index.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_input_output_index.test.ts @@ -5,13 +5,13 @@ * 2.0. */ -import { alertsMock, AlertServicesMock } from '../../../../../alerting/server/mocks'; +import { alertsMock, RuleExecutorServicesMock } from '../../../../../alerting/server/mocks'; import { DEFAULT_INDEX_KEY, DEFAULT_INDEX_PATTERN } from '../../../../common/constants'; import { getInputIndex, GetInputIndex } from './get_input_output_index'; import { allowedExperimentalValues } from '../../../../common/experimental_features'; describe('get_input_output_index', () => { - let servicesMock: AlertServicesMock; + let servicesMock: RuleExecutorServicesMock; beforeAll(() => { jest.resetAllMocks(); @@ -22,7 +22,7 @@ describe('get_input_output_index', () => { }); let defaultProps: GetInputIndex; beforeEach(() => { - servicesMock = alertsMock.createAlertServices(); + servicesMock = alertsMock.createRuleExecutorServices(); servicesMock.savedObjectsClient.get.mockImplementation(async (type: string, id: string) => ({ id, type, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_input_output_index.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_input_output_index.ts index ba1b9344aa8a1..c2a77cb608303 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_input_output_index.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/get_input_output_index.ts @@ -9,7 +9,7 @@ import { DEFAULT_INDEX_KEY, DEFAULT_INDEX_PATTERN } from '../../../../common/con import { AlertInstanceContext, AlertInstanceState, - AlertServices, + RuleExecutorServices, } from '../../../../../alerting/server'; import { ExperimentalFeatures } from '../../../../common/experimental_features'; import { withSecuritySpan } from '../../../utils/with_security_span'; @@ -17,7 +17,7 @@ import { withSecuritySpan } from '../../../utils/with_security_span'; export interface GetInputIndex { experimentalFeatures: ExperimentalFeatures; index: string[] | null | undefined; - services: AlertServices; + services: RuleExecutorServices; version: string; } diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/preview/alert_instance_factory_stub.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/preview/alert_instance_factory_stub.ts index 88d6114387aa3..3958cb2a81a7f 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/preview/alert_instance_factory_stub.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/preview/alert_instance_factory_stub.ts @@ -9,14 +9,14 @@ import { RuleParams } from '../../schemas/rule_schemas'; import { AlertInstanceContext, AlertInstanceState, - AlertTypeState, + RuleTypeState, } from '../../../../../../alerting/common'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { Alert } from '../../../../../../alerting/server/alert'; export const alertInstanceFactoryStub = < TParams extends RuleParams, - TState extends AlertTypeState, + TState extends RuleTypeState, TInstanceState extends AlertInstanceState, TInstanceContext extends AlertInstanceContext, TActionGroupIds extends string = '' diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/search_after_bulk_create.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/search_after_bulk_create.test.ts index d6332af195fcf..58e472c75870c 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/search_after_bulk_create.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/search_after_bulk_create.test.ts @@ -15,7 +15,7 @@ import { sampleDocWithSortId, } from './__mocks__/es_results'; import { searchAfterAndBulkCreate } from './search_after_bulk_create'; -import { alertsMock, AlertServicesMock } from '../../../../../alerting/server/mocks'; +import { alertsMock, RuleExecutorServicesMock } from '../../../../../alerting/server/mocks'; import uuid from 'uuid'; import { listMock } from '../../../../../lists/server/mocks'; import { getExceptionListItemSchemaMock } from '../../../../../lists/common/schemas/response/exception_list_item_schema.mock'; @@ -51,7 +51,7 @@ import { CommonAlertFieldsLatest } from '../../../../../rule_registry/common/sch const buildRuleMessage = mockBuildRuleMessage; describe('searchAfterAndBulkCreate', () => { - let mockService: AlertServicesMock; + let mockService: RuleExecutorServicesMock; let mockPersistenceServices: jest.Mocked; let buildReasonMessage: BuildReasonMessage; let bulkCreate: BulkCreate; @@ -84,7 +84,7 @@ describe('searchAfterAndBulkCreate', () => { listClient = listMock.getListClient(); listClient.searchListItemByValues = jest.fn().mockResolvedValue([]); inputIndexPattern = ['auditbeat-*']; - mockService = alertsMock.createAlertServices(); + mockService = alertsMock.createRuleExecutorServices(); tuple = getRuleRangeTuples({ logger: mockLogger, previousStartedAt: new Date(), diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/single_search_after.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/single_search_after.test.ts index d00925af74316..5bbef98b48335 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/single_search_after.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/single_search_after.test.ts @@ -11,7 +11,7 @@ import { sampleDocSearchResultsWithSortId, } from './__mocks__/es_results'; import { singleSearchAfter } from './single_search_after'; -import { alertsMock, AlertServicesMock } from '../../../../../alerting/server/mocks'; +import { alertsMock, RuleExecutorServicesMock } from '../../../../../alerting/server/mocks'; import { buildRuleMessageFactory } from './rule_messages'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { elasticsearchClientMock } from 'src/core/server/elasticsearch/client/mocks'; @@ -23,7 +23,7 @@ const buildRuleMessage = buildRuleMessageFactory({ name: 'fake name', }); describe('singleSearchAfter', () => { - const mockService: AlertServicesMock = alertsMock.createAlertServices(); + const mockService: RuleExecutorServicesMock = alertsMock.createRuleExecutorServices(); beforeEach(() => { jest.clearAllMocks(); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/single_search_after.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/single_search_after.ts index 62b0097c17e75..c247cf00b141f 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/single_search_after.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/single_search_after.ts @@ -9,7 +9,7 @@ import { performance } from 'perf_hooks'; import { AlertInstanceContext, AlertInstanceState, - AlertServices, + RuleExecutorServices, } from '../../../../../alerting/server'; import { Logger } from '../../../../../../../src/core/server'; import type { SignalSearchResponse, SignalSource } from './types'; @@ -25,7 +25,7 @@ interface SingleSearchAfterParams { index: string[]; from: string; to: string; - services: AlertServices; + services: RuleExecutorServices; logger: Logger; pageSize: number; sortOrder?: estypes.SortOrder; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/types.ts index f0f2d7e1af3b5..08915efd4f372 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/types.ts @@ -23,7 +23,7 @@ import { ListClient } from '../../../../../../lists/server'; import { AlertInstanceContext, AlertInstanceState, - AlertServices, + RuleExecutorServices, } from '../../../../../../alerting/server'; import { ElasticsearchClient, Logger } from '../../../../../../../../src/core/server'; import { ITelemetryEventsSender } from '../../../telemetry/sender'; @@ -57,7 +57,7 @@ export interface CreateThreatSignalsOptions { query: string; savedId: string | undefined; searchAfterSize: number; - services: AlertServices; + services: RuleExecutorServices; threatFilters: unknown[]; threatIndex: ThreatIndex; threatIndicatorPath: ThreatIndicatorPath; @@ -87,7 +87,7 @@ export interface CreateThreatSignalOptions { query: string; savedId: string | undefined; searchAfterSize: number; - services: AlertServices; + services: RuleExecutorServices; threatEnrichment: SignalsEnrichment; threatMapping: ThreatMapping; tuple: RuleRangeTuple; @@ -113,7 +113,7 @@ export interface CreateEventSignalOptions { query: string; savedId: string | undefined; searchAfterSize: number; - services: AlertServices; + services: RuleExecutorServices; threatEnrichment: SignalsEnrichment; tuple: RuleRangeTuple; type: Type; @@ -234,7 +234,7 @@ export interface BuildThreatEnrichmentOptions { buildRuleMessage: BuildRuleMessage; exceptionItems: ExceptionListItemSchema[]; logger: Logger; - services: AlertServices; + services: RuleExecutorServices; threatFilters: unknown[]; threatIndex: ThreatIndex; threatIndicatorPath: ThreatIndicatorPath; @@ -245,7 +245,7 @@ export interface BuildThreatEnrichmentOptions { } export interface EventsOptions { - services: AlertServices; + services: RuleExecutorServices; query: string; buildRuleMessage: BuildRuleMessage; language: ThreatLanguageOrUndefined; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/bulk_create_threshold_signals.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/bulk_create_threshold_signals.ts index 49a81a47502d2..f7d0418f63b2c 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/bulk_create_threshold_signals.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/bulk_create_threshold_signals.ts @@ -14,7 +14,7 @@ import { Logger } from '../../../../../../../../src/core/server'; import { AlertInstanceContext, AlertInstanceState, - AlertServices, + RuleExecutorServices, } from '../../../../../../alerting/server'; import { BaseHit } from '../../../../../common/detection_engine/types'; import { TermAggregationBucket } from '../../../types'; @@ -35,7 +35,7 @@ import { BaseFieldsLatest } from '../../../../../common/detection_engine/schemas interface BulkCreateThresholdSignalsParams { someResult: SignalSearchResponse; completeRule: CompleteRule; - services: AlertServices; + services: RuleExecutorServices; inputIndexPattern: string[]; logger: Logger; filter: unknown; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/find_previous_threshold_signals.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/find_previous_threshold_signals.ts index 1a2bfbf3a962d..3cfa2be0202f5 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/find_previous_threshold_signals.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/find_previous_threshold_signals.ts @@ -9,7 +9,7 @@ import { TimestampOverrideOrUndefined } from '../../../../../common/detection_en import { AlertInstanceContext, AlertInstanceState, - AlertServices, + RuleExecutorServices, } from '../../../../../../alerting/server'; import { Logger } from '../../../../../../../../src/core/server'; import { BuildRuleMessage } from '../rule_messages'; @@ -20,7 +20,7 @@ interface FindPreviousThresholdSignalsParams { from: string; to: string; indexPattern: string[]; - services: AlertServices; + services: RuleExecutorServices; logger: Logger; ruleId: string; bucketByFields: string[]; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/find_threshold_signals.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/find_threshold_signals.test.ts index 3a1149e8c8e99..5b0ee22d87093 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/find_threshold_signals.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/find_threshold_signals.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { alertsMock, AlertServicesMock } from '../../../../../../alerting/server/mocks'; +import { alertsMock, RuleExecutorServicesMock } from '../../../../../../alerting/server/mocks'; import { getQueryFilter } from '../../../../../common/detection_engine/get_query_filter'; import { mockLogger } from '../__mocks__/es_results'; import { buildRuleMessageFactory } from '../rule_messages'; @@ -24,12 +24,12 @@ const mockSingleSearchAfter = jest.fn(); // Failing with rule registry enabled describe('findThresholdSignals', () => { - let mockService: AlertServicesMock; + let mockService: RuleExecutorServicesMock; beforeEach(() => { jest.clearAllMocks(); jest.spyOn(single_search_after, 'singleSearchAfter').mockImplementation(mockSingleSearchAfter); - mockService = alertsMock.createAlertServices(); + mockService = alertsMock.createRuleExecutorServices(); }); it('should generate a threshold signal query when only a value is provided', async () => { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/find_threshold_signals.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/find_threshold_signals.ts index 52aa429dd64d6..45b56dce7e69e 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/find_threshold_signals.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/find_threshold_signals.ts @@ -15,7 +15,7 @@ import { import { AlertInstanceContext, AlertInstanceState, - AlertServices, + RuleExecutorServices, } from '../../../../../../alerting/server'; import { Logger } from '../../../../../../../../src/core/server'; import { BuildRuleMessage } from '../rule_messages'; @@ -26,7 +26,7 @@ interface FindThresholdSignalsParams { from: string; to: string; inputIndexPattern: string[]; - services: AlertServices; + services: RuleExecutorServices; logger: Logger; filter: unknown; threshold: ThresholdNormalized; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_signal_history.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_signal_history.ts index 276431c3bc929..097bdfe8d6034 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_signal_history.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_signal_history.ts @@ -9,7 +9,7 @@ import { TimestampOverrideOrUndefined } from '../../../../../common/detection_en import { AlertInstanceContext, AlertInstanceState, - AlertServices, + RuleExecutorServices, } from '../../../../../../alerting/server'; import { Logger } from '../../../../../../../../src/core/server'; import { ThresholdSignalHistory } from '../types'; @@ -21,7 +21,7 @@ interface GetThresholdSignalHistoryParams { from: string; to: string; indexPattern: string[]; - services: AlertServices; + services: RuleExecutorServices; logger: Logger; ruleId: string; bucketByFields: string[]; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/types.ts index bbe6adc5c729f..541d2cd4c19b8 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/types.ts @@ -12,11 +12,11 @@ import { Status } from '../../../../common/detection_engine/schemas/common/schem import { RulesSchema } from '../../../../common/detection_engine/schemas/response/rules_schema'; import { RuleType, - AlertTypeState, + RuleTypeState, AlertInstanceState, AlertInstanceContext, - AlertExecutorOptions, - AlertServices, + RuleExecutorOptions as AlertingRuleExecutorOptions, + RuleExecutorServices, } from '../../../../../alerting/server'; import { TermAggregationBucket } from '../../types'; import { @@ -189,9 +189,9 @@ export type AlertSourceHit = estypes.SearchHit; export type WrappedSignalHit = BaseHit; export type BaseSignalHit = estypes.SearchHit; -export type RuleExecutorOptions = AlertExecutorOptions< +export type RuleExecutorOptions = AlertingRuleExecutorOptions< RuleParams, - AlertTypeState, + RuleTypeState, AlertInstanceState, AlertInstanceContext >; @@ -203,7 +203,7 @@ export const isAlertExecutor = ( ): obj is RuleType< RuleParams, RuleParams, // This type is used for useSavedObjectReferences, use an Omit here if you want to remove any values. - AlertTypeState, + RuleTypeState, AlertInstanceState, AlertInstanceContext, 'default' @@ -214,7 +214,7 @@ export const isAlertExecutor = ( export type SignalRuleAlertTypeDefinition = RuleType< RuleParams, RuleParams, // This type is used for useSavedObjectReferences, use an Omit here if you want to remove any values. - AlertTypeState, + RuleTypeState, AlertInstanceState, AlertInstanceContext, 'default' @@ -302,7 +302,7 @@ export interface SearchAfterAndBulkCreateParams { maxSignals: number; }; completeRule: CompleteRule; - services: AlertServices; + services: RuleExecutorServices; listClient: ListClient; exceptionsList: ExceptionListItemSchema[]; logger: Logger; @@ -361,7 +361,7 @@ export interface ThresholdQueryBucket extends TermAggregationBucket { }; } -export interface ThresholdAlertState extends AlertTypeState { +export interface ThresholdAlertState extends RuleTypeState { initialized: boolean; signalHistory: ThresholdSignalHistory; } diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/utils.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/utils.test.ts index 7c020a476c41b..02ed86b65e878 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/utils.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/utils.test.ts @@ -10,7 +10,7 @@ import sinon from 'sinon'; import type { TransportResult } from '@elastic/elasticsearch'; import { ALERT_REASON, ALERT_RULE_PARAMETERS, ALERT_UUID } from '@kbn/rule-data-utils'; -import { alertsMock, AlertServicesMock } from '../../../../../alerting/server/mocks'; +import { alertsMock, RuleExecutorServicesMock } from '../../../../../alerting/server/mocks'; import { listMock } from '../../../../../lists/server/mocks'; import { buildRuleMessageFactory } from './rule_messages'; import { ExceptionListClient } from '../../../../../lists/server'; @@ -426,10 +426,10 @@ describe('utils', () => { }); describe('#getListsClient', () => { - let alertServices: AlertServicesMock; + let alertServices: RuleExecutorServicesMock; beforeEach(() => { - alertServices = alertsMock.createAlertServices(); + alertServices = alertsMock.createRuleExecutorServices(); }); test('it successfully returns list and exceptions list client', async () => { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/utils.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/utils.ts index 0a4618d81081b..a0d73707466ce 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/utils.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/utils.ts @@ -34,7 +34,7 @@ import type { import { AlertInstanceContext, AlertInstanceState, - AlertServices, + RuleExecutorServices, parseDuration, } from '../../../../../alerting/server'; import type { ExceptionListClient, ListClient, ListPluginSetup } from '../../../../../lists/server'; @@ -193,7 +193,7 @@ export const hasTimestampFields = async (args: { }; export const checkPrivileges = async ( - services: AlertServices, + services: RuleExecutorServices, indices: string[] ): Promise => checkPrivilegesFromEsClient(services.scopedClusterClient.asCurrentUser, indices); @@ -247,7 +247,7 @@ export const getListsClient = ({ lists: ListPluginSetup | undefined; spaceId: string; updatedByUser: string | null; - services: AlertServices; + services: RuleExecutorServices; savedObjectClient: SavedObjectsClientContract; }): { listClient: ListClient; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts index f25c23d2d5ed3..d81832d9bbe35 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts @@ -53,11 +53,11 @@ import { EventCategoryOverrideOrUndefined, } from '../../../common/detection_engine/schemas/common/schemas'; -import { AlertTypeParams } from '../../../../alerting/common'; +import { RuleTypeParams as AlertingRuleTypeParams } from '../../../../alerting/common'; export type PartialFilter = Partial; -export interface RuleTypeParams extends AlertTypeParams { +export interface RuleTypeParams extends AlertingRuleTypeParams { anomalyThreshold?: AnomalyThresholdOrUndefined; author: AuthorOrUndefined; buildingBlockType: BuildingBlockTypeOrUndefined; diff --git a/x-pack/plugins/security_solution/server/routes/index.ts b/x-pack/plugins/security_solution/server/routes/index.ts index 935948d6d5938..2efb132c96ff6 100644 --- a/x-pack/plugins/security_solution/server/routes/index.ts +++ b/x-pack/plugins/security_solution/server/routes/index.ts @@ -103,7 +103,8 @@ export const initRoutes = ( security, ruleOptions, securityRuleTypeOptions, - previewRuleDataClient + previewRuleDataClient, + getStartServices ); // Once we no longer have the legacy notifications system/"side car actions" this should be removed. diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/index.test.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/index.test.ts index fda1e1c166ce3..901d577fdbf5a 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/index.test.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/index.test.ts @@ -13,7 +13,6 @@ import { hostOverview } from './overview'; import { firstOrLastSeenHost } from './last_first_seen'; import { uncommonProcesses } from './uncommon_processes'; -import { authentications, authenticationsEntities } from './authentications'; import { hostsKpiAuthentications, hostsKpiAuthenticationsEntities } from './kpi/authentications'; import { hostsKpiHosts, hostsKpiHostsEntities } from './kpi/hosts'; import { hostsKpiUniqueIps, hostsKpiUniqueIpsEntities } from './kpi/unique_ips'; @@ -23,7 +22,6 @@ jest.mock('./details'); jest.mock('./overview'); jest.mock('./last_first_seen'); jest.mock('./uncommon_processes'); -jest.mock('./authentications'); jest.mock('./kpi/authentications'); jest.mock('./kpi/hosts'); jest.mock('./kpi/unique_ips'); @@ -36,8 +34,6 @@ describe('hostsFactory', () => { [HostsQueries.overview]: hostOverview, [HostsQueries.firstOrLastSeen]: firstOrLastSeenHost, [HostsQueries.uncommonProcesses]: uncommonProcesses, - [HostsQueries.authentications]: authentications, - [HostsQueries.authenticationsEntities]: authenticationsEntities, [HostsKpiQueries.kpiAuthentications]: hostsKpiAuthentications, [HostsKpiQueries.kpiAuthenticationsEntities]: hostsKpiAuthenticationsEntities, [HostsKpiQueries.kpiHosts]: hostsKpiHosts, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/index.ts index cd95a38ec3092..5d40e5e153599 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/index.ts @@ -17,7 +17,6 @@ import { hostDetails } from './details'; import { hostOverview } from './overview'; import { firstOrLastSeenHost } from './last_first_seen'; import { uncommonProcesses } from './uncommon_processes'; -import { authentications, authenticationsEntities } from './authentications'; import { hostsKpiAuthentications, hostsKpiAuthenticationsEntities } from './kpi/authentications'; import { hostsKpiHosts, hostsKpiHostsEntities } from './kpi/hosts'; import { hostsKpiUniqueIps, hostsKpiUniqueIpsEntities } from './kpi/unique_ips'; @@ -32,8 +31,6 @@ export const hostsFactory: Record< [HostsQueries.overview]: hostOverview, [HostsQueries.firstOrLastSeen]: firstOrLastSeenHost, [HostsQueries.uncommonProcesses]: uncommonProcesses, - [HostsQueries.authentications]: authentications, - [HostsQueries.authenticationsEntities]: authenticationsEntities, [HostsKpiQueries.kpiAuthentications]: hostsKpiAuthentications, [HostsKpiQueries.kpiAuthenticationsEntities]: hostsKpiAuthenticationsEntities, [HostsKpiQueries.kpiHosts]: hostsKpiHosts, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/__mocks__/index.ts similarity index 99% rename from x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/__mocks__/index.ts rename to x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/__mocks__/index.ts index 6e43d771d1a02..6b57ff7fdb7cd 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/__mocks__/index.ts @@ -6,15 +6,15 @@ */ import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; - import { + UserAuthenticationsRequestOptions, AuthenticationHit, Direction, - HostAuthenticationsRequestOptions, - HostsQueries, + UsersQueries, + AuthStackByField, } from '../../../../../../../common/search_strategy'; -export const mockOptions: HostAuthenticationsRequestOptions = { +export const mockOptions: UserAuthenticationsRequestOptions = { defaultIndex: [ 'apm-*-transaction*', 'traces-apm*', @@ -25,6 +25,7 @@ export const mockOptions: HostAuthenticationsRequestOptions = { 'packetbeat-*', 'winlogbeat-*', ], + stackByField: AuthStackByField.userName, docValueFields: [ { field: '@timestamp', @@ -427,7 +428,7 @@ export const mockOptions: HostAuthenticationsRequestOptions = { format: 'date_time', }, ], - factoryQueryType: HostsQueries.authentications, + factoryQueryType: UsersQueries.authentications, filterQuery: '{"bool":{"must":[],"filter":[{"match_all":{}}],"should":[],"must_not":[]}}', pagination: { activePage: 0, @@ -456,7 +457,7 @@ export const mockSearchStrategyResponse: IEsSearchResponse = { _shards: { total: 21, successful: 21, skipped: 0, failed: 0 }, hits: { total: -1, max_score: 0, hits: [] }, aggregations: { - group_by_users: { + stack_by: { doc_count_error_upper_bound: -1, sum_other_doc_count: 408, buckets: [ @@ -1290,7 +1291,7 @@ export const mockSearchStrategyResponse: IEsSearchResponse = { }, ], }, - user_count: { value: 188 }, + stack_by_count: { value: 188 }, }, }, total: 21, @@ -1306,7 +1307,7 @@ export const formattedSearchStrategyResponse = { _shards: { total: 21, successful: 21, skipped: 0, failed: 0 }, hits: { total: -1, max_score: 0, hits: [] }, aggregations: { - group_by_users: { + stack_by: { doc_count_error_upper_bound: -1, sum_other_doc_count: 408, buckets: [ @@ -2140,7 +2141,7 @@ export const formattedSearchStrategyResponse = { }, ], }, - user_count: { value: 188 }, + stack_by_count: { value: 188 }, }, }, total: 21, @@ -2164,8 +2165,8 @@ export const formattedSearchStrategyResponse = { body: { docvalue_fields: mockOptions.docValueFields, aggregations: { - user_count: { cardinality: { field: 'user.name' } }, - group_by_users: { + stack_by_count: { cardinality: { field: 'user.name' } }, + stack_by: { terms: { size: 10, field: 'user.name', @@ -2231,7 +2232,7 @@ export const formattedSearchStrategyResponse = { failures: 0, successes: 4, _id: 'SYSTEM+281', - user: { name: ['SYSTEM'] }, + stackedValue: ['SYSTEM'], lastSuccess: { timestamp: ['2020-09-04T13:08:02.532Z'], host: { id: ['ce1d3c9b-a815-4643-9641-ada0f2c00609'], name: ['siem-windows'] }, @@ -2244,7 +2245,7 @@ export const formattedSearchStrategyResponse = { failures: 0, successes: 1, _id: 'tsg+1', - user: { name: ['tsg'] }, + stackedValue: ['tsg'], lastSuccess: { timestamp: ['2020-09-04T11:49:21.000Z'], source: { ip: ['77.183.42.188'] }, @@ -2258,7 +2259,7 @@ export const formattedSearchStrategyResponse = { failures: 23, successes: 0, _id: 'admin+23', - user: { name: ['admin'] }, + stackedValue: ['admin'], lastFailure: { timestamp: ['2020-09-04T13:40:46.000Z'], source: { ip: ['59.15.3.197'] }, @@ -2272,7 +2273,7 @@ export const formattedSearchStrategyResponse = { failures: 21, successes: 0, _id: 'user+21', - user: { name: ['user'] }, + stackedValue: ['user'], lastFailure: { timestamp: ['2020-09-04T13:25:43.000Z'], source: { ip: ['64.227.88.245'] }, @@ -2286,7 +2287,7 @@ export const formattedSearchStrategyResponse = { failures: 18, successes: 0, _id: 'ubuntu+18', - user: { name: ['ubuntu'] }, + stackedValue: ['ubuntu'], lastFailure: { timestamp: ['2020-09-04T13:25:07.000Z'], source: { ip: ['64.227.88.245'] }, @@ -2300,7 +2301,7 @@ export const formattedSearchStrategyResponse = { failures: 17, successes: 0, _id: 'odoo+17', - user: { name: ['odoo'] }, + stackedValue: ['odoo'], lastFailure: { timestamp: ['2020-09-04T12:26:36.000Z'], source: { ip: ['180.151.228.166'] }, @@ -2314,7 +2315,7 @@ export const formattedSearchStrategyResponse = { failures: 17, successes: 0, _id: 'pi+17', - user: { name: ['pi'] }, + stackedValue: ['pi'], lastFailure: { timestamp: ['2020-09-04T11:37:22.000Z'], source: { ip: ['178.174.148.58'] }, @@ -2328,7 +2329,7 @@ export const formattedSearchStrategyResponse = { failures: 14, successes: 0, _id: 'demo+14', - user: { name: ['demo'] }, + stackedValue: ['demo'], lastFailure: { timestamp: ['2020-09-04T07:23:22.000Z'], source: { ip: ['45.95.168.157'] }, @@ -2342,7 +2343,7 @@ export const formattedSearchStrategyResponse = { failures: 13, successes: 0, _id: 'git+13', - user: { name: ['git'] }, + stackedValue: ['git'], lastFailure: { timestamp: ['2020-09-04T11:20:26.000Z'], source: { ip: ['123.206.30.76'] }, @@ -2356,7 +2357,7 @@ export const formattedSearchStrategyResponse = { failures: 13, successes: 0, _id: 'webadmin+13', - user: { name: ['webadmin'] }, + stackedValue: ['webadmin'], lastFailure: { timestamp: ['2020-09-04T07:25:28.000Z'], source: { ip: ['45.95.168.157'] }, @@ -2386,8 +2387,8 @@ export const expectedDsl = { body: { docvalue_fields: mockOptions.docValueFields, aggregations: { - user_count: { cardinality: { field: 'user.name' } }, - group_by_users: { + stack_by_count: { cardinality: { field: 'user.name' } }, + stack_by: { terms: { size: 10, field: 'user.name', @@ -2445,7 +2446,7 @@ export const mockHit: AuthenticationHit = { }, cursor: 'cursor-1', sort: [0], - user: 'Evan', + stackedValue: 'Evan', failures: 10, successes: 20, }; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/dsl/query.dsl.test.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/dsl/query.dsl.test.ts similarity index 100% rename from x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/dsl/query.dsl.test.ts rename to x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/dsl/query.dsl.test.ts diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/dsl/query.dsl.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/dsl/query.dsl.ts similarity index 90% rename from x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/dsl/query.dsl.ts rename to x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/dsl/query.dsl.ts index c88104745ba06..e018716d4c216 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/dsl/query.dsl.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/dsl/query.dsl.ts @@ -7,7 +7,7 @@ import { isEmpty } from 'lodash/fp'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { HostAuthenticationsRequestOptions } from '../../../../../../../common/search_strategy/security_solution/hosts/authentications'; +import { UserAuthenticationsRequestOptions } from '../../../../../../../common/search_strategy/security_solution/users/authentications'; import { sourceFieldsMap, hostFieldsMap } from '../../../../../../../common/ecs/ecs_fields'; import { createQueryFilterClauses } from '../../../../../../utils/build_query'; @@ -28,11 +28,12 @@ export const auditdFieldsMap: Readonly> = { export const buildQuery = ({ filterQuery, + stackByField, timerange: { from, to }, pagination: { querySize }, defaultIndex, docValueFields, -}: HostAuthenticationsRequestOptions) => { +}: UserAuthenticationsRequestOptions) => { const esFields = reduceFields(authenticationsFields, { ...hostFieldsMap, ...sourceFieldsMap, @@ -52,14 +53,6 @@ export const buildQuery = ({ }, ]; - const agg = { - user_count: { - cardinality: { - field: 'user.name', - }, - }, - }; - const dslQuery = { allow_no_indices: true, index: defaultIndex, @@ -67,11 +60,15 @@ export const buildQuery = ({ body: { ...(!isEmpty(docValueFields) ? { docvalue_fields: docValueFields } : {}), aggregations: { - ...agg, - group_by_users: { + stack_by_count: { + cardinality: { + field: stackByField, + }, + }, + stack_by: { terms: { size: querySize, - field: 'user.name', + field: stackByField, order: [ { 'successes.doc_count': 'desc' as const }, { 'failures.doc_count': 'desc' as const }, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/dsl/query_entities.dsl.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/dsl/query_entities.dsl.ts similarity index 83% rename from x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/dsl/query_entities.dsl.ts rename to x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/dsl/query_entities.dsl.ts index ab726b41ae01b..7c9c29a1efdc4 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/dsl/query_entities.dsl.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/dsl/query_entities.dsl.ts @@ -8,9 +8,8 @@ import { isEmpty } from 'lodash/fp'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { HostAuthenticationsRequestOptions } from '../../../../../../../common/search_strategy/security_solution/hosts/authentications'; - import { createQueryFilterClauses } from '../../../../../../utils/build_query'; +import { UserAuthenticationsRequestOptions } from '../../../../../../../common/search_strategy'; export const buildQueryEntities = ({ filterQuery, @@ -18,7 +17,8 @@ export const buildQueryEntities = ({ pagination: { querySize }, defaultIndex, docValueFields, -}: HostAuthenticationsRequestOptions) => { + stackByField, +}: UserAuthenticationsRequestOptions) => { const filter = [ ...createQueryFilterClauses(filterQuery), { @@ -32,14 +32,6 @@ export const buildQueryEntities = ({ }, ]; - const agg = { - user_count: { - cardinality: { - field: 'user.name', - }, - }, - }; - const dslQuery = { allow_no_indices: true, index: defaultIndex, @@ -47,11 +39,15 @@ export const buildQueryEntities = ({ body: { ...(!isEmpty(docValueFields) ? { docvalue_fields: docValueFields } : {}), aggregations: { - ...agg, - group_by_users: { + stack_by_count: { + cardinality: { + field: stackByField, + }, + }, + stack_by: { terms: { size: querySize, - field: 'user.name', + field: stackByField, order: [ { successes: 'desc' }, { failures: 'desc' }, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/helpers.test.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/helpers.test.ts similarity index 90% rename from x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/helpers.test.ts rename to x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/helpers.test.ts index a8cce8a4c2bcf..1e745ffcbf2ed 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/helpers.test.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/helpers.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { AuthenticationsEdges } from '../../../../../../common/search_strategy/security_solution/hosts/authentications'; +import { AuthenticationsEdges } from '../../../../../../common/search_strategy'; import { auditdFieldsMap } from './dsl/query.dsl'; import { formatAuthenticationData } from './helpers'; @@ -24,9 +24,7 @@ describe('#formatAuthenticationsData', () => { _id: 'id-123', failures: 10, successes: 20, - user: { - name: ['Evan'], - }, + stackedValue: ['Evan'], }, }; @@ -45,9 +43,7 @@ describe('#formatAuthenticationsData', () => { _id: 'id-123', failures: 10, successes: 20, - user: { - name: ['Evan'], - }, + stackedValue: ['Evan'], }, }; @@ -66,9 +62,7 @@ describe('#formatAuthenticationsData', () => { _id: 'id-123', failures: 10, successes: 20, - user: { - name: ['Evan'], - }, + stackedValue: ['Evan'], }, }; @@ -87,9 +81,7 @@ describe('#formatAuthenticationsData', () => { _id: 'id-123', failures: 10, successes: 20, - user: { - name: ['Evan'], - }, + stackedValue: ['Evan'], }, }; @@ -108,9 +100,7 @@ describe('#formatAuthenticationsData', () => { _id: 'id-123', failures: 10, successes: 20, - user: { - name: ['Evan'], - }, + stackedValue: ['Evan'], }, }; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/helpers.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/helpers.ts similarity index 91% rename from x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/helpers.ts rename to x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/helpers.ts index 7517d112aebdc..02a89dd08a222 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/helpers.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/helpers.ts @@ -21,7 +21,7 @@ export const authenticationsFields = [ '_id', 'failures', 'successes', - 'user.name', + 'stackedValue', 'lastSuccess.timestamp', 'lastSuccess.source.ip', 'lastSuccess.host.id', @@ -46,7 +46,7 @@ export const formatAuthenticationData = ( ...flattenedFields.node, ...{ _id: hit._id, - user: { name: [hit.user] }, + stackedValue: [hit.stackedValue], failures: hit.failures, successes: hit.successes, }, @@ -69,9 +69,7 @@ export const formatAuthenticationData = ( failures: 0, successes: 0, _id: '', - user: { - name: [''], - }, + stackedValue: [''], }, cursor: { value: '', @@ -81,7 +79,7 @@ export const formatAuthenticationData = ( ); export const getHits = (response: StrategyResponseType) => - getOr([], 'aggregations.group_by_users.buckets', response.rawResponse).map( + getOr([], 'aggregations.stack_by.buckets', response.rawResponse).map( (bucket: AuthenticationBucket) => ({ _id: getOr( `${bucket.key}+${bucket.doc_count}`, @@ -92,14 +90,14 @@ export const getHits = (response: StrategyResponseT lastSuccess: getOr(null, 'successes.lastSuccess.hits.hits[0]._source', bucket), lastFailure: getOr(null, 'failures.lastFailure.hits.hits[0]._source', bucket), }, - user: bucket.key, + stackedValue: bucket.key, failures: bucket.failures.doc_count, successes: bucket.successes.doc_count, }) ); export const getHitsEntities = (response: StrategyResponseType) => - getOr([], 'aggregations.group_by_users.buckets', response.rawResponse).map( + getOr([], 'aggregations.stack_by.buckets', response.rawResponse).map( (bucket: AuthenticationBucket) => ({ _id: getOr( `${bucket.key}+${bucket.doc_count}`, @@ -110,7 +108,7 @@ export const getHitsEntities = (response: StrategyR lastSuccess: getOr(null, 'successes.lastSuccess.hits.hits[0]._source', bucket), lastFailure: getOr(null, 'failures.lastFailure.hits.hits[0]._source', bucket), }, - user: bucket.key, + stackedValue: bucket.key, failures: bucket.failures.value, successes: bucket.successes.value, }) @@ -130,7 +128,7 @@ export const formatAuthenticationEntitiesData = ( ...flattenedFields.node, ...{ _id: hit._id, - user: { name: [hit.user] }, + stackedValue: [hit.stackedValue], failures: hit.failures, successes: hit.successes, }, @@ -153,9 +151,7 @@ export const formatAuthenticationEntitiesData = ( failures: 0, successes: 0, _id: '', - user: { - name: [''], - }, + stackedValue: [''], }, cursor: { value: '', diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/index.test.tsx b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/index.test.tsx similarity index 90% rename from x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/index.test.tsx rename to x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/index.test.tsx index 960f1a516e814..e4342cf266474 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/index.test.tsx +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/index.test.tsx @@ -7,7 +7,6 @@ import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; -import { HostAuthenticationsRequestOptions } from '../../../../../../common/search_strategy/security_solution/hosts/authentications'; import * as buildQuery from './dsl/query.dsl'; import { authentications } from '.'; import { @@ -15,6 +14,7 @@ import { mockSearchStrategyResponse, formattedSearchStrategyResponse, } from './__mocks__'; +import { UserAuthenticationsRequestOptions } from '../../../../../../common/search_strategy'; describe('authentications search strategy', () => { const buildAuthenticationQuery = jest.spyOn(buildQuery, 'buildQuery'); @@ -36,7 +36,7 @@ describe('authentications search strategy', () => { ...mockOptions.pagination, querySize: DEFAULT_MAX_TABLE_QUERY_SIZE, }, - } as HostAuthenticationsRequestOptions; + } as UserAuthenticationsRequestOptions; expect(() => { authentications.buildDsl(overSizeOptions); diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/index.tsx b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/index.tsx similarity index 78% rename from x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/index.tsx rename to x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/index.tsx index e32d3592d3417..11400166e3344 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/index.tsx +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/authentications/index.tsx @@ -11,12 +11,12 @@ import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/d import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { - HostsQueries, - AuthenticationsEdges, - HostAuthenticationsRequestOptions, - HostAuthenticationsStrategyResponse, AuthenticationHit, -} from '../../../../../../common/search_strategy/security_solution/hosts'; + AuthenticationsEdges, + UserAuthenticationsRequestOptions, + UserAuthenticationsStrategyResponse, +} from '../../../../../../common/search_strategy'; +import { UsersQueries } from '../../../../../../common/search_strategy/security_solution/users'; import { inspectStringifyObject } from '../../../../../utils/build_query'; import { SecuritySolutionFactory } from '../../types'; @@ -32,8 +32,8 @@ import { getHitsEntities, } from './helpers'; -export const authentications: SecuritySolutionFactory = { - buildDsl: (options: HostAuthenticationsRequestOptions) => { +export const authentications: SecuritySolutionFactory = { + buildDsl: (options: UserAuthenticationsRequestOptions) => { if (options.pagination && options.pagination.querySize >= DEFAULT_MAX_TABLE_QUERY_SIZE) { throw new Error(`No query size above ${DEFAULT_MAX_TABLE_QUERY_SIZE}`); } @@ -41,11 +41,11 @@ export const authentications: SecuritySolutionFactory - ): Promise => { + ): Promise => { const { activePage, cursorStart, fakePossibleCount, querySize } = options.pagination; - const totalCount = getOr(0, 'aggregations.user_count.value', response.rawResponse); + const totalCount = getOr(0, 'aggregations.stack_by_count.value', response.rawResponse); const fakeTotalCount = fakePossibleCount <= totalCount ? fakePossibleCount : totalCount; const hits: AuthenticationHit[] = getHits(response); @@ -72,8 +72,8 @@ export const authentications: SecuritySolutionFactory = { - buildDsl: (options: HostAuthenticationsRequestOptions) => { +export const authenticationsEntities: SecuritySolutionFactory = { + buildDsl: (options: UserAuthenticationsRequestOptions) => { if (options.pagination && options.pagination.querySize >= DEFAULT_MAX_TABLE_QUERY_SIZE) { throw new Error(`No query size above ${DEFAULT_MAX_TABLE_QUERY_SIZE}`); } @@ -81,11 +81,11 @@ export const authenticationsEntities: SecuritySolutionFactory - ): Promise => { + ): Promise => { const { activePage, cursorStart, fakePossibleCount, querySize } = options.pagination; - const totalCount = getOr(0, 'aggregations.user_count.value', response.rawResponse); + const totalCount = getOr(0, 'aggregations.stack_by_count.value', response.rawResponse); const fakeTotalCount = fakePossibleCount <= totalCount ? fakePossibleCount : totalCount; const hits: AuthenticationHit[] = getHitsEntities(response); diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/index.ts index dce2195867358..0b13319cc11c7 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/users/index.ts @@ -10,6 +10,7 @@ import { UsersQueries } from '../../../../../common/search_strategy/security_sol import { SecuritySolutionFactory } from '../types'; import { allUsers } from './all'; +import { authentications, authenticationsEntities } from './authentications'; import { userDetails } from './details'; import { totalUsersKpi } from './kpi/total_users'; @@ -17,4 +18,6 @@ export const usersFactory: Record, + SanitizedRule, 'createdBy' | 'updatedBy' | 'createdAt' | 'updatedAt' > & { createdBy: string | null; diff --git a/x-pack/plugins/session_view/public/components/session_view/hooks.ts b/x-pack/plugins/session_view/public/components/session_view/hooks.ts index 8c69c34e2c3db..7c2003beb53c3 100644 --- a/x-pack/plugins/session_view/public/components/session_view/hooks.ts +++ b/x-pack/plugins/session_view/public/components/session_view/hooks.ts @@ -107,6 +107,7 @@ export const useFetchSessionViewAlerts = (sessionEntityId: string) => { refetchOnWindowFocus: false, refetchOnMount: false, refetchOnReconnect: false, + cacheTime: 0, } ); diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/constant.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/constant.ts index 6f10f25934afc..a04c8aed403d9 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/constant.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/constant.ts @@ -13,4 +13,6 @@ export const REPOSITORY_EDIT = getRepository({ name: REPOSITORY_NAME }); export const POLICY_NAME = 'my-test-policy'; +export const SNAPSHOT_NAME = 'my-test-snapshot'; + export const POLICY_EDIT = getPolicy({ name: POLICY_NAME, retention: { minCount: 1 } }); diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/home.helpers.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/home.helpers.ts index 45b31a19693b7..9970b0100ceb8 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/home.helpers.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/home.helpers.ts @@ -14,6 +14,7 @@ import { AsyncTestBedConfig, delay, } from '@kbn/test-jest-helpers'; +import { HttpSetup } from 'src/core/public'; import { SnapshotRestoreHome } from '../../../public/application/sections/home/home'; import { BASE_PATH } from '../../../public/application/constants'; import { WithAppDependencies } from './setup_environment'; @@ -26,8 +27,6 @@ const testBedConfig: AsyncTestBedConfig = { doMountAsync: true, }; -const initTestBed = registerTestBed(WithAppDependencies(SnapshotRestoreHome), testBedConfig); - export interface HomeTestBed extends TestBed { actions: { clickReloadButton: () => void; @@ -40,7 +39,11 @@ export interface HomeTestBed extends TestBed { }; } -export const setup = async (): Promise => { +export const setup = async (httpSetup: HttpSetup): Promise => { + const initTestBed = registerTestBed( + WithAppDependencies(SnapshotRestoreHome, httpSetup), + testBedConfig + ); const testBed = await initTestBed(); const REPOSITORY_TABLE = 'repositoryTable'; const SNAPSHOT_TABLE = 'snapshotTable'; diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/http_requests.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/http_requests.ts index 662c50a98bfe8..3c14c444d4664 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/http_requests.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/http_requests.ts @@ -5,117 +5,119 @@ * 2.0. */ -import sinon, { SinonFakeServer } from 'sinon'; +import { httpServiceMock } from '../../../../../../src/core/public/mocks'; import { API_BASE_PATH } from '../../../common'; +type HttpMethod = 'GET' | 'PUT' | 'POST'; type HttpResponse = Record | any[]; -const mockResponse = (defaultResponse: HttpResponse, response?: HttpResponse) => [ - 200, - { 'Content-Type': 'application/json' }, - JSON.stringify({ ...defaultResponse, ...response }), -]; +export interface ResponseError { + statusCode: number; + message: string | Error; +} // Register helpers to mock HTTP Requests -const registerHttpRequestMockHelpers = (server: SinonFakeServer) => { - const setLoadRepositoriesResponse = (response: HttpResponse = {}) => { - const defaultResponse = { repositories: [] }; - - server.respondWith( - 'GET', - `${API_BASE_PATH}repositories`, - mockResponse(defaultResponse, response) - ); +const registerHttpRequestMockHelpers = ( + httpSetup: ReturnType +) => { + const mockResponses = new Map>>( + ['GET', 'PUT', 'POST'].map( + (method) => [method, new Map()] as [HttpMethod, Map>] + ) + ); + + const mockMethodImplementation = (method: HttpMethod, path: string) => + mockResponses.get(method)?.get(path) ?? Promise.resolve({}); + + httpSetup.get.mockImplementation((path) => + mockMethodImplementation('GET', path as unknown as string) + ); + httpSetup.post.mockImplementation((path) => + mockMethodImplementation('POST', path as unknown as string) + ); + httpSetup.put.mockImplementation((path) => + mockMethodImplementation('PUT', path as unknown as string) + ); + + const mockResponse = (method: HttpMethod, path: string, response?: unknown, error?: unknown) => { + const defuse = (promise: Promise) => { + promise.catch(() => {}); + return promise; + }; + + return mockResponses + .get(method)! + .set(path, error ? defuse(Promise.reject({ body: error })) : Promise.resolve(response)); }; - const setLoadRepositoryTypesResponse = (response: HttpResponse = []) => { - server.respondWith('GET', `${API_BASE_PATH}repository_types`, JSON.stringify(response)); - }; + const setLoadRepositoriesResponse = ( + response: HttpResponse = { repositories: [] }, + error?: ResponseError + ) => mockResponse('GET', `${API_BASE_PATH}repositories`, response, error); - const setGetRepositoryResponse = (response?: HttpResponse, delay = 0) => { - const defaultResponse = {}; - - server.respondWith( - 'GET', - /api\/snapshot_restore\/repositories\/.+/, - mockResponse(defaultResponse, response) - ); - }; + const setLoadRepositoryTypesResponse = (response: HttpResponse = [], error?: ResponseError) => + mockResponse('GET', `${API_BASE_PATH}repository_types`, response, error); - const setSaveRepositoryResponse = (response?: HttpResponse, error?: any) => { - const status = error ? error.status || 400 : 200; - const body = error ? JSON.stringify(error.body) : JSON.stringify(response); + const setGetRepositoryResponse = ( + repositoryName: string, + response?: HttpResponse, + error?: ResponseError + ) => mockResponse('GET', `${API_BASE_PATH}repositories/${repositoryName}`, response, error); - server.respondWith('PUT', `${API_BASE_PATH}repositories`, [ - status, - { 'Content-Type': 'application/json' }, - body, - ]); - }; + const setSaveRepositoryResponse = (response?: HttpResponse, error?: ResponseError) => + mockResponse('PUT', `${API_BASE_PATH}repositories`, response, error); - const setLoadSnapshotsResponse = (response: HttpResponse = {}) => { + const setLoadSnapshotsResponse = (response?: HttpResponse, error?: ResponseError) => { const defaultResponse = { errors: {}, snapshots: [], repositories: [], total: 0 }; - - server.respondWith('GET', `${API_BASE_PATH}snapshots`, mockResponse(defaultResponse, response)); + return mockResponse('GET', `${API_BASE_PATH}snapshots`, response ?? defaultResponse, error); }; - const setGetSnapshotResponse = (response?: HttpResponse) => { - const defaultResponse = {}; - - server.respondWith( + const setGetSnapshotResponse = ( + repositoryName: string, + snapshotName: string, + response?: HttpResponse, + error?: ResponseError + ) => + mockResponse( 'GET', - /\/api\/snapshot_restore\/snapshots\/.+/, - mockResponse(defaultResponse, response) + `${API_BASE_PATH}snapshots/${repositoryName}/${snapshotName}`, + response, + error ); - }; - - const setLoadIndicesResponse = (response: HttpResponse = {}) => { - const defaultResponse = { indices: [] }; - server.respondWith( - 'GET', - `${API_BASE_PATH}policies/indices`, - mockResponse(defaultResponse, response) + const setLoadIndicesResponse = ( + response: HttpResponse = { indices: [] }, + error?: ResponseError + ) => mockResponse('GET', `${API_BASE_PATH}policies/indices`, response, error); + + const setAddPolicyResponse = (response?: HttpResponse, error?: ResponseError) => + mockResponse('POST', `${API_BASE_PATH}policies`, response, error); + + const setCleanupRepositoryResponse = ( + repositoryName: string, + response?: HttpResponse, + error?: ResponseError + ) => + mockResponse('POST', `${API_BASE_PATH}repositories/${repositoryName}/cleanup`, response, error); + + const setGetPolicyResponse = ( + policyName: string, + response?: HttpResponse, + error?: ResponseError + ) => mockResponse('GET', `${API_BASE_PATH}policy/${policyName}`, response, error); + + const setRestoreSnapshotResponse = ( + repositoryName: string, + snapshotId: string, + response?: HttpResponse, + error?: ResponseError + ) => + mockResponse( + 'POST', + `${API_BASE_PATH}restore/${repositoryName}/${snapshotId}`, + response, + error ); - }; - - const setAddPolicyResponse = (response?: HttpResponse, error?: any) => { - const status = error ? error.status || 400 : 200; - const body = error ? JSON.stringify(error.body) : JSON.stringify(response); - - server.respondWith('POST', `${API_BASE_PATH}policies`, [ - status, - { 'Content-Type': 'application/json' }, - body, - ]); - }; - - const setCleanupRepositoryResponse = (response?: HttpResponse, error?: any) => { - const status = error ? error.status || 503 : 200; - const body = error ? JSON.stringify(error) : JSON.stringify(response); - - server.respondWith('POST', `${API_BASE_PATH}repositories/:name/cleanup`, [ - status, - { 'Content-Type': 'application/json' }, - body, - ]); - }; - - const setGetPolicyResponse = (response?: HttpResponse) => { - server.respondWith('GET', `${API_BASE_PATH}policy/:name`, [ - 200, - { 'Content-Type': 'application/json' }, - JSON.stringify(response), - ]); - }; - - const setRestoreSnapshotResponse = (response?: HttpResponse) => { - server.respondWith('POST', `${API_BASE_PATH}restore/:repository/:snapshot`, [ - 200, - { 'Content-Type': 'application/json' }, - JSON.stringify(response), - ]); - }; return { setLoadRepositoriesResponse, @@ -133,18 +135,11 @@ const registerHttpRequestMockHelpers = (server: SinonFakeServer) => { }; export const init = () => { - const server = sinon.fakeServer.create(); - server.respondImmediately = true; - - // Define default response for unhandled requests. - // We make requests to APIs which don't impact the component under test, e.g. UI metric telemetry, - // and we can mock them all with a 200 instead of mocking each one individually. - server.respondWith([200, {}, 'DefaultResponse']); - - const httpRequestsMockHelpers = registerHttpRequestMockHelpers(server); + const httpSetup = httpServiceMock.createSetupContract(); + const httpRequestsMockHelpers = registerHttpRequestMockHelpers(httpSetup); return { - server, + httpSetup, httpRequestsMockHelpers, }; }; diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/policy_add.helpers.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/policy_add.helpers.ts index d921b96781d0c..a5cf9aceff8c4 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/policy_add.helpers.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/policy_add.helpers.ts @@ -6,6 +6,7 @@ */ import { registerTestBed, AsyncTestBedConfig } from '@kbn/test-jest-helpers'; +import { HttpSetup } from 'src/core/public'; import { PolicyAdd } from '../../../public/application/sections/policy_add'; import { formSetup, PolicyFormTestSubjects } from './policy_form.helpers'; import { WithAppDependencies } from './setup_environment'; @@ -18,9 +19,11 @@ const testBedConfig: AsyncTestBedConfig = { doMountAsync: true, }; -const initTestBed = registerTestBed( - WithAppDependencies(PolicyAdd), - testBedConfig -); +export const setup = async (httpSetup: HttpSetup) => { + const initTestBed = registerTestBed( + WithAppDependencies(PolicyAdd, httpSetup), + testBedConfig + ); -export const setup = formSetup.bind(null, initTestBed); + return formSetup(initTestBed); +}; diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/policy_edit.helpers.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/policy_edit.helpers.ts index 461351e744125..3334dc5337a4d 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/policy_edit.helpers.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/policy_edit.helpers.ts @@ -6,6 +6,7 @@ */ import { registerTestBed, AsyncTestBedConfig } from '@kbn/test-jest-helpers'; +import { HttpSetup } from 'src/core/public'; import { PolicyEdit } from '../../../public/application/sections/policy_edit'; import { WithAppDependencies } from './setup_environment'; import { POLICY_NAME } from './constant'; @@ -19,9 +20,11 @@ const testBedConfig: AsyncTestBedConfig = { doMountAsync: true, }; -const initTestBed = registerTestBed( - WithAppDependencies(PolicyEdit), - testBedConfig -); +export const setup = async (httpSetup: HttpSetup) => { + const initTestBed = registerTestBed( + WithAppDependencies(PolicyEdit, httpSetup), + testBedConfig + ); -export const setup = formSetup.bind(null, initTestBed); + return formSetup(initTestBed); +}; diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/repository_add.helpers.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/repository_add.helpers.ts index c6460078482bf..c4a5fc4b7be93 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/repository_add.helpers.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/repository_add.helpers.ts @@ -6,14 +6,11 @@ */ import { registerTestBed, TestBed } from '@kbn/test-jest-helpers'; +import { HttpSetup } from 'src/core/public'; import { RepositoryType } from '../../../common/types'; import { RepositoryAdd } from '../../../public/application/sections/repository_add'; import { WithAppDependencies } from './setup_environment'; -const initTestBed = registerTestBed(WithAppDependencies(RepositoryAdd), { - doMountAsync: true, -}); - export interface RepositoryAddTestBed extends TestBed { actions: { clickNextButton: () => void; @@ -23,7 +20,13 @@ export interface RepositoryAddTestBed extends TestBed }; } -export const setup = async (): Promise => { +export const setup = async (httpSetup: HttpSetup): Promise => { + const initTestBed = registerTestBed( + WithAppDependencies(RepositoryAdd, httpSetup), + { + doMountAsync: true, + } + ); const testBed = await initTestBed(); // User actions diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/repository_edit.helpers.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/repository_edit.helpers.ts index 275c216d70664..3e8bbf95d5ea9 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/repository_edit.helpers.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/repository_edit.helpers.ts @@ -6,6 +6,7 @@ */ import { registerTestBed, AsyncTestBedConfig } from '@kbn/test-jest-helpers'; +import { HttpSetup } from 'src/core/public'; import { RepositoryEdit } from '../../../public/application/sections/repository_edit'; import { WithAppDependencies } from './setup_environment'; import { REPOSITORY_NAME } from './constant'; @@ -18,10 +19,14 @@ const testBedConfig: AsyncTestBedConfig = { doMountAsync: true, }; -export const setup = registerTestBed( - WithAppDependencies(RepositoryEdit), - testBedConfig -); +export const setup = async (httpSetup: HttpSetup) => { + const initTestBed = registerTestBed( + WithAppDependencies(RepositoryEdit, httpSetup), + testBedConfig + ); + + return await initTestBed(); +}; export type RepositoryEditTestSubjects = TestSubjects | ThreeLevelDepth | NonVisibleTestSubjects; diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/restore_snapshot.helpers.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/restore_snapshot.helpers.ts index 86c93a6811bd4..fe5a82f421def 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/restore_snapshot.helpers.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/restore_snapshot.helpers.ts @@ -6,23 +6,20 @@ */ import { act } from 'react-dom/test-utils'; +import { HttpSetup } from 'src/core/public'; import { registerTestBed, TestBed, AsyncTestBedConfig } from '@kbn/test-jest-helpers'; import { RestoreSnapshot } from '../../../public/application/sections/restore_snapshot'; import { WithAppDependencies } from './setup_environment'; +import { REPOSITORY_NAME, SNAPSHOT_NAME } from '../helpers/constant'; const testBedConfig: AsyncTestBedConfig = { memoryRouter: { - initialEntries: ['/add_policy'], - componentRoutePath: '/add_policy', + initialEntries: [`/restore/${REPOSITORY_NAME}/${SNAPSHOT_NAME}`], + componentRoutePath: '/restore/:repositoryName?/:snapshotId*', }, doMountAsync: true, }; -const initTestBed = registerTestBed( - WithAppDependencies(RestoreSnapshot), - testBedConfig -); - const setupActions = (testBed: TestBed) => { const { find, component, form, exists } = testBed; @@ -84,7 +81,12 @@ export type RestoreSnapshotTestBed = TestBed & { actions: Actions; }; -export const setup = async (): Promise => { +export const setup = async (httpSetup: HttpSetup): Promise => { + const initTestBed = registerTestBed( + WithAppDependencies(RestoreSnapshot, httpSetup), + testBedConfig + ); + const testBed = await initTestBed(); return { diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/setup_environment.tsx b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/setup_environment.tsx index 66ba21b136816..0c961d5e151bc 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/setup_environment.tsx +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/setup_environment.tsx @@ -6,11 +6,10 @@ */ import React from 'react'; -import axios from 'axios'; -import axiosXhrAdapter from 'axios/lib/adapters/xhr'; import { i18n } from '@kbn/i18n'; import { LocationDescriptorObject } from 'history'; +import { HttpSetup } from 'src/core/public'; import { coreMock, scopedHistoryMock } from 'src/core/public/mocks'; import { setUiMetricService, httpService } from '../../../public/application/services/http'; import { @@ -22,8 +21,6 @@ import { textService } from '../../../public/application/services/text'; import { init as initHttpRequests } from './http_requests'; import { UiMetricService } from '../../../public/application/services'; -const mockHttpClient = axios.create({ adapter: axiosXhrAdapter }); - const history = scopedHistoryMock.create(); history.createHref.mockImplementation((location: LocationDescriptorObject) => { return `${location.pathname}?${location.search}`; @@ -48,18 +45,11 @@ const appDependencies = { }; export const setupEnvironment = () => { - // @ts-ignore - httpService.setup(mockHttpClient); breadcrumbService.setup(() => undefined); textService.setup(i18n); docTitleService.setup(() => undefined); - const { server, httpRequestsMockHelpers } = initHttpRequests(); - - return { - server, - httpRequestsMockHelpers, - }; + return initHttpRequests(); }; /** @@ -70,9 +60,16 @@ export const setupEnvironment = () => { this.terminate = () => {}; }; -export const WithAppDependencies = (Comp: any) => (props: any) => - ( +export const WithAppDependencies = (Comp: any, httpSetup?: HttpSetup) => (props: any) => { + // We need to optionally setup the httpService since some cit helpers (such as snapshot_list.helpers) + // use jest mocks to stub the fetch hooks instead of mocking api responses. + if (httpSetup) { + httpService.setup(httpSetup); + } + + return ( ); +}; diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/snapshot_list.helpers.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/snapshot_list.helpers.ts index 261976623144b..d81db28c5353a 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/snapshot_list.helpers.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/snapshot_list.helpers.ts @@ -35,6 +35,7 @@ const searchErrorSelector = 'snapshotListSearchError'; export const setup = async (query?: string): Promise => { const testBed = await initTestBed(query); + const { form, component, find, exists } = testBed; const setSearchText = async (value: string, advanceTime = true) => { diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/home.test.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/home.test.ts index a99a6fdb81167..09a726a6b9abe 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/home.test.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/home.test.ts @@ -41,16 +41,12 @@ const removeWhiteSpaceOnArrayValues = (array: any[]) => }); describe('', () => { - const { server, httpRequestsMockHelpers } = setupEnvironment(); + const { httpSetup, httpRequestsMockHelpers } = setupEnvironment(); let testBed: HomeTestBed; - afterAll(() => { - server.restore(); - }); - describe('on component mount', () => { beforeEach(async () => { - testBed = await setup(); + testBed = await setup(httpSetup); }); test('should set the correct app title', () => { @@ -79,7 +75,7 @@ describe('', () => { describe('tabs', () => { beforeEach(async () => { - testBed = await setup(); + testBed = await setup(httpSetup); await act(async () => { await nextTick(); @@ -132,7 +128,7 @@ describe('', () => { }); test('should display an empty prompt', async () => { - const { component, exists } = await setup(); + const { component, exists } = await setup(httpSetup); await act(async () => { await nextTick(); @@ -164,7 +160,7 @@ describe('', () => { beforeEach(async () => { httpRequestsMockHelpers.setLoadRepositoriesResponse({ repositories }); - testBed = await setup(); + testBed = await setup(httpSetup); await act(async () => { await nextTick(); @@ -208,7 +204,6 @@ describe('', () => { test('should have a button to reload the repositories', async () => { const { component, exists, actions } = testBed; - const totalRequests = server.requests.length; expect(exists('reloadButton')).toBe(true); await act(async () => { @@ -217,9 +212,9 @@ describe('', () => { component.update(); }); - expect(server.requests.length).toBe(totalRequests + 1); - expect(server.requests[server.requests.length - 1].url).toBe( - `${API_BASE_PATH}repositories` + expect(httpSetup.get).toHaveBeenLastCalledWith( + `${API_BASE_PATH}repositories`, + expect.anything() ); }); @@ -273,10 +268,10 @@ describe('', () => { component.update(); }); - const latestRequest = server.requests[server.requests.length - 1]; - - expect(latestRequest.method).toBe('DELETE'); - expect(latestRequest.url).toBe(`${API_BASE_PATH}repositories/${repo1.name}`); + expect(httpSetup.delete).toHaveBeenLastCalledWith( + `${API_BASE_PATH}repositories/${repo1.name}`, + expect.anything() + ); }); }); @@ -304,23 +299,20 @@ describe('', () => { }); test('should show a loading state while fetching the repository', async () => { - server.respondImmediately = false; const { find, exists, actions } = testBed; // By providing undefined, the "loading section" will be displayed - httpRequestsMockHelpers.setGetRepositoryResponse(undefined); + httpRequestsMockHelpers.setGetRepositoryResponse(repo1.name, undefined); await actions.clickRepositoryAt(0); expect(exists('repositoryDetail.sectionLoading')).toBe(true); expect(find('repositoryDetail.sectionLoading').text()).toEqual('Loading repository…'); - - server.respondImmediately = true; }); describe('when the repository has been fetched', () => { beforeEach(async () => { - httpRequestsMockHelpers.setGetRepositoryResponse({ + httpRequestsMockHelpers.setGetRepositoryResponse(repo1.name, { repository: { name: 'my-repo', type: 'fs', @@ -357,15 +349,15 @@ describe('', () => { component.update(); }); - const latestRequest = server.requests[server.requests.length - 1]; - - expect(latestRequest.method).toBe('GET'); - expect(latestRequest.url).toBe(`${API_BASE_PATH}repositories/${repo1.name}/verify`); + expect(httpSetup.get).toHaveBeenLastCalledWith( + `${API_BASE_PATH}repositories/${repo1.name}/verify`, + expect.anything() + ); }); describe('clean repository', () => { test('shows results when request succeeds', async () => { - httpRequestsMockHelpers.setCleanupRepositoryResponse({ + httpRequestsMockHelpers.setCleanupRepositoryResponse(repo1.name, { cleanup: { cleaned: true, response: { @@ -383,16 +375,17 @@ describe('', () => { }); component.update(); - const latestRequest = server.requests[server.requests.length - 1]; - expect(latestRequest.method).toBe('POST'); - expect(latestRequest.url).toBe(`${API_BASE_PATH}repositories/${repo1.name}/cleanup`); + expect(httpSetup.post).toHaveBeenLastCalledWith( + `${API_BASE_PATH}repositories/${repo1.name}/cleanup`, + expect.anything() + ); expect(exists('repositoryDetail.cleanupCodeBlock')).toBe(true); expect(exists('repositoryDetail.cleanupError')).toBe(false); }); test('shows error when success fails', async () => { - httpRequestsMockHelpers.setCleanupRepositoryResponse({ + httpRequestsMockHelpers.setCleanupRepositoryResponse(repo1.name, { cleanup: { cleaned: false, error: { @@ -408,9 +401,10 @@ describe('', () => { }); component.update(); - const latestRequest = server.requests[server.requests.length - 1]; - expect(latestRequest.method).toBe('POST'); - expect(latestRequest.url).toBe(`${API_BASE_PATH}repositories/${repo1.name}/cleanup`); + expect(httpSetup.post).toHaveBeenLastCalledWith( + `${API_BASE_PATH}repositories/${repo1.name}/cleanup`, + expect.anything() + ); expect(exists('repositoryDetail.cleanupCodeBlock')).toBe(false); expect(exists('repositoryDetail.cleanupError')).toBe(true); @@ -420,7 +414,7 @@ describe('', () => { describe('when the repository has been fetched (and has snapshots)', () => { beforeEach(async () => { - httpRequestsMockHelpers.setGetRepositoryResponse({ + httpRequestsMockHelpers.setGetRepositoryResponse(repo1.name, { repository: { name: 'my-repo', type: 'fs', @@ -448,7 +442,7 @@ describe('', () => { }); beforeEach(async () => { - testBed = await setup(); + testBed = await setup(httpSetup); await act(async () => { testBed.actions.selectTab('snapshots'); @@ -478,7 +472,7 @@ describe('', () => { total: 0, }); - testBed = await setup(); + testBed = await setup(httpSetup); await act(async () => { testBed.actions.selectTab('snapshots'); @@ -517,7 +511,7 @@ describe('', () => { total: 2, }); - testBed = await setup(); + testBed = await setup(httpSetup); await act(async () => { testBed.actions.selectTab('snapshots'); @@ -561,7 +555,7 @@ describe('', () => { }, }); - testBed = await setup(); + testBed = await setup(httpSetup); await act(async () => { testBed.actions.selectTab('snapshots'); @@ -589,7 +583,7 @@ describe('', () => { }, }); - testBed = await setup(); + testBed = await setup(httpSetup); await act(async () => { testBed.actions.selectTab('snapshots'); @@ -625,7 +619,6 @@ describe('', () => { test('should have a button to reload the snapshots', async () => { const { component, exists, actions } = testBed; - const totalRequests = server.requests.length; expect(exists('reloadButton')).toBe(true); await act(async () => { @@ -634,13 +627,19 @@ describe('', () => { component.update(); }); - expect(server.requests.length).toBe(totalRequests + 1); - expect(server.requests[server.requests.length - 1].url).toBe(`${API_BASE_PATH}snapshots`); + expect(httpSetup.get).toHaveBeenLastCalledWith( + `${API_BASE_PATH}snapshots`, + expect.anything() + ); }); describe('detail panel', () => { beforeEach(async () => { - httpRequestsMockHelpers.setGetSnapshotResponse(snapshot1); + httpRequestsMockHelpers.setGetSnapshotResponse( + snapshot1.repository, + snapshot1.snapshot, + snapshot1 + ); }); test('should show the detail when clicking on a snapshot', async () => { @@ -656,17 +655,18 @@ describe('', () => { // that makes the component crash. I tried a few things with no luck so, as this // is a low impact test, I prefer to skip it and move on. test.skip('should show a loading while fetching the snapshot', async () => { - server.respondImmediately = false; const { find, exists, actions } = testBed; // By providing undefined, the "loading section" will be displayed - httpRequestsMockHelpers.setGetSnapshotResponse(undefined); + httpRequestsMockHelpers.setGetSnapshotResponse( + snapshot1.repository, + snapshot1.snapshot, + undefined + ); await actions.clickSnapshotAt(0); expect(exists('snapshotDetail.sectionLoading')).toBe(true); expect(find('snapshotDetail.sectionLoading').text()).toEqual('Loading snapshot…'); - - server.respondImmediately = true; }); describe('on mount', () => { @@ -757,7 +757,11 @@ describe('', () => { const setSnapshotStateAndUpdateDetail = async (state: string) => { const updatedSnapshot = { ...snapshot1, state }; - httpRequestsMockHelpers.setGetSnapshotResponse(updatedSnapshot); + httpRequestsMockHelpers.setGetSnapshotResponse( + itemIndexToClickOn === 0 ? snapshot1.repository : snapshot2.repository, + itemIndexToClickOn === 0 ? snapshot1.snapshot : snapshot2.snapshot, + updatedSnapshot + ); await actions.clickSnapshotAt(itemIndexToClickOn); // click another snapshot to trigger the HTTP call }; @@ -787,9 +791,12 @@ describe('', () => { }; // Call sequentially each state and verify that the message is ok - return Object.entries(mapStateToMessage).reduce((promise, [state, message]) => { - return promise.then(async () => expectMessageForSnapshotState(state, message)); - }, Promise.resolve()); + return Object.entries(mapStateToMessage).reduce( + async (promise, [state, message]) => { + return promise.then(async () => expectMessageForSnapshotState(state, message)); + }, + Promise.resolve() + ); }); }); @@ -805,8 +812,12 @@ describe('', () => { test('should display a message when snapshot in progress ', async () => { const { find, actions } = testBed; - const updatedSnapshot = { ...snapshot1, state: 'IN_PROGRESS' }; - httpRequestsMockHelpers.setGetSnapshotResponse(updatedSnapshot); + const updatedSnapshot = { ...snapshot2, state: 'IN_PROGRESS' }; + httpRequestsMockHelpers.setGetSnapshotResponse( + snapshot2.repository, + snapshot2.snapshot, + updatedSnapshot + ); await actions.clickSnapshotAt(1); // click another snapshot to trigger the HTTP call actions.selectSnapshotDetailTab('failedIndices'); @@ -825,7 +836,11 @@ describe('', () => { beforeEach(async () => { const updatedSnapshot = { ...snapshot1, indexFailures }; - httpRequestsMockHelpers.setGetSnapshotResponse(updatedSnapshot); + httpRequestsMockHelpers.setGetSnapshotResponse( + updatedSnapshot.repository, + updatedSnapshot.snapshot, + updatedSnapshot + ); await testBed.actions.clickSnapshotAt(0); testBed.actions.selectSnapshotDetailTab('failedIndices'); }); diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/policy_add.test.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/policy_add.test.ts index 1e8546bef50e5..0950eda8fc630 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/policy_add.test.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/policy_add.test.ts @@ -12,6 +12,7 @@ import { ReactElement } from 'react'; import { act } from 'react-dom/test-utils'; import * as fixtures from '../../test/fixtures'; +import { API_BASE_PATH } from '../../common'; import { PolicyFormTestBed } from './helpers/policy_form.helpers'; import { DEFAULT_POLICY_SCHEDULE } from '../../public/application/constants'; @@ -36,12 +37,7 @@ const repository = fixtures.getRepository({ name: `a${getRandomString()}`, type: describe('', () => { let testBed: PolicyFormTestBed; - - const { server, httpRequestsMockHelpers } = setupEnvironment(); - - afterAll(() => { - server.restore(); - }); + const { httpSetup, httpRequestsMockHelpers } = setupEnvironment(); describe('on component mount', () => { beforeEach(async () => { @@ -51,7 +47,7 @@ describe('', () => { dataStreams: ['my_data_stream', 'my_other_data_stream'], }); - testBed = await setup(); + testBed = await setup(httpSetup); await nextTick(); testBed.component.update(); }); @@ -241,36 +237,37 @@ describe('', () => { await nextTick(); }); - const latestRequest = server.requests[server.requests.length - 1]; - - const expected = { - config: {}, - isManagedPolicy: false, - name: POLICY_NAME, - repository: repository.name, - retention: { - expireAfterUnit: 'd', // default - expireAfterValue: Number(EXPIRE_AFTER_VALUE), - maxCount: Number(MAX_COUNT), - minCount: Number(MIN_COUNT), - }, - schedule: DEFAULT_POLICY_SCHEDULE, - snapshotName: SNAPSHOT_NAME, - }; - - expect(JSON.parse(JSON.parse(latestRequest.requestBody).body)).toEqual(expected); + expect(httpSetup.post).toHaveBeenLastCalledWith( + `${API_BASE_PATH}policies`, + expect.objectContaining({ + body: JSON.stringify({ + name: POLICY_NAME, + snapshotName: SNAPSHOT_NAME, + schedule: DEFAULT_POLICY_SCHEDULE, + repository: repository.name, + config: {}, + retention: { + expireAfterValue: Number(EXPIRE_AFTER_VALUE), + expireAfterUnit: 'd', // default + maxCount: Number(MAX_COUNT), + minCount: Number(MIN_COUNT), + }, + isManagedPolicy: false, + }), + }) + ); }); it('should surface the API errors from the put HTTP request', async () => { const { component, actions, find, exists } = testBed; const error = { - status: 409, + statusCode: 409, error: 'Conflict', message: `There is already a policy with name '${POLICY_NAME}'`, }; - httpRequestsMockHelpers.setAddPolicyResponse(undefined, { body: error }); + httpRequestsMockHelpers.setAddPolicyResponse(undefined, error); await act(async () => { actions.clickSubmitButton(); diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/policy_edit.test.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/policy_edit.test.ts index 7d5d605b216bc..117d6f0e0e223 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/policy_edit.test.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/policy_edit.test.ts @@ -8,6 +8,7 @@ import { act } from 'react-dom/test-utils'; import { setupEnvironment, pageHelpers, nextTick } from './helpers'; +import { API_BASE_PATH } from '../../common'; import { PolicyForm } from '../../public/application/components/policy_form'; import { PolicyFormTestBed } from './helpers/policy_form.helpers'; import { POLICY_EDIT } from './helpers/constant'; @@ -22,15 +23,11 @@ const EXPIRE_AFTER_UNIT = TIME_UNITS.MINUTE; describe('', () => { let testBed: PolicyFormTestBed; let testBedPolicyAdd: PolicyFormTestBed; - const { server, httpRequestsMockHelpers } = setupEnvironment(); - - afterAll(() => { - server.restore(); - }); + const { httpSetup, httpRequestsMockHelpers } = setupEnvironment(); describe('on component mount', () => { beforeEach(async () => { - httpRequestsMockHelpers.setGetPolicyResponse({ policy: POLICY_EDIT }); + httpRequestsMockHelpers.setGetPolicyResponse(POLICY_EDIT.name, { policy: POLICY_EDIT }); httpRequestsMockHelpers.setLoadIndicesResponse({ indices: ['my_index'], dataStreams: ['my_data_stream'], @@ -39,7 +36,7 @@ describe('', () => { repositories: [{ name: POLICY_EDIT.repository }], }); - testBed = await setup(); + testBed = await setup(httpSetup); await act(async () => { await nextTick(); @@ -55,7 +52,7 @@ describe('', () => { describe('policy with pre-existing repository that was deleted', () => { beforeEach(async () => { - httpRequestsMockHelpers.setGetPolicyResponse({ policy: POLICY_EDIT }); + httpRequestsMockHelpers.setGetPolicyResponse(POLICY_EDIT.name, { policy: POLICY_EDIT }); httpRequestsMockHelpers.setLoadIndicesResponse({ indices: ['my_index'], dataStreams: ['my_data_stream'], @@ -64,7 +61,7 @@ describe('', () => { repositories: [{ name: 'this-is-a-new-repository' }], }); - testBed = await setup(); + testBed = await setup(httpSetup); await act(async () => { await nextTick(); @@ -97,7 +94,7 @@ describe('', () => { * the same form component is indeed shared between the 2 app sections. */ test('should use the same Form component as the "" section', async () => { - testBedPolicyAdd = await setupPolicyAdd(); + testBedPolicyAdd = await setupPolicyAdd(httpSetup); await act(async () => { await nextTick(); @@ -143,27 +140,28 @@ describe('', () => { await nextTick(); }); - const latestRequest = server.requests[server.requests.length - 1]; - const { name, isManagedPolicy, schedule, repository, retention } = POLICY_EDIT; - const expected = { - name, - isManagedPolicy, - schedule, - repository, - config: { - ignoreUnavailable: true, - }, - retention: { - ...retention, - expireAfterValue: Number(EXPIRE_AFTER_VALUE), - expireAfterUnit: EXPIRE_AFTER_UNIT, - }, - snapshotName: editedSnapshotName, - }; - - expect(JSON.parse(JSON.parse(latestRequest.requestBody).body)).toEqual(expected); + expect(httpSetup.put).toHaveBeenLastCalledWith( + `${API_BASE_PATH}policies/${name}`, + expect.objectContaining({ + body: JSON.stringify({ + name, + snapshotName: editedSnapshotName, + schedule, + repository, + config: { + ignoreUnavailable: true, + }, + retention: { + ...retention, + expireAfterUnit: EXPIRE_AFTER_UNIT, + expireAfterValue: Number(EXPIRE_AFTER_VALUE), + }, + isManagedPolicy, + }), + }) + ); }); it('should provide a default time unit value for retention', async () => { @@ -184,25 +182,27 @@ describe('', () => { await nextTick(); }); - const latestRequest = server.requests[server.requests.length - 1]; - const { name, isManagedPolicy, schedule, repository, retention, config, snapshotName } = POLICY_EDIT; - const expected = { - name, - isManagedPolicy, - schedule, - repository, - config, - snapshotName, - retention: { - ...retention, - expireAfterValue: Number(EXPIRE_AFTER_VALUE), - expireAfterUnit: TIME_UNITS.DAY, // default value - }, - }; - expect(JSON.parse(JSON.parse(latestRequest.requestBody).body)).toEqual(expected); + expect(httpSetup.put).toHaveBeenLastCalledWith( + `${API_BASE_PATH}policies/${name}`, + expect.objectContaining({ + body: JSON.stringify({ + name, + snapshotName, + schedule, + repository, + config, + retention: { + ...retention, + expireAfterUnit: TIME_UNITS.DAY, // default value + expireAfterValue: Number(EXPIRE_AFTER_VALUE), + }, + isManagedPolicy, + }), + }) + ); }); }); }); diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/repository_add.test.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/repository_add.test.ts index 85d438fc5f3ae..3a34926272e07 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/repository_add.test.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/repository_add.test.ts @@ -8,6 +8,7 @@ import { act } from 'react-dom/test-utils'; import { INVALID_NAME_CHARS } from '../../public/application/services/validation/validate_repository'; +import { API_BASE_PATH } from '../../common'; import { getRepository } from '../../test/fixtures'; import { RepositoryType } from '../../common/types'; import { setupEnvironment, pageHelpers, nextTick, delay } from './helpers'; @@ -18,18 +19,13 @@ const repositoryTypes = ['fs', 'url', 'source', 'azure', 'gcs', 's3', 'hdfs']; describe('', () => { let testBed: RepositoryAddTestBed; - - const { server, httpRequestsMockHelpers } = setupEnvironment(); - - afterAll(() => { - server.restore(); - }); + const { httpSetup, httpRequestsMockHelpers } = setupEnvironment(); describe('on component mount', () => { beforeEach(async () => { httpRequestsMockHelpers.setLoadRepositoryTypesResponse(repositoryTypes); - testBed = await setup(); + testBed = await setup(httpSetup); }); test('should set the correct page title', () => { @@ -65,7 +61,7 @@ describe('', () => { describe('when no repository types are not found', () => { beforeEach(async () => { httpRequestsMockHelpers.setLoadRepositoryTypesResponse([]); - testBed = await setup(); + testBed = await setup(httpSetup); await nextTick(); testBed.component.update(); }); @@ -81,7 +77,7 @@ describe('', () => { describe('when repository types are found', () => { beforeEach(async () => { httpRequestsMockHelpers.setLoadRepositoryTypesResponse(repositoryTypes); - testBed = await setup(); + testBed = await setup(httpSetup); await nextTick(); testBed.component.update(); }); @@ -104,7 +100,7 @@ describe('', () => { beforeEach(async () => { httpRequestsMockHelpers.setLoadRepositoryTypesResponse(repositoryTypes); - testBed = await setup(); + testBed = await setup(httpSetup); await nextTick(); testBed.component.update(); }); @@ -205,7 +201,7 @@ describe('', () => { beforeEach(async () => { httpRequestsMockHelpers.setLoadRepositoryTypesResponse(repositoryTypes); - testBed = await setup(); + testBed = await setup(httpSetup); }); describe('not source only', () => { @@ -231,17 +227,23 @@ describe('', () => { component.update(); - const latestRequest = server.requests[server.requests.length - 1]; - - expect(JSON.parse(JSON.parse(latestRequest.requestBody).body)).toEqual({ - name: fsRepository.name, - type: fsRepository.type, - settings: { - ...fsRepository.settings, - compress: true, - readonly: true, - }, - }); + expect(httpSetup.put).toHaveBeenLastCalledWith( + `${API_BASE_PATH}repositories`, + expect.objectContaining({ + body: JSON.stringify({ + name: fsRepository.name, + type: fsRepository.type, + settings: { + location: fsRepository.settings.location, + compress: true, + chunkSize: fsRepository.settings.chunkSize, + maxSnapshotBytesPerSec: fsRepository.settings.maxSnapshotBytesPerSec, + maxRestoreBytesPerSec: fsRepository.settings.maxRestoreBytesPerSec, + readonly: true, + }, + }), + }) + ); }); test('should send the correct payload for Azure repository', async () => { @@ -283,17 +285,25 @@ describe('', () => { component.update(); - const latestRequest = server.requests[server.requests.length - 1]; - - expect(JSON.parse(JSON.parse(latestRequest.requestBody).body)).toEqual({ - name: azureRepository.name, - type: azureRepository.type, - settings: { - ...azureRepository.settings, - compress: false, - readonly: true, - }, - }); + expect(httpSetup.put).toHaveBeenLastCalledWith( + `${API_BASE_PATH}repositories`, + expect.objectContaining({ + body: JSON.stringify({ + name: azureRepository.name, + type: azureRepository.type, + settings: { + client: azureRepository.settings.client, + container: azureRepository.settings.container, + basePath: azureRepository.settings.basePath, + compress: false, + chunkSize: azureRepository.settings.chunkSize, + maxSnapshotBytesPerSec: azureRepository.settings.maxSnapshotBytesPerSec, + maxRestoreBytesPerSec: azureRepository.settings.maxRestoreBytesPerSec, + readonly: true, + }, + }), + }) + ); }); test('should send the correct payload for GCS repository', async () => { @@ -332,17 +342,25 @@ describe('', () => { component.update(); - const latestRequest = server.requests[server.requests.length - 1]; - - expect(JSON.parse(JSON.parse(latestRequest.requestBody).body)).toEqual({ - name: gcsRepository.name, - type: gcsRepository.type, - settings: { - ...gcsRepository.settings, - compress: false, - readonly: true, - }, - }); + expect(httpSetup.put).toHaveBeenLastCalledWith( + `${API_BASE_PATH}repositories`, + expect.objectContaining({ + body: JSON.stringify({ + name: gcsRepository.name, + type: gcsRepository.type, + settings: { + client: gcsRepository.settings.client, + bucket: gcsRepository.settings.bucket, + basePath: gcsRepository.settings.basePath, + compress: false, + chunkSize: gcsRepository.settings.chunkSize, + maxSnapshotBytesPerSec: gcsRepository.settings.maxSnapshotBytesPerSec, + maxRestoreBytesPerSec: gcsRepository.settings.maxRestoreBytesPerSec, + readonly: true, + }, + }), + }) + ); }); test('should send the correct payload for HDFS repository', async () => { @@ -379,18 +397,24 @@ describe('', () => { component.update(); - const latestRequest = server.requests[server.requests.length - 1]; - - expect(JSON.parse(JSON.parse(latestRequest.requestBody).body)).toEqual({ - name: hdfsRepository.name, - type: hdfsRepository.type, - settings: { - ...hdfsRepository.settings, - uri: `hdfs://${hdfsRepository.settings.uri}`, - compress: false, - readonly: true, - }, - }); + expect(httpSetup.put).toHaveBeenLastCalledWith( + `${API_BASE_PATH}repositories`, + expect.objectContaining({ + body: JSON.stringify({ + name: hdfsRepository.name, + type: hdfsRepository.type, + settings: { + uri: `hdfs://${hdfsRepository.settings.uri}`, + path: hdfsRepository.settings.path, + compress: false, + chunkSize: hdfsRepository.settings.chunkSize, + maxSnapshotBytesPerSec: hdfsRepository.settings.maxSnapshotBytesPerSec, + maxRestoreBytesPerSec: hdfsRepository.settings.maxRestoreBytesPerSec, + readonly: true, + }, + }), + }) + ); }); test('should send the correct payload for S3 repository', async () => { @@ -431,17 +455,26 @@ describe('', () => { component.update(); - const latestRequest = server.requests[server.requests.length - 1]; - - expect(JSON.parse(JSON.parse(latestRequest.requestBody).body)).toEqual({ - name: s3Repository.name, - type: s3Repository.type, - settings: { - ...s3Repository.settings, - compress: false, - readonly: true, - }, - }); + expect(httpSetup.put).toHaveBeenLastCalledWith( + `${API_BASE_PATH}repositories`, + expect.objectContaining({ + body: JSON.stringify({ + name: s3Repository.name, + type: s3Repository.type, + settings: { + bucket: s3Repository.settings.bucket, + client: s3Repository.settings.client, + basePath: s3Repository.settings.basePath, + bufferSize: s3Repository.settings.bufferSize, + compress: false, + chunkSize: s3Repository.settings.chunkSize, + maxSnapshotBytesPerSec: s3Repository.settings.maxSnapshotBytesPerSec, + maxRestoreBytesPerSec: s3Repository.settings.maxRestoreBytesPerSec, + readonly: true, + }, + }), + }) + ); }); test('should surface the API errors from the "save" HTTP request', async () => { @@ -457,12 +490,12 @@ describe('', () => { form.toggleEuiSwitch('compressToggle'); const error = { - status: 400, + statusCode: 400, error: 'Bad request', message: 'Repository payload is invalid', }; - httpRequestsMockHelpers.setSaveRepositoryResponse(undefined, { body: error }); + httpRequestsMockHelpers.setSaveRepositoryResponse(undefined, error); await act(async () => { actions.clickSubmitButton(); @@ -496,16 +529,19 @@ describe('', () => { component.update(); - const latestRequest = server.requests[server.requests.length - 1]; - - expect(JSON.parse(JSON.parse(latestRequest.requestBody).body)).toEqual({ - name: fsRepository.name, - type: 'source', - settings: { - delegateType: fsRepository.type, - location: fsRepository.settings.location, - }, - }); + expect(httpSetup.put).toHaveBeenLastCalledWith( + `${API_BASE_PATH}repositories`, + expect.objectContaining({ + body: JSON.stringify({ + name: fsRepository.name, + type: 'source', + settings: { + delegateType: fsRepository.type, + location: fsRepository.settings.location, + }, + }), + }) + ); }); }); }); diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/repository_edit.test.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/repository_edit.test.ts index 8adf1e988ff1e..102c0d13a012b 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/repository_edit.test.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/repository_edit.test.ts @@ -11,7 +11,7 @@ import { setupEnvironment, pageHelpers, nextTick, TestBed, getRandomString } fro import { RepositoryForm } from '../../public/application/components/repository_form'; import { RepositoryEditTestSubjects } from './helpers/repository_edit.helpers'; import { RepositoryAddTestSubjects } from './helpers/repository_add.helpers'; -import { REPOSITORY_EDIT } from './helpers/constant'; +import { REPOSITORY_EDIT, REPOSITORY_NAME } from './helpers/constant'; const { setup } = pageHelpers.repositoryEdit; const { setup: setupRepositoryAdd } = pageHelpers.repositoryAdd; @@ -19,19 +19,15 @@ const { setup: setupRepositoryAdd } = pageHelpers.repositoryAdd; describe('', () => { let testBed: TestBed; let testBedRepositoryAdd: TestBed; - const { server, httpRequestsMockHelpers } = setupEnvironment(); - - afterAll(() => { - server.restore(); - }); + const { httpSetup, httpRequestsMockHelpers } = setupEnvironment(); describe('on component mount', () => { beforeEach(async () => { - httpRequestsMockHelpers.setGetRepositoryResponse({ + httpRequestsMockHelpers.setGetRepositoryResponse(REPOSITORY_EDIT.name, { repository: REPOSITORY_EDIT, snapshots: { count: 0 }, }); - testBed = await setup(); + testBed = await setup(httpSetup); await act(async () => { await nextTick(); @@ -54,7 +50,7 @@ describe('', () => { test('should use the same Form component as the "" section', async () => { httpRequestsMockHelpers.setLoadRepositoryTypesResponse(['fs', 'url']); - testBedRepositoryAdd = await setupRepositoryAdd(); + testBedRepositoryAdd = await setupRepositoryAdd(httpSetup); const formEdit = testBed.component.find(RepositoryForm); const formAdd = testBedRepositoryAdd.component.find(RepositoryForm); @@ -66,11 +62,11 @@ describe('', () => { describe('should populate the correct values', () => { const mountComponentWithMock = async (repository: any) => { - httpRequestsMockHelpers.setGetRepositoryResponse({ + httpRequestsMockHelpers.setGetRepositoryResponse(REPOSITORY_NAME, { repository: { name: getRandomString(), ...repository }, snapshots: { count: 0 }, }); - testBed = await setup(); + testBed = await setup(httpSetup); await act(async () => { await nextTick(); diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/restore_snapshot.test.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/restore_snapshot.test.ts index 2d8c734af3605..1bd9898f9f1b2 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/restore_snapshot.test.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/restore_snapshot.test.ts @@ -6,8 +6,10 @@ */ import { act } from 'react-dom/test-utils'; +import { API_BASE_PATH } from '../../common'; import { pageHelpers, setupEnvironment } from './helpers'; import { RestoreSnapshotTestBed } from './helpers/restore_snapshot.helpers'; +import { REPOSITORY_NAME, SNAPSHOT_NAME } from './helpers/constant'; import * as fixtures from '../../test/fixtures'; const { @@ -15,19 +17,19 @@ const { } = pageHelpers; describe('', () => { - const { server, httpRequestsMockHelpers } = setupEnvironment(); + const { httpSetup, httpRequestsMockHelpers } = setupEnvironment(); let testBed: RestoreSnapshotTestBed; - afterAll(() => { - server.restore(); - }); - describe('wizard navigation', () => { beforeEach(async () => { - httpRequestsMockHelpers.setGetSnapshotResponse(fixtures.getSnapshot()); + httpRequestsMockHelpers.setGetSnapshotResponse( + REPOSITORY_NAME, + SNAPSHOT_NAME, + fixtures.getSnapshot() + ); await act(async () => { - testBed = await setup(); + testBed = await setup(httpSetup); }); testBed.component.update(); @@ -44,10 +46,14 @@ describe('', () => { describe('with data streams', () => { beforeEach(async () => { - httpRequestsMockHelpers.setGetSnapshotResponse(fixtures.getSnapshot()); + httpRequestsMockHelpers.setGetSnapshotResponse( + REPOSITORY_NAME, + SNAPSHOT_NAME, + fixtures.getSnapshot() + ); await act(async () => { - testBed = await setup(); + testBed = await setup(httpSetup); }); testBed.component.update(); @@ -61,9 +67,13 @@ describe('', () => { describe('without data streams', () => { beforeEach(async () => { - httpRequestsMockHelpers.setGetSnapshotResponse(fixtures.getSnapshot({ totalDataStreams: 0 })); + httpRequestsMockHelpers.setGetSnapshotResponse( + REPOSITORY_NAME, + SNAPSHOT_NAME, + fixtures.getSnapshot({ totalDataStreams: 0 }) + ); await act(async () => { - testBed = await setup(); + testBed = await setup(httpSetup); }); testBed.component.update(); @@ -77,9 +87,13 @@ describe('', () => { describe('global state', () => { beforeEach(async () => { - httpRequestsMockHelpers.setGetSnapshotResponse(fixtures.getSnapshot()); + httpRequestsMockHelpers.setGetSnapshotResponse( + REPOSITORY_NAME, + SNAPSHOT_NAME, + fixtures.getSnapshot() + ); await act(async () => { - testBed = await setup(); + testBed = await setup(httpSetup); }); testBed.component.update(); @@ -100,11 +114,14 @@ describe('', () => { // the form controls and asserting that the correct payload is sent to the API. describe('include aliases', () => { beforeEach(async () => { - httpRequestsMockHelpers.setGetSnapshotResponse(fixtures.getSnapshot()); - httpRequestsMockHelpers.setRestoreSnapshotResponse({}); + httpRequestsMockHelpers.setGetSnapshotResponse( + REPOSITORY_NAME, + SNAPSHOT_NAME, + fixtures.getSnapshot() + ); await act(async () => { - testBed = await setup(); + testBed = await setup(httpSetup); }); testBed.component.update(); @@ -116,9 +133,14 @@ describe('', () => { actions.goToStep(3); await actions.clickRestore(); - const expectedPayload = { includeAliases: false }; - const latestRequest = server.requests[server.requests.length - 1]; - expect(JSON.parse(JSON.parse(latestRequest.requestBody).body)).toEqual(expectedPayload); + expect(httpSetup.post).toHaveBeenLastCalledWith( + `${API_BASE_PATH}restore/${REPOSITORY_NAME}/${SNAPSHOT_NAME}`, + expect.objectContaining({ + body: JSON.stringify({ + includeAliases: false, + }), + }) + ); }); }); }); diff --git a/x-pack/plugins/snapshot_restore/public/application/app.tsx b/x-pack/plugins/snapshot_restore/public/application/app.tsx index f7056a673cfbb..d2de3dba3d25f 100644 --- a/x-pack/plugins/snapshot_restore/public/application/app.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/app.tsx @@ -18,6 +18,7 @@ import { PageError, WithPrivileges, NotAuthorizedSection, + useExecutionContext, } from '../shared_imports'; import { PageLoading } from './components'; import { DEFAULT_SECTION, Section } from './constants'; @@ -29,11 +30,12 @@ import { PolicyAdd, PolicyEdit, } from './sections'; -import { useConfig } from './app_context'; +import { useAppContext, useConfig } from './app_context'; export const App: React.FunctionComponent = () => { const { slm_ui: slmUi } = useConfig(); const { apiError } = useAuthorizationContext(); + const { core } = useAppContext(); const sections: Section[] = ['repositories', 'snapshots', 'restore_status']; @@ -43,6 +45,11 @@ export const App: React.FunctionComponent = () => { const sectionsRegex = sections.join('|'); + useExecutionContext(core.executionContext, { + type: 'application', + page: 'snapshotRestore', + }); + return apiError ? ( { return linkToRepository(newRepositoryName); @@ -67,6 +68,11 @@ export const RepositoryList: React.FunctionComponent { } = useLoadRestores(currentInterval); const { uiMetricService, history } = useServices(); + const { core } = useAppContext(); // Track component loaded useEffect(() => { uiMetricService.trackUiMetric(UIM_RESTORE_LIST_LOAD); }, [uiMetricService]); + useExecutionContext(core.executionContext, { + type: 'application', + page: 'snapshotRestoreRestoreTab', + }); + let content: JSX.Element; if (isInitialRequest) { diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/snapshot_list/snapshot_list.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/snapshot_list/snapshot_list.tsx index 0245f14addd42..bfc276410ebc6 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/snapshot_list/snapshot_list.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/snapshot_list/snapshot_list.tsx @@ -11,11 +11,17 @@ import { FormattedMessage } from '@kbn/i18n-react'; import { RouteComponentProps } from 'react-router-dom'; import { EuiCallOut, EuiLink, EuiSpacer } from '@elastic/eui'; -import { PageLoading, PageError, Error, reactRouterNavigate } from '../../../../shared_imports'; +import { + PageLoading, + PageError, + Error, + reactRouterNavigate, + useExecutionContext, +} from '../../../../shared_imports'; import { BASE_PATH, UIM_SNAPSHOT_LIST_LOAD } from '../../../constants'; import { useLoadSnapshots } from '../../../services/http'; import { linkToRepositories } from '../../../services/navigation'; -import { useServices } from '../../../app_context'; +import { useAppContext, useServices } from '../../../app_context'; import { useDecodedParams, SnapshotListParams, DEFAULT_SNAPSHOT_LIST_PARAMS } from '../../../lib'; import { SnapshotDetails } from './snapshot_details'; @@ -52,6 +58,7 @@ export const SnapshotList: React.FunctionComponent { history.push(`${BASE_PATH}/snapshots`); @@ -74,6 +81,11 @@ export const SnapshotList: React.FunctionComponent { if (search) { diff --git a/x-pack/plugins/snapshot_restore/public/shared_imports.ts b/x-pack/plugins/snapshot_restore/public/shared_imports.ts index 65c2bc7dc0f77..21792338caece 100644 --- a/x-pack/plugins/snapshot_restore/public/shared_imports.ts +++ b/x-pack/plugins/snapshot_restore/public/shared_imports.ts @@ -33,4 +33,5 @@ export { APP_WRAPPER_CLASS } from '../../../../src/core/public'; export { reactRouterNavigate, KibanaThemeProvider, + useExecutionContext, } from '../../../../src/plugins/kibana_react/public'; diff --git a/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/selectable_spaces_control.tsx b/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/selectable_spaces_control.tsx index 72976d7bd3157..849a8a7805185 100644 --- a/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/selectable_spaces_control.tsx +++ b/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/selectable_spaces_control.tsx @@ -50,7 +50,9 @@ type SpaceOption = EuiSelectableOption & { ['data-space-id']: string }; const ROW_HEIGHT = 40; const APPEND_ACTIVE_SPACE = ( - {i18n.translate('xpack.spaces.shareToSpace.currentSpaceBadge', { defaultMessage: 'Current' })} + {i18n.translate('xpack.spaces.shareToSpace.currentSpaceBadge', { + defaultMessage: 'This space', + })} ); const APPEND_CANNOT_SELECT = ( @@ -92,23 +94,26 @@ export const SelectableSpacesControl = (props: Props) => { const activeSpaceId = !enableSpaceAgnosticBehavior && spaces.find((space) => space.isActiveSpace)!.id; const isGlobalControlChecked = selectedSpaceIds.includes(ALL_SPACES_ID); - const options = spaces - .filter( - // filter out spaces that are not already selected and have the feature disabled in that space - ({ id, isFeatureDisabled }) => !isFeatureDisabled || initiallySelectedSpaceIds.includes(id) - ) + const filteredSpaces = spaces.filter( + // filter out spaces that are not already selected and have the feature disabled in that space + ({ id, isFeatureDisabled }) => + !isFeatureDisabled || initiallySelectedSpaceIds.includes(id) || isGlobalControlChecked + ); + + const options = filteredSpaces .sort(createSpacesComparator(activeSpaceId)) .map((space) => { const checked = selectedSpaceIds.includes(space.id); const { isAvatarDisabled, ...additionalProps } = getAdditionalProps( space, activeSpaceId, - checked + checked, + isGlobalControlChecked ); return { label: space.name, prepend: , // wrapped in a Suspense below - checked: checked ? 'on' : undefined, + checked: checked || isGlobalControlChecked ? 'on' : undefined, ['data-space-id']: space.id, ['data-test-subj']: `sts-space-selector-row-${space.id}`, ...(isGlobalControlChecked && { disabled: true }), @@ -134,14 +139,16 @@ export const SelectableSpacesControl = (props: Props) => { return null; } + const hiddenCount = selectedSpaceIds.filter((id) => id === UNKNOWN_SPACE).length; const docLink = docLinks?.links.security.kibanaPrivileges; return ( { // if space-agnostic behavior is not enabled, the active space is not selected or deselected by the user, so we have to artificially pad the count for this label const selectedCountPad = enableSpaceAgnosticBehavior ? 0 : 1; - const selectedCount = - selectedSpaceIds.filter((id) => id !== ALL_SPACES_ID && id !== UNKNOWN_SPACE).length + - selectedCountPad; - const hiddenCount = selectedSpaceIds.filter((id) => id === UNKNOWN_SPACE).length; + const selectedCount = isGlobalControlChecked + ? filteredSpaces.length + : selectedSpaceIds.filter((id) => id !== ALL_SPACES_ID && id !== UNKNOWN_SPACE).length + + selectedCountPad; const selectSpacesLabel = i18n.translate( 'xpack.spaces.shareToSpace.shareModeControl.selectSpacesLabel', { defaultMessage: 'Select spaces' } ); const selectedSpacesLabel = i18n.translate( 'xpack.spaces.shareToSpace.shareModeControl.selectedCountLabel', - { defaultMessage: '{selectedCount} selected', values: { selectedCount } } - ); - const hiddenSpacesLabel = i18n.translate( - 'xpack.spaces.shareToSpace.shareModeControl.hiddenCountLabel', - { defaultMessage: '+{hiddenCount} hidden', values: { hiddenCount } } + { + defaultMessage: '{selectedCount}/{totalCount} selected', + values: { selectedCount, totalCount: filteredSpaces.length }, + } ); - const hiddenSpaces = hiddenCount ? {hiddenSpacesLabel} : null; return ( <> - - {selectedSpacesLabel} - - {hiddenSpaces} - - } + labelAppend={{selectedSpacesLabel}} fullWidth > <> - + }> { function getAdditionalProps( space: SpacesDataEntry, activeSpaceId: string | false, - checked: boolean + checked: boolean, + isGlobalControlChecked: boolean ) { if (space.id === activeSpaceId) { return { @@ -251,7 +255,7 @@ function getAdditionalProps( checked: 'on' as 'on', }; } - if (!space.isAuthorizedForPurpose('shareSavedObjectsIntoSpace')) { + if (!isGlobalControlChecked && !space.isAuthorizedForPurpose('shareSavedObjectsIntoSpace')) { return { append: ( <> @@ -259,6 +263,7 @@ function getAdditionalProps( {space.isFeatureDisabled ? APPEND_FEATURE_IS_DISABLED : null} ), + ...(space.isFeatureDisabled && { isAvatarDisabled: true }), disabled: true, }; } diff --git a/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/share_mode_control.tsx b/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/share_mode_control.tsx index 6e39a554420ec..0e8992ea6a3df 100644 --- a/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/share_mode_control.tsx +++ b/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/share_mode_control.tsx @@ -147,7 +147,7 @@ export const ShareModeControl = (props: Props) => { - + { - + { - Current + This space `); // by definition, the active space will always be checked diff --git a/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/share_to_space_flyout_internal.tsx b/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/share_to_space_flyout_internal.tsx index 21bf46773e0bb..71bbae4aa3178 100644 --- a/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/share_to_space_flyout_internal.tsx +++ b/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/share_to_space_flyout_internal.tsx @@ -346,7 +346,7 @@ export const ShareToSpaceFlyoutInternal = (props: ShareToSpaceFlyoutProps) => { referenceGraph={referenceGraph} isDisabled={isStartShareButtonDisabled} /> - + onClose()} @@ -407,10 +407,10 @@ export const ShareToSpaceFlyoutInternal = (props: ShareToSpaceFlyoutProps) => { return ( - + {flyoutIcon && ( - + )} @@ -424,10 +424,11 @@ export const ShareToSpaceFlyoutInternal = (props: ShareToSpaceFlyoutProps) => { - + {savedObjectTarget.icon && ( diff --git a/x-pack/plugins/spaces/public/space_list/space_list_internal.tsx b/x-pack/plugins/spaces/public/space_list/space_list_internal.tsx index 17403fe7134eb..9d0bbd344c647 100644 --- a/x-pack/plugins/spaces/public/space_list/space_list_internal.tsx +++ b/x-pack/plugins/spaces/public/space_list/space_list_internal.tsx @@ -44,6 +44,7 @@ export const SpaceListInternal = ({ displayLimit = DEFAULT_DISPLAY_LIMIT, behaviorContext, listOnClick = () => {}, + cursorStyle, }: SpaceListProps) => { const { spacesDataPromise } = useSpaces(); @@ -148,6 +149,9 @@ export const SpaceListInternal = ({ ) : null; + const styleProps = { + style: cursorStyle ? { cursor: cursorStyle } : undefined, + }; return ( }> @@ -162,7 +166,7 @@ export const SpaceListInternal = ({ size={'s'} onClick={listOnClick} onKeyPress={listOnClick} - style={{ cursor: 'pointer' }} + {...styleProps} /> ); diff --git a/x-pack/plugins/spaces/public/space_list/types.ts b/x-pack/plugins/spaces/public/space_list/types.ts index a167b51155036..65d66e4073b25 100644 --- a/x-pack/plugins/spaces/public/space_list/types.ts +++ b/x-pack/plugins/spaces/public/space_list/types.ts @@ -32,4 +32,8 @@ export interface SpaceListProps { * Click handler for spaces list, specifically excluding expand and contract buttons. */ listOnClick?: () => void; + /** + * Style for the cursor when mousing over space avatars. + */ + cursorStyle?: string; } diff --git a/x-pack/plugins/stack_alerts/common/comparator_types.ts b/x-pack/plugins/stack_alerts/common/comparator_types.ts new file mode 100644 index 0000000000000..9e35d50f9158c --- /dev/null +++ b/x-pack/plugins/stack_alerts/common/comparator_types.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 enum Comparator { + GT = '>', + LT = '<', + GT_OR_EQ = '>=', + LT_OR_EQ = '<=', + BETWEEN = 'between', + NOT_BETWEEN = 'notBetween', +} diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/constants.ts b/x-pack/plugins/stack_alerts/public/alert_types/es_query/constants.ts new file mode 100644 index 0000000000000..bd2de94ce1e96 --- /dev/null +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/constants.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 { COMPARATORS } from '../../../../triggers_actions_ui/public'; + +export const DEFAULT_VALUES = { + THRESHOLD_COMPARATOR: COMPARATORS.GREATER_THAN, + QUERY: `{ + "query":{ + "match_all" : {} + } + }`, + SIZE: 100, + TIME_WINDOW_SIZE: 5, + TIME_WINDOW_UNIT: 'm', + THRESHOLD: [1000], +}; diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.test.tsx b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/es_query_expression.test.tsx similarity index 83% rename from x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.test.tsx rename to x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/es_query_expression.test.tsx index 7ecdcd6dbce38..3cddd1ef112f0 100644 --- a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.test.tsx +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/es_query_expression.test.tsx @@ -10,7 +10,6 @@ import 'brace'; import { of } from 'rxjs'; import { mountWithIntl, nextTick } from '@kbn/test-jest-helpers'; import { act } from 'react-dom/test-utils'; -import EsQueryAlertTypeExpression from './expression'; import { dataPluginMock } from 'src/plugins/data/public/mocks'; import { chartPluginMock } from 'src/plugins/charts/public/mocks'; import { @@ -18,11 +17,12 @@ import { IKibanaSearchResponse, ISearchStart, } from 'src/plugins/data/public'; -import { useKibana } from '../../../../../../src/plugins/kibana_react/public'; -import { EsQueryAlertParams } from './types'; +import { useKibana } from '../../../../../../../src/plugins/kibana_react/public'; +import { EsQueryAlertParams, SearchType } from '../types'; +import { EsQueryExpression } from './es_query_expression'; -jest.mock('../../../../../../src/plugins/kibana_react/public'); -jest.mock('../../../../../../src/plugins/es_ui_shared/public', () => ({ +jest.mock('../../../../../../../src/plugins/kibana_react/public'); +jest.mock('../../../../../../../src/plugins/es_ui_shared/public', () => ({ XJson: { useXJsonMode: jest.fn().mockReturnValue({ convertToJson: jest.fn(), @@ -42,8 +42,8 @@ jest.mock('../../../../../../src/plugins/es_ui_shared/public', () => ({ /> ), })); -jest.mock('../../../../triggers_actions_ui/public', () => { - const original = jest.requireActual('../../../../triggers_actions_ui/public'); +jest.mock('../../../../../triggers_actions_ui/public', () => { + const original = jest.requireActual('../../../../../triggers_actions_ui/public'); return { ...original, getIndexPatterns: () => { @@ -100,6 +100,17 @@ const createDataPluginMock = () => { const dataMock = createDataPluginMock(); const chartsStartMock = chartPluginMock.createStartContract(); +const defaultEsQueryExpressionParams: EsQueryAlertParams = { + size: 100, + thresholdComparator: '>', + threshold: [0], + timeWindowSize: 15, + timeWindowUnit: 's', + index: ['test-index'], + timeField: '@timestamp', + esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, +}; + describe('EsQueryAlertTypeExpression', () => { beforeAll(() => { (useKibana as jest.Mock).mockReturnValue({ @@ -117,20 +128,7 @@ describe('EsQueryAlertTypeExpression', () => { }); }); - function getAlertParams(overrides = {}) { - return { - index: ['test-index'], - timeField: '@timestamp', - esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, - size: 100, - thresholdComparator: '>', - threshold: [0], - timeWindowSize: 15, - timeWindowUnit: 's', - ...overrides, - }; - } - async function setup(alertParams: EsQueryAlertParams) { + async function setup(alertParams: EsQueryAlertParams) { const errors = { index: [], esQuery: [], @@ -140,7 +138,7 @@ describe('EsQueryAlertTypeExpression', () => { }; const wrapper = mountWithIntl( - { } test('should render EsQueryAlertTypeExpression with expected components', async () => { - const wrapper = await setup(getAlertParams()); + const wrapper = await setup(defaultEsQueryExpressionParams); expect(wrapper.find('[data-test-subj="indexSelectPopover"]').exists()).toBeTruthy(); expect(wrapper.find('[data-test-subj="sizeValueExpression"]').exists()).toBeTruthy(); expect(wrapper.find('[data-test-subj="queryJsonEditor"]').exists()).toBeTruthy(); @@ -181,7 +179,10 @@ describe('EsQueryAlertTypeExpression', () => { }); test('should render Test Query button disabled if alert params are invalid', async () => { - const wrapper = await setup(getAlertParams({ timeField: null })); + const wrapper = await setup({ + ...defaultEsQueryExpressionParams, + timeField: null, + } as unknown as EsQueryAlertParams); const testQueryButton = wrapper.find('EuiButtonEmpty[data-test-subj="testQuery"]'); expect(testQueryButton.exists()).toBeTruthy(); expect(testQueryButton.prop('disabled')).toBe(true); @@ -196,7 +197,7 @@ describe('EsQueryAlertTypeExpression', () => { }, }); dataMock.search.search.mockImplementation(() => searchResponseMock$); - const wrapper = await setup(getAlertParams()); + const wrapper = await setup(defaultEsQueryExpressionParams); const testQueryButton = wrapper.find('EuiButtonEmpty[data-test-subj="testQuery"]'); testQueryButton.simulate('click'); @@ -217,7 +218,7 @@ describe('EsQueryAlertTypeExpression', () => { dataMock.search.search.mockImplementation(() => { throw new Error('What is this query'); }); - const wrapper = await setup(getAlertParams()); + const wrapper = await setup(defaultEsQueryExpressionParams); const testQueryButton = wrapper.find('EuiButtonEmpty[data-test-subj="testQuery"]'); testQueryButton.simulate('click'); diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.tsx b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/es_query_expression.tsx similarity index 81% rename from x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.tsx rename to x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/es_query_expression.tsx index 402d6fca7a1a9..45d7791055f87 100644 --- a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.tsx +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/es_query_expression.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { useState, Fragment, useEffect } from 'react'; +import React, { useState, Fragment, useEffect, useCallback } from 'react'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; @@ -18,7 +18,6 @@ import { EuiButtonEmpty, EuiSpacer, EuiFormRow, - EuiCallOut, EuiText, EuiTitle, EuiLink, @@ -27,49 +26,26 @@ import { import { DocLinksStart, HttpSetup } from 'kibana/public'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { XJson, EuiCodeEditor } from '../../../../../../src/plugins/es_ui_shared/public'; -import { useKibana } from '../../../../../../src/plugins/kibana_react/public'; +import { XJson, EuiCodeEditor } from '../../../../../../../src/plugins/es_ui_shared/public'; +import { useKibana } from '../../../../../../../src/plugins/kibana_react/public'; import { getFields, - COMPARATORS, - ThresholdExpression, - ForLastExpression, ValueExpression, RuleTypeParamsExpressionProps, -} from '../../../../triggers_actions_ui/public'; -import { validateExpression } from './validation'; -import { parseDuration } from '../../../../alerting/common'; -import { buildSortedEventsQuery } from '../../../common/build_sorted_events_query'; -import { EsQueryAlertParams } from './types'; -import { IndexSelectPopover } from '../components/index_select_popover'; + ForLastExpression, + ThresholdExpression, +} from '../../../../../triggers_actions_ui/public'; +import { validateExpression } from '../validation'; +import { parseDuration } from '../../../../../alerting/common'; +import { buildSortedEventsQuery } from '../../../../common/build_sorted_events_query'; +import { EsQueryAlertParams, SearchType } from '../types'; +import { IndexSelectPopover } from '../../components/index_select_popover'; +import { DEFAULT_VALUES } from '../constants'; function totalHitsToNumber(total: estypes.SearchHitsMetadata['total']): number { return typeof total === 'number' ? total : total?.value ?? 0; } -const DEFAULT_VALUES = { - THRESHOLD_COMPARATOR: COMPARATORS.GREATER_THAN, - QUERY: `{ - "query":{ - "match_all" : {} - } -}`, - SIZE: 100, - TIME_WINDOW_SIZE: 5, - TIME_WINDOW_UNIT: 'm', - THRESHOLD: [1000], -}; - -const expressionFieldsWithValidation = [ - 'index', - 'esQuery', - 'size', - 'timeField', - 'threshold0', - 'threshold1', - 'timeWindowSize', -]; - const { useXJsonMode } = XJson; const xJsonMode = new XJsonMode(); @@ -78,9 +54,13 @@ interface KibanaDeps { docLinks: DocLinksStart; } -export const EsQueryAlertTypeExpression: React.FunctionComponent< - RuleTypeParamsExpressionProps -> = ({ ruleParams, setRuleParams, setRuleProperty, errors, data }) => { +export const EsQueryExpression = ({ + ruleParams, + setRuleParams, + setRuleProperty, + errors, + data, +}: RuleTypeParamsExpressionProps>) => { const { index, timeField, @@ -92,16 +72,29 @@ export const EsQueryAlertTypeExpression: React.FunctionComponent< timeWindowUnit, } = ruleParams; - const getDefaultParams = () => ({ + const [currentAlertParams, setCurrentAlertParams] = useState< + EsQueryAlertParams + >({ ...ruleParams, - esQuery: esQuery ?? DEFAULT_VALUES.QUERY, - size: size ?? DEFAULT_VALUES.SIZE, timeWindowSize: timeWindowSize ?? DEFAULT_VALUES.TIME_WINDOW_SIZE, timeWindowUnit: timeWindowUnit ?? DEFAULT_VALUES.TIME_WINDOW_UNIT, threshold: threshold ?? DEFAULT_VALUES.THRESHOLD, thresholdComparator: thresholdComparator ?? DEFAULT_VALUES.THRESHOLD_COMPARATOR, + size: size ?? DEFAULT_VALUES.SIZE, + esQuery: esQuery ?? DEFAULT_VALUES.QUERY, }); + const setParam = useCallback( + (paramField: string, paramValue: unknown) => { + setCurrentAlertParams((currentParams) => ({ + ...currentParams, + [paramField]: paramValue, + })); + setRuleParams(paramField, paramValue); + }, + [setRuleParams] + ); + const { http, docLinks } = useKibana().services; const [esFields, setEsFields] = useState< @@ -114,29 +107,11 @@ export const EsQueryAlertTypeExpression: React.FunctionComponent< }> >([]); const { convertToJson, setXJson, xJson } = useXJsonMode(DEFAULT_VALUES.QUERY); - const [currentAlertParams, setCurrentAlertParams] = useState( - getDefaultParams() - ); const [testQueryResult, setTestQueryResult] = useState(null); const [testQueryError, setTestQueryError] = useState(null); - const hasExpressionErrors = !!Object.keys(errors).find( - (errorKey) => - expressionFieldsWithValidation.includes(errorKey) && - errors[errorKey].length >= 1 && - ruleParams[errorKey as keyof EsQueryAlertParams] !== undefined - ); - - const expressionErrorMessage = i18n.translate( - 'xpack.stackAlerts.esQuery.ui.alertParams.fixErrorInExpressionBelowValidationMessage', - { - defaultMessage: 'Expression contains errors.', - } - ); - const setDefaultExpressionValues = async () => { - setRuleProperty('params', getDefaultParams()); - + setRuleProperty('params', currentAlertParams); setXJson(esQuery ?? DEFAULT_VALUES.QUERY); if (index && index.length > 0) { @@ -144,14 +119,6 @@ export const EsQueryAlertTypeExpression: React.FunctionComponent< } }; - const setParam = (paramField: string, paramValue: unknown) => { - setCurrentAlertParams({ - ...currentAlertParams, - [paramField]: paramValue, - }); - setRuleParams(paramField, paramValue); - }; - useEffect(() => { setDefaultExpressionValues(); // eslint-disable-next-line react-hooks/exhaustive-deps @@ -216,13 +183,6 @@ export const EsQueryAlertTypeExpression: React.FunctionComponent< return ( - {hasExpressionErrors ? ( - - - - - - ) : null}
); }; - -// eslint-disable-next-line import/no-default-export -export { EsQueryAlertTypeExpression as default }; diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/expression.tsx b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/expression.tsx new file mode 100644 index 0000000000000..2c825cdc3c286 --- /dev/null +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/expression.tsx @@ -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 React from 'react'; +import { i18n } from '@kbn/i18n'; + +import 'brace/theme/github'; + +import { EuiSpacer, EuiCallOut } from '@elastic/eui'; +import { RuleTypeParamsExpressionProps } from '../../../../../triggers_actions_ui/public'; +import { EsQueryAlertParams } from '../types'; +import { SearchSourceExpression } from './search_source_expression'; +import { EsQueryExpression } from './es_query_expression'; +import { isSearchSourceAlert } from '../util'; + +const expressionFieldsWithValidation = [ + 'index', + 'size', + 'timeField', + 'threshold0', + 'threshold1', + 'timeWindowSize', + 'searchType', + 'esQuery', + 'searchConfiguration', +]; + +export const EsQueryAlertTypeExpression: React.FunctionComponent< + RuleTypeParamsExpressionProps +> = (props) => { + const { ruleParams, errors } = props; + const isSearchSource = isSearchSourceAlert(ruleParams); + + const hasExpressionErrors = !!Object.keys(errors).find((errorKey) => { + return ( + expressionFieldsWithValidation.includes(errorKey) && + errors[errorKey].length >= 1 && + ruleParams[errorKey as keyof EsQueryAlertParams] !== undefined + ); + }); + + const expressionErrorMessage = i18n.translate( + 'xpack.stackAlerts.esQuery.ui.alertParams.fixErrorInExpressionBelowValidationMessage', + { + defaultMessage: 'Expression contains errors.', + } + ); + + return ( + <> + {hasExpressionErrors && ( + <> + + + + + )} + + {isSearchSource ? ( + + ) : ( + + )} + + ); +}; diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/index.ts b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/index.ts new file mode 100644 index 0000000000000..ee3eb83299748 --- /dev/null +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/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. + */ + +import { EsQueryAlertTypeExpression } from './expression'; + +// eslint-disable-next-line import/no-default-export +export default EsQueryAlertTypeExpression; diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/read_only_filter_items.tsx b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/read_only_filter_items.tsx new file mode 100644 index 0000000000000..b4b0c6ae9ac5d --- /dev/null +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/read_only_filter_items.tsx @@ -0,0 +1,61 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license 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 } from '@elastic/eui'; +import { injectI18n } from '@kbn/i18n-react'; + +import { useKibana } from '../../../../../../../src/plugins/kibana_react/public'; +import { + FilterItem, + getDisplayValueFromFilter, +} from '../../../../../../../src/plugins/data/public'; +import { Filter, IIndexPattern } from '../../../../../../../src/plugins/data/common'; + +const FilterItemComponent = injectI18n(FilterItem); + +interface ReadOnlyFilterItemsProps { + filters: Filter[]; + indexPatterns: IIndexPattern[]; +} + +const noOp = () => {}; + +export const ReadOnlyFilterItems = ({ filters, indexPatterns }: ReadOnlyFilterItemsProps) => { + const { uiSettings } = useKibana().services; + + const filterList = filters.map((filter, index) => { + const filterValue = getDisplayValueFromFilter(filter, indexPatterns); + return ( + + + + ); + }); + + return ( + + {filterList} + + ); +}; diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/search_source_expression.scss b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/search_source_expression.scss new file mode 100644 index 0000000000000..418449eb792c1 --- /dev/null +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/search_source_expression.scss @@ -0,0 +1,9 @@ +.searchSourceAlertFilters { + .euiExpression__value { + width: 80%; + } +} + +.dscExpressionParam.euiExpression { + margin-left: 0; +} diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/search_source_expression.test.tsx b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/search_source_expression.test.tsx new file mode 100644 index 0000000000000..4b18a5a5f96a2 --- /dev/null +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/search_source_expression.test.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 { mountWithIntl, nextTick } from '@kbn/test-jest-helpers'; +import React from 'react'; +import { dataPluginMock } from 'src/plugins/data/public/mocks'; +import { DataPublicPluginStart, ISearchStart } from 'src/plugins/data/public'; +import { EsQueryAlertParams, SearchType } from '../types'; +import { SearchSourceExpression } from './search_source_expression'; +import { chartPluginMock } from 'src/plugins/charts/public/mocks'; +import { act } from 'react-dom/test-utils'; +import { EuiCallOut, EuiLoadingSpinner } from '@elastic/eui'; +import { ReactWrapper } from 'enzyme'; + +const dataMock = dataPluginMock.createStartContract() as DataPublicPluginStart & { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + search: ISearchStart & { searchSource: { create: jest.MockedFunction } }; +}; +const chartsStartMock = chartPluginMock.createStartContract(); + +const defaultSearchSourceExpressionParams: EsQueryAlertParams = { + size: 100, + thresholdComparator: '>', + threshold: [0], + timeWindowSize: 15, + timeWindowUnit: 's', + index: ['test-index'], + timeField: '@timestamp', + searchType: SearchType.searchSource, + searchConfiguration: {}, +}; + +const searchSourceMock = { + getField: (name: string) => { + if (name === 'filter') { + return []; + } + return ''; + }, +}; + +const setup = async (alertParams: EsQueryAlertParams) => { + const errors = { + size: [], + timeField: [], + timeWindowSize: [], + searchConfiguration: [], + }; + + const wrapper = mountWithIntl( + {}} + setRuleProperty={() => {}} + errors={errors} + data={dataMock} + defaultActionGroupId="" + actionGroups={[]} + charts={chartsStartMock} + /> + ); + + return wrapper; +}; + +const rerender = async (wrapper: ReactWrapper) => { + const update = async () => + await act(async () => { + await nextTick(); + wrapper.update(); + }); + await update(); +}; + +describe('SearchSourceAlertTypeExpression', () => { + test('should render loading prompt', async () => { + dataMock.search.searchSource.create.mockImplementation(() => + Promise.resolve(() => searchSourceMock) + ); + + const wrapper = await setup(defaultSearchSourceExpressionParams); + + expect(wrapper.find(EuiLoadingSpinner).exists()).toBeTruthy(); + }); + + test('should render error prompt', async () => { + dataMock.search.searchSource.create.mockImplementation(() => + Promise.reject(() => 'test error') + ); + + const wrapper = await setup(defaultSearchSourceExpressionParams); + await rerender(wrapper); + + expect(wrapper.find(EuiCallOut).exists()).toBeTruthy(); + }); + + test('should render SearchSourceAlertTypeExpression with expected components', async () => { + dataMock.search.searchSource.create.mockImplementation(() => + Promise.resolve(() => searchSourceMock) + ); + + const wrapper = await setup(defaultSearchSourceExpressionParams); + await rerender(wrapper); + + expect(wrapper.find('[data-test-subj="sizeValueExpression"]').exists()).toBeTruthy(); + expect(wrapper.find('[data-test-subj="thresholdExpression"]').exists()).toBeTruthy(); + expect(wrapper.find('[data-test-subj="forLastExpression"]').exists()).toBeTruthy(); + }); +}); diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/search_source_expression.tsx b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/search_source_expression.tsx new file mode 100644 index 0000000000000..2e99fa8e1356b --- /dev/null +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/search_source_expression.tsx @@ -0,0 +1,220 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license 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, { Fragment, useCallback, useEffect, useState } from 'react'; +import './search_source_expression.scss'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { + EuiSpacer, + EuiTitle, + EuiExpression, + EuiLoadingSpinner, + EuiEmptyPrompt, + EuiCallOut, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { Filter, ISearchSource } from '../../../../../../../src/plugins/data/common'; +import { EsQueryAlertParams, SearchType } from '../types'; +import { + ForLastExpression, + RuleTypeParamsExpressionProps, + ThresholdExpression, + ValueExpression, +} from '../../../../../triggers_actions_ui/public'; +import { DEFAULT_VALUES } from '../constants'; +import { ReadOnlyFilterItems } from './read_only_filter_items'; + +export const SearchSourceExpression = ({ + ruleParams, + setRuleParams, + setRuleProperty, + data, + errors, +}: RuleTypeParamsExpressionProps>) => { + const { + searchConfiguration, + thresholdComparator, + threshold, + timeWindowSize, + timeWindowUnit, + size, + } = ruleParams; + const [usedSearchSource, setUsedSearchSource] = useState(); + const [paramsError, setParamsError] = useState(); + + const [currentAlertParams, setCurrentAlertParams] = useState< + EsQueryAlertParams + >({ + searchConfiguration, + searchType: SearchType.searchSource, + timeWindowSize: timeWindowSize ?? DEFAULT_VALUES.TIME_WINDOW_SIZE, + timeWindowUnit: timeWindowUnit ?? DEFAULT_VALUES.TIME_WINDOW_UNIT, + threshold: threshold ?? DEFAULT_VALUES.THRESHOLD, + thresholdComparator: thresholdComparator ?? DEFAULT_VALUES.THRESHOLD_COMPARATOR, + size: size ?? DEFAULT_VALUES.SIZE, + }); + + const setParam = useCallback( + (paramField: string, paramValue: unknown) => { + setCurrentAlertParams((currentParams) => ({ + ...currentParams, + [paramField]: paramValue, + })); + setRuleParams(paramField, paramValue); + }, + [setRuleParams] + ); + + // eslint-disable-next-line react-hooks/exhaustive-deps + useEffect(() => setRuleProperty('params', currentAlertParams), []); + + useEffect(() => { + async function initSearchSource() { + try { + const loadedSearchSource = await data.search.searchSource.create(searchConfiguration); + setUsedSearchSource(loadedSearchSource); + } catch (error) { + setParamsError(error); + } + } + if (searchConfiguration) { + initSearchSource(); + } + }, [data.search.searchSource, searchConfiguration]); + + if (paramsError) { + return ( + <> + +

{paramsError.message}

+
+ + + ); + } + + if (!usedSearchSource) { + return } />; + } + + const dataView = usedSearchSource.getField('index')!; + const query = usedSearchSource.getField('query')!; + const filters = (usedSearchSource.getField('filter') as Filter[]).filter( + ({ meta }) => !meta.disabled + ); + const dataViews = [dataView]; + return ( + + +
+ +
+
+ + + } + iconType="iInCircle" + /> + + + {query.query !== '' && ( + + )} + {filters.length > 0 && ( + } + display="columns" + /> + )} + + + +
+ +
+
+ + + setParam('threshold', selectedThresholds) + } + onChangeSelectedThresholdComparator={(selectedThresholdComparator) => + setParam('thresholdComparator', selectedThresholdComparator) + } + /> + + setParam('timeWindowSize', selectedWindowSize) + } + onChangeWindowUnit={(selectedWindowUnit: string) => + setParam('timeWindowUnit', selectedWindowUnit) + } + /> + + +
+ +
+
+ + { + setParam('size', updatedValue); + }} + /> + +
+ ); +}; diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/index.ts b/x-pack/plugins/stack_alerts/public/alert_types/es_query/index.ts index cf54c5934c026..740bf10c04432 100644 --- a/x-pack/plugins/stack_alerts/public/alert_types/es_query/index.ts +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/index.ts @@ -8,12 +8,19 @@ import { lazy } from 'react'; import { i18n } from '@kbn/i18n'; import { validateExpression } from './validation'; -import { EsQueryAlertParams } from './types'; +import { EsQueryAlertParams, SearchType } from './types'; import { RuleTypeModel } from '../../../../triggers_actions_ui/public'; +import { PluginSetupContract as AlertingSetup } from '../../../../alerting/public'; +import { SanitizedRule } from '../../../../alerting/common'; + +const PLUGIN_ID = 'discover'; +const ES_QUERY_ALERT_TYPE = '.es-query'; + +export function getAlertType(alerting: AlertingSetup): RuleTypeModel { + registerNavigation(alerting); -export function getAlertType(): RuleTypeModel { return { - id: '.es-query', + id: ES_QUERY_ALERT_TYPE, description: i18n.translate('xpack.stackAlerts.esQuery.ui.alertType.descriptionText', { defaultMessage: 'Alert when matches are found during the latest query run.', }), @@ -28,9 +35,20 @@ export function getAlertType(): RuleTypeModel { - Value: \\{\\{context.value\\}\\} - Conditions Met: \\{\\{context.conditions\\}\\} over \\{\\{params.timeWindowSize\\}\\}\\{\\{params.timeWindowUnit\\}\\} -- Timestamp: \\{\\{context.date\\}\\}`, +- Timestamp: \\{\\{context.date\\}\\} +- Link: \\{\\{context.link\\}\\}`, } ), requiresAppContext: false, }; } + +function registerNavigation(alerting: AlertingSetup) { + alerting.registerNavigation( + PLUGIN_ID, + ES_QUERY_ALERT_TYPE, + (alert: SanitizedRule>) => { + return `#/viewAlert/${alert.id}`; + } + ); +} diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/types.ts b/x-pack/plugins/stack_alerts/public/alert_types/es_query/types.ts index 826d9b25a5394..8b46dd6d57337 100644 --- a/x-pack/plugins/stack_alerts/public/alert_types/es_query/types.ts +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/types.ts @@ -5,7 +5,8 @@ * 2.0. */ -import { AlertTypeParams } from '../../../../alerting/common'; +import { RuleTypeParams } from '../../../../alerting/common'; +import { SerializedSearchSourceFields } from '../../../../../../src/plugins/data/common'; export interface Comparator { text: string; @@ -13,13 +14,29 @@ export interface Comparator { requiredValues: number; } -export interface EsQueryAlertParams extends AlertTypeParams { - index: string[]; - timeField?: string; - esQuery: string; +export enum SearchType { + esQuery = 'esQuery', + searchSource = 'searchSource', +} + +export interface CommonAlertParams extends RuleTypeParams { size: number; thresholdComparator?: string; threshold: number[]; timeWindowSize: number; timeWindowUnit: string; } + +export type EsQueryAlertParams = T extends SearchType.searchSource + ? CommonAlertParams & OnlySearchSourceAlertParams + : CommonAlertParams & OnlyEsQueryAlertParams; + +export interface OnlyEsQueryAlertParams { + esQuery: string; + index: string[]; + timeField: string; +} +export interface OnlySearchSourceAlertParams { + searchType: 'searchSource'; + searchConfiguration: SerializedSearchSourceFields; +} diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/util.ts b/x-pack/plugins/stack_alerts/public/alert_types/es_query/util.ts new file mode 100644 index 0000000000000..5b70da7cb3e80 --- /dev/null +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/util.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 { EsQueryAlertParams, SearchType } from './types'; + +export const isSearchSourceAlert = ( + ruleParams: EsQueryAlertParams +): ruleParams is EsQueryAlertParams => { + return ruleParams.searchType === 'searchSource'; +}; diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/validation.test.ts b/x-pack/plugins/stack_alerts/public/alert_types/es_query/validation.test.ts index 52278b4576557..90b7f96b781b9 100644 --- a/x-pack/plugins/stack_alerts/public/alert_types/es_query/validation.test.ts +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/validation.test.ts @@ -5,64 +5,82 @@ * 2.0. */ -import { EsQueryAlertParams } from './types'; +import { EsQueryAlertParams, SearchType } from './types'; import { validateExpression } from './validation'; describe('expression params validation', () => { test('if index property is invalid should return proper error message', () => { - const initialParams: EsQueryAlertParams = { + const initialParams: EsQueryAlertParams = { index: [], esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, size: 100, timeWindowSize: 1, timeWindowUnit: 's', threshold: [0], + timeField: '', }; expect(validateExpression(initialParams).errors.index.length).toBeGreaterThan(0); expect(validateExpression(initialParams).errors.index[0]).toBe('Index is required.'); }); test('if timeField property is not defined should return proper error message', () => { - const initialParams: EsQueryAlertParams = { + const initialParams: EsQueryAlertParams = { index: ['test'], esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, size: 100, timeWindowSize: 1, timeWindowUnit: 's', threshold: [0], + timeField: '', }; expect(validateExpression(initialParams).errors.timeField.length).toBeGreaterThan(0); expect(validateExpression(initialParams).errors.timeField[0]).toBe('Time field is required.'); }); test('if esQuery property is invalid JSON should return proper error message', () => { - const initialParams: EsQueryAlertParams = { + const initialParams: EsQueryAlertParams = { index: ['test'], esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n`, size: 100, timeWindowSize: 1, timeWindowUnit: 's', threshold: [0], + timeField: '', }; expect(validateExpression(initialParams).errors.esQuery.length).toBeGreaterThan(0); expect(validateExpression(initialParams).errors.esQuery[0]).toBe('Query must be valid JSON.'); }); test('if esQuery property is invalid should return proper error message', () => { - const initialParams: EsQueryAlertParams = { + const initialParams: EsQueryAlertParams = { index: ['test'], esQuery: `{\n \"aggs\":{\n \"match_all\" : {}\n }\n}`, size: 100, timeWindowSize: 1, timeWindowUnit: 's', threshold: [0], + timeField: '', }; expect(validateExpression(initialParams).errors.esQuery.length).toBeGreaterThan(0); expect(validateExpression(initialParams).errors.esQuery[0]).toBe(`Query field is required.`); }); + test('if searchConfiguration property is not set should return proper error message', () => { + const initialParams = { + size: 100, + timeWindowSize: 1, + timeWindowUnit: 's', + threshold: [0], + searchType: SearchType.searchSource, + } as EsQueryAlertParams; + expect(validateExpression(initialParams).errors.searchConfiguration.length).toBeGreaterThan(0); + expect(validateExpression(initialParams).errors.searchConfiguration[0]).toBe( + `Search source configuration is required.` + ); + }); + test('if threshold0 property is not set should return proper error message', () => { - const initialParams: EsQueryAlertParams = { + const initialParams: EsQueryAlertParams = { index: ['test'], esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, size: 100, @@ -70,13 +88,14 @@ describe('expression params validation', () => { timeWindowSize: 1, timeWindowUnit: 's', thresholdComparator: '<', + timeField: '', }; expect(validateExpression(initialParams).errors.threshold0.length).toBeGreaterThan(0); expect(validateExpression(initialParams).errors.threshold0[0]).toBe('Threshold 0 is required.'); }); test('if threshold1 property is needed by thresholdComparator but not set should return proper error message', () => { - const initialParams: EsQueryAlertParams = { + const initialParams: EsQueryAlertParams = { index: ['test'], esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, size: 100, @@ -84,13 +103,14 @@ describe('expression params validation', () => { timeWindowSize: 1, timeWindowUnit: 's', thresholdComparator: 'between', + timeField: '', }; expect(validateExpression(initialParams).errors.threshold1.length).toBeGreaterThan(0); expect(validateExpression(initialParams).errors.threshold1[0]).toBe('Threshold 1 is required.'); }); test('if threshold0 property greater than threshold1 property should return proper error message', () => { - const initialParams: EsQueryAlertParams = { + const initialParams: EsQueryAlertParams = { index: ['test'], esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, size: 100, @@ -98,6 +118,7 @@ describe('expression params validation', () => { timeWindowSize: 1, timeWindowUnit: 's', thresholdComparator: 'between', + timeField: '', }; expect(validateExpression(initialParams).errors.threshold1.length).toBeGreaterThan(0); expect(validateExpression(initialParams).errors.threshold1[0]).toBe( @@ -106,13 +127,14 @@ describe('expression params validation', () => { }); test('if size property is < 0 should return proper error message', () => { - const initialParams: EsQueryAlertParams = { + const initialParams: EsQueryAlertParams = { index: ['test'], esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n`, size: -1, timeWindowSize: 1, timeWindowUnit: 's', threshold: [0], + timeField: '', }; expect(validateExpression(initialParams).errors.size.length).toBeGreaterThan(0); expect(validateExpression(initialParams).errors.size[0]).toBe( @@ -121,13 +143,14 @@ describe('expression params validation', () => { }); test('if size property is > 10000 should return proper error message', () => { - const initialParams: EsQueryAlertParams = { + const initialParams: EsQueryAlertParams = { index: ['test'], esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n`, size: 25000, timeWindowSize: 1, timeWindowUnit: 's', threshold: [0], + timeField: '', }; expect(validateExpression(initialParams).errors.size.length).toBeGreaterThan(0); expect(validateExpression(initialParams).errors.size[0]).toBe( diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/validation.ts b/x-pack/plugins/stack_alerts/public/alert_types/es_query/validation.ts index d4ab8801fcdde..4766ce68dba4a 100644 --- a/x-pack/plugins/stack_alerts/public/alert_types/es_query/validation.ts +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/validation.ts @@ -8,10 +8,10 @@ import { i18n } from '@kbn/i18n'; import { EsQueryAlertParams } from './types'; import { ValidationResult, builtInComparators } from '../../../../triggers_actions_ui/public'; +import { isSearchSourceAlert } from './util'; export const validateExpression = (alertParams: EsQueryAlertParams): ValidationResult => { - const { index, timeField, esQuery, size, threshold, timeWindowSize, thresholdComparator } = - alertParams; + const { size, threshold, timeWindowSize, thresholdComparator } = alertParams; const validationResult = { errors: {} }; const errors = { index: new Array(), @@ -22,46 +22,9 @@ export const validateExpression = (alertParams: EsQueryAlertParams): ValidationR threshold1: new Array(), thresholdComparator: new Array(), timeWindowSize: new Array(), + searchConfiguration: new Array(), }; validationResult.errors = errors; - if (!index || index.length === 0) { - errors.index.push( - i18n.translate('xpack.stackAlerts.esQuery.ui.validation.error.requiredIndexText', { - defaultMessage: 'Index is required.', - }) - ); - } - if (!timeField) { - errors.timeField.push( - i18n.translate('xpack.stackAlerts.esQuery.ui.validation.error.requiredTimeFieldText', { - defaultMessage: 'Time field is required.', - }) - ); - } - if (!esQuery) { - errors.esQuery.push( - i18n.translate('xpack.stackAlerts.esQuery.ui.validation.error.requiredQueryText', { - defaultMessage: 'Elasticsearch query is required.', - }) - ); - } else { - try { - const parsedQuery = JSON.parse(esQuery); - if (!parsedQuery.query) { - errors.esQuery.push( - i18n.translate('xpack.stackAlerts.esQuery.ui.validation.error.requiredEsQueryText', { - defaultMessage: `Query field is required.`, - }) - ); - } - } catch (err) { - errors.esQuery.push( - i18n.translate('xpack.stackAlerts.esQuery.ui.validation.error.jsonQueryText', { - defaultMessage: 'Query must be valid JSON.', - }) - ); - } - } if (!threshold || threshold.length === 0 || threshold[0] === undefined) { errors.threshold0.push( i18n.translate('xpack.stackAlerts.esQuery.ui.validation.error.requiredThreshold0Text', { @@ -96,6 +59,7 @@ export const validateExpression = (alertParams: EsQueryAlertParams): ValidationR }) ); } + if (!size) { errors.size.push( i18n.translate('xpack.stackAlerts.esQuery.ui.validation.error.requiredSizeText', { @@ -111,5 +75,66 @@ export const validateExpression = (alertParams: EsQueryAlertParams): ValidationR }) ); } + + /** + * Skip esQuery and index params check if it is search source alert, + * since it should contain searchConfiguration instead of esQuery and index. + */ + const isSearchSource = isSearchSourceAlert(alertParams); + if (isSearchSource) { + if (!alertParams.searchConfiguration) { + errors.searchConfiguration.push( + i18n.translate( + 'xpack.stackAlerts.esQuery.ui.validation.error.requiredSearchConfiguration', + { + defaultMessage: 'Search source configuration is required.', + } + ) + ); + } + return validationResult; + } + + if (!alertParams.index || alertParams.index.length === 0) { + errors.index.push( + i18n.translate('xpack.stackAlerts.esQuery.ui.validation.error.requiredIndexText', { + defaultMessage: 'Index is required.', + }) + ); + } + + if (!alertParams.timeField) { + errors.timeField.push( + i18n.translate('xpack.stackAlerts.esQuery.ui.validation.error.requiredTimeFieldText', { + defaultMessage: 'Time field is required.', + }) + ); + } + + if (!alertParams.esQuery) { + errors.esQuery.push( + i18n.translate('xpack.stackAlerts.esQuery.ui.validation.error.requiredQueryText', { + defaultMessage: 'Elasticsearch query is required.', + }) + ); + } else { + try { + const parsedQuery = JSON.parse(alertParams.esQuery); + if (!parsedQuery.query) { + errors.esQuery.push( + i18n.translate('xpack.stackAlerts.esQuery.ui.validation.error.requiredEsQueryText', { + defaultMessage: `Query field is required.`, + }) + ); + } + } catch (err) { + errors.esQuery.push( + i18n.translate('xpack.stackAlerts.esQuery.ui.validation.error.jsonQueryText', { + defaultMessage: 'Query must be valid JSON.', + }) + ); + } + } + return validationResult; }; diff --git a/x-pack/plugins/stack_alerts/public/alert_types/geo_containment/types.ts b/x-pack/plugins/stack_alerts/public/alert_types/geo_containment/types.ts index fec011223f65e..ccc94c8ac00f9 100644 --- a/x-pack/plugins/stack_alerts/public/alert_types/geo_containment/types.ts +++ b/x-pack/plugins/stack_alerts/public/alert_types/geo_containment/types.ts @@ -5,10 +5,10 @@ * 2.0. */ -import { AlertTypeParams } from '../../../../alerting/common'; +import { RuleTypeParams } from '../../../../alerting/common'; import { Query } from '../../../../../../src/plugins/data/common'; -export interface GeoContainmentAlertParams extends AlertTypeParams { +export interface GeoContainmentAlertParams extends RuleTypeParams { index: string; indexId: string; geoField: string; diff --git a/x-pack/plugins/stack_alerts/public/alert_types/index.ts b/x-pack/plugins/stack_alerts/public/alert_types/index.ts index d2f0f1860417b..c0a0f7b6548cf 100644 --- a/x-pack/plugins/stack_alerts/public/alert_types/index.ts +++ b/x-pack/plugins/stack_alerts/public/alert_types/index.ts @@ -10,15 +10,18 @@ import { getAlertType as getThresholdAlertType } from './threshold'; import { getAlertType as getEsQueryAlertType } from './es_query'; import { Config } from '../../common'; import { TriggersAndActionsUIPublicPluginSetup } from '../../../triggers_actions_ui/public'; +import { PluginSetupContract as AlertingSetup } from '../../../alerting/public'; export function registerAlertTypes({ ruleTypeRegistry, config, + alerting, }: { ruleTypeRegistry: TriggersAndActionsUIPublicPluginSetup['ruleTypeRegistry']; config: Config; + alerting: AlertingSetup; }) { ruleTypeRegistry.register(getGeoContainmentAlertType()); ruleTypeRegistry.register(getThresholdAlertType()); - ruleTypeRegistry.register(getEsQueryAlertType()); + ruleTypeRegistry.register(getEsQueryAlertType(alerting)); } diff --git a/x-pack/plugins/stack_alerts/public/alert_types/threshold/types.ts b/x-pack/plugins/stack_alerts/public/alert_types/threshold/types.ts index a6257c1b5b7fa..ba6ca421173f5 100644 --- a/x-pack/plugins/stack_alerts/public/alert_types/threshold/types.ts +++ b/x-pack/plugins/stack_alerts/public/alert_types/threshold/types.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { AlertTypeParams } from '../../../../alerting/common'; +import { RuleTypeParams } from '../../../../alerting/common'; export interface Comparator { text: string; @@ -27,7 +27,7 @@ export interface GroupByType { validNormalizedTypes: string[]; } -export interface IndexThresholdAlertParams extends AlertTypeParams { +export interface IndexThresholdAlertParams extends RuleTypeParams { index: string | string[]; timeField?: string; aggType: string; diff --git a/x-pack/plugins/stack_alerts/public/plugin.tsx b/x-pack/plugins/stack_alerts/public/plugin.tsx index f636139571ca8..8d004523558fb 100644 --- a/x-pack/plugins/stack_alerts/public/plugin.tsx +++ b/x-pack/plugins/stack_alerts/public/plugin.tsx @@ -9,12 +9,14 @@ import { CoreSetup, Plugin, PluginInitializerContext } from 'src/core/public'; import { TriggersAndActionsUIPublicPluginSetup } from '../../../plugins/triggers_actions_ui/public'; import { registerAlertTypes } from './alert_types'; import { Config } from '../common'; +import { PluginSetupContract as AlertingSetup } from '../../alerting/public'; export type Setup = void; export type Start = void; export interface StackAlertsPublicSetupDeps { triggersActionsUi: TriggersAndActionsUIPublicPluginSetup; + alerting: AlertingSetup; } export class StackAlertsPublicPlugin implements Plugin { @@ -24,10 +26,11 @@ export class StackAlertsPublicPlugin implements Plugin(), + alerting, }); } diff --git a/x-pack/plugins/stack_alerts/server/alert_types/es_query/action_context.test.ts b/x-pack/plugins/stack_alerts/server/alert_types/es_query/action_context.test.ts index 9d4edd83a3913..468729fb2120d 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/es_query/action_context.test.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/es_query/action_context.test.ts @@ -7,6 +7,7 @@ import { EsQueryAlertActionContext, addMessages } from './action_context'; import { EsQueryAlertParamsSchema } from './alert_type_params'; +import { OnlyEsQueryAlertParams } from './types'; describe('ActionContext', () => { it('generates expected properties', async () => { @@ -19,12 +20,13 @@ describe('ActionContext', () => { timeWindowUnit: 'm', thresholdComparator: '>', threshold: [4], - }); + }) as OnlyEsQueryAlertParams; const base: EsQueryAlertActionContext = { date: '2020-01-01T00:00:00.000Z', value: 42, conditions: 'count greater than 4', hits: [], + link: 'link-mock', }; const context = addMessages({ name: '[alert-name]' }, base, params); expect(context.title).toMatchInlineSnapshot(`"alert '[alert-name]' matched query"`); @@ -33,7 +35,8 @@ describe('ActionContext', () => { - Value: 42 - Conditions Met: count greater than 4 over 5m -- Timestamp: 2020-01-01T00:00:00.000Z` +- Timestamp: 2020-01-01T00:00:00.000Z +- Link: link-mock` ); }); @@ -47,12 +50,13 @@ describe('ActionContext', () => { timeWindowUnit: 'm', thresholdComparator: 'between', threshold: [4, 5], - }); + }) as OnlyEsQueryAlertParams; const base: EsQueryAlertActionContext = { date: '2020-01-01T00:00:00.000Z', value: 4, conditions: 'count between 4 and 5', hits: [], + link: 'link-mock', }; const context = addMessages({ name: '[alert-name]' }, base, params); expect(context.title).toMatchInlineSnapshot(`"alert '[alert-name]' matched query"`); @@ -61,7 +65,8 @@ describe('ActionContext', () => { - Value: 4 - Conditions Met: count between 4 and 5 over 5m -- Timestamp: 2020-01-01T00:00:00.000Z` +- Timestamp: 2020-01-01T00:00:00.000Z +- Link: link-mock` ); }); }); diff --git a/x-pack/plugins/stack_alerts/server/alert_types/es_query/action_context.ts b/x-pack/plugins/stack_alerts/server/alert_types/es_query/action_context.ts index f4886e3c055a2..7e4e8bf831493 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/es_query/action_context.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/es_query/action_context.ts @@ -7,12 +7,12 @@ import { i18n } from '@kbn/i18n'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { AlertExecutorOptions, AlertInstanceContext } from '../../../../alerting/server'; -import { EsQueryAlertParams } from './alert_type_params'; +import { RuleExecutorOptions, AlertInstanceContext } from '../../../../alerting/server'; +import { OnlyEsQueryAlertParams, OnlySearchSourceAlertParams } from './types'; // alert type context provided to actions -type AlertInfo = Pick; +type AlertInfo = Pick; export interface ActionContext extends EsQueryAlertActionContext { // a short pre-constructed message which may be used in an action field @@ -30,12 +30,15 @@ export interface EsQueryAlertActionContext extends AlertInstanceContext { conditions: string; // query matches hits: estypes.SearchHit[]; + // a link to see records that triggered the alert for Discover alert + // a link which navigates to stack management in case of Elastic query alert + link: string; } export function addMessages( alertInfo: AlertInfo, baseContext: EsQueryAlertActionContext, - params: EsQueryAlertParams + params: OnlyEsQueryAlertParams | OnlySearchSourceAlertParams ): ActionContext { const title = i18n.translate('xpack.stackAlerts.esQuery.alertTypeContextSubjectTitle', { defaultMessage: `alert '{name}' matched query`, @@ -50,13 +53,15 @@ export function addMessages( - Value: {value} - Conditions Met: {conditions} over {window} -- Timestamp: {date}`, +- Timestamp: {date} +- Link: {link}`, values: { name: alertInfo.name, value: baseContext.value, conditions: baseContext.conditions, window, date: baseContext.date, + link: baseContext.link, }, }); diff --git a/x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type.test.ts b/x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type.test.ts index e117f1db008f0..c59b24ddb6210 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type.test.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type.test.ts @@ -7,25 +7,30 @@ import uuid from 'uuid'; import type { Writable } from '@kbn/utility-types'; -import { AlertServices } from '../../../../alerting/server'; +import { RuleExecutorServices } from '../../../../alerting/server'; import { - AlertServicesMock, + RuleExecutorServicesMock, alertsMock, AlertInstanceMock, } from '../../../../alerting/server/mocks'; import { loggingSystemMock } from '../../../../../../src/core/server/mocks'; -import { getAlertType, ConditionMetAlertInstanceId, ActionGroupId } from './alert_type'; +import { getAlertType } from './alert_type'; import { EsQueryAlertParams, EsQueryAlertState } from './alert_type_params'; import { ActionContext } from './action_context'; import { ESSearchResponse, ESSearchRequest } from '../../../../../../src/core/types/elasticsearch'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { elasticsearchClientMock } from '../../../../../../src/core/server/elasticsearch/client/mocks'; +import { coreMock } from '../../../../../../src/core/server/mocks'; +import { ActionGroupId, ConditionMetAlertInstanceId } from './constants'; +import { OnlyEsQueryAlertParams, OnlySearchSourceAlertParams } from './types'; +import { searchSourceInstanceMock } from 'src/plugins/data/common/search/search_source/mocks'; +import { Comparator } from '../../../common/comparator_types'; -describe('alertType', () => { - const logger = loggingSystemMock.create().get(); - - const alertType = getAlertType(logger); +const logger = loggingSystemMock.create().get(); +const coreSetup = coreMock.createSetup(); +const alertType = getAlertType(logger, coreSetup); +describe('alertType', () => { it('alert type creation structure is the expected value', async () => { expect(alertType.id).toBe('.es-query'); expect(alertType.name).toBe('Elasticsearch query'); @@ -58,642 +63,514 @@ describe('alertType', () => { "description": "A string that describes the threshold condition.", "name": "conditions", }, - ], - "params": Array [ Object { - "description": "The index the query was run against.", - "name": "index", - }, - Object { - "description": "The string representation of the Elasticsearch query.", - "name": "esQuery", + "description": "Navigate to Discover and show the records that triggered + the alert when the rule is created in Discover. Otherwise, navigate to the status page for the rule.", + "name": "link", }, + ], + "params": Array [ Object { "description": "The number of hits to retrieve for each query.", "name": "size", }, Object { - "description": "An array of values to use as the threshold; 'between' and 'notBetween' require two values, the others require one.", + "description": "An array of values to use as the threshold. 'between' and 'notBetween' require two values.", "name": "threshold", }, Object { - "description": "A function to determine if the threshold has been met.", + "description": "A function to determine if the threshold was met.", "name": "thresholdComparator", }, + Object { + "description": "Serialized search source fields used to fetch the documents from Elasticsearch.", + "name": "searchConfiguration", + }, + Object { + "description": "The string representation of the Elasticsearch query.", + "name": "esQuery", + }, + Object { + "description": "The index the query was run against.", + "name": "index", + }, ], } `); }); - it('validator succeeds with valid params', async () => { - const params: Partial> = { - index: ['index-name'], - timeField: 'time-field', - esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, - size: 100, - timeWindowSize: 5, - timeWindowUnit: 'm', - thresholdComparator: '<', - threshold: [0], - }; + describe('elasticsearch query', () => { + it('validator succeeds with valid es query params', async () => { + const params: Partial> = { + index: ['index-name'], + timeField: 'time-field', + esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, + size: 100, + timeWindowSize: 5, + timeWindowUnit: 'm', + thresholdComparator: Comparator.LT, + threshold: [0], + }; + + expect(alertType.validate?.params?.validate(params)).toBeTruthy(); + }); - expect(alertType.validate?.params?.validate(params)).toBeTruthy(); - }); + it('validator fails with invalid es query params - threshold', async () => { + const paramsSchema = alertType.validate?.params; + if (!paramsSchema) throw new Error('params validator not set'); + + const params: Partial> = { + index: ['index-name'], + timeField: 'time-field', + esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, + size: 100, + timeWindowSize: 5, + timeWindowUnit: 'm', + thresholdComparator: Comparator.BETWEEN, + threshold: [0], + }; + + expect(() => paramsSchema.validate(params)).toThrowErrorMatchingInlineSnapshot( + `"[threshold]: must have two elements for the \\"between\\" comparator"` + ); + }); - it('validator fails with invalid params - threshold', async () => { - const paramsSchema = alertType.validate?.params; - if (!paramsSchema) throw new Error('params validator not set'); + it('alert executor handles no documents returned by ES', async () => { + const params: OnlyEsQueryAlertParams = { + index: ['index-name'], + timeField: 'time-field', + esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, + size: 100, + timeWindowSize: 5, + timeWindowUnit: 'm', + thresholdComparator: Comparator.BETWEEN, + threshold: [0], + }; + const alertServices: RuleExecutorServicesMock = alertsMock.createRuleExecutorServices(); + + const searchResult: ESSearchResponse = generateResults([]); + alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValueOnce( + elasticsearchClientMock.createSuccessTransportRequestPromise(searchResult) + ); + + const result = await invokeExecutor({ params, alertServices }); + + expect(alertServices.alertFactory.create).not.toHaveBeenCalled(); + + expect(result).toMatchInlineSnapshot(` + Object { + "latestTimestamp": undefined, + } + `); + }); - const params: Partial> = { - index: ['index-name'], - timeField: 'time-field', - esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, - size: 100, - timeWindowSize: 5, - timeWindowUnit: 'm', - thresholdComparator: 'between', - threshold: [0], - }; + it('alert executor returns the latestTimestamp of the newest detected document', async () => { + const params: OnlyEsQueryAlertParams = { + index: ['index-name'], + timeField: 'time-field', + esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, + size: 100, + timeWindowSize: 5, + timeWindowUnit: 'm', + thresholdComparator: Comparator.GT, + threshold: [0], + }; + const alertServices: RuleExecutorServicesMock = alertsMock.createRuleExecutorServices(); + + const newestDocumentTimestamp = Date.now(); + + const searchResult: ESSearchResponse = generateResults([ + { + 'time-field': newestDocumentTimestamp, + }, + { + 'time-field': newestDocumentTimestamp - 1000, + }, + { + 'time-field': newestDocumentTimestamp - 2000, + }, + ]); + alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValueOnce( + elasticsearchClientMock.createSuccessTransportRequestPromise(searchResult) + ); - expect(() => paramsSchema.validate(params)).toThrowErrorMatchingInlineSnapshot( - `"[threshold]: must have two elements for the \\"between\\" comparator"` - ); - }); + const result = await invokeExecutor({ params, alertServices }); - it('alert executor handles no documentes returned by ES', async () => { - const params: EsQueryAlertParams = { - index: ['index-name'], - timeField: 'time-field', - esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, - size: 100, - timeWindowSize: 5, - timeWindowUnit: 'm', - thresholdComparator: 'between', - threshold: [0], - }; - const alertServices: AlertServicesMock = alertsMock.createAlertServices(); - - const searchResult: ESSearchResponse = generateResults([]); - alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValueOnce( - elasticsearchClientMock.createSuccessTransportRequestPromise(searchResult) - ); - - const result = await alertType.executor({ - alertId: uuid.v4(), - executionId: uuid.v4(), - startedAt: new Date(), - previousStartedAt: new Date(), - services: alertServices as unknown as AlertServices< - EsQueryAlertState, - ActionContext, - typeof ActionGroupId - >, - params, - state: { + expect(alertServices.alertFactory.create).toHaveBeenCalledWith(ConditionMetAlertInstanceId); + const instance: AlertInstanceMock = alertServices.alertFactory.create.mock.results[0].value; + expect(instance.replaceState).toHaveBeenCalledWith({ latestTimestamp: undefined, - }, - spaceId: uuid.v4(), - name: uuid.v4(), - tags: [], - createdBy: null, - updatedBy: null, - rule: { - name: uuid.v4(), - tags: [], - consumer: '', - producer: '', - ruleTypeId: '', - ruleTypeName: '', - enabled: true, - schedule: { - interval: '1h', - }, - actions: [], - createdBy: null, - updatedBy: null, - createdAt: new Date(), - updatedAt: new Date(), - throttle: null, - notifyWhen: null, - }, - }); + dateStart: expect.any(String), + dateEnd: expect.any(String), + }); - expect(alertServices.alertFactory.create).not.toHaveBeenCalled(); + expect(result).toMatchObject({ + latestTimestamp: new Date(newestDocumentTimestamp).toISOString(), + }); + }); - expect(result).toMatchInlineSnapshot(` - Object { - "latestTimestamp": undefined, - } - `); - }); + it('alert executor correctly handles numeric time fields that were stored by legacy rules prior to v7.12.1', async () => { + const params: OnlyEsQueryAlertParams = { + index: ['index-name'], + timeField: 'time-field', + esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, + size: 100, + timeWindowSize: 5, + timeWindowUnit: 'm', + thresholdComparator: Comparator.GT, + threshold: [0], + }; + const alertServices: RuleExecutorServicesMock = alertsMock.createRuleExecutorServices(); + + const previousTimestamp = Date.now(); + const newestDocumentTimestamp = previousTimestamp + 1000; + + alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValueOnce( + elasticsearchClientMock.createSuccessTransportRequestPromise( + generateResults([ + { + 'time-field': newestDocumentTimestamp, + }, + ]) + ) + ); + + const result = await invokeExecutor({ + params, + alertServices, + state: { + // @ts-expect-error previousTimestamp is numeric, but should be string (this was a bug prior to v7.12.1) + latestTimestamp: previousTimestamp, + }, + }); + + const instance: AlertInstanceMock = alertServices.alertFactory.create.mock.results[0].value; + expect(instance.replaceState).toHaveBeenCalledWith({ + // ensure the invalid "latestTimestamp" in the state is stored as an ISO string going forward + latestTimestamp: new Date(previousTimestamp).toISOString(), + dateStart: expect.any(String), + dateEnd: expect.any(String), + }); + + expect(result).toMatchObject({ + latestTimestamp: new Date(newestDocumentTimestamp).toISOString(), + }); + }); - it('alert executor returns the latestTimestamp of the newest detected document', async () => { - const params: EsQueryAlertParams = { - index: ['index-name'], - timeField: 'time-field', - esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, - size: 100, - timeWindowSize: 5, - timeWindowUnit: 'm', - thresholdComparator: '>', - threshold: [0], - }; - const alertServices: AlertServicesMock = alertsMock.createAlertServices(); + it('alert executor ignores previous invalid latestTimestamp values stored by legacy rules prior to v7.12.1', async () => { + const params: OnlyEsQueryAlertParams = { + index: ['index-name'], + timeField: 'time-field', + esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, + size: 100, + timeWindowSize: 5, + timeWindowUnit: 'm', + thresholdComparator: Comparator.GT, + threshold: [0], + }; + const alertServices: RuleExecutorServicesMock = alertsMock.createRuleExecutorServices(); + + const oldestDocumentTimestamp = Date.now(); + + alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValueOnce( + elasticsearchClientMock.createSuccessTransportRequestPromise( + generateResults([ + { + 'time-field': oldestDocumentTimestamp, + }, + { + 'time-field': oldestDocumentTimestamp - 1000, + }, + ]) + ) + ); - const newestDocumentTimestamp = Date.now(); + const result = await invokeExecutor({ params, alertServices }); - const searchResult: ESSearchResponse = generateResults([ - { - 'time-field': newestDocumentTimestamp, - }, - { - 'time-field': newestDocumentTimestamp - 1000, - }, - { - 'time-field': newestDocumentTimestamp - 2000, - }, - ]); - alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValueOnce( - elasticsearchClientMock.createSuccessTransportRequestPromise(searchResult) - ); - - const result = await alertType.executor({ - alertId: uuid.v4(), - executionId: uuid.v4(), - startedAt: new Date(), - previousStartedAt: new Date(), - services: alertServices as unknown as AlertServices< - EsQueryAlertState, - ActionContext, - typeof ActionGroupId - >, - params, - state: { + const instance: AlertInstanceMock = alertServices.alertFactory.create.mock.results[0].value; + expect(instance.replaceState).toHaveBeenCalledWith({ latestTimestamp: undefined, - }, - spaceId: uuid.v4(), - name: uuid.v4(), - tags: [], - createdBy: null, - updatedBy: null, - rule: { - name: uuid.v4(), - tags: [], - consumer: '', - producer: '', - ruleTypeId: '', - ruleTypeName: '', - enabled: true, - schedule: { - interval: '1h', - }, - actions: [], - createdBy: null, - updatedBy: null, - createdAt: new Date(), - updatedAt: new Date(), - throttle: null, - notifyWhen: null, - }, - }); - - expect(alertServices.alertFactory.create).toHaveBeenCalledWith(ConditionMetAlertInstanceId); - const instance: AlertInstanceMock = alertServices.alertFactory.create.mock.results[0].value; - expect(instance.replaceState).toHaveBeenCalledWith({ - latestTimestamp: undefined, - dateStart: expect.any(String), - dateEnd: expect.any(String), - }); + dateStart: expect.any(String), + dateEnd: expect.any(String), + }); - expect(result).toMatchObject({ - latestTimestamp: new Date(newestDocumentTimestamp).toISOString(), + expect(result).toMatchObject({ + latestTimestamp: new Date(oldestDocumentTimestamp).toISOString(), + }); }); - }); - it('alert executor correctly handles numeric time fields that were stored by legacy rules prior to v7.12.1', async () => { - const params: EsQueryAlertParams = { - index: ['index-name'], - timeField: 'time-field', - esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, - size: 100, - timeWindowSize: 5, - timeWindowUnit: 'm', - thresholdComparator: '>', - threshold: [0], - }; - const alertServices: AlertServicesMock = alertsMock.createAlertServices(); - - const previousTimestamp = Date.now(); - const newestDocumentTimestamp = previousTimestamp + 1000; + it('alert executor carries over the queried latestTimestamp in the alert state', async () => { + const params: OnlyEsQueryAlertParams = { + index: ['index-name'], + timeField: 'time-field', + esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, + size: 100, + timeWindowSize: 5, + timeWindowUnit: 'm', + thresholdComparator: Comparator.GT, + threshold: [0], + }; + const alertServices: RuleExecutorServicesMock = alertsMock.createRuleExecutorServices(); + + const oldestDocumentTimestamp = Date.now(); + + alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValueOnce( + elasticsearchClientMock.createSuccessTransportRequestPromise( + generateResults([ + { + 'time-field': oldestDocumentTimestamp, + }, + ]) + ) + ); - alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValueOnce( - elasticsearchClientMock.createSuccessTransportRequestPromise( - generateResults([ - { - 'time-field': newestDocumentTimestamp, - }, - ]) - ) - ); - - const executorOptions = { - alertId: uuid.v4(), - startedAt: new Date(), - previousStartedAt: new Date(), - services: alertServices as unknown as AlertServices< - EsQueryAlertState, - ActionContext, - typeof ActionGroupId - >, - params, - spaceId: uuid.v4(), - name: uuid.v4(), - tags: [], - createdBy: null, - updatedBy: null, - createdAt: new Date(), - updatedAt: new Date(), - consumer: '', - throttle: null, - notifyWhen: null, - schedule: { - interval: '1h', - }, - }; - const result = await alertType.executor({ - ...executorOptions, - state: { - // @ts-expect-error previousTimestamp is numeric, but should be string (this was a bug prior to v7.12.1) - latestTimestamp: previousTimestamp, - }, - }); + const result = await invokeExecutor({ params, alertServices }); - const instance: AlertInstanceMock = alertServices.alertFactory.create.mock.results[0].value; - expect(instance.replaceState).toHaveBeenCalledWith({ - // ensure the invalid "latestTimestamp" in the state is stored as an ISO string going forward - latestTimestamp: new Date(previousTimestamp).toISOString(), - dateStart: expect.any(String), - dateEnd: expect.any(String), + const instance: AlertInstanceMock = alertServices.alertFactory.create.mock.results[0].value; + expect(instance.replaceState).toHaveBeenCalledWith({ + latestTimestamp: undefined, + dateStart: expect.any(String), + dateEnd: expect.any(String), + }); + + expect(result).toMatchObject({ + latestTimestamp: new Date(oldestDocumentTimestamp).toISOString(), + }); + + const newestDocumentTimestamp = oldestDocumentTimestamp + 5000; + alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValueOnce( + elasticsearchClientMock.createSuccessTransportRequestPromise( + generateResults([ + { + 'time-field': newestDocumentTimestamp, + }, + { + 'time-field': newestDocumentTimestamp - 1000, + }, + ]) + ) + ); + + const secondResult = await invokeExecutor({ + params, + alertServices, + state: result as EsQueryAlertState, + }); + + const existingInstance: AlertInstanceMock = + alertServices.alertFactory.create.mock.results[1].value; + expect(existingInstance.replaceState).toHaveBeenCalledWith({ + latestTimestamp: new Date(oldestDocumentTimestamp).toISOString(), + dateStart: expect.any(String), + dateEnd: expect.any(String), + }); + + expect(secondResult).toMatchObject({ + latestTimestamp: new Date(newestDocumentTimestamp).toISOString(), + }); }); - expect(result).toMatchObject({ - latestTimestamp: new Date(newestDocumentTimestamp).toISOString(), - }); - }); + it('alert executor ignores tie breaker sort values', async () => { + const params: OnlyEsQueryAlertParams = { + index: ['index-name'], + timeField: 'time-field', + esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, + size: 100, + timeWindowSize: 5, + timeWindowUnit: 'm', + thresholdComparator: Comparator.GT, + threshold: [0], + }; + const alertServices: RuleExecutorServicesMock = alertsMock.createRuleExecutorServices(); + + const oldestDocumentTimestamp = Date.now(); + + alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValueOnce( + elasticsearchClientMock.createSuccessTransportRequestPromise( + generateResults( + [ + { + 'time-field': oldestDocumentTimestamp, + }, + { + 'time-field': oldestDocumentTimestamp - 1000, + }, + ], + true + ) + ) + ); - it('alert executor ignores previous invalid latestTimestamp values stored by legacy rules prior to v7.12.1', async () => { - const params: EsQueryAlertParams = { - index: ['index-name'], - timeField: 'time-field', - esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, - size: 100, - timeWindowSize: 5, - timeWindowUnit: 'm', - thresholdComparator: '>', - threshold: [0], - }; - const alertServices: AlertServicesMock = alertsMock.createAlertServices(); + const result = await invokeExecutor({ params, alertServices }); - const oldestDocumentTimestamp = Date.now(); + const instance: AlertInstanceMock = alertServices.alertFactory.create.mock.results[0].value; + expect(instance.replaceState).toHaveBeenCalledWith({ + latestTimestamp: undefined, + dateStart: expect.any(String), + dateEnd: expect.any(String), + }); - alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValueOnce( - elasticsearchClientMock.createSuccessTransportRequestPromise( - generateResults([ - { - 'time-field': oldestDocumentTimestamp, - }, - { - 'time-field': oldestDocumentTimestamp - 1000, - }, - ]) - ) - ); - - const result = await alertType.executor({ - alertId: uuid.v4(), - executionId: uuid.v4(), - startedAt: new Date(), - previousStartedAt: new Date(), - services: alertServices as unknown as AlertServices< - EsQueryAlertState, - ActionContext, - typeof ActionGroupId - >, - params, - state: { - // inaalid legacy `latestTimestamp` - latestTimestamp: 'FaslK3QBySSL_rrj9zM5', - }, - spaceId: uuid.v4(), - name: uuid.v4(), - tags: [], - createdBy: null, - updatedBy: null, - rule: { - name: uuid.v4(), - tags: [], - consumer: '', - producer: '', - ruleTypeId: '', - ruleTypeName: '', - enabled: true, - schedule: { - interval: '1h', - }, - actions: [], - createdBy: null, - updatedBy: null, - createdAt: new Date(), - updatedAt: new Date(), - throttle: null, - notifyWhen: null, - }, + expect(result).toMatchObject({ + latestTimestamp: new Date(oldestDocumentTimestamp).toISOString(), + }); }); - const instance: AlertInstanceMock = alertServices.alertFactory.create.mock.results[0].value; - expect(instance.replaceState).toHaveBeenCalledWith({ - latestTimestamp: undefined, - dateStart: expect.any(String), - dateEnd: expect.any(String), - }); + it('alert executor ignores results with no sort values', async () => { + const params: OnlyEsQueryAlertParams = { + index: ['index-name'], + timeField: 'time-field', + esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, + size: 100, + timeWindowSize: 5, + timeWindowUnit: 'm', + thresholdComparator: Comparator.GT, + threshold: [0], + }; + const alertServices: RuleExecutorServicesMock = alertsMock.createRuleExecutorServices(); + + const oldestDocumentTimestamp = Date.now(); + + alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValueOnce( + elasticsearchClientMock.createSuccessTransportRequestPromise( + generateResults( + [ + { + 'time-field': oldestDocumentTimestamp, + }, + { + 'time-field': oldestDocumentTimestamp - 1000, + }, + ], + true, + true + ) + ) + ); + + const result = await invokeExecutor({ params, alertServices }); + + const instance: AlertInstanceMock = alertServices.alertFactory.create.mock.results[0].value; + expect(instance.replaceState).toHaveBeenCalledWith({ + latestTimestamp: undefined, + dateStart: expect.any(String), + dateEnd: expect.any(String), + }); - expect(result).toMatchObject({ - latestTimestamp: new Date(oldestDocumentTimestamp).toISOString(), + expect(result).toMatchObject({ + latestTimestamp: new Date(oldestDocumentTimestamp - 1000).toISOString(), + }); }); }); - it('alert executor carries over the queried latestTimestamp in the alert state', async () => { - const params: EsQueryAlertParams = { - index: ['index-name'], - timeField: 'time-field', - esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, + describe('search source query', () => { + const dataViewMock = { + id: 'test-id', + title: 'test-title', + timeFieldName: 'time-field', + fields: [ + { + name: 'message', + type: 'string', + displayName: 'message', + scripted: false, + filterable: false, + aggregatable: false, + }, + { + name: 'timestamp', + type: 'date', + displayName: 'timestamp', + scripted: false, + filterable: false, + aggregatable: false, + }, + ], + }; + const defaultParams: OnlySearchSourceAlertParams = { size: 100, timeWindowSize: 5, timeWindowUnit: 'm', - thresholdComparator: '>', + thresholdComparator: Comparator.LT, threshold: [0], + searchConfiguration: {}, + searchType: 'searchSource', }; - const alertServices: AlertServicesMock = alertsMock.createAlertServices(); - - const oldestDocumentTimestamp = Date.now(); - - alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValueOnce( - elasticsearchClientMock.createSuccessTransportRequestPromise( - generateResults([ - { - 'time-field': oldestDocumentTimestamp, - }, - ]) - ) - ); - - const executorOptions = { - alertId: uuid.v4(), - executionId: uuid.v4(), - startedAt: new Date(), - previousStartedAt: new Date(), - services: alertServices as unknown as AlertServices< - EsQueryAlertState, - ActionContext, - typeof ActionGroupId - >, - params, - state: { - latestTimestamp: undefined, - }, - spaceId: uuid.v4(), - name: uuid.v4(), - tags: [], - createdBy: null, - updatedBy: null, - rule: { - name: uuid.v4(), - tags: [], - consumer: '', - producer: '', - ruleTypeId: '', - ruleTypeName: '', - enabled: true, - schedule: { - interval: '1h', - }, - actions: [], - createdBy: null, - updatedBy: null, - createdAt: new Date(), - updatedAt: new Date(), - throttle: null, - notifyWhen: null, - }, - }; - const result = await alertType.executor(executorOptions); - const instance: AlertInstanceMock = alertServices.alertFactory.create.mock.results[0].value; - expect(instance.replaceState).toHaveBeenCalledWith({ - latestTimestamp: undefined, - dateStart: expect.any(String), - dateEnd: expect.any(String), + afterAll(() => { + jest.resetAllMocks(); }); - expect(result).toMatchObject({ - latestTimestamp: new Date(oldestDocumentTimestamp).toISOString(), + it('validator succeeds with valid search source params', async () => { + expect(alertType.validate?.params?.validate(defaultParams)).toBeTruthy(); }); - const newestDocumentTimestamp = oldestDocumentTimestamp + 5000; - alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValueOnce( - elasticsearchClientMock.createSuccessTransportRequestPromise( - generateResults([ - { - 'time-field': newestDocumentTimestamp, - }, - { - 'time-field': newestDocumentTimestamp - 1000, - }, - ]) - ) - ); - - const secondResult = await alertType.executor({ - ...executorOptions, - state: result as EsQueryAlertState, - }); - const existingInstance: AlertInstanceMock = - alertServices.alertFactory.create.mock.results[1].value; - expect(existingInstance.replaceState).toHaveBeenCalledWith({ - latestTimestamp: new Date(oldestDocumentTimestamp).toISOString(), - dateStart: expect.any(String), - dateEnd: expect.any(String), + it('validator fails with invalid search source params - esQuery provided', async () => { + const paramsSchema = alertType.validate?.params!; + const params: Partial> = { + size: 100, + timeWindowSize: 5, + timeWindowUnit: 'm', + thresholdComparator: Comparator.LT, + threshold: [0], + esQuery: '', + searchType: 'searchSource', + }; + + expect(() => paramsSchema.validate(params)).toThrowErrorMatchingInlineSnapshot( + `"[esQuery]: a value wasn't expected to be present"` + ); }); - expect(secondResult).toMatchObject({ - latestTimestamp: new Date(newestDocumentTimestamp).toISOString(), - }); - }); + it('alert executor handles no documents returned by ES', async () => { + const params = defaultParams; + const searchResult: ESSearchResponse = generateResults([]); + const alertServices: RuleExecutorServicesMock = alertsMock.createRuleExecutorServices(); - it('alert executor ignores tie breaker sort values', async () => { - const params: EsQueryAlertParams = { - index: ['index-name'], - timeField: 'time-field', - esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, - size: 100, - timeWindowSize: 5, - timeWindowUnit: 'm', - thresholdComparator: '>', - threshold: [0], - }; - const alertServices: AlertServicesMock = alertsMock.createAlertServices(); + (searchSourceInstanceMock.getField as jest.Mock).mockImplementationOnce((name: string) => { + if (name === 'index') { + return dataViewMock; + } + }); + (searchSourceInstanceMock.fetch as jest.Mock).mockResolvedValueOnce(searchResult); - const oldestDocumentTimestamp = Date.now(); + await invokeExecutor({ params, alertServices }); - alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValueOnce( - elasticsearchClientMock.createSuccessTransportRequestPromise( - generateResults( - [ - { - 'time-field': oldestDocumentTimestamp, - }, - { - 'time-field': oldestDocumentTimestamp - 1000, - }, - ], - true - ) - ) - ); - - const result = await alertType.executor({ - alertId: uuid.v4(), - executionId: uuid.v4(), - startedAt: new Date(), - previousStartedAt: new Date(), - services: alertServices as unknown as AlertServices< - EsQueryAlertState, - ActionContext, - typeof ActionGroupId - >, - params, - state: { - latestTimestamp: undefined, - }, - spaceId: uuid.v4(), - name: uuid.v4(), - tags: [], - createdBy: null, - updatedBy: null, - rule: { - name: uuid.v4(), - tags: [], - consumer: '', - producer: '', - ruleTypeId: '', - ruleTypeName: '', - enabled: true, - schedule: { - interval: '1h', - }, - actions: [], - createdBy: null, - updatedBy: null, - createdAt: new Date(), - updatedAt: new Date(), - throttle: null, - notifyWhen: null, - }, + expect(alertServices.alertFactory.create).not.toHaveBeenCalled(); }); - const instance: AlertInstanceMock = alertServices.alertFactory.create.mock.results[0].value; - expect(instance.replaceState).toHaveBeenCalledWith({ - latestTimestamp: undefined, - dateStart: expect.any(String), - dateEnd: expect.any(String), - }); + it('alert executor throws an error when index does not have time field', async () => { + const params = defaultParams; + const alertServices: RuleExecutorServicesMock = alertsMock.createRuleExecutorServices(); - expect(result).toMatchObject({ - latestTimestamp: new Date(oldestDocumentTimestamp).toISOString(), + (searchSourceInstanceMock.getField as jest.Mock).mockImplementationOnce((name: string) => { + if (name === 'index') { + return { dataViewMock, timeFieldName: undefined }; + } + }); + + await expect(invokeExecutor({ params, alertServices })).rejects.toThrow( + 'Invalid data view without timeFieldName.' + ); }); - }); - it('alert executor ignores results with no sort values', async () => { - const params: EsQueryAlertParams = { - index: ['index-name'], - timeField: 'time-field', - esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, - size: 100, - timeWindowSize: 5, - timeWindowUnit: 'm', - thresholdComparator: '>', - threshold: [0], - }; - const alertServices: AlertServicesMock = alertsMock.createAlertServices(); + it('alert executor schedule actions when condition met', async () => { + const params = { ...defaultParams, thresholdComparator: Comparator.GT_OR_EQ, threshold: [3] }; + const alertServices: RuleExecutorServicesMock = alertsMock.createRuleExecutorServices(); - const oldestDocumentTimestamp = Date.now(); + (searchSourceInstanceMock.getField as jest.Mock).mockImplementationOnce((name: string) => { + if (name === 'index') { + return dataViewMock; + } + }); - alertServices.scopedClusterClient.asCurrentUser.search.mockResolvedValueOnce( - elasticsearchClientMock.createSuccessTransportRequestPromise( - generateResults( - [ - { - 'time-field': oldestDocumentTimestamp, - }, - { - 'time-field': oldestDocumentTimestamp - 1000, - }, - ], - true, - true - ) - ) - ); - - const result = await alertType.executor({ - alertId: uuid.v4(), - executionId: uuid.v4(), - startedAt: new Date(), - previousStartedAt: new Date(), - services: alertServices as unknown as AlertServices< - EsQueryAlertState, - ActionContext, - typeof ActionGroupId - >, - params, - state: { - latestTimestamp: undefined, - }, - spaceId: uuid.v4(), - name: uuid.v4(), - tags: [], - createdBy: null, - updatedBy: null, - rule: { - name: uuid.v4(), - tags: [], - consumer: '', - producer: '', - ruleTypeId: '', - ruleTypeName: '', - enabled: true, - schedule: { - interval: '1h', - }, - actions: [], - createdBy: null, - updatedBy: null, - createdAt: new Date(), - updatedAt: new Date(), - throttle: null, - notifyWhen: null, - }, - }); + (searchSourceInstanceMock.fetch as jest.Mock).mockResolvedValueOnce({ + hits: { total: 3, hits: [{}, {}, {}] }, + }); - const instance: AlertInstanceMock = alertServices.alertFactory.create.mock.results[0].value; - expect(instance.replaceState).toHaveBeenCalledWith({ - latestTimestamp: undefined, - dateStart: expect.any(String), - dateEnd: expect.any(String), - }); + await invokeExecutor({ params, alertServices }); - expect(result).toMatchObject({ - latestTimestamp: new Date(oldestDocumentTimestamp - 1000).toISOString(), + const instance: AlertInstanceMock = alertServices.alertFactory.create.mock.results[0].value; + expect(instance.scheduleActions).toHaveBeenCalled(); }); }); }); @@ -736,3 +613,54 @@ function generateResults( }, }; } + +async function invokeExecutor({ + params, + alertServices, + state, +}: { + params: OnlySearchSourceAlertParams | OnlyEsQueryAlertParams; + alertServices: RuleExecutorServicesMock; + state?: EsQueryAlertState; +}) { + return await alertType.executor({ + alertId: uuid.v4(), + executionId: uuid.v4(), + startedAt: new Date(), + previousStartedAt: new Date(), + services: alertServices as unknown as RuleExecutorServices< + EsQueryAlertState, + ActionContext, + typeof ActionGroupId + >, + params: params as EsQueryAlertParams, + state: { + latestTimestamp: undefined, + ...state, + }, + spaceId: uuid.v4(), + name: uuid.v4(), + tags: [], + createdBy: null, + updatedBy: null, + rule: { + name: uuid.v4(), + tags: [], + consumer: '', + producer: '', + ruleTypeId: '', + ruleTypeName: '', + enabled: true, + schedule: { + interval: '1h', + }, + actions: [], + createdBy: null, + updatedBy: null, + createdAt: new Date(), + updatedAt: new Date(), + throttle: null, + notifyWhen: null, + }, + }); +} diff --git a/x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type.ts b/x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type.ts index d0a23dd403419..86732a6803ee7 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type.ts @@ -6,26 +6,23 @@ */ import { i18n } from '@kbn/i18n'; -import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { Logger } from 'src/core/server'; -import { RuleType, AlertExecutorOptions } from '../../types'; -import { ActionContext, EsQueryAlertActionContext, addMessages } from './action_context'; +import { CoreSetup, Logger } from 'kibana/server'; +import { RuleType } from '../../types'; +import { ActionContext } from './action_context'; import { EsQueryAlertParams, EsQueryAlertParamsSchema, EsQueryAlertState, } from './alert_type_params'; import { STACK_ALERTS_FEATURE_ID } from '../../../common'; -import { ComparatorFns, getHumanReadableComparator } from '../lib'; -import { parseDuration } from '../../../../alerting/server'; -import { buildSortedEventsQuery } from '../../../common/build_sorted_events_query'; - -export const ES_QUERY_ID = '.es-query'; - -export const ActionGroupId = 'query matched'; -export const ConditionMetAlertInstanceId = 'query matched'; - -export function getAlertType(logger: Logger): RuleType< +import { ExecutorOptions } from './types'; +import { ActionGroupId, ES_QUERY_ID } from './constants'; +import { executor } from './executor'; + +export function getAlertType( + logger: Logger, + core: CoreSetup +): RuleType< EsQueryAlertParams, never, // Only use if defining useSavedObjectReferences hook EsQueryAlertState, @@ -101,14 +98,14 @@ export function getAlertType(logger: Logger): RuleType< 'xpack.stackAlerts.esQuery.actionVariableContextThresholdLabel', { defaultMessage: - "An array of values to use as the threshold; 'between' and 'notBetween' require two values, the others require one.", + "An array of values to use as the threshold. 'between' and 'notBetween' require two values.", } ); const actionVariableContextThresholdComparatorLabel = i18n.translate( 'xpack.stackAlerts.esQuery.actionVariableContextThresholdComparatorLabel', { - defaultMessage: 'A function to determine if the threshold has been met.', + defaultMessage: 'A function to determine if the threshold was met.', } ); @@ -119,6 +116,22 @@ export function getAlertType(logger: Logger): RuleType< } ); + const actionVariableSearchConfigurationLabel = i18n.translate( + 'xpack.stackAlerts.esQuery.actionVariableContextSearchConfigurationLabel', + { + defaultMessage: + 'Serialized search source fields used to fetch the documents from Elasticsearch.', + } + ); + + const actionVariableContextLinkLabel = i18n.translate( + 'xpack.stackAlerts.esQuery.actionVariableContextLinkLabel', + { + defaultMessage: `Navigate to Discover and show the records that triggered + the alert when the rule is created in Discover. Otherwise, navigate to the status page for the rule.`, + } + ); + return { id: ES_QUERY_ID, name: alertTypeName, @@ -135,214 +148,22 @@ export function getAlertType(logger: Logger): RuleType< { name: 'value', description: actionVariableContextValueLabel }, { name: 'hits', description: actionVariableContextHitsLabel }, { name: 'conditions', description: actionVariableContextConditionsLabel }, + { name: 'link', description: actionVariableContextLinkLabel }, ], params: [ - { name: 'index', description: actionVariableContextIndexLabel }, - { name: 'esQuery', description: actionVariableContextQueryLabel }, { name: 'size', description: actionVariableContextSizeLabel }, { name: 'threshold', description: actionVariableContextThresholdLabel }, { name: 'thresholdComparator', description: actionVariableContextThresholdComparatorLabel }, + { name: 'searchConfiguration', description: actionVariableSearchConfigurationLabel }, + { name: 'esQuery', description: actionVariableContextQueryLabel }, + { name: 'index', description: actionVariableContextIndexLabel }, ], }, minimumLicenseRequired: 'basic', isExportable: true, - executor, + executor: async (options: ExecutorOptions) => { + return await executor(logger, core, options); + }, producer: STACK_ALERTS_FEATURE_ID, }; - - async function executor( - options: AlertExecutorOptions< - EsQueryAlertParams, - EsQueryAlertState, - {}, - ActionContext, - typeof ActionGroupId - > - ) { - const { alertId, name, services, params, state } = options; - const { alertFactory, scopedClusterClient } = services; - const previousTimestamp = state.latestTimestamp; - - const esClient = scopedClusterClient.asCurrentUser; - const { parsedQuery, dateStart, dateEnd } = getSearchParams(params); - - const compareFn = ComparatorFns.get(params.thresholdComparator); - if (compareFn == null) { - throw new Error(getInvalidComparatorError(params.thresholdComparator)); - } - - // During each alert execution, we run the configured query, get a hit count - // (hits.total) and retrieve up to params.size hits. We - // evaluate the threshold condition using the value of hits.total. If the threshold - // condition is met, the hits are counted toward the query match and we update - // the alert state with the timestamp of the latest hit. In the next execution - // of the alert, the latestTimestamp will be used to gate the query in order to - // avoid counting a document multiple times. - - let timestamp: string | undefined = tryToParseAsDate(previousTimestamp); - const filter = timestamp - ? { - bool: { - filter: [ - parsedQuery.query, - { - bool: { - must_not: [ - { - bool: { - filter: [ - { - range: { - [params.timeField]: { - lte: timestamp, - format: 'strict_date_optional_time', - }, - }, - }, - ], - }, - }, - ], - }, - }, - ], - }, - } - : parsedQuery.query; - - const query = buildSortedEventsQuery({ - index: params.index, - from: dateStart, - to: dateEnd, - filter, - size: params.size, - sortOrder: 'desc', - searchAfterSortId: undefined, - timeField: params.timeField, - track_total_hits: true, - }); - - logger.debug(`alert ${ES_QUERY_ID}:${alertId} "${name}" query - ${JSON.stringify(query)}`); - - const { body: searchResult } = await esClient.search(query, { meta: true }); - - logger.debug( - `alert ${ES_QUERY_ID}:${alertId} "${name}" result - ${JSON.stringify(searchResult)}` - ); - - const numMatches = (searchResult.hits.total as estypes.SearchTotalHits).value; - - // apply the alert condition - const conditionMet = compareFn(numMatches, params.threshold); - - if (conditionMet) { - const humanFn = i18n.translate( - 'xpack.stackAlerts.esQuery.alertTypeContextConditionsDescription', - { - defaultMessage: `Number of matching documents is {thresholdComparator} {threshold}`, - values: { - thresholdComparator: getHumanReadableComparator(params.thresholdComparator), - threshold: params.threshold.join(' and '), - }, - } - ); - - const baseContext: EsQueryAlertActionContext = { - date: new Date().toISOString(), - value: numMatches, - conditions: humanFn, - hits: searchResult.hits.hits, - }; - - const actionContext = addMessages(options, baseContext, params); - const alertInstance = alertFactory.create(ConditionMetAlertInstanceId); - alertInstance - // store the params we would need to recreate the query that led to this alert instance - .replaceState({ latestTimestamp: timestamp, dateStart, dateEnd }) - .scheduleActions(ActionGroupId, actionContext); - - // update the timestamp based on the current search results - const firstValidTimefieldSort = getValidTimefieldSort( - searchResult.hits.hits.find((hit) => getValidTimefieldSort(hit.sort))?.sort - ); - if (firstValidTimefieldSort) { - timestamp = firstValidTimefieldSort; - } - } - - return { - latestTimestamp: timestamp, - }; - } -} - -function getValidTimefieldSort(sortValues: Array = []): undefined | string { - for (const sortValue of sortValues) { - const sortDate = tryToParseAsDate(sortValue); - if (sortDate) { - return sortDate; - } - } -} -function tryToParseAsDate(sortValue?: string | number | null): undefined | string { - const sortDate = typeof sortValue === 'string' ? Date.parse(sortValue) : sortValue; - if (sortDate && !isNaN(sortDate)) { - return new Date(sortDate).toISOString(); - } -} - -function getInvalidComparatorError(comparator: string) { - return i18n.translate('xpack.stackAlerts.esQuery.invalidComparatorErrorMessage', { - defaultMessage: 'invalid thresholdComparator specified: {comparator}', - values: { - comparator, - }, - }); -} - -function getInvalidWindowSizeError(windowValue: string) { - return i18n.translate('xpack.stackAlerts.esQuery.invalidWindowSizeErrorMessage', { - defaultMessage: 'invalid format for windowSize: "{windowValue}"', - values: { - windowValue, - }, - }); -} - -function getInvalidQueryError(query: string) { - return i18n.translate('xpack.stackAlerts.esQuery.invalidQueryErrorMessage', { - defaultMessage: 'invalid query specified: "{query}" - query must be JSON', - values: { - query, - }, - }); -} - -function getSearchParams(queryParams: EsQueryAlertParams) { - const date = Date.now(); - const { esQuery, timeWindowSize, timeWindowUnit } = queryParams; - - let parsedQuery; - try { - parsedQuery = JSON.parse(esQuery); - } catch (err) { - throw new Error(getInvalidQueryError(esQuery)); - } - - if (parsedQuery && !parsedQuery.query) { - throw new Error(getInvalidQueryError(esQuery)); - } - - const window = `${timeWindowSize}${timeWindowUnit}`; - let timeWindow: number; - try { - timeWindow = parseDuration(window); - } catch (err) { - throw new Error(getInvalidWindowSizeError(window)); - } - - const dateStart = new Date(date - timeWindow).toISOString(); - const dateEnd = new Date(date).toISOString(); - - return { parsedQuery, dateStart, dateEnd }; } diff --git a/x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type_params.test.ts b/x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type_params.test.ts index ab3ca6a2d4c31..62833725bba1c 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type_params.test.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type_params.test.ts @@ -7,6 +7,7 @@ import { TypeOf } from '@kbn/config-schema'; import type { Writable } from '@kbn/utility-types'; +import { Comparator } from '../../../common/comparator_types'; import { EsQueryAlertParamsSchema, EsQueryAlertParams, @@ -20,7 +21,7 @@ const DefaultParams: Writable> = { size: 100, timeWindowSize: 5, timeWindowUnit: 'm', - thresholdComparator: '>', + thresholdComparator: Comparator.GT, threshold: [0], }; diff --git a/x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type_params.ts b/x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type_params.ts index de9c583ef885e..3ba9fc2686940 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type_params.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type_params.ts @@ -6,28 +6,53 @@ */ import { i18n } from '@kbn/i18n'; -import { schema, TypeOf } from '@kbn/config-schema'; -import { ComparatorFnNames } from '../lib'; +import { schema, Type, TypeOf } from '@kbn/config-schema'; import { validateTimeWindowUnits } from '../../../../triggers_actions_ui/server'; -import { AlertTypeState } from '../../../../alerting/server'; +import { RuleTypeState } from '../../../../alerting/server'; +import { Comparator } from '../../../common/comparator_types'; +import { ComparatorFnNames } from '../lib'; export const ES_QUERY_MAX_HITS_PER_EXECUTION = 10000; // alert type parameters export type EsQueryAlertParams = TypeOf; -export interface EsQueryAlertState extends AlertTypeState { +export interface EsQueryAlertState extends RuleTypeState { latestTimestamp: string | undefined; } -export const EsQueryAlertParamsSchemaProperties = { - index: schema.arrayOf(schema.string({ minLength: 1 }), { minSize: 1 }), - timeField: schema.string({ minLength: 1 }), - esQuery: schema.string({ minLength: 1 }), +const EsQueryAlertParamsSchemaProperties = { size: schema.number({ min: 0, max: ES_QUERY_MAX_HITS_PER_EXECUTION }), timeWindowSize: schema.number({ min: 1 }), timeWindowUnit: schema.string({ validate: validateTimeWindowUnits }), threshold: schema.arrayOf(schema.number(), { minSize: 1, maxSize: 2 }), - thresholdComparator: schema.string({ validate: validateComparator }), + thresholdComparator: schema.string({ validate: validateComparator }) as Type, + searchType: schema.nullable(schema.literal('searchSource')), + // searchSource alert param only + searchConfiguration: schema.conditional( + schema.siblingRef('searchType'), + schema.literal('searchSource'), + schema.object({}, { unknowns: 'allow' }), + schema.never() + ), + // esQuery alert params only + esQuery: schema.conditional( + schema.siblingRef('searchType'), + schema.literal('searchSource'), + schema.never(), + schema.string({ minLength: 1 }) + ), + index: schema.conditional( + schema.siblingRef('searchType'), + schema.literal('searchSource'), + schema.never(), + schema.arrayOf(schema.string({ minLength: 1 }), { minSize: 1 }) + ), + timeField: schema.conditional( + schema.siblingRef('searchType'), + schema.literal('searchSource'), + schema.never(), + schema.string({ minLength: 1 }) + ), }; export const EsQueryAlertParamsSchema = schema.object(EsQueryAlertParamsSchemaProperties, { @@ -38,8 +63,7 @@ const betweenComparators = new Set(['between', 'notBetween']); // using direct type not allowed, circular reference, so body is typed to any function validateParams(anyParams: unknown): string | undefined { - const { esQuery, thresholdComparator, threshold }: EsQueryAlertParams = - anyParams as EsQueryAlertParams; + const { esQuery, thresholdComparator, threshold, searchType } = anyParams as EsQueryAlertParams; if (betweenComparators.has(thresholdComparator) && threshold.length === 1) { return i18n.translate('xpack.stackAlerts.esQuery.invalidThreshold2ErrorMessage', { @@ -51,6 +75,10 @@ function validateParams(anyParams: unknown): string | undefined { }); } + if (searchType === 'searchSource') { + return; + } + try { const parsedQuery = JSON.parse(esQuery); @@ -66,8 +94,8 @@ function validateParams(anyParams: unknown): string | undefined { } } -export function validateComparator(comparator: string): string | undefined { - if (ComparatorFnNames.has(comparator)) return; +function validateComparator(comparator: string): string | undefined { + if (ComparatorFnNames.has(comparator as Comparator)) return; return i18n.translate('xpack.stackAlerts.esQuery.invalidComparatorErrorMessage', { defaultMessage: 'invalid thresholdComparator specified: {comparator}', diff --git a/x-pack/plugins/stack_alerts/server/alert_types/es_query/constants.ts b/x-pack/plugins/stack_alerts/server/alert_types/es_query/constants.ts new file mode 100644 index 0000000000000..700cba4680bff --- /dev/null +++ b/x-pack/plugins/stack_alerts/server/alert_types/es_query/constants.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const ES_QUERY_ID = '.es-query'; +export const ActionGroupId = 'query matched'; +export const ConditionMetAlertInstanceId = 'query matched'; diff --git a/x-pack/plugins/stack_alerts/server/alert_types/es_query/executor.test.ts b/x-pack/plugins/stack_alerts/server/alert_types/es_query/executor.test.ts new file mode 100644 index 0000000000000..670f76f5e19de --- /dev/null +++ b/x-pack/plugins/stack_alerts/server/alert_types/es_query/executor.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 { getSearchParams, getValidTimefieldSort, tryToParseAsDate } from './executor'; +import { OnlyEsQueryAlertParams } from './types'; + +describe('es_query executor', () => { + const defaultProps = { + size: 3, + timeWindowSize: 5, + timeWindowUnit: 'm', + threshold: [], + thresholdComparator: '>=', + esQuery: '{ "query": "test-query" }', + index: ['test-index'], + timeField: '', + }; + describe('tryToParseAsDate', () => { + it.each<[string | number]>([['2019-01-01T00:00:00.000Z'], [1546300800000]])( + 'should parse as date correctly', + (value) => { + expect(tryToParseAsDate(value)).toBe('2019-01-01T00:00:00.000Z'); + } + ); + it.each<[string | null | undefined]>([[null], ['invalid date'], [undefined]])( + 'should not parse as date', + (value) => { + expect(tryToParseAsDate(value)).toBe(undefined); + } + ); + }); + + describe('getValidTimefieldSort', () => { + it('should return valid time field', () => { + const result = getValidTimefieldSort([ + null, + 'invalid date', + '2018-12-31T19:00:00.000Z', + 1546282800000, + ]); + expect(result).toEqual('2018-12-31T19:00:00.000Z'); + }); + }); + + describe('getSearchParams', () => { + it('should return search params correctly', () => { + const result = getSearchParams(defaultProps as OnlyEsQueryAlertParams); + expect(result.parsedQuery.query).toBe('test-query'); + }); + + it('should throw invalid query error', () => { + expect(() => + getSearchParams({ ...defaultProps, esQuery: '' } as OnlyEsQueryAlertParams) + ).toThrow('invalid query specified: "" - query must be JSON'); + }); + + it('should throw invalid query error due to missing query property', () => { + expect(() => + getSearchParams({ + ...defaultProps, + esQuery: '{ "someProperty": "test-query" }', + } as OnlyEsQueryAlertParams) + ).toThrow('invalid query specified: "{ "someProperty": "test-query" }" - query must be JSON'); + }); + + it('should throw invalid window size error', () => { + expect(() => + getSearchParams({ + ...defaultProps, + timeWindowSize: 5, + timeWindowUnit: 'r', + } as OnlyEsQueryAlertParams) + ).toThrow('invalid format for windowSize: "5r"'); + }); + }); +}); diff --git a/x-pack/plugins/stack_alerts/server/alert_types/es_query/executor.ts b/x-pack/plugins/stack_alerts/server/alert_types/es_query/executor.ts new file mode 100644 index 0000000000000..175695aca5f4d --- /dev/null +++ b/x-pack/plugins/stack_alerts/server/alert_types/es_query/executor.ts @@ -0,0 +1,193 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { sha256 } from 'js-sha256'; +import { i18n } from '@kbn/i18n'; +import { CoreSetup, Logger } from 'kibana/server'; +import { addMessages, EsQueryAlertActionContext } from './action_context'; +import { ComparatorFns, getHumanReadableComparator } from '../lib'; +import { parseDuration } from '../../../../alerting/server'; +import { ExecutorOptions, OnlyEsQueryAlertParams, OnlySearchSourceAlertParams } from './types'; +import { ActionGroupId, ConditionMetAlertInstanceId } from './constants'; +import { fetchEsQuery } from './lib/fetch_es_query'; +import { EsQueryAlertParams } from './alert_type_params'; +import { fetchSearchSourceQuery } from './lib/fetch_search_source_query'; +import { Comparator } from '../../../common/comparator_types'; + +export async function executor( + logger: Logger, + core: CoreSetup, + options: ExecutorOptions +) { + const esQueryAlert = isEsQueryAlert(options); + const { alertId, name, services, params, state } = options; + const { alertFactory, scopedClusterClient, searchSourceClient } = services; + const currentTimestamp = new Date().toISOString(); + const publicBaseUrl = core.http.basePath.publicBaseUrl ?? ''; + + const compareFn = ComparatorFns.get(params.thresholdComparator); + if (compareFn == null) { + throw new Error(getInvalidComparatorError(params.thresholdComparator)); + } + let latestTimestamp: string | undefined = tryToParseAsDate(state.latestTimestamp); + + // During each alert execution, we run the configured query, get a hit count + // (hits.total) and retrieve up to params.size hits. We + // evaluate the threshold condition using the value of hits.total. If the threshold + // condition is met, the hits are counted toward the query match and we update + // the alert state with the timestamp of the latest hit. In the next execution + // of the alert, the latestTimestamp will be used to gate the query in order to + // avoid counting a document multiple times. + + const { numMatches, searchResult, dateStart, dateEnd } = esQueryAlert + ? await fetchEsQuery(alertId, name, params as OnlyEsQueryAlertParams, latestTimestamp, { + scopedClusterClient, + logger, + }) + : await fetchSearchSourceQuery( + alertId, + params as OnlySearchSourceAlertParams, + latestTimestamp, + { + searchSourceClient, + logger, + } + ); + + // apply the alert condition + const conditionMet = compareFn(numMatches, params.threshold); + + if (conditionMet) { + const base = publicBaseUrl; + const link = esQueryAlert + ? `${base}/app/management/insightsAndAlerting/triggersActions/rule/${alertId}` + : `${base}/app/discover#/viewAlert/${alertId}?from=${dateStart}&to=${dateEnd}&checksum=${getChecksum( + params + )}`; + + const conditions = getContextConditionsDescription( + params.thresholdComparator, + params.threshold + ); + const baseContext: EsQueryAlertActionContext = { + title: name, + date: currentTimestamp, + value: numMatches, + conditions, + hits: searchResult.hits.hits, + link, + }; + + const actionContext = addMessages(options, baseContext, params); + const alertInstance = alertFactory.create(ConditionMetAlertInstanceId); + alertInstance + // store the params we would need to recreate the query that led to this alert instance + .replaceState({ latestTimestamp, dateStart, dateEnd }) + .scheduleActions(ActionGroupId, actionContext); + + // update the timestamp based on the current search results + const firstValidTimefieldSort = getValidTimefieldSort( + searchResult.hits.hits.find((hit) => getValidTimefieldSort(hit.sort))?.sort + ); + if (firstValidTimefieldSort) { + latestTimestamp = firstValidTimefieldSort; + } + } + + return { latestTimestamp }; +} + +function getInvalidWindowSizeError(windowValue: string) { + return i18n.translate('xpack.stackAlerts.esQuery.invalidWindowSizeErrorMessage', { + defaultMessage: 'invalid format for windowSize: "{windowValue}"', + values: { + windowValue, + }, + }); +} + +function getInvalidQueryError(query: string) { + return i18n.translate('xpack.stackAlerts.esQuery.invalidQueryErrorMessage', { + defaultMessage: 'invalid query specified: "{query}" - query must be JSON', + values: { + query, + }, + }); +} + +export function getSearchParams(queryParams: OnlyEsQueryAlertParams) { + const date = Date.now(); + const { esQuery, timeWindowSize, timeWindowUnit } = queryParams; + + let parsedQuery; + try { + parsedQuery = JSON.parse(esQuery); + } catch (err) { + throw new Error(getInvalidQueryError(esQuery)); + } + + if (parsedQuery && !parsedQuery.query) { + throw new Error(getInvalidQueryError(esQuery)); + } + + const window = `${timeWindowSize}${timeWindowUnit}`; + let timeWindow: number; + try { + timeWindow = parseDuration(window); + } catch (err) { + throw new Error(getInvalidWindowSizeError(window)); + } + + const dateStart = new Date(date - timeWindow).toISOString(); + const dateEnd = new Date(date).toISOString(); + + return { parsedQuery, dateStart, dateEnd }; +} + +export function getValidTimefieldSort( + sortValues: Array = [] +): undefined | string { + for (const sortValue of sortValues) { + const sortDate = tryToParseAsDate(sortValue); + if (sortDate) { + return sortDate; + } + } +} + +export function tryToParseAsDate(sortValue?: string | number | null): undefined | string { + const sortDate = typeof sortValue === 'string' ? Date.parse(sortValue) : sortValue; + if (sortDate && !isNaN(sortDate)) { + return new Date(sortDate).toISOString(); + } +} + +export function isEsQueryAlert(options: ExecutorOptions) { + return options.params.searchType !== 'searchSource'; +} + +export function getChecksum(params: EsQueryAlertParams) { + return sha256.create().update(JSON.stringify(params)); +} + +export function getInvalidComparatorError(comparator: string) { + return i18n.translate('xpack.stackAlerts.esQuery.invalidComparatorErrorMessage', { + defaultMessage: 'invalid thresholdComparator specified: {comparator}', + values: { + comparator, + }, + }); +} + +export function getContextConditionsDescription(comparator: Comparator, threshold: number[]) { + return i18n.translate('xpack.stackAlerts.esQuery.alertTypeContextConditionsDescription', { + defaultMessage: 'Number of matching documents is {thresholdComparator} {threshold}', + values: { + thresholdComparator: getHumanReadableComparator(comparator), + threshold: threshold.join(' and '), + }, + }); +} diff --git a/x-pack/plugins/stack_alerts/server/alert_types/es_query/index.ts b/x-pack/plugins/stack_alerts/server/alert_types/es_query/index.ts index ffe0388e64216..99f9eb1795688 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/es_query/index.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/es_query/index.ts @@ -5,16 +5,17 @@ * 2.0. */ -import { Logger } from 'src/core/server'; +import { CoreSetup, Logger } from 'src/core/server'; import { AlertingSetup } from '../../types'; import { getAlertType } from './alert_type'; interface RegisterParams { logger: Logger; alerting: AlertingSetup; + core: CoreSetup; } export function register(params: RegisterParams) { - const { logger, alerting } = params; - alerting.registerType(getAlertType(logger)); + const { logger, alerting, core } = params; + alerting.registerType(getAlertType(logger, core)); } diff --git a/x-pack/plugins/stack_alerts/server/alert_types/es_query/lib/fetch_es_query.ts b/x-pack/plugins/stack_alerts/server/alert_types/es_query/lib/fetch_es_query.ts new file mode 100644 index 0000000000000..519c392753c58 --- /dev/null +++ b/x-pack/plugins/stack_alerts/server/alert_types/es_query/lib/fetch_es_query.ts @@ -0,0 +1,88 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license 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, Logger } from 'kibana/server'; +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import { OnlyEsQueryAlertParams } from '../types'; +import { buildSortedEventsQuery } from '../../../../common/build_sorted_events_query'; +import { ES_QUERY_ID } from '../constants'; +import { getSearchParams } from './get_search_params'; + +/** + * Fetching matching documents for a given alert from elasticsearch by a given index and query + */ +export async function fetchEsQuery( + alertId: string, + name: string, + params: OnlyEsQueryAlertParams, + timestamp: string | undefined, + services: { + scopedClusterClient: IScopedClusterClient; + logger: Logger; + } +) { + const { scopedClusterClient, logger } = services; + const esClient = scopedClusterClient.asCurrentUser; + const { parsedQuery, dateStart, dateEnd } = getSearchParams(params); + + const filter = timestamp + ? { + bool: { + filter: [ + parsedQuery.query, + { + bool: { + must_not: [ + { + bool: { + filter: [ + { + range: { + [params.timeField]: { + lte: timestamp, + format: 'strict_date_optional_time', + }, + }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + } + : parsedQuery.query; + + const query = buildSortedEventsQuery({ + index: params.index, + from: dateStart, + to: dateEnd, + filter, + size: params.size, + sortOrder: 'desc', + searchAfterSortId: undefined, + timeField: params.timeField, + track_total_hits: true, + }); + + logger.debug( + `es query alert ${ES_QUERY_ID}:${alertId} "${name}" query - ${JSON.stringify(query)}` + ); + + const { body: searchResult } = await esClient.search(query, { meta: true }); + + logger.debug( + ` es query alert ${ES_QUERY_ID}:${alertId} "${name}" result - ${JSON.stringify(searchResult)}` + ); + return { + numMatches: (searchResult.hits.total as estypes.SearchTotalHits).value, + searchResult, + dateStart, + dateEnd, + }; +} diff --git a/x-pack/plugins/stack_alerts/server/alert_types/es_query/lib/fetch_search_source_query.test.ts b/x-pack/plugins/stack_alerts/server/alert_types/es_query/lib/fetch_search_source_query.test.ts new file mode 100644 index 0000000000000..1e6aac5dcb035 --- /dev/null +++ b/x-pack/plugins/stack_alerts/server/alert_types/es_query/lib/fetch_search_source_query.test.ts @@ -0,0 +1,164 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { OnlySearchSourceAlertParams } from '../types'; +import { createSearchSourceMock } from 'src/plugins/data/common/search/search_source/mocks'; +import { updateSearchSource } from './fetch_search_source_query'; +import { stubbedSavedObjectIndexPattern } from '../../../../../../../src/plugins/data_views/common/data_view.stub'; +import { DataView } from '../../../../../../../src/plugins/data_views/common'; +import { fieldFormatsMock } from '../../../../../../../src/plugins/field_formats/common/mocks'; +import { Comparator } from '../../../../common/comparator_types'; + +const createDataView = () => { + const id = 'test-id'; + const { + type, + version, + attributes: { timeFieldName, fields, title }, + } = stubbedSavedObjectIndexPattern(id); + + return new DataView({ + spec: { id, type, version, timeFieldName, fields: JSON.parse(fields), title }, + fieldFormats: fieldFormatsMock, + shortDotsEnable: false, + metaFields: ['_id', '_type', '_score'], + }); +}; + +const defaultParams: OnlySearchSourceAlertParams = { + size: 100, + timeWindowSize: 5, + timeWindowUnit: 'm', + thresholdComparator: Comparator.LT, + threshold: [0], + searchConfiguration: {}, + searchType: 'searchSource', +}; + +describe('fetchSearchSourceQuery', () => { + describe('updateSearchSource', () => { + const dataViewMock = createDataView(); + afterAll(() => { + jest.resetAllMocks(); + }); + + const fakeNow = new Date('2020-02-09T23:15:41.941Z'); + + beforeAll(() => { + jest.resetAllMocks(); + global.Date.now = jest.fn(() => fakeNow.getTime()); + }); + + it('without latest timestamp', async () => { + const params = { ...defaultParams, thresholdComparator: Comparator.GT_OR_EQ, threshold: [3] }; + + const searchSourceInstance = createSearchSourceMock({ index: dataViewMock }); + + const { searchSource, dateStart, dateEnd } = updateSearchSource( + searchSourceInstance, + params, + undefined + ); + const searchRequest = searchSource.getSearchRequestBody(); + expect(searchRequest.query).toMatchInlineSnapshot(` + Object { + "bool": Object { + "filter": Array [ + Object { + "range": Object { + "time": Object { + "format": "strict_date_optional_time", + "gte": "2020-02-09T23:10:41.941Z", + "lte": "2020-02-09T23:15:41.941Z", + }, + }, + }, + ], + "must": Array [], + "must_not": Array [], + "should": Array [], + }, + } + `); + expect(dateStart).toMatch('2020-02-09T23:10:41.941Z'); + expect(dateEnd).toMatch('2020-02-09T23:15:41.941Z'); + }); + + it('with latest timestamp in between the given time range ', async () => { + const params = { ...defaultParams, thresholdComparator: Comparator.GT_OR_EQ, threshold: [3] }; + + const searchSourceInstance = createSearchSourceMock({ index: dataViewMock }); + + const { searchSource } = updateSearchSource( + searchSourceInstance, + params, + '2020-02-09T23:12:41.941Z' + ); + const searchRequest = searchSource.getSearchRequestBody(); + expect(searchRequest.query).toMatchInlineSnapshot(` + Object { + "bool": Object { + "filter": Array [ + Object { + "range": Object { + "time": Object { + "format": "strict_date_optional_time", + "gte": "2020-02-09T23:10:41.941Z", + "lte": "2020-02-09T23:15:41.941Z", + }, + }, + }, + Object { + "range": Object { + "time": Object { + "gt": "2020-02-09T23:12:41.941Z", + }, + }, + }, + ], + "must": Array [], + "must_not": Array [], + "should": Array [], + }, + } + `); + }); + + it('with latest timestamp in before the given time range ', async () => { + const params = { ...defaultParams, thresholdComparator: Comparator.GT_OR_EQ, threshold: [3] }; + + const searchSourceInstance = createSearchSourceMock({ index: dataViewMock }); + + const { searchSource } = updateSearchSource( + searchSourceInstance, + params, + '2020-01-09T22:12:41.941Z' + ); + const searchRequest = searchSource.getSearchRequestBody(); + expect(searchRequest.query).toMatchInlineSnapshot(` + Object { + "bool": Object { + "filter": Array [ + Object { + "range": Object { + "time": Object { + "format": "strict_date_optional_time", + "gte": "2020-02-09T23:10:41.941Z", + "lte": "2020-02-09T23:15:41.941Z", + }, + }, + }, + ], + "must": Array [], + "must_not": Array [], + "should": Array [], + }, + } + `); + }); + }); +}); diff --git a/x-pack/plugins/stack_alerts/server/alert_types/es_query/lib/fetch_search_source_query.ts b/x-pack/plugins/stack_alerts/server/alert_types/es_query/lib/fetch_search_source_query.ts new file mode 100644 index 0000000000000..490c6f81ec485 --- /dev/null +++ b/x-pack/plugins/stack_alerts/server/alert_types/es_query/lib/fetch_search_source_query.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 { buildRangeFilter, Filter } from '@kbn/es-query'; +import { Logger } from 'kibana/server'; +import { OnlySearchSourceAlertParams } from '../types'; +import { + getTime, + ISearchSource, + ISearchStartSearchSource, + SortDirection, +} from '../../../../../../../src/plugins/data/common'; + +export async function fetchSearchSourceQuery( + alertId: string, + params: OnlySearchSourceAlertParams, + latestTimestamp: string | undefined, + services: { + logger: Logger; + searchSourceClient: Promise; + } +) { + const { logger, searchSourceClient } = services; + const client = await searchSourceClient; + const initialSearchSource = await client.create(params.searchConfiguration); + + const { searchSource, dateStart, dateEnd } = updateSearchSource( + initialSearchSource, + params, + latestTimestamp + ); + + logger.debug( + `search source query alert (${alertId}) query: ${JSON.stringify( + searchSource.getSearchRequestBody() + )}` + ); + + const searchResult = await searchSource.fetch(); + + return { + numMatches: Number(searchResult.hits.total), + searchResult, + dateStart, + dateEnd, + }; +} + +export function updateSearchSource( + searchSource: ISearchSource, + params: OnlySearchSourceAlertParams, + latestTimestamp: string | undefined +) { + const index = searchSource.getField('index'); + + const timeFieldName = index?.timeFieldName; + if (!timeFieldName) { + throw new Error('Invalid data view without timeFieldName.'); + } + + searchSource.setField('size', params.size); + + const timerangeFilter = getTime(index, { + from: `now-${params.timeWindowSize}${params.timeWindowUnit}`, + to: 'now', + }); + const dateStart = timerangeFilter?.query.range[timeFieldName].gte; + const dateEnd = timerangeFilter?.query.range[timeFieldName].lte; + const filters = [timerangeFilter]; + + if (latestTimestamp && latestTimestamp > dateStart) { + // add additional filter for documents with a timestamp greater then + // the timestamp of the previous run, so that those documents are not counted twice + const field = index.fields.find((f) => f.name === timeFieldName); + const addTimeRangeField = buildRangeFilter(field!, { gt: latestTimestamp }, index); + filters.push(addTimeRangeField); + } + const searchSourceChild = searchSource.createChild(); + searchSourceChild.setField('filter', filters as Filter[]); + searchSourceChild.setField('sort', [{ [timeFieldName]: SortDirection.desc }]); + return { + searchSource: searchSourceChild, + dateStart, + dateEnd, + }; +} diff --git a/x-pack/plugins/stack_alerts/server/alert_types/es_query/lib/get_search_params.ts b/x-pack/plugins/stack_alerts/server/alert_types/es_query/lib/get_search_params.ts new file mode 100644 index 0000000000000..9a4d83630f21e --- /dev/null +++ b/x-pack/plugins/stack_alerts/server/alert_types/es_query/lib/get_search_params.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 { i18n } from '@kbn/i18n'; +import { OnlyEsQueryAlertParams } from '../types'; +import { parseDuration } from '../../../../../alerting/common'; + +export function getSearchParams(queryParams: OnlyEsQueryAlertParams) { + const date = Date.now(); + const { esQuery, timeWindowSize, timeWindowUnit } = queryParams; + + let parsedQuery; + try { + parsedQuery = JSON.parse(esQuery); + } catch (err) { + throw new Error(getInvalidQueryError(esQuery)); + } + + if (parsedQuery && !parsedQuery.query) { + throw new Error(getInvalidQueryError(esQuery)); + } + + const window = `${timeWindowSize}${timeWindowUnit}`; + let timeWindow: number; + try { + timeWindow = parseDuration(window); + } catch (err) { + throw new Error(getInvalidWindowSizeError(window)); + } + + const dateStart = new Date(date - timeWindow).toISOString(); + const dateEnd = new Date(date).toISOString(); + + return { parsedQuery, dateStart, dateEnd }; +} + +function getInvalidWindowSizeError(windowValue: string) { + return i18n.translate('xpack.stackAlerts.esQuery.invalidWindowSizeErrorMessage', { + defaultMessage: 'invalid format for windowSize: "{windowValue}"', + values: { + windowValue, + }, + }); +} + +function getInvalidQueryError(query: string) { + return i18n.translate('xpack.stackAlerts.esQuery.invalidQueryErrorMessage', { + defaultMessage: 'invalid query specified: "{query}" - query must be JSON', + values: { + query, + }, + }); +} diff --git a/x-pack/plugins/stack_alerts/server/alert_types/es_query/types.ts b/x-pack/plugins/stack_alerts/server/alert_types/es_query/types.ts new file mode 100644 index 0000000000000..12b2ee02af171 --- /dev/null +++ b/x-pack/plugins/stack_alerts/server/alert_types/es_query/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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { RuleExecutorOptions, RuleTypeParams } from '../../types'; +import { ActionContext } from './action_context'; +import { EsQueryAlertParams, EsQueryAlertState } from './alert_type_params'; +import { ActionGroupId } from './constants'; + +export type OnlyEsQueryAlertParams = Omit; + +export type OnlySearchSourceAlertParams = Omit< + EsQueryAlertParams, + 'esQuery' | 'index' | 'timeField' +> & { + searchType: 'searchSource'; +}; + +export type ExecutorOptions

= RuleExecutorOptions< + P, + EsQueryAlertState, + {}, + ActionContext, + typeof ActionGroupId +>; diff --git a/x-pack/plugins/stack_alerts/server/alert_types/geo_containment/alert_type.ts b/x-pack/plugins/stack_alerts/server/alert_types/geo_containment/alert_type.ts index a25e9e8d7bf69..c65dc4d5745ea 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/geo_containment/alert_type.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/geo_containment/alert_type.ts @@ -12,11 +12,11 @@ import { STACK_ALERTS_FEATURE_ID } from '../../../common'; import { getGeoContainmentExecutor } from './geo_containment'; import { RuleType, - AlertTypeState, + RuleTypeState, AlertInstanceState, AlertInstanceContext, RuleParamsAndRefs, - AlertTypeParams, + RuleTypeParams, } from '../../../../alerting/server'; import { Query } from '../../../../../../src/plugins/data/common/query'; @@ -24,7 +24,7 @@ export const ActionGroupId = 'Tracked entity contained'; export const RecoveryActionGroupId = 'notGeoContained'; export const GEO_CONTAINMENT_ID = '.geo-containment'; -export interface GeoContainmentParams extends AlertTypeParams { +export interface GeoContainmentParams extends RuleTypeParams { index: string; indexId: string; geoField: string; @@ -126,7 +126,7 @@ export const ParamsSchema = schema.object({ boundaryIndexQuery: schema.maybe(schema.any({})), }); -export interface GeoContainmentState extends AlertTypeState { +export interface GeoContainmentState extends RuleTypeState { shapesFilters: Record; shapesIdsNamesMap: Record; prevLocationMap: Record; diff --git a/x-pack/plugins/stack_alerts/server/alert_types/geo_containment/geo_containment.ts b/x-pack/plugins/stack_alerts/server/alert_types/geo_containment/geo_containment.ts index aca79e29cd3e5..5d59c3cab0746 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/geo_containment/geo_containment.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/geo_containment/geo_containment.ts @@ -9,7 +9,7 @@ import _ from 'lodash'; import { Logger } from 'src/core/server'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { executeEsQueryFactory, getShapesFilters, OTHER_CATEGORY } from './es_query_builder'; -import { AlertServices } from '../../../../alerting/server'; +import { RuleExecutorServices } from '../../../../alerting/server'; import { ActionGroupId, GeoContainmentInstanceState, @@ -87,7 +87,7 @@ export function transformResults( export function getActiveEntriesAndGenerateAlerts( prevLocationMap: Map, currLocationMap: Map, - alertFactory: AlertServices< + alertFactory: RuleExecutorServices< GeoContainmentInstanceState, GeoContainmentInstanceContext, typeof ActionGroupId diff --git a/x-pack/plugins/stack_alerts/server/alert_types/geo_containment/tests/geo_containment.test.ts b/x-pack/plugins/stack_alerts/server/alert_types/geo_containment/tests/geo_containment.test.ts index bf9489e12777c..a5f8d0e064874 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/geo_containment/tests/geo_containment.test.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/geo_containment/tests/geo_containment.test.ts @@ -7,7 +7,7 @@ import _ from 'lodash'; import { loggingSystemMock, elasticsearchServiceMock } from 'src/core/server/mocks'; -import { AlertServicesMock, alertsMock } from '../../../../../alerting/server/mocks'; +import { RuleExecutorServicesMock, alertsMock } from '../../../../../alerting/server/mocks'; import sampleAggsJsonResponse from './es_sample_response.json'; import sampleShapesJsonResponse from './es_sample_response_shapes.json'; import sampleAggsJsonResponseWithNesting from './es_sample_response_with_nesting.json'; @@ -525,8 +525,8 @@ describe('geo_containment', () => { } }); - const alertServicesWithSearchMock: AlertServicesMock = { - ...alertsMock.createAlertServices(), + const alertServicesWithSearchMock: RuleExecutorServicesMock = { + ...alertsMock.createRuleExecutorServices(), // @ts-ignore alertFactory: alertFactory(contextKeys, testAlertActionArr), // @ts-ignore diff --git a/x-pack/plugins/stack_alerts/server/alert_types/index.ts b/x-pack/plugins/stack_alerts/server/alert_types/index.ts index 219ccad2ece63..8ad10298f351b 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/index.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Logger } from 'src/core/server'; +import { CoreSetup, Logger } from 'src/core/server'; import { AlertingSetup, StackAlertsStartDeps } from '../types'; import { register as registerIndexThreshold } from './index_threshold'; import { register as registerGeoContainment } from './geo_containment'; @@ -14,6 +14,7 @@ interface RegisterAlertTypesParams { logger: Logger; data: Promise; alerting: AlertingSetup; + core: CoreSetup; } export function registerBuiltInAlertTypes(params: RegisterAlertTypesParams) { diff --git a/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/action_context.ts b/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/action_context.ts index 02450da5bbdf7..f75869d8e0db2 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/action_context.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/action_context.ts @@ -7,11 +7,11 @@ import { i18n } from '@kbn/i18n'; import { Params } from './alert_type_params'; -import { AlertExecutorOptions, AlertInstanceContext } from '../../../../alerting/server'; +import { RuleExecutorOptions, AlertInstanceContext } from '../../../../alerting/server'; // alert type context provided to actions -type RuleInfo = Pick; +type RuleInfo = Pick; export interface ActionContext extends BaseActionContext { // a short pre-constructed message which may be used in an action field diff --git a/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/alert_type.test.ts b/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/alert_type.test.ts index e55ce6e3a3aba..16117ed6fd507 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/alert_type.test.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/alert_type.test.ts @@ -8,18 +8,19 @@ import uuid from 'uuid'; import type { Writable } from '@kbn/utility-types'; import { loggingSystemMock } from '../../../../../../src/core/server/mocks'; -import { AlertServices } from '../../../../alerting/server'; +import { RuleExecutorServices } from '../../../../alerting/server'; import { getAlertType, ActionGroupId } from './alert_type'; import { ActionContext } from './action_context'; import { Params } from './alert_type_params'; -import { AlertServicesMock, alertsMock } from '../../../../alerting/server/mocks'; +import { RuleExecutorServicesMock, alertsMock } from '../../../../alerting/server/mocks'; +import { Comparator } from '../../../common/comparator_types'; describe('alertType', () => { const logger = loggingSystemMock.create().get(); const data = { timeSeriesQuery: jest.fn(), }; - const alertServices: AlertServicesMock = alertsMock.createAlertServices(); + const alertServices: RuleExecutorServicesMock = alertsMock.createRuleExecutorServices(); const alertType = getAlertType(logger, Promise.resolve(data)); @@ -118,7 +119,7 @@ describe('alertType', () => { groupBy: 'all', timeWindowSize: 5, timeWindowUnit: 'm', - thresholdComparator: '<', + thresholdComparator: Comparator.LT, threshold: [0], }; @@ -136,7 +137,7 @@ describe('alertType', () => { groupBy: 'all', timeWindowSize: 5, timeWindowUnit: 'm', - thresholdComparator: '>', + thresholdComparator: Comparator.GT, threshold: [0], }; @@ -163,7 +164,7 @@ describe('alertType', () => { groupBy: 'all', timeWindowSize: 5, timeWindowUnit: 'm', - thresholdComparator: '<', + thresholdComparator: Comparator.LT, threshold: [1], }; @@ -172,7 +173,11 @@ describe('alertType', () => { executionId: uuid.v4(), startedAt: new Date(), previousStartedAt: new Date(), - services: alertServices as unknown as AlertServices<{}, ActionContext, typeof ActionGroupId>, + services: alertServices as unknown as RuleExecutorServices< + {}, + ActionContext, + typeof ActionGroupId + >, params, state: { latestTimestamp: undefined, @@ -207,7 +212,7 @@ describe('alertType', () => { }); it('should ensure a null result does not fire actions', async () => { - const customAlertServices: AlertServicesMock = alertsMock.createAlertServices(); + const customAlertServices: RuleExecutorServicesMock = alertsMock.createRuleExecutorServices(); data.timeSeriesQuery.mockImplementation((...args) => { return { results: [ @@ -225,7 +230,7 @@ describe('alertType', () => { groupBy: 'all', timeWindowSize: 5, timeWindowUnit: 'm', - thresholdComparator: '<', + thresholdComparator: Comparator.LT, threshold: [1], }; @@ -234,7 +239,7 @@ describe('alertType', () => { executionId: uuid.v4(), startedAt: new Date(), previousStartedAt: new Date(), - services: customAlertServices as unknown as AlertServices< + services: customAlertServices as unknown as RuleExecutorServices< {}, ActionContext, typeof ActionGroupId @@ -273,7 +278,7 @@ describe('alertType', () => { }); it('should ensure an undefined result does not fire actions', async () => { - const customAlertServices: AlertServicesMock = alertsMock.createAlertServices(); + const customAlertServices: RuleExecutorServicesMock = alertsMock.createRuleExecutorServices(); data.timeSeriesQuery.mockImplementation((...args) => { return { results: [ @@ -291,7 +296,7 @@ describe('alertType', () => { groupBy: 'all', timeWindowSize: 5, timeWindowUnit: 'm', - thresholdComparator: '<', + thresholdComparator: Comparator.LT, threshold: [1], }; @@ -300,7 +305,7 @@ describe('alertType', () => { executionId: uuid.v4(), startedAt: new Date(), previousStartedAt: new Date(), - services: customAlertServices as unknown as AlertServices< + services: customAlertServices as unknown as RuleExecutorServices< {}, ActionContext, typeof ActionGroupId diff --git a/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/alert_type.ts b/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/alert_type.ts index 1d838fda0e8e0..9da47aa76e0c0 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/alert_type.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/alert_type.ts @@ -7,7 +7,7 @@ import { i18n } from '@kbn/i18n'; import { Logger } from 'src/core/server'; -import { RuleType, AlertExecutorOptions, StackAlertsStartDeps } from '../../types'; +import { RuleType, RuleExecutorOptions, StackAlertsStartDeps } from '../../types'; import { Params, ParamsSchema } from './alert_type_params'; import { ActionContext, BaseActionContext, addMessages } from './action_context'; import { STACK_ALERTS_FEATURE_ID } from '../../../common'; @@ -132,7 +132,7 @@ export function getAlertType( }; async function executor( - options: AlertExecutorOptions + options: RuleExecutorOptions ) { const { alertId: ruleId, name, services, params } = options; const { alertFactory, scopedClusterClient } = services; diff --git a/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/alert_type_params.test.ts b/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/alert_type_params.test.ts index 65980601b67a8..a6533c494250f 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/alert_type_params.test.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/alert_type_params.test.ts @@ -9,6 +9,7 @@ import { ParamsSchema, Params } from './alert_type_params'; import { ObjectType, TypeOf } from '@kbn/config-schema'; import type { Writable } from '@kbn/utility-types'; import { CoreQueryParams, MAX_GROUPS } from '../../../../triggers_actions_ui/server'; +import { Comparator } from '../../../common/comparator_types'; const DefaultParams: Writable> = { index: 'index-name', @@ -17,7 +18,7 @@ const DefaultParams: Writable> = { groupBy: 'all', timeWindowSize: 5, timeWindowUnit: 'm', - thresholdComparator: '>', + thresholdComparator: Comparator.GT, threshold: [0], }; diff --git a/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/alert_type_params.ts b/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/alert_type_params.ts index d32e7890b17c6..821ddce6fcfb1 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/alert_type_params.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/index_threshold/alert_type_params.ts @@ -6,12 +6,13 @@ */ import { i18n } from '@kbn/i18n'; -import { schema, TypeOf } from '@kbn/config-schema'; -import { ComparatorFnNames } from '../lib'; +import { schema, Type, TypeOf } from '@kbn/config-schema'; import { CoreQueryParamsSchemaProperties, validateCoreQueryBody, } from '../../../../triggers_actions_ui/server'; +import { ComparatorFnNames } from '../lib'; +import { Comparator } from '../../../common/comparator_types'; // alert type parameters @@ -21,7 +22,7 @@ export const ParamsSchema = schema.object( { ...CoreQueryParamsSchemaProperties, // the comparison function to use to determine if the threshold as been met - thresholdComparator: schema.string({ validate: validateComparator }), + thresholdComparator: schema.string({ validate: validateComparator }) as Type, // the values to use as the threshold; `between` and `notBetween` require // two values, the others require one. threshold: schema.arrayOf(schema.number(), { minSize: 1, maxSize: 2 }), @@ -52,8 +53,8 @@ function validateParams(anyParams: unknown): string | undefined { } } -export function validateComparator(comparator: string): string | undefined { - if (ComparatorFnNames.has(comparator)) return; +function validateComparator(comparator: string): string | undefined { + if (ComparatorFnNames.has(comparator as Comparator)) return; return i18n.translate('xpack.stackAlerts.indexThreshold.invalidComparatorErrorMessage', { defaultMessage: 'invalid thresholdComparator specified: {comparator}', diff --git a/x-pack/plugins/stack_alerts/server/alert_types/lib/comparator.ts b/x-pack/plugins/stack_alerts/server/alert_types/lib/comparator.ts new file mode 100644 index 0000000000000..ac817256798a4 --- /dev/null +++ b/x-pack/plugins/stack_alerts/server/alert_types/lib/comparator.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 { Comparator } from '../../../common/comparator_types'; + +export type ComparatorFn = (value: number, threshold: number[]) => boolean; + +const humanReadableComparators = new Map([ + [Comparator.LT, 'less than'], + [Comparator.LT_OR_EQ, 'less than or equal to'], + [Comparator.GT_OR_EQ, 'greater than or equal to'], + [Comparator.GT, 'greater than'], + [Comparator.BETWEEN, 'between'], + [Comparator.NOT_BETWEEN, 'not between'], +]); + +export const ComparatorFns = new Map([ + [Comparator.LT, (value: number, threshold: number[]) => value < threshold[0]], + [Comparator.LT_OR_EQ, (value: number, threshold: number[]) => value <= threshold[0]], + [Comparator.GT_OR_EQ, (value: number, threshold: number[]) => value >= threshold[0]], + [Comparator.GT, (value: number, threshold: number[]) => value > threshold[0]], + [ + Comparator.BETWEEN, + (value: number, threshold: number[]) => value >= threshold[0] && value <= threshold[1], + ], + [ + Comparator.NOT_BETWEEN, + (value: number, threshold: number[]) => value < threshold[0] || value > threshold[1], + ], +]); + +export const ComparatorFnNames = new Set(ComparatorFns.keys()); + +export function getHumanReadableComparator(comparator: Comparator) { + return humanReadableComparators.has(comparator) + ? humanReadableComparators.get(comparator) + : comparator; +} diff --git a/x-pack/plugins/stack_alerts/server/alert_types/lib/comparator_types.ts b/x-pack/plugins/stack_alerts/server/alert_types/lib/comparator_types.ts deleted file mode 100644 index b364a31b10151..0000000000000 --- a/x-pack/plugins/stack_alerts/server/alert_types/lib/comparator_types.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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -enum Comparator { - GT = '>', - LT = '<', - GT_OR_EQ = '>=', - LT_OR_EQ = '<=', - BETWEEN = 'between', - NOT_BETWEEN = 'notBetween', -} - -const humanReadableComparators = new Map([ - [Comparator.LT, 'less than'], - [Comparator.LT_OR_EQ, 'less than or equal to'], - [Comparator.GT_OR_EQ, 'greater than or equal to'], - [Comparator.GT, 'greater than'], - [Comparator.BETWEEN, 'between'], - [Comparator.NOT_BETWEEN, 'not between'], -]); - -export const ComparatorFns = getComparatorFns(); -export const ComparatorFnNames = new Set(ComparatorFns.keys()); - -type ComparatorFn = (value: number, threshold: number[]) => boolean; - -function getComparatorFns(): Map { - const fns: Record = { - [Comparator.LT]: (value: number, threshold: number[]) => value < threshold[0], - [Comparator.LT_OR_EQ]: (value: number, threshold: number[]) => value <= threshold[0], - [Comparator.GT_OR_EQ]: (value: number, threshold: number[]) => value >= threshold[0], - [Comparator.GT]: (value: number, threshold: number[]) => value > threshold[0], - [Comparator.BETWEEN]: (value: number, threshold: number[]) => - value >= threshold[0] && value <= threshold[1], - [Comparator.NOT_BETWEEN]: (value: number, threshold: number[]) => - value < threshold[0] || value > threshold[1], - }; - - const result = new Map(); - for (const key of Object.keys(fns)) { - result.set(key, fns[key]); - } - - return result; -} - -export function getHumanReadableComparator(comparator: string) { - return humanReadableComparators.has(comparator) - ? humanReadableComparators.get(comparator) - : comparator; -} diff --git a/x-pack/plugins/stack_alerts/server/alert_types/lib/index.ts b/x-pack/plugins/stack_alerts/server/alert_types/lib/index.ts index 09219aad6fe5e..7d2469defc91a 100644 --- a/x-pack/plugins/stack_alerts/server/alert_types/lib/index.ts +++ b/x-pack/plugins/stack_alerts/server/alert_types/lib/index.ts @@ -5,4 +5,4 @@ * 2.0. */ -export { ComparatorFns, ComparatorFnNames, getHumanReadableComparator } from './comparator_types'; +export { ComparatorFns, ComparatorFnNames, getHumanReadableComparator } from './comparator'; diff --git a/x-pack/plugins/stack_alerts/server/feature.ts b/x-pack/plugins/stack_alerts/server/feature.ts index 39ea41374df7b..166f2103526ef 100644 --- a/x-pack/plugins/stack_alerts/server/feature.ts +++ b/x-pack/plugins/stack_alerts/server/feature.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import { KibanaFeatureConfig } from '../../../plugins/features/common'; import { ID as IndexThreshold } from './alert_types/index_threshold/alert_type'; import { GEO_CONTAINMENT_ID as GeoContainment } from './alert_types/geo_containment/alert_type'; -import { ES_QUERY_ID as ElasticsearchQuery } from './alert_types/es_query/alert_type'; +import { ES_QUERY_ID as ElasticsearchQuery } from './alert_types/es_query/constants'; import { STACK_ALERTS_FEATURE_ID } from '../common'; import { DEFAULT_APP_CATEGORIES } from '../../../../src/core/server'; import { TRANSFORM_RULE_TYPE } from '../../transform/common'; diff --git a/x-pack/plugins/stack_alerts/server/plugin.ts b/x-pack/plugins/stack_alerts/server/plugin.ts index 1a671466b69b3..ac8f60de88b6f 100644 --- a/x-pack/plugins/stack_alerts/server/plugin.ts +++ b/x-pack/plugins/stack_alerts/server/plugin.ts @@ -29,6 +29,7 @@ export class AlertingBuiltinsPlugin .getStartServices() .then(async ([, { triggersActionsUi }]) => triggersActionsUi.data), alerting, + core, }); } diff --git a/x-pack/plugins/stack_alerts/server/types.ts b/x-pack/plugins/stack_alerts/server/types.ts index 6422389fefbe3..3690cbd92e459 100644 --- a/x-pack/plugins/stack_alerts/server/types.ts +++ b/x-pack/plugins/stack_alerts/server/types.ts @@ -12,7 +12,8 @@ export type { PluginSetupContract as AlertingSetup, RuleType, RuleParamsAndRefs, - AlertExecutorOptions, + RuleExecutorOptions, + RuleTypeParams, } from '../../alerting/server'; import { PluginSetupContract as FeaturesPluginSetup } from '../../features/server'; diff --git a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json index 1a3e32a3ccd6f..7db9d905d5c93 100644 --- a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json +++ b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json @@ -1943,6 +1943,332 @@ "type": "long" } } + }, + "percentile_num_scheduled_actions_per_day": { + "properties": { + "p50": { + "type": "long" + }, + "p90": { + "type": "long" + }, + "p99": { + "type": "long" + } + } + }, + "percentile_num_scheduled_actions_by_type_per_day": { + "properties": { + "p50": { + "properties": { + "DYNAMIC_KEY": { + "type": "long" + }, + "__index-threshold": { + "type": "long" + }, + "__es-query": { + "type": "long" + }, + "transform_health": { + "type": "long" + }, + "apm__error_rate": { + "type": "long" + }, + "apm__transaction_error_rate": { + "type": "long" + }, + "apm__transaction_duration": { + "type": "long" + }, + "apm__transaction_duration_anomaly": { + "type": "long" + }, + "metrics__alert__threshold": { + "type": "long" + }, + "metrics__alert__inventory__threshold": { + "type": "long" + }, + "logs__alert__document__count": { + "type": "long" + }, + "monitoring_alert_cluster_health": { + "type": "long" + }, + "monitoring_alert_cpu_usage": { + "type": "long" + }, + "monitoring_alert_disk_usage": { + "type": "long" + }, + "monitoring_alert_elasticsearch_version_mismatch": { + "type": "long" + }, + "monitoring_alert_kibana_version_mismatch": { + "type": "long" + }, + "monitoring_alert_license_expiration": { + "type": "long" + }, + "monitoring_alert_logstash_version_mismatch": { + "type": "long" + }, + "monitoring_alert_nodes_changed": { + "type": "long" + }, + "siem__signals": { + "type": "long" + }, + "siem__notifications": { + "type": "long" + }, + "siem__eqlRule": { + "type": "long" + }, + "siem__indicatorRule": { + "type": "long" + }, + "siem__mlRule": { + "type": "long" + }, + "siem__queryRule": { + "type": "long" + }, + "siem__savedQueryRule": { + "type": "long" + }, + "siem__thresholdRule": { + "type": "long" + }, + "xpack__uptime__alerts__monitorStatus": { + "type": "long" + }, + "xpack__uptime__alerts__tls": { + "type": "long" + }, + "xpack__uptime__alerts__durationAnomaly": { + "type": "long" + }, + "__geo-containment": { + "type": "long" + }, + "xpack__ml__anomaly_detection_alert": { + "type": "long" + }, + "xpack__ml__anomaly_detection_jobs_health": { + "type": "long" + } + } + }, + "p90": { + "properties": { + "DYNAMIC_KEY": { + "type": "long" + }, + "__index-threshold": { + "type": "long" + }, + "__es-query": { + "type": "long" + }, + "transform_health": { + "type": "long" + }, + "apm__error_rate": { + "type": "long" + }, + "apm__transaction_error_rate": { + "type": "long" + }, + "apm__transaction_duration": { + "type": "long" + }, + "apm__transaction_duration_anomaly": { + "type": "long" + }, + "metrics__alert__threshold": { + "type": "long" + }, + "metrics__alert__inventory__threshold": { + "type": "long" + }, + "logs__alert__document__count": { + "type": "long" + }, + "monitoring_alert_cluster_health": { + "type": "long" + }, + "monitoring_alert_cpu_usage": { + "type": "long" + }, + "monitoring_alert_disk_usage": { + "type": "long" + }, + "monitoring_alert_elasticsearch_version_mismatch": { + "type": "long" + }, + "monitoring_alert_kibana_version_mismatch": { + "type": "long" + }, + "monitoring_alert_license_expiration": { + "type": "long" + }, + "monitoring_alert_logstash_version_mismatch": { + "type": "long" + }, + "monitoring_alert_nodes_changed": { + "type": "long" + }, + "siem__signals": { + "type": "long" + }, + "siem__notifications": { + "type": "long" + }, + "siem__eqlRule": { + "type": "long" + }, + "siem__indicatorRule": { + "type": "long" + }, + "siem__mlRule": { + "type": "long" + }, + "siem__queryRule": { + "type": "long" + }, + "siem__savedQueryRule": { + "type": "long" + }, + "siem__thresholdRule": { + "type": "long" + }, + "xpack__uptime__alerts__monitorStatus": { + "type": "long" + }, + "xpack__uptime__alerts__tls": { + "type": "long" + }, + "xpack__uptime__alerts__durationAnomaly": { + "type": "long" + }, + "__geo-containment": { + "type": "long" + }, + "xpack__ml__anomaly_detection_alert": { + "type": "long" + }, + "xpack__ml__anomaly_detection_jobs_health": { + "type": "long" + } + } + }, + "p99": { + "properties": { + "DYNAMIC_KEY": { + "type": "long" + }, + "__index-threshold": { + "type": "long" + }, + "__es-query": { + "type": "long" + }, + "transform_health": { + "type": "long" + }, + "apm__error_rate": { + "type": "long" + }, + "apm__transaction_error_rate": { + "type": "long" + }, + "apm__transaction_duration": { + "type": "long" + }, + "apm__transaction_duration_anomaly": { + "type": "long" + }, + "metrics__alert__threshold": { + "type": "long" + }, + "metrics__alert__inventory__threshold": { + "type": "long" + }, + "logs__alert__document__count": { + "type": "long" + }, + "monitoring_alert_cluster_health": { + "type": "long" + }, + "monitoring_alert_cpu_usage": { + "type": "long" + }, + "monitoring_alert_disk_usage": { + "type": "long" + }, + "monitoring_alert_elasticsearch_version_mismatch": { + "type": "long" + }, + "monitoring_alert_kibana_version_mismatch": { + "type": "long" + }, + "monitoring_alert_license_expiration": { + "type": "long" + }, + "monitoring_alert_logstash_version_mismatch": { + "type": "long" + }, + "monitoring_alert_nodes_changed": { + "type": "long" + }, + "siem__signals": { + "type": "long" + }, + "siem__notifications": { + "type": "long" + }, + "siem__eqlRule": { + "type": "long" + }, + "siem__indicatorRule": { + "type": "long" + }, + "siem__mlRule": { + "type": "long" + }, + "siem__queryRule": { + "type": "long" + }, + "siem__savedQueryRule": { + "type": "long" + }, + "siem__thresholdRule": { + "type": "long" + }, + "xpack__uptime__alerts__monitorStatus": { + "type": "long" + }, + "xpack__uptime__alerts__tls": { + "type": "long" + }, + "xpack__uptime__alerts__durationAnomaly": { + "type": "long" + }, + "__geo-containment": { + "type": "long" + }, + "xpack__ml__anomaly_detection_alert": { + "type": "long" + }, + "xpack__ml__anomaly_detection_jobs_health": { + "type": "long" + } + } + } + } } } }, @@ -6118,6 +6444,22 @@ } } } + }, + "error_codes": { + "properties": { + "authentication_expired_error": { + "type": "long" + }, + "queue_timeout_error": { + "type": "long" + }, + "unknown_error": { + "type": "long" + }, + "kibana_shutting_down_error": { + "type": "long" + } + } } } }, @@ -6192,6 +6534,22 @@ } } } + }, + "error_codes": { + "properties": { + "authentication_expired_error": { + "type": "long" + }, + "queue_timeout_error": { + "type": "long" + }, + "unknown_error": { + "type": "long" + }, + "kibana_shutting_down_error": { + "type": "long" + } + } } } }, @@ -6282,6 +6640,31 @@ } } } + }, + "error_codes": { + "properties": { + "authentication_expired_error": { + "type": "long" + }, + "queue_timeout_error": { + "type": "long" + }, + "unknown_error": { + "type": "long" + }, + "kibana_shutting_down_error": { + "type": "long" + }, + "browser_could_not_launch_error": { + "type": "long" + }, + "browser_unexpectedly_closed_error": { + "type": "long" + }, + "browser_screenshot_error": { + "type": "long" + } + } } } }, @@ -6372,6 +6755,31 @@ } } } + }, + "error_codes": { + "properties": { + "authentication_expired_error": { + "type": "long" + }, + "queue_timeout_error": { + "type": "long" + }, + "unknown_error": { + "type": "long" + }, + "kibana_shutting_down_error": { + "type": "long" + }, + "browser_could_not_launch_error": { + "type": "long" + }, + "browser_unexpectedly_closed_error": { + "type": "long" + }, + "browser_screenshot_error": { + "type": "long" + } + } } } }, @@ -6491,6 +6899,34 @@ } } } + }, + "error_codes": { + "properties": { + "pdf_worker_out_of_memory_error": { + "type": "long" + }, + "authentication_expired_error": { + "type": "long" + }, + "queue_timeout_error": { + "type": "long" + }, + "unknown_error": { + "type": "long" + }, + "kibana_shutting_down_error": { + "type": "long" + }, + "browser_could_not_launch_error": { + "type": "long" + }, + "browser_unexpectedly_closed_error": { + "type": "long" + }, + "browser_screenshot_error": { + "type": "long" + } + } } } }, @@ -6610,6 +7046,34 @@ } } } + }, + "error_codes": { + "properties": { + "pdf_worker_out_of_memory_error": { + "type": "long" + }, + "authentication_expired_error": { + "type": "long" + }, + "queue_timeout_error": { + "type": "long" + }, + "unknown_error": { + "type": "long" + }, + "kibana_shutting_down_error": { + "type": "long" + }, + "browser_could_not_launch_error": { + "type": "long" + }, + "browser_unexpectedly_closed_error": { + "type": "long" + }, + "browser_screenshot_error": { + "type": "long" + } + } } } }, @@ -7243,6 +7707,22 @@ } } } + }, + "error_codes": { + "properties": { + "authentication_expired_error": { + "type": "long" + }, + "queue_timeout_error": { + "type": "long" + }, + "unknown_error": { + "type": "long" + }, + "kibana_shutting_down_error": { + "type": "long" + } + } } } }, @@ -7317,6 +7797,22 @@ } } } + }, + "error_codes": { + "properties": { + "authentication_expired_error": { + "type": "long" + }, + "queue_timeout_error": { + "type": "long" + }, + "unknown_error": { + "type": "long" + }, + "kibana_shutting_down_error": { + "type": "long" + } + } } } }, @@ -7407,6 +7903,31 @@ } } } + }, + "error_codes": { + "properties": { + "authentication_expired_error": { + "type": "long" + }, + "queue_timeout_error": { + "type": "long" + }, + "unknown_error": { + "type": "long" + }, + "kibana_shutting_down_error": { + "type": "long" + }, + "browser_could_not_launch_error": { + "type": "long" + }, + "browser_unexpectedly_closed_error": { + "type": "long" + }, + "browser_screenshot_error": { + "type": "long" + } + } } } }, @@ -7497,6 +8018,31 @@ } } } + }, + "error_codes": { + "properties": { + "authentication_expired_error": { + "type": "long" + }, + "queue_timeout_error": { + "type": "long" + }, + "unknown_error": { + "type": "long" + }, + "kibana_shutting_down_error": { + "type": "long" + }, + "browser_could_not_launch_error": { + "type": "long" + }, + "browser_unexpectedly_closed_error": { + "type": "long" + }, + "browser_screenshot_error": { + "type": "long" + } + } } } }, @@ -7616,6 +8162,34 @@ } } } + }, + "error_codes": { + "properties": { + "pdf_worker_out_of_memory_error": { + "type": "long" + }, + "authentication_expired_error": { + "type": "long" + }, + "queue_timeout_error": { + "type": "long" + }, + "unknown_error": { + "type": "long" + }, + "kibana_shutting_down_error": { + "type": "long" + }, + "browser_could_not_launch_error": { + "type": "long" + }, + "browser_unexpectedly_closed_error": { + "type": "long" + }, + "browser_screenshot_error": { + "type": "long" + } + } } } }, @@ -7735,6 +8309,34 @@ } } } + }, + "error_codes": { + "properties": { + "pdf_worker_out_of_memory_error": { + "type": "long" + }, + "authentication_expired_error": { + "type": "long" + }, + "queue_timeout_error": { + "type": "long" + }, + "unknown_error": { + "type": "long" + }, + "kibana_shutting_down_error": { + "type": "long" + }, + "browser_could_not_launch_error": { + "type": "long" + }, + "browser_unexpectedly_closed_error": { + "type": "long" + }, + "browser_screenshot_error": { + "type": "long" + } + } } } }, diff --git a/x-pack/plugins/transform/common/types/alerting.ts b/x-pack/plugins/transform/common/types/alerting.ts index 07d6bbdbe4152..cc031d36f0483 100644 --- a/x-pack/plugins/transform/common/types/alerting.ts +++ b/x-pack/plugins/transform/common/types/alerting.ts @@ -5,7 +5,7 @@ * 2.0. */ -import type { Alert, AlertTypeParams } from '../../../alerting/common'; +import type { Rule, RuleTypeParams } from '../../../alerting/common'; export type TransformHealthRuleParams = { includeTransforms?: string[]; @@ -18,10 +18,10 @@ export type TransformHealthRuleParams = { enabled: boolean; } | null; } | null; -} & AlertTypeParams; +} & RuleTypeParams; export type TransformHealthRuleTestsConfig = TransformHealthRuleParams['testsConfig']; export type TransformHealthTests = keyof Exclude; -export type TransformHealthAlertRule = Omit, 'apiKey'>; +export type TransformHealthAlertRule = Omit, 'apiKey'>; diff --git a/x-pack/plugins/transform/server/lib/alerting/transform_health_rule_type/register_transform_health_rule_type.ts b/x-pack/plugins/transform/server/lib/alerting/transform_health_rule_type/register_transform_health_rule_type.ts index ad85649c0f2c4..04a4685c45892 100644 --- a/x-pack/plugins/transform/server/lib/alerting/transform_health_rule_type/register_transform_health_rule_type.ts +++ b/x-pack/plugins/transform/server/lib/alerting/transform_health_rule_type/register_transform_health_rule_type.ts @@ -11,7 +11,7 @@ import type { ActionGroup, AlertInstanceContext, AlertInstanceState, - AlertTypeState, + RuleTypeState, } from '../../../../../alerting/common'; import { PLUGIN, TRANSFORM_RULE_TYPE } from '../../../../common/constants'; import { transformHealthRuleParams, TransformHealthRuleParams } from './schema'; @@ -64,7 +64,7 @@ export function registerTransformHealthRuleType(params: RegisterParams) { export function getTransformHealthRuleType(): RuleType< TransformHealthRuleParams, never, - AlertTypeState, + RuleTypeState, AlertInstanceState, TransformHealthAlertContext, TransformIssue diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index ddb2ca0490c48..c17975560873e 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -1161,8 +1161,6 @@ "core.euiRelativeTab.fullDescription": "L'unité peut être modifiée. Elle est actuellement définie sur {unit}.", "core.euiRelativeTab.numberInputError": "Doit être >= 0.", "core.euiRelativeTab.numberInputLabel": "Nombre d'intervalles", - "core.euiRelativeTab.relativeDate": "Date de {position}", - "core.euiRelativeTab.roundingLabel": "Arrondir à {unit}", "core.euiRelativeTab.unitInputLabel": "Intervalle relatif", "core.euiResizableButton.horizontalResizerAriaLabel": "Utilisez les flèches gauche et droite pour ajuster la taille des panneaux.", "core.euiResizableButton.verticalResizerAriaLabel": "Utilisez les flèches vers le haut et vers le bas pour ajuster la taille des panneaux.", @@ -23269,7 +23267,6 @@ "xpack.spaces.shareToSpace.allSpacesTarget": "tous les espaces", "xpack.spaces.shareToSpace.cancelButton": "Annuler", "xpack.spaces.shareToSpace.continueButton": "Continuer", - "xpack.spaces.shareToSpace.currentSpaceBadge": "Actuel", "xpack.spaces.shareToSpace.featureIsDisabledTooltip": "Cette fonctionnalité est désactivée dans cet espace.", "xpack.spaces.shareToSpace.flyoutTitle": "Attribuer {objectNoun} aux espaces", "xpack.spaces.shareToSpace.noAvailableSpaces.canCreateNewSpace.linkText": "créer un nouvel espace", @@ -23284,8 +23281,6 @@ "xpack.spaces.shareToSpace.saveButton": "Enregistrer et fermer", "xpack.spaces.shareToSpace.shareErrorTitle": "Erreur lors de la mise à jour de {objectNoun}", "xpack.spaces.shareToSpace.shareModeControl.buttonGroupLegend": "Choisir le mode de partage", - "xpack.spaces.shareToSpace.shareModeControl.hiddenCountLabel": "+{hiddenCount} masqué(s)", - "xpack.spaces.shareToSpace.shareModeControl.selectedCountLabel": "{selectedCount} sélectionné(s)", "xpack.spaces.shareToSpace.shareModeControl.selectSpacesLabel": "Sélectionner les espaces", "xpack.spaces.shareToSpace.shareModeControl.shareToAllSpaces.buttonLabel": "Tous les espaces", "xpack.spaces.shareToSpace.shareModeControl.shareToAllSpaces.cannotChangeTooltip": "Vous avez besoin de privilèges supplémentaires pour modifier cette option.", @@ -23302,7 +23297,6 @@ "xpack.spaces.shareToSpace.spacesLoadErrorTitle": "Erreur lors du chargement des espaces disponibles", "xpack.spaces.shareToSpace.spacesTarget": "{spacesCount, plural, one {# espace} other {# espaces}}", "xpack.spaces.shareToSpace.unknownSpacesLabel.additionalPrivilegesLink": "privilèges supplémentaires", - "xpack.spaces.shareToSpace.unknownSpacesLabel.text": "Pour afficher les espaces masqués, vous avez besoin de {additionalPrivilegesLink}.", "xpack.spaces.spaceList.allSpacesLabel": "* Tous les espaces", "xpack.spaces.spaceList.showLessSpacesLink": "afficher moins", "xpack.spaces.spaceList.showMoreSpacesLink": "+{count} de plus", @@ -23335,7 +23329,6 @@ "xpack.stackAlerts.esQuery.actionVariableContextTitleLabel": "Titre pour l'alerte.", "xpack.stackAlerts.esQuery.actionVariableContextValueLabel": "Valeur ayant rempli la condition de seuil.", "xpack.stackAlerts.esQuery.alertTypeContextConditionsDescription": "Le nombre de documents correspondants est {thresholdComparator} {threshold}", - "xpack.stackAlerts.esQuery.alertTypeContextMessageDescription": "l'alerte \"{name}\" est active :\n\n- Valeur : {value}\n- Conditions remplies : {conditions} sur {window}\n- Horodatage : {date}", "xpack.stackAlerts.esQuery.alertTypeContextSubjectTitle": "l'alerte \"{name}\" correspond à la recherche", "xpack.stackAlerts.esQuery.alertTypeTitle": "Recherche Elasticsearch", "xpack.stackAlerts.esQuery.invalidComparatorErrorMessage": "thresholdComparator spécifié non valide : {comparator}", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 04ef060b80ffd..6f60efe51bdff 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -1445,8 +1445,6 @@ "core.euiRelativeTab.fullDescription": "単位は変更可能です。現在 {unit} に設定されています。", "core.euiRelativeTab.numberInputError": "0以上でなければなりません", "core.euiRelativeTab.numberInputLabel": "時間スパンの量", - "core.euiRelativeTab.relativeDate": "{position} 日付", - "core.euiRelativeTab.roundingLabel": "{unit} に四捨五入する", "core.euiRelativeTab.unitInputLabel": "相対的時間スパン", "core.euiResizableButton.horizontalResizerAriaLabel": "左右矢印キーを押してパネルサイズを調整します", "core.euiResizableButton.verticalResizerAriaLabel": "上下矢印キーを押してパネルサイズを調整します", @@ -26593,7 +26591,6 @@ "xpack.spaces.shareToSpace.allSpacesTarget": "すべてのスペース", "xpack.spaces.shareToSpace.cancelButton": "キャンセル", "xpack.spaces.shareToSpace.continueButton": "続行", - "xpack.spaces.shareToSpace.currentSpaceBadge": "現在", "xpack.spaces.shareToSpace.featureIsDisabledTooltip": "この機能はこのスペースでは無効です。", "xpack.spaces.shareToSpace.flyoutTitle": "{objectNoun}をスペースに割り当てる", "xpack.spaces.shareToSpace.noAvailableSpaces.canCreateNewSpace.linkText": "新しいスペースを作成", @@ -26608,8 +26605,6 @@ "xpack.spaces.shareToSpace.saveButton": "保存して閉じる", "xpack.spaces.shareToSpace.shareErrorTitle": "{objectNoun}の更新エラー", "xpack.spaces.shareToSpace.shareModeControl.buttonGroupLegend": "この共有方法を選択", - "xpack.spaces.shareToSpace.shareModeControl.hiddenCountLabel": "+{hiddenCount}個が非表示", - "xpack.spaces.shareToSpace.shareModeControl.selectedCountLabel": "{selectedCount}個が選択済み", "xpack.spaces.shareToSpace.shareModeControl.selectSpacesLabel": "スペースを選択", "xpack.spaces.shareToSpace.shareModeControl.shareToAllSpaces.buttonLabel": "すべてのスペース", "xpack.spaces.shareToSpace.shareModeControl.shareToAllSpaces.cannotChangeTooltip": "このオプションを変更するには、追加権限が必要です。", @@ -26626,7 +26621,6 @@ "xpack.spaces.shareToSpace.spacesLoadErrorTitle": "利用可能なスペースを読み込み中にエラーが発生", "xpack.spaces.shareToSpace.spacesTarget": "{spacesCount, plural, other {# 個のスペース}}", "xpack.spaces.shareToSpace.unknownSpacesLabel.additionalPrivilegesLink": "追加権限", - "xpack.spaces.shareToSpace.unknownSpacesLabel.text": "非表示のスペースを表示するには、{additionalPrivilegesLink}が必要です。", "xpack.spaces.spaceList.allSpacesLabel": "*すべてのスペース", "xpack.spaces.spaceList.showLessSpacesLink": "縮小表示", "xpack.spaces.spaceList.showMoreSpacesLink": "他 {count} 件", @@ -26659,7 +26653,6 @@ "xpack.stackAlerts.esQuery.actionVariableContextTitleLabel": "アラートのタイトル。", "xpack.stackAlerts.esQuery.actionVariableContextValueLabel": "しきい値条件を満たした値。", "xpack.stackAlerts.esQuery.alertTypeContextConditionsDescription": "一致するドキュメント数は{thresholdComparator} {threshold}です", - "xpack.stackAlerts.esQuery.alertTypeContextMessageDescription": "アラート'{name}'は有効です。\n\n- 値:{value}\n- 条件が満たされました:{window} の {conditions}\n- タイムスタンプ:{date}", "xpack.stackAlerts.esQuery.alertTypeContextSubjectTitle": "アラート'{name}'はクエリと一致しました", "xpack.stackAlerts.esQuery.alertTypeTitle": "Elasticsearch クエリ", "xpack.stackAlerts.esQuery.invalidComparatorErrorMessage": "無効な thresholdComparator が指定されました:{comparator}", @@ -27783,13 +27776,6 @@ "xpack.triggersActionsUI.sections.ruleDetails.actionWithBrokenConnectorWarningBannerEditText": "ルールを編集", "xpack.triggersActionsUI.sections.ruleDetails.actionWithBrokenConnectorWarningBannerTitle": "このルールに関連付けられたコネクターの1つで問題が発生しています。", "xpack.triggersActionsUI.sections.ruleDetails.ruleDetailsTitle": "{ruleName}", - "xpack.triggersActionsUI.sections.ruleDetails.alertInstances.disabledRule": "このルールは無効になっていて再表示できません。", - "xpack.triggersActionsUI.sections.ruleDetails.alertInstances.disabledRuleTitle": "無効なルール", - "xpack.triggersActionsUI.sections.ruleDetails.collapsedItemActons.enableLoadingTitle": "有効にする", - "xpack.triggersActionsUI.sections.ruleDetails.collapsedItemActons.enableTitle": "有効にする", - "xpack.triggersActionsUI.sections.ruleDetails.collapsedItemActons.muteLoadingTitle": "ミュート", - "xpack.triggersActionsUI.sections.ruleDetails.collapsedItemActons.muteTitle": "ミュート", - "xpack.triggersActionsUI.sections.ruleDetails.dismissButtonTitle": "閉じる", "xpack.triggersActionsUI.sections.ruleDetails.editRuleButtonLabel": "編集", "xpack.triggersActionsUI.sections.ruleDetails.manageLicensePlanBannerLinkTitle": "ライセンスの管理", "xpack.triggersActionsUI.sections.ruleDetails.redirectObjectNoun": "ルール", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index da1bda187ee80..8f16c032a6b1c 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -1450,8 +1450,6 @@ "core.euiRelativeTab.fullDescription": "单位可更改。当前设置为 {unit}。", "core.euiRelativeTab.numberInputError": "必须 >= 0", "core.euiRelativeTab.numberInputLabel": "时间跨度量", - "core.euiRelativeTab.relativeDate": "{position} 日期", - "core.euiRelativeTab.roundingLabel": "舍入为 {unit}", "core.euiRelativeTab.unitInputLabel": "相对时间跨度", "core.euiResizableButton.horizontalResizerAriaLabel": "按左或右箭头键调整面板大小", "core.euiResizableButton.verticalResizerAriaLabel": "按上或下箭头键调整面板大小", @@ -26622,7 +26620,6 @@ "xpack.spaces.shareToSpace.allSpacesTarget": "所有工作区", "xpack.spaces.shareToSpace.cancelButton": "取消", "xpack.spaces.shareToSpace.continueButton": "继续", - "xpack.spaces.shareToSpace.currentSpaceBadge": "当前", "xpack.spaces.shareToSpace.featureIsDisabledTooltip": "此功能在此工作区中已禁用。", "xpack.spaces.shareToSpace.flyoutTitle": "将 {objectNoun} 分配给工作区", "xpack.spaces.shareToSpace.noAvailableSpaces.canCreateNewSpace.linkText": "创建新工作区", @@ -26637,8 +26634,6 @@ "xpack.spaces.shareToSpace.saveButton": "保存并关闭", "xpack.spaces.shareToSpace.shareErrorTitle": "更新 {objectNoun} 时出错", "xpack.spaces.shareToSpace.shareModeControl.buttonGroupLegend": "选择共享此对象的方式", - "xpack.spaces.shareToSpace.shareModeControl.hiddenCountLabel": "+{hiddenCount} 个已隐藏", - "xpack.spaces.shareToSpace.shareModeControl.selectedCountLabel": "{selectedCount} 个已选择", "xpack.spaces.shareToSpace.shareModeControl.selectSpacesLabel": "选择工作区", "xpack.spaces.shareToSpace.shareModeControl.shareToAllSpaces.buttonLabel": "所有工作区", "xpack.spaces.shareToSpace.shareModeControl.shareToAllSpaces.cannotChangeTooltip": "您还需要其他权限,才能更改此选项。", @@ -26655,7 +26650,6 @@ "xpack.spaces.shareToSpace.spacesLoadErrorTitle": "加载可用工作区时出错", "xpack.spaces.shareToSpace.spacesTarget": "{spacesCount, plural, other {# 个工作区}}", "xpack.spaces.shareToSpace.unknownSpacesLabel.additionalPrivilegesLink": "其他权限", - "xpack.spaces.shareToSpace.unknownSpacesLabel.text": "要查看隐藏的工作区,您需要{additionalPrivilegesLink}。", "xpack.spaces.spaceList.allSpacesLabel": "* 所有工作区", "xpack.spaces.spaceList.showLessSpacesLink": "显示更少", "xpack.spaces.spaceList.showMoreSpacesLink": "另外 {count} 个", @@ -26688,7 +26682,6 @@ "xpack.stackAlerts.esQuery.actionVariableContextTitleLabel": "告警的标题。", "xpack.stackAlerts.esQuery.actionVariableContextValueLabel": "满足阈值条件的值。", "xpack.stackAlerts.esQuery.alertTypeContextConditionsDescription": "匹配文档的数目{thresholdComparator} {threshold}", - "xpack.stackAlerts.esQuery.alertTypeContextMessageDescription": "告警“{name}”处于活动状态:\n\n- 值:{value}\n- 满足的条件:{conditions} 超过 {window}\n- 时间戳:{date}", "xpack.stackAlerts.esQuery.alertTypeContextSubjectTitle": "告警“{name}”已匹配查询", "xpack.stackAlerts.esQuery.alertTypeTitle": "Elasticsearch 查询", "xpack.stackAlerts.esQuery.invalidComparatorErrorMessage": "指定的 thresholdComparator 无效:{comparator}", @@ -27812,13 +27805,6 @@ "xpack.triggersActionsUI.sections.ruleDetails.actionWithBrokenConnectorWarningBannerEditText": "编辑规则", "xpack.triggersActionsUI.sections.ruleDetails.actionWithBrokenConnectorWarningBannerTitle": "与此规则关联的连接器之一出现问题。", "xpack.triggersActionsUI.sections.ruleDetails.ruleDetailsTitle": "{ruleName}", - "xpack.triggersActionsUI.sections.ruleDetails.alertInstances.disabledRule": "此规则已禁用,无法显示。", - "xpack.triggersActionsUI.sections.ruleDetails.alertInstances.disabledRuleTitle": "已禁用规则", - "xpack.triggersActionsUI.sections.ruleDetails.collapsedItemActons.enableLoadingTitle": "启用", - "xpack.triggersActionsUI.sections.ruleDetails.collapsedItemActons.enableTitle": "启用", - "xpack.triggersActionsUI.sections.ruleDetails.collapsedItemActons.muteLoadingTitle": "静音", - "xpack.triggersActionsUI.sections.ruleDetails.collapsedItemActons.muteTitle": "静音", - "xpack.triggersActionsUI.sections.ruleDetails.dismissButtonTitle": "关闭", "xpack.triggersActionsUI.sections.ruleDetails.editRuleButtonLabel": "编辑", "xpack.triggersActionsUI.sections.ruleDetails.manageLicensePlanBannerLinkTitle": "管理许可证", "xpack.triggersActionsUI.sections.ruleDetails.redirectObjectNoun": "规则", diff --git a/x-pack/plugins/triggers_actions_ui/README.md b/x-pack/plugins/triggers_actions_ui/README.md index 14bf6164979e7..f4a1f79da1546 100644 --- a/x-pack/plugins/triggers_actions_ui/README.md +++ b/x-pack/plugins/triggers_actions_ui/README.md @@ -266,7 +266,7 @@ export interface RuleType { params?: { validate: (object: any) => any }; }; actionGroups: string[]; - executor: ({ services, params, state }: AlertExecutorOptions) => Promise; + executor: ({ services, params, state }: RuleExecutorOptions) => Promise; requiresAppContext: boolean; } ``` @@ -1385,7 +1385,7 @@ Then this dependencies will be used to embed Actions form or register your own a ``` import React, { useCallback } from 'react'; import { ActionForm } from '../../../../../../../../../plugins/triggers_actions_ui/public'; - import { AlertAction } from '../../../../../../../../../plugins/triggers_actions_ui/public/types'; + import { RuleAction } from '../../../../../../../../../plugins/triggers_actions_ui/public/types'; const ALOWED_BY_PLUGIN_ACTION_TYPES = [ { id: '.email', name: 'Email', enabled: true }, @@ -1428,7 +1428,7 @@ Then this dependencies will be used to embed Actions form or register your own a setActionIdByIndex={(id: string, index: number) => { initialAlert.actions[index].id = id; }} - setRuleProperty={(_updatedActions: AlertAction[]) => {}} + setRuleProperty={(_updatedActions: RuleAction[]) => {}} setActionParamsProperty={(key: string, value: any, index: number) => (initialAlert.actions[index] = { ...initialAlert.actions[index], [key]: value }) } @@ -1446,12 +1446,12 @@ Then this dependencies will be used to embed Actions form or register your own a ActionForm Props definition: ``` interface ActionAccordionFormProps { - actions: AlertAction[]; + actions: RuleAction[]; defaultActionGroupId: string; actionGroups?: ActionGroup[]; setActionIdByIndex: (id: string, index: number) => void; setActionGroupIdByIndex?: (group: string, index: number) => void; - setRuleProperty: (actions: AlertAction[]) => void; + setRuleProperty: (actions: RuleAction[]) => void; setActionParamsProperty: (key: string, value: any, index: number) => void; http: HttpSetup; actionTypeRegistry: ActionTypeRegistryContract; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/get_defaults_for_action_params.ts b/x-pack/plugins/triggers_actions_ui/public/application/lib/get_defaults_for_action_params.ts index 7936e5843de7f..a06eb360a70c3 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/lib/get_defaults_for_action_params.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/get_defaults_for_action_params.ts @@ -5,11 +5,11 @@ * 2.0. */ -import { AlertActionParam } from '../../../../alerting/common'; +import { RuleActionParam } from '../../../../alerting/common'; import { EventActionOptions } from '../components/builtin_action_types/types'; import { AlertProvidedActionVariables } from './action_variables'; -export type DefaultActionParams = Record | undefined; +export type DefaultActionParams = Record | undefined; export type DefaultActionParamsGetter = ( actionTypeId: string, actionGroupId: string diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/aggregate.ts b/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/aggregate.ts index b2556900e763a..d67c4f80b142d 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/aggregate.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/aggregate.ts @@ -14,12 +14,14 @@ const rewriteBodyRes: RewriteRequestCase = ({ rule_execution_status: ruleExecutionStatus, rule_enabled_status: ruleEnabledStatus, rule_muted_status: ruleMutedStatus, + rule_snoozed_status: ruleSnoozedStatus, ...rest }: any) => ({ ...rest, ruleExecutionStatus, ruleEnabledStatus, ruleMutedStatus, + ruleSnoozedStatus, }); export async function loadRuleAggregations({ diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/common_transformations.ts b/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/common_transformations.ts index 69b7b494431fc..10a16313e87a4 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/common_transformations.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/common_transformations.ts @@ -4,7 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { AlertExecutionStatus } from '../../../../../alerting/common'; +import { RuleExecutionStatus } from '../../../../../alerting/common'; import { AsApiContract, RewriteRequestCase } from '../../../../../actions/common'; import { Rule, RuleAction, ResolvedRule } from '../../../types'; @@ -20,7 +20,7 @@ const transformAction: RewriteRequestCase = ({ actionTypeId, }); -const transformExecutionStatus: RewriteRequestCase = ({ +const transformExecutionStatus: RewriteRequestCase = ({ last_execution_date: lastExecutionDate, last_duration: lastDuration, ...rest diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/load_execution_log_aggregations.ts b/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/load_execution_log_aggregations.ts index 2dceac6dfd7d9..bb631b32328f4 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/load_execution_log_aggregations.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/load_execution_log_aggregations.ts @@ -12,9 +12,9 @@ import type { SortOrder } from '@elastic/elasticsearch/lib/api/typesWithBodyKey' import { INTERNAL_BASE_ALERTING_API_PATH } from '../../constants'; import { - IExecutionLogResult, IExecutionLog, ExecutionLogSortFields, + IExecutionLogWithErrorsResult, } from '../../../../../alerting/common'; import { AsApiContract, RewriteRequestCase } from '../../../../../actions/common'; @@ -36,9 +36,12 @@ const getRenamedLog = (data: IExecutionLog) => { }; }; -const rewriteBodyRes: RewriteRequestCase = ({ data, total }: any) => ({ +const rewriteBodyRes: RewriteRequestCase = ({ + data, + ...rest +}: any) => ({ data: data.map((log: IExecutionLog) => getRenamedLog(log)), - total, + ...rest, }); const getFilter = (filter: string[] | undefined) => { @@ -77,7 +80,7 @@ export const loadExecutionLogAggregations = async ({ }: LoadExecutionLogAggregationsProps & { http: HttpSetup }) => { const sortField: any[] = sort; - const result = await http.get>( + const result = await http.get>( `${INTERNAL_BASE_ALERTING_API_PATH}/rule/${id}/_execution_log`, { query: { diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.tsx index 7c1af79c05626..34e2094d51a6d 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.tsx @@ -35,7 +35,7 @@ import { AddConnectorInline } from './connector_add_inline'; import { actionTypeCompare } from '../../lib/action_type_compare'; import { checkActionFormActionTypeEnabled } from '../../lib/check_action_type_enabled'; import { VIEW_LICENSE_OPTIONS_LINK, DEFAULT_HIDDEN_ACTION_TYPES } from '../../../common/constants'; -import { ActionGroup, AlertActionParam } from '../../../../../alerting/common'; +import { ActionGroup, RuleActionParam } from '../../../../../alerting/common'; import { useKibana } from '../../../common/lib/kibana'; import { DefaultActionParamsGetter } from '../../lib/get_defaults_for_action_params'; import { ConnectorAddModal } from '.'; @@ -55,7 +55,7 @@ export interface ActionAccordionFormProps { setActionIdByIndex: (id: string, index: number) => void; setActionGroupIdByIndex?: (group: string, index: number) => void; setActions: (actions: RuleAction[]) => void; - setActionParamsProperty: (key: string, value: AlertActionParam, index: number) => void; + setActionParamsProperty: (key: string, value: RuleActionParam, index: number) => void; actionTypes?: ActionType[]; messageVariables?: ActionVariables; setHasActionsDisabled?: (value: boolean) => void; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_type_form.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_type_form.tsx index c817f5895a816..5c336d37ebb51 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_type_form.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_type_form.tsx @@ -25,7 +25,7 @@ import { EuiErrorBoundary, } from '@elastic/eui'; import { partition } from 'lodash'; -import { ActionVariable, AlertActionParam } from '../../../../../alerting/common'; +import { ActionVariable, RuleActionParam } from '../../../../../alerting/common'; import { IErrorObject, RuleAction, @@ -49,7 +49,7 @@ export type ActionTypeFormProps = { onAddConnector: () => void; onConnectorSelected: (id: string) => void; onDeleteAction: () => void; - setActionParamsProperty: (key: string, value: AlertActionParam, index: number) => void; + setActionParamsProperty: (key: string, value: RuleActionParam, index: number) => void; actionTypesIndex: ActionTypeIndex; connectors: ActionConnector[]; actionTypeRegistry: ActionTypeRegistryContract; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/with_bulk_rule_api_operations.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/with_bulk_rule_api_operations.tsx index a9c9dfa72279c..3398df07ce219 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/with_bulk_rule_api_operations.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/with_bulk_rule_api_operations.tsx @@ -35,8 +35,10 @@ import { resolveRule, loadExecutionLogAggregations, LoadExecutionLogAggregationsProps, + snoozeRule, + unsnoozeRule, } from '../../../lib/rule_api'; -import { IExecutionLogResult } from '../../../../../../alerting/common'; +import { IExecutionLogWithErrorsResult } from '../../../../../../alerting/common'; import { useKibana } from '../../../../common/lib/kibana'; export interface ComponentOpts { @@ -64,9 +66,11 @@ export interface ComponentOpts { loadRuleTypes: () => Promise; loadExecutionLogAggregations: ( props: LoadExecutionLogAggregationsProps - ) => Promise; + ) => Promise; getHealth: () => Promise; resolveRule: (id: Rule['id']) => Promise; + snoozeRule: (rule: Rule, snoozeEndTime: string | -1) => Promise; + unsnoozeRule: (rule: Rule) => Promise; } export type PropsWithOptionalApiHandlers = Omit & Partial; @@ -145,6 +149,12 @@ export function withBulkRuleOperations( } resolveRule={async (ruleId: Rule['id']) => resolveRule({ http, ruleId })} getHealth={async () => alertingFrameworkHealth({ http })} + snoozeRule={async (rule: Rule, snoozeEndTime: string | -1) => { + return await snoozeRule({ http, id: rule.id, snoozeEndTime }); + }} + unsnoozeRule={async (rule: Rule) => { + return await unsnoozeRule({ http, id: rule.id }); + }} /> ); }; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule.tsx index c3eb699cc0c90..106567a3c363d 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule.tsx @@ -12,17 +12,19 @@ import { EuiSpacer, EuiFlexGroup, EuiFlexItem, - EuiHorizontalRule, EuiPanel, EuiStat, EuiIconTip, EuiTabbedContent, + EuiText, } from '@elastic/eui'; // @ts-ignore import { RIGHT_ALIGNMENT, CENTER_ALIGNMENT } from '@elastic/eui/lib/services'; +import { FormattedMessage } from '@kbn/i18n-react'; +import moment from 'moment'; import { ActionGroup, - AlertExecutionStatusErrorReasons, + RuleExecutionStatusErrorReasons, AlertStatusValues, } from '../../../../../../alerting/common'; import { Rule, RuleSummary, AlertStatus, RuleType } from '../../../../types'; @@ -47,6 +49,7 @@ import { getIsExperimentalFeatureEnabled } from '../../../../common/get_experime import { suspendedComponentWithProps } from '../../../lib/suspended_component_with_props'; const RuleEventLogListWithApi = lazy(() => import('./rule_event_log_list')); +const RuleErrorLogWithApi = lazy(() => import('./rule_error_log')); const RuleAlertList = lazy(() => import('./rule_alert_list')); @@ -56,6 +59,7 @@ type RuleProps = { readOnly: boolean; ruleSummary: RuleSummary; requestRefresh: () => Promise; + refreshToken?: number; numberOfExecutions: number; onChangeDuration: (length: number) => void; durationEpoch?: number; @@ -64,6 +68,7 @@ type RuleProps = { const EVENT_LOG_LIST_TAB = 'rule_event_log_list'; const ALERT_LIST_TAB = 'rule_alert_list'; +const EVENT_ERROR_LOG_TAB = 'rule_error_log_list'; export function RuleComponent({ rule, @@ -73,6 +78,7 @@ export function RuleComponent({ muteAlertInstance, unmuteAlertInstance, requestRefresh, + refreshToken, numberOfExecutions, onChangeDuration, durationEpoch = Date.now(), @@ -96,7 +102,7 @@ export function RuleComponent({ const healthColor = getHealthColor(rule.executionStatus.status); const isLicenseError = - rule.executionStatus.error?.reason === AlertExecutionStatusErrorReasons.License; + rule.executionStatus.error?.reason === RuleExecutionStatusErrorReasons.License; const statusMessage = isLicenseError ? ALERT_STATUS_LICENSE_ERROR : rulesStatusesTranslationsMapping[rule.executionStatus.status]; @@ -116,10 +122,13 @@ export function RuleComponent({ { id: EVENT_LOG_LIST_TAB, name: i18n.translate('xpack.triggersActionsUI.sections.ruleDetails.rule.eventLogTabText', { - defaultMessage: 'Execution History', + defaultMessage: 'Execution history', }), 'data-test-subj': 'eventLogListTab', - content: suspendedComponentWithProps(RuleEventLogListWithApi, 'xl')({ rule }), + content: suspendedComponentWithProps( + RuleEventLogListWithApi, + 'xl' + )({ requestRefresh, rule, refreshToken }), }, { id: ALERT_LIST_TAB, @@ -129,6 +138,17 @@ export function RuleComponent({ 'data-test-subj': 'ruleAlertListTab', content: renderRuleAlertList(), }, + { + id: EVENT_ERROR_LOG_TAB, + name: i18n.translate('xpack.triggersActionsUI.sections.ruleDetails.rule.errorLogTabText', { + defaultMessage: 'Error log', + }), + 'data-test-subj': 'errorLogTab', + content: suspendedComponentWithProps( + RuleErrorLogWithApi, + 'xl' + )({ requestRefresh, rule, refreshToken }), + }, ]; const renderTabs = () => { @@ -141,29 +161,51 @@ export function RuleComponent({ return ( <> - - + + - {statusMessage} - - } - description={i18n.translate( - 'xpack.triggersActionsUI.sections.ruleDetails.rulesList.ruleLastExecutionDescription', - { - defaultMessage: `Last response`, - } - )} - /> + titleSize="xs" + title={ + + {statusMessage} + + } + description={i18n.translate( + 'xpack.triggersActionsUI.sections.ruleDetails.rulesList.ruleLastExecutionDescription', + { + defaultMessage: `Last response`, + } + )} + /> + + +

+ + + + + {moment(rule.executionStatus.lastExecutionDate).fromNow()} + +

+ + @@ -217,6 +259,7 @@ export function RuleComponent({ /> + ({ @@ -64,6 +59,8 @@ const mockRuleApis = { disableRule: jest.fn(), requestRefresh: jest.fn(), refreshToken: Date.now(), + snoozeRule: jest.fn(), + unsnoozeRule: jest.fn(), }; const authorizedConsumers = { @@ -103,48 +100,44 @@ describe('rule_details', () => { ).toBeTruthy(); }); - it('renders the rule error banner with error message, when rule status is an error', () => { + it('renders the rule error banner with error message, when rule has a license error', () => { const rule = mockRule({ + enabled: true, executionStatus: { status: 'error', lastExecutionDate: new Date('2020-08-20T19:23:38Z'), error: { - reason: AlertExecutionStatusErrorReasons.Unknown, + reason: RuleExecutionStatusErrorReasons.License, message: 'test', }, }, }); - expect( - shallow( - - ).containsMatchingElement( - - {'test'} - - ) - ).toBeTruthy(); + const wrapper = shallow( + + ); + expect(wrapper.find('[data-test-subj="ruleErrorBanner"]').first().text()).toMatchInlineSnapshot( + `" Cannot run rule, test "` + ); }); it('renders the rule warning banner with warning message, when rule status is a warning', () => { const rule = mockRule({ + enabled: true, executionStatus: { status: 'warning', lastExecutionDate: new Date('2020-08-20T19:23:38Z'), warning: { - reason: AlertExecutionStatusWarningReasons.MAX_EXECUTABLE_ACTIONS, + reason: RuleExecutionStatusWarningReasons.MAX_EXECUTABLE_ACTIONS, message: 'warning message', }, }, }); + const wrapper = shallow( + + ); expect( - shallow( - - ).containsMatchingElement( - - {'warning message'} - - ) - ).toBeTruthy(); + wrapper.find('[data-test-subj="ruleWarningBanner"]').first().text() + ).toMatchInlineSnapshot(`" Action limit exceeded warning message"`); }); it('displays a toast message when interval is less than configured minimum', async () => { @@ -190,7 +183,7 @@ describe('rule_details', () => { ]; expect( - shallow( + mountWithIntl( { }, ]; - const details = shallow( + const details = mountWithIntl( ); @@ -302,63 +295,71 @@ describe('rule_details', () => { }); }); -describe('disable button', () => { - it('should render a disable button when rule is enabled', () => { +describe('disable/enable functionality', () => { + it('should show that the rule is enabled', () => { const rule = mockRule({ enabled: true, }); - const enableButton = shallow( + const wrapper = mountWithIntl( - ) - .find(EuiSwitch) - .find('[name="enable"]') - .first(); + ); + const actionsElem = wrapper.find('[data-test-subj="statusDropdown"]').first(); - expect(enableButton.props()).toMatchObject({ - checked: true, - disabled: false, - }); + expect(actionsElem.text()).toEqual('Enabled'); }); - it('should render a enable button and empty state when rule is disabled', async () => { + it('should show that the rule is disabled', async () => { const rule = mockRule({ enabled: false, }); const wrapper = mountWithIntl( ); + const actionsElem = wrapper.find('[data-test-subj="statusDropdown"]').first(); + + expect(actionsElem.text()).toEqual('Disabled'); + }); + + it('should disable the rule when picking disable in the dropdown', async () => { + const rule = mockRule({ + enabled: true, + }); + const disableRule = jest.fn(); + const wrapper = mountWithIntl( + + ); + const actionsElem = wrapper + .find('[data-test-subj="statusDropdown"] .euiBadge__childButton') + .first(); + actionsElem.simulate('click'); await act(async () => { await nextTick(); wrapper.update(); }); - const enableButton = wrapper.find(EuiSwitch).find('[name="enable"]').first(); - const disabledEmptyPrompt = wrapper.find('[data-test-subj="disabledEmptyPrompt"]'); - const disabledEmptyPromptAction = wrapper.find('[data-test-subj="disabledEmptyPromptAction"]'); - - expect(enableButton.props()).toMatchObject({ - checked: false, - disabled: false, - }); - expect(disabledEmptyPrompt.exists()).toBeTruthy(); - expect(disabledEmptyPromptAction.exists()).toBeTruthy(); - - disabledEmptyPromptAction.first().simulate('click'); await act(async () => { + const actionsMenuElem = wrapper.find('[data-test-subj="ruleStatusMenu"]'); + const actionsMenuItemElem = actionsMenuElem.first().find('.euiContextMenuItem'); + actionsMenuItemElem.at(1).simulate('click'); await nextTick(); - wrapper.update(); }); - expect(mockRuleApis.enableRule).toHaveBeenCalledTimes(1); + expect(disableRule).toHaveBeenCalledTimes(1); }); - it('should disable the rule when rule is enabled and button is clicked', () => { + it('if rule is already disable should do nothing when picking disable in the dropdown', async () => { const rule = mockRule({ - enabled: true, + enabled: false, }); const disableRule = jest.fn(); - const enableButton = shallow( + const wrapper = mountWithIntl( { {...mockRuleApis} disableRule={disableRule} /> - ) - .find(EuiSwitch) - .find('[name="enable"]') + ); + const actionsElem = wrapper + .find('[data-test-subj="statusDropdown"] .euiBadge__childButton') .first(); + actionsElem.simulate('click'); + + await act(async () => { + await nextTick(); + wrapper.update(); + }); + + await act(async () => { + const actionsMenuElem = wrapper.find('[data-test-subj="ruleStatusMenu"]'); + const actionsMenuItemElem = actionsMenuElem.first().find('.euiContextMenuItem'); + actionsMenuItemElem.at(1).simulate('click'); + await nextTick(); + }); - enableButton.simulate('click'); - const handler = enableButton.prop('onChange'); - expect(typeof handler).toEqual('function'); expect(disableRule).toHaveBeenCalledTimes(0); - handler!({} as React.FormEvent); - expect(disableRule).toHaveBeenCalledTimes(1); }); - it('should enable the rule when rule is disabled and button is clicked', () => { + it('should enable the rule when picking enable in the dropdown', async () => { const rule = mockRule({ enabled: false, }); const enableRule = jest.fn(); - const enableButton = shallow( + const wrapper = mountWithIntl( { {...mockRuleApis} enableRule={enableRule} /> - ) - .find(EuiSwitch) - .find('[name="enable"]') + ); + const actionsElem = wrapper + .find('[data-test-subj="statusDropdown"] .euiBadge__childButton') .first(); + actionsElem.simulate('click'); + + await act(async () => { + await nextTick(); + wrapper.update(); + }); + + await act(async () => { + const actionsMenuElem = wrapper.find('[data-test-subj="ruleStatusMenu"]'); + const actionsMenuItemElem = actionsMenuElem.first().find('.euiContextMenuItem'); + actionsMenuItemElem.at(0).simulate('click'); + await nextTick(); + }); - enableButton.simulate('click'); - const handler = enableButton.prop('onChange'); - expect(typeof handler).toEqual('function'); - expect(enableRule).toHaveBeenCalledTimes(0); - handler!({} as React.FormEvent); expect(enableRule).toHaveBeenCalledTimes(1); }); - it('should reset error banner dismissal after re-enabling the rule', async () => { + it('if rule is already enable should do nothing when picking enable in the dropdown', async () => { const rule = mockRule({ enabled: true, - executionStatus: { - status: 'error', - lastExecutionDate: new Date('2020-08-20T19:23:38Z'), - error: { - reason: AlertExecutionStatusErrorReasons.Execute, - message: 'Fail', - }, - }, }); - - const disableRule = jest.fn(); const enableRule = jest.fn(); const wrapper = mountWithIntl( { ruleType={ruleType} actionTypes={[]} {...mockRuleApis} - disableRule={disableRule} enableRule={enableRule} /> ); + const actionsElem = wrapper + .find('[data-test-subj="statusDropdown"] .euiBadge__childButton') + .first(); + actionsElem.simulate('click'); await act(async () => { await nextTick(); wrapper.update(); }); - // Dismiss the error banner - await act(async () => { - wrapper.find('[data-test-subj="dismiss-execution-error"]').first().simulate('click'); - await nextTick(); - }); - - // Disable the rule - await act(async () => { - wrapper.find('[data-test-subj="enableSwitch"] .euiSwitch__button').first().simulate('click'); - await nextTick(); - }); - expect(disableRule).toHaveBeenCalled(); - - await act(async () => { - await nextTick(); - wrapper.update(); - }); - - // Enable the rule await act(async () => { - wrapper.find('[data-test-subj="enableSwitch"] .euiSwitch__button').first().simulate('click'); + const actionsMenuElem = wrapper.find('[data-test-subj="ruleStatusMenu"]'); + const actionsMenuItemElem = actionsMenuElem.first().find('.euiContextMenuItem'); + actionsMenuItemElem.at(0).simulate('click'); await nextTick(); }); - expect(enableRule).toHaveBeenCalled(); - // Ensure error banner is back - expect(wrapper.find('[data-test-subj="dismiss-execution-error"]').length).toBeGreaterThan(0); + expect(enableRule).toHaveBeenCalledTimes(0); }); it('should show the loading spinner when the rule enabled switch was clicked and the server responded with some delay', async () => { const rule = mockRule({ enabled: true, - executionStatus: { - status: 'error', - lastExecutionDate: new Date('2020-08-20T19:23:38Z'), - error: { - reason: AlertExecutionStatusErrorReasons.Execute, - message: 'Fail', - }, - }, }); const disableRule = jest.fn(async () => { @@ -493,139 +476,53 @@ describe('disable button', () => { /> ); + const actionsElem = wrapper + .find('[data-test-subj="statusDropdown"] .euiBadge__childButton') + .first(); + actionsElem.simulate('click'); + await act(async () => { await nextTick(); wrapper.update(); }); - // Dismiss the error banner await act(async () => { - wrapper.find('[data-test-subj="dismiss-execution-error"]').first().simulate('click'); - await nextTick(); + const actionsMenuElem = wrapper.find('[data-test-subj="ruleStatusMenu"]'); + const actionsMenuItemElem = actionsMenuElem.first().find('.euiContextMenuItem'); + actionsMenuItemElem.at(1).simulate('click'); }); - // Disable the rule - await act(async () => { - wrapper.find('[data-test-subj="enableSwitch"] .euiSwitch__button').first().simulate('click'); - await nextTick(); - }); - expect(disableRule).toHaveBeenCalled(); - await act(async () => { await nextTick(); wrapper.update(); }); - // Enable the rule await act(async () => { - expect(wrapper.find('[data-test-subj="enableSpinner"]').length).toBeGreaterThan(0); - await nextTick(); + expect(disableRule).toHaveBeenCalled(); + expect( + wrapper.find('[data-test-subj="statusDropdown"] .euiBadge__childButton .euiLoadingSpinner') + .length + ).toBeGreaterThan(0); }); }); }); -describe('mute button', () => { - it('should render an mute button when rule is enabled', () => { - const rule = mockRule({ - enabled: true, - muteAll: false, - }); - const enableButton = shallow( - - ) - .find(EuiSwitch) - .find('[name="mute"]') - .first(); - expect(enableButton.props()).toMatchObject({ - checked: false, - disabled: false, - }); - }); - - it('should render an muted button when rule is muted', () => { +describe('snooze functionality', () => { + it('should render "Snooze Indefinitely" when rule is enabled and mute all', () => { const rule = mockRule({ enabled: true, muteAll: true, }); - const enableButton = shallow( - - ) - .find(EuiSwitch) - .find('[name="mute"]') - .first(); - expect(enableButton.props()).toMatchObject({ - checked: true, - disabled: false, - }); - }); - - it('should mute the rule when rule is unmuted and button is clicked', () => { - const rule = mockRule({ - enabled: true, - muteAll: false, - }); - const muteRule = jest.fn(); - const enableButton = shallow( - - ) - .find(EuiSwitch) - .find('[name="mute"]') - .first(); - enableButton.simulate('click'); - const handler = enableButton.prop('onChange'); - expect(typeof handler).toEqual('function'); - expect(muteRule).toHaveBeenCalledTimes(0); - handler!({} as React.FormEvent); - expect(muteRule).toHaveBeenCalledTimes(1); - }); - - it('should unmute the rule when rule is muted and button is clicked', () => { - const rule = mockRule({ - enabled: true, - muteAll: true, - }); - const unmuteRule = jest.fn(); - const enableButton = shallow( - - ) - .find(EuiSwitch) - .find('[name="mute"]') - .first(); - enableButton.simulate('click'); - const handler = enableButton.prop('onChange'); - expect(typeof handler).toEqual('function'); - expect(unmuteRule).toHaveBeenCalledTimes(0); - handler!({} as React.FormEvent); - expect(unmuteRule).toHaveBeenCalledTimes(1); - }); - - it('should disabled mute button when rule is disabled', () => { - const rule = mockRule({ - enabled: false, - muteAll: false, - }); - const enableButton = shallow( + const wrapper = mountWithIntl( - ) - .find(EuiSwitch) - .find('[name="mute"]') + ); + const actionsElem = wrapper + .find('[data-test-subj="statusDropdown"] .euiBadge__childButton') .first(); - expect(enableButton.props()).toMatchObject({ - checked: false, - disabled: true, - }); + expect(actionsElem.text()).toEqual('Snoozed'); + expect(wrapper.find('[data-test-subj="remainingSnoozeTime"]').first().text()).toEqual( + 'Indefinitely' + ); }); }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_details.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_details.tsx index 736178cc5ab3e..e8d4c0b089485 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_details.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_details.tsx @@ -16,19 +16,17 @@ import { EuiFlexItem, EuiBadge, EuiPageContentBody, - EuiSwitch, EuiCallOut, EuiSpacer, EuiButtonEmpty, EuiButton, - EuiLoadingSpinner, EuiIconTip, - EuiEmptyPrompt, - EuiPageTemplate, + EuiIcon, + EuiLink, } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import { toMountPoint } from '../../../../../../../../src/plugins/kibana_react/public'; -import { AlertExecutionStatusErrorReasons, parseDuration } from '../../../../../../alerting/common'; +import { RuleExecutionStatusErrorReasons, parseDuration } from '../../../../../../alerting/common'; import { hasAllPrivilege, hasExecuteActionsCapability } from '../../../lib/capabilities'; import { getAlertingSectionBreadcrumb, getRuleDetailsBreadcrumb } from '../../../lib/breadcrumb'; import { getCurrentDocTitle } from '../../../lib/doc_title'; @@ -38,6 +36,7 @@ import { ActionType, ActionConnector, TriggersActionsUiConfig, + RuleTableItem, } from '../../../../types'; import { ComponentOpts as BulkOperationsComponentOpts, @@ -55,6 +54,7 @@ import { useKibana } from '../../../../common/lib/kibana'; import { ruleReducer } from '../../rule_form/rule_reducer'; import { loadAllActions as loadConnectors } from '../../../lib/action_connector_api'; import { triggersActionsUiConfig } from '../../../../common/lib/config_api'; +import { RuleStatusDropdown } from '../../rules_list/components/rule_status_dropdown'; export type RuleDetailsProps = { rule: Rule; @@ -62,7 +62,7 @@ export type RuleDetailsProps = { actionTypes: ActionType[]; requestRefresh: () => Promise; refreshToken?: number; -} & Pick; +} & Pick; export const RuleDetails: React.FunctionComponent = ({ rule, @@ -70,8 +70,8 @@ export const RuleDetails: React.FunctionComponent = ({ actionTypes, disableRule, enableRule, - unmuteRule, - muteRule, + snoozeRule, + unsnoozeRule, requestRefresh, refreshToken, }) => { @@ -150,13 +150,7 @@ export const RuleDetails: React.FunctionComponent = ({ const ruleActions = rule.actions; const uniqueActions = Array.from(new Set(ruleActions.map((item: any) => item.actionTypeId))); - const [isEnabled, setIsEnabled] = useState(rule.enabled); - const [isEnabledUpdating, setIsEnabledUpdating] = useState(false); - const [isMutedUpdating, setIsMutedUpdating] = useState(false); - const [isMuted, setIsMuted] = useState(rule.muteAll); const [editFlyoutVisible, setEditFlyoutVisibility] = useState(false); - const [dismissRuleErrors, setDismissRuleErrors] = useState(false); - const [dismissRuleWarning, setDismissRuleWarning] = useState(false); // Check whether interval is below configured minium useEffect(() => { @@ -269,6 +263,96 @@ export const RuleDetails: React.FunctionComponent = ({ values={{ ruleName: rule.name }} /> } + description={ + + + + + +

+ +

+
+
+ + await disableRule(rule)} + enableRule={async () => await enableRule(rule)} + snoozeRule={async (snoozeEndTime: string | -1) => + await snoozeRule(rule, snoozeEndTime) + } + unsnoozeRule={async () => await unsnoozeRule(rule)} + item={rule as RuleTableItem} + onRuleChanged={requestRefresh} + direction="row" + isEditable={hasEditButton} + previousSnoozeInterval={null} + /> + +
+
+ + + + +

+ +

+
+
+ + {ruleType.name} + +
+
+ + {uniqueActions && uniqueActions.length ? ( + + + + {' '} + {hasActionsWithBrokenConnector && ( + + )} + + + + + {uniqueActions.map((action, index) => ( + + + {actionTypesByTypeId[action].name ?? action} + + + ))} + + + + ) : null} + +
+ } rightSideItems={[ , = ({ /> - - - -

- -

-
- - {ruleType.name} -
- - {uniqueActions && uniqueActions.length ? ( - <> - - {' '} - {hasActionsWithBrokenConnector && ( - - )} - - - - - {uniqueActions.map((action, index) => ( - - - {actionTypesByTypeId[action].name ?? action} - - - ))} - - - ) : null} - - - - - - {isEnabledUpdating ? ( - - - - - - - - - - - - ) : ( - { - setIsEnabledUpdating(true); - if (isEnabled) { - setIsEnabled(false); - await disableRule(rule); - // Reset dismiss if previously clicked - setDismissRuleErrors(false); - } else { - setIsEnabled(true); - await enableRule(rule); - } - requestRefresh(); - setIsEnabledUpdating(false); - }} - label={ - - } - /> - )} - - - {isMutedUpdating ? ( - - - - - - - - - - - - ) : ( - { - setIsMutedUpdating(true); - if (isMuted) { - setIsMuted(false); - await unmuteRule(rule); - } else { - setIsMuted(true); - await muteRule(rule); - } - requestRefresh(); - setIsMutedUpdating(false); - }} - label={ - - } - /> - )} - - - -
- {rule.enabled && !dismissRuleErrors && rule.executionStatus.status === 'error' ? ( + {rule.enabled && + rule.executionStatus.error?.reason === RuleExecutionStatusErrorReasons.License ? ( - - + +

+ +   + {getRuleStatusErrorReasonText()},  {rule.executionStatus.error?.message} - - - - - setDismissRuleErrors(true)} - > - - - - {rule.executionStatus.error?.reason === - AlertExecutionStatusErrorReasons.License && ( - - - - - - )} - +   + + + +

) : null} - {rule.enabled && !dismissRuleWarning && rule.executionStatus.status === 'warning' ? ( + {rule.enabled && rule.executionStatus.status === 'warning' ? ( - +

+ +   + {getRuleStatusWarningReasonText()} +   {rule.executionStatus.warning?.message} - - - - - setDismissRuleWarning(true)} - > - - - - +

@@ -521,89 +427,41 @@ export const RuleDetails: React.FunctionComponent = ({ color="warning" data-test-subj="actionWithBrokenConnectorWarningBanner" size="s" - title={i18n.translate( - 'xpack.triggersActionsUI.sections.ruleDetails.actionWithBrokenConnectorWarningBannerTitle', - { - defaultMessage: - 'There is an issue with one of the connectors associated with this rule.', - } - )} > - {hasEditButton && ( - - - setEditFlyoutVisibility(true)} - > - - - - - )} +

+ +   + +   + {hasEditButton && ( + setEditFlyoutVisibility(true)} + > + + + )} +

)} - {rule.enabled ? ( - - ) : ( - <> - - - - -
- } - body={ - <> -

- -

- - } - actions={[ - { - setIsEnabledUpdating(true); - setIsEnabled(true); - await enableRule(rule); - requestRefresh(); - setIsEnabledUpdating(false); - }} - > - Enable - , - ]} - /> - - - )} +
diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_error_log.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_error_log.test.tsx new file mode 100644 index 0000000000000..e37f9abf67de3 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_error_log.test.tsx @@ -0,0 +1,312 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license 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 { act } from 'react-dom/test-utils'; +import { mountWithIntl, nextTick } from '@kbn/test-jest-helpers'; +import { useKibana } from '../../../../common/lib/kibana'; + +import { EuiSuperDatePicker } from '@elastic/eui'; +import { Rule } from '../../../../types'; +import { RuleErrorLog } from './rule_error_log'; + +const useKibanaMock = useKibana as jest.Mocked; +jest.mock('../../../../common/lib/kibana'); + +const mockLogResponse: any = { + total: 8, + data: [], + totalErrors: 12, + errors: [ + { + id: '66b9c04a-d5d3-4ed4-aa7c-94ddaca3ac1d', + timestamp: '2022-03-31T18:03:33.133Z', + type: 'alerting', + message: + "rule execution failure: .es-query:d87fcbd0-b11b-11ec-88f6-293354dba871: 'Mine' - x_content_parse_exception: [parsing_exception] Reason: unknown query [match_allxxxx] did you mean [match_all]?", + }, + { + id: '14fcfe1c-5403-458f-8549-fa8ef59cdea3', + timestamp: '2022-03-31T18:02:30.119Z', + type: 'alerting', + message: + "rule execution failure: .es-query:d87fcbd0-b11b-11ec-88f6-293354dba871: 'Mine' - x_content_parse_exception: [parsing_exception] Reason: unknown query [match_allxxxx] did you mean [match_all]?", + }, + { + id: 'd53a401e-2a3a-4abe-8913-26e08a5039fd', + timestamp: '2022-03-31T18:01:27.112Z', + type: 'alerting', + message: + "rule execution failure: .es-query:d87fcbd0-b11b-11ec-88f6-293354dba871: 'Mine' - x_content_parse_exception: [parsing_exception] Reason: unknown query [match_allxxxx] did you mean [match_all]?", + }, + { + id: '9cfeae08-24b4-4d5c-b870-a303418f14d6', + timestamp: '2022-03-31T18:00:24.113Z', + type: 'alerting', + message: + "rule execution failure: .es-query:d87fcbd0-b11b-11ec-88f6-293354dba871: 'Mine' - x_content_parse_exception: [parsing_exception] Reason: unknown query [match_allxxxx] did you mean [match_all]?", + }, + { + id: '66b9c04a-d5d3-4ed4-aa7c-94ddaca3ac23', + timestamp: '2022-03-31T18:03:21.133Z', + type: 'alerting', + message: + "rule execution failure: .es-query:d87fcbd0-b11b-11ec-88f6-293354dba871: 'Mine' - x_content_parse_exception: [parsing_exception] Reason: unknown query [match_allxxxx] did you mean [match_all]?", + }, + { + id: '14fcfe1c-5403-458f-8549-fa8ef59cde18', + timestamp: '2022-03-31T18:02:18.119Z', + type: 'alerting', + message: + "rule execution failure: .es-query:d87fcbd0-b11b-11ec-88f6-293354dba871: 'Mine' - x_content_parse_exception: [parsing_exception] Reason: unknown query [match_allxxxx] did you mean [match_all]?", + }, + { + id: 'd53a401e-2a3a-4abe-8913-26e08a503915', + timestamp: '2022-03-31T18:01:15.112Z', + type: 'alerting', + message: + "rule execution failure: .es-query:d87fcbd0-b11b-11ec-88f6-293354dba871: 'Mine' - x_content_parse_exception: [parsing_exception] Reason: unknown query [match_allxxxx] did you mean [match_all]?", + }, + { + id: '9cfeae08-24b4-4d5c-b870-a303418f1412', + timestamp: '2022-03-31T18:00:12.113Z', + type: 'alerting', + message: + "rule execution failure: .es-query:d87fcbd0-b11b-11ec-88f6-293354dba871: 'Mine' - x_content_parse_exception: [parsing_exception] Reason: unknown query [match_allxxxx] did you mean [match_all]?", + }, + { + id: '66b9c04a-d5d3-4ed4-aa7c-94ddaca3ac09', + timestamp: '2022-03-31T18:03:09.133Z', + type: 'alerting', + message: + "rule execution failure: .es-query:d87fcbd0-b11b-11ec-88f6-293354dba871: 'Mine' - x_content_parse_exception: [parsing_exception] Reason: unknown query [match_allxxxx] did you mean [match_all]?", + }, + { + id: '14fcfe1c-5403-458f-8549-fa8ef59cde06', + timestamp: '2022-03-31T18:02:06.119Z', + type: 'alerting', + message: + "rule execution failure: .es-query:d87fcbd0-b11b-11ec-88f6-293354dba871: 'Mine' - x_content_parse_exception: [parsing_exception] Reason: unknown query [match_allxxxx] did you mean [match_all]?", + }, + { + id: 'd53a401e-2a3a-4abe-8913-26e08a503903', + timestamp: '2022-03-31T18:01:03.112Z', + type: 'alerting', + message: + "rule execution failure: .es-query:d87fcbd0-b11b-11ec-88f6-293354dba871: 'Mine' - x_content_parse_exception: [parsing_exception] Reason: unknown query [match_allxxxx] did you mean [match_all]?", + }, + { + id: '9cfeae08-24b4-4d5c-b870-a303418f1400', + timestamp: '2022-03-31T18:00:00.113Z', + type: 'alerting', + message: + "rule execution failure: .es-query:d87fcbd0-b11b-11ec-88f6-293354dba871: 'Mine' - x_content_parse_exception: [parsing_exception] Reason: unknown query [match_allxxxx] did you mean [match_all]?", + }, + ], +}; + +const mockRule: Rule = { + id: '56b61397-13d7-43d0-a583-0fa8c704a46f', + enabled: true, + name: 'rule-56b61397-13d7-43d0-a583-0fa8c704a46f', + tags: [], + ruleTypeId: '.noop', + consumer: 'consumer', + schedule: { interval: '1m' }, + actions: [], + params: {}, + createdBy: null, + updatedBy: null, + createdAt: new Date(), + updatedAt: new Date(), + apiKeyOwner: null, + throttle: null, + notifyWhen: null, + muteAll: false, + mutedInstanceIds: [], + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, +}; + +const loadExecutionLogAggregationsMock = jest.fn(); + +describe('rule_error_log', () => { + beforeEach(() => { + jest.clearAllMocks(); + useKibanaMock().services.uiSettings.get = jest.fn().mockImplementation((value: string) => { + if (value === 'timepicker:quickRanges') { + return [ + { + from: 'now-15m', + to: 'now', + display: 'Last 15 minutes', + }, + ]; + } + }); + loadExecutionLogAggregationsMock.mockResolvedValue(mockLogResponse); + }); + + it('renders correctly', async () => { + const nowMock = jest.spyOn(Date, 'now').mockReturnValue(0); + const wrapper = mountWithIntl( + + ); + + // No data initially + expect(wrapper.find('.euiTableRow .euiTableCellContent__text').first().text()).toEqual( + 'No items found' + ); + + // Run the initial load fetch call + expect(loadExecutionLogAggregationsMock).toHaveBeenCalledTimes(1); + + expect(loadExecutionLogAggregationsMock).toHaveBeenCalledWith( + expect.objectContaining({ + dateEnd: '1969-12-31T19:00:00-05:00', + dateStart: '1969-12-30T19:00:00-05:00', + id: '56b61397-13d7-43d0-a583-0fa8c704a46f', + page: 0, + perPage: 1, + sort: { timestamp: { order: 'desc' } }, + }) + ); + + // Loading + expect(wrapper.find(EuiSuperDatePicker).props().isLoading).toBeTruthy(); + + expect(wrapper.find('[data-test-subj="tableHeaderCell_timestamp_0"]').exists()).toBeTruthy(); + + // Let the load resolve + await act(async () => { + await nextTick(); + wrapper.update(); + }); + + expect(wrapper.find(EuiSuperDatePicker).props().isLoading).toBeFalsy(); + expect(wrapper.find('.euiTableRow').length).toEqual(10); + + nowMock.mockRestore(); + }); + + it('can sort on timestamp columns', async () => { + const wrapper = mountWithIntl( + + ); + + await act(async () => { + await nextTick(); + wrapper.update(); + }); + expect( + wrapper.find('.euiTableRow').first().find('.euiTableCellContent').first().text() + ).toEqual('Mar 31, 2022 @ 14:03:33.133'); + + wrapper.find('button[data-test-subj="tableHeaderSortButton"]').first().simulate('click'); + + await act(async () => { + await nextTick(); + wrapper.update(); + }); + + expect( + wrapper.find('.euiTableRow').first().find('.euiTableCellContent').first().text() + ).toEqual('Mar 31, 2022 @ 14:00:00.113'); + }); + + it('can paginate', async () => { + loadExecutionLogAggregationsMock.mockResolvedValue({ + ...mockLogResponse, + total: 100, + }); + + const wrapper = mountWithIntl( + + ); + + await act(async () => { + await nextTick(); + wrapper.update(); + }); + + expect(wrapper.find('.euiPagination').exists()).toBeTruthy(); + + // Paginate to the next page + wrapper.find('[data-test-subj="pagination-button-next"]').first().simulate('click'); + + await act(async () => { + await nextTick(); + wrapper.update(); + }); + + expect(wrapper.find('.euiTableRow').length).toEqual(2); + }); + + it('can filter by start and end date', async () => { + const nowMock = jest.spyOn(Date, 'now').mockReturnValue(0); + + const wrapper = mountWithIntl( + + ); + + await act(async () => { + await nextTick(); + wrapper.update(); + }); + + expect(loadExecutionLogAggregationsMock).toHaveBeenLastCalledWith( + expect.objectContaining({ + dateEnd: '1969-12-31T19:00:00-05:00', + dateStart: '1969-12-30T19:00:00-05:00', + id: '56b61397-13d7-43d0-a583-0fa8c704a46f', + page: 0, + perPage: 1, + sort: { timestamp: { order: 'desc' } }, + }) + ); + + wrapper + .find('[data-test-subj="superDatePickerToggleQuickMenuButton"] button') + .simulate('click'); + + wrapper + .find('[data-test-subj="superDatePickerCommonlyUsed_Last_15 minutes"] button') + .simulate('click'); + + await act(async () => { + await nextTick(); + wrapper.update(); + }); + + expect(loadExecutionLogAggregationsMock).toHaveBeenLastCalledWith( + expect.objectContaining({ + dateStart: '1969-12-31T18:45:00-05:00', + dateEnd: '1969-12-31T19:00:00-05:00', + id: '56b61397-13d7-43d0-a583-0fa8c704a46f', + page: 0, + perPage: 1, + sort: { timestamp: { order: 'desc' } }, + }) + ); + + nowMock.mockRestore(); + }); +}); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_error_log.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_error_log.tsx new file mode 100644 index 0000000000000..e47c65ff4e3e9 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_error_log.tsx @@ -0,0 +1,266 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license 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, useEffect, useState, useMemo, useRef } from 'react'; +import { i18n } from '@kbn/i18n'; +import datemath from '@elastic/datemath'; +import { + EuiFlexItem, + EuiFlexGroup, + EuiProgress, + EuiSpacer, + Pagination, + EuiSuperDatePicker, + OnTimeChangeProps, + EuiBasicTable, + EuiTableSortingType, + EuiBasicTableColumn, +} from '@elastic/eui'; +import { useKibana } from '../../../../common/lib/kibana'; + +import { LoadExecutionLogAggregationsProps } from '../../../lib/rule_api'; +import { Rule } from '../../../../types'; +import { IExecutionErrors } from '../../../../../../alerting/common'; +import { + ComponentOpts as RuleApis, + withBulkRuleOperations, +} from '../../common/components/with_bulk_rule_api_operations'; +import { RuleEventLogListCellRenderer } from './rule_event_log_list_cell_renderer'; + +const getParsedDate = (date: string) => { + if (date.includes('now')) { + return datemath.parse(date)?.format() || date; + } + return date; +}; + +const API_FAILED_MESSAGE = i18n.translate( + 'xpack.triggersActionsUI.sections.ruleDetails.errorLogColumn.apiError', + { + defaultMessage: 'Failed to fetch error log', + } +); + +const updateButtonProps = { + iconOnly: true, + fill: false, +}; + +const sortErrorLog = ( + a: IExecutionErrors, + b: IExecutionErrors, + direction: 'desc' | 'asc' = 'desc' +) => + direction === 'desc' + ? new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime() + : new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime(); + +export type RuleErrorLogProps = { + rule: Rule; + refreshToken?: number; + requestRefresh?: () => Promise; +} & Pick; + +export const RuleErrorLog = (props: RuleErrorLogProps) => { + const { rule, loadExecutionLogAggregations, refreshToken } = props; + + const { uiSettings, notifications } = useKibana().services; + + // Data grid states + const [logs, setLogs] = useState([]); + const [pagination, setPagination] = useState({ + pageIndex: 0, + pageSize: 10, + totalItemCount: 0, + }); + const [sort, setSort] = useState['sort']>({ + field: 'timestamp', + direction: 'desc', + }); + + // Date related states + const [isLoading, setIsLoading] = useState(false); + const [dateStart, setDateStart] = useState('now-24h'); + const [dateEnd, setDateEnd] = useState('now'); + const [dateFormat] = useState(() => uiSettings?.get('dateFormat')); + const [commonlyUsedRanges] = useState(() => { + return ( + uiSettings + ?.get('timepicker:quickRanges') + ?.map(({ from, to, display }: { from: string; to: string; display: string }) => ({ + start: from, + end: to, + label: display, + })) || [] + ); + }); + + const isInitialized = useRef(false); + + const loadEventLogs = async () => { + setIsLoading(true); + try { + const result = await loadExecutionLogAggregations({ + id: rule.id, + sort: { + [sort?.field || 'timestamp']: { order: sort?.direction || 'desc' }, + } as unknown as LoadExecutionLogAggregationsProps['sort'], + dateStart: getParsedDate(dateStart), + dateEnd: getParsedDate(dateEnd), + page: 0, + perPage: 1, + }); + setLogs(result.errors); + setPagination({ + ...pagination, + totalItemCount: result.totalErrors, + }); + } catch (e) { + notifications.toasts.addDanger({ + title: API_FAILED_MESSAGE, + text: e.body.message, + }); + } + setIsLoading(false); + }; + + const onTimeChange = useCallback( + ({ start, end, isInvalid }: OnTimeChangeProps) => { + if (isInvalid) { + return; + } + setDateStart(start); + setDateEnd(end); + }, + [setDateStart, setDateEnd] + ); + + const onRefresh = () => { + loadEventLogs(); + }; + + const columns: Array> = useMemo( + () => [ + { + field: 'timestamp', + name: i18n.translate( + 'xpack.triggersActionsUI.sections.ruleDetails.errorLogColumn.timestamp', + { + defaultMessage: 'Timestamp', + } + ), + render: (date: string) => ( + + ), + sortable: true, + width: '250px', + }, + { + field: 'type', + name: i18n.translate('xpack.triggersActionsUI.sections.ruleDetails.errorLogColumn.type', { + defaultMessage: 'Type', + }), + sortable: false, + width: '100px', + }, + { + field: 'message', + name: i18n.translate( + 'xpack.triggersActionsUI.sections.ruleDetails.errorLogColumn.message', + { + defaultMessage: 'Message', + } + ), + sortable: false, + }, + ], + [dateFormat] + ); + + const logList = useMemo(() => { + const start = pagination.pageIndex * pagination.pageSize; + const logsSortDesc = logs.sort((a, b) => sortErrorLog(a, b, sort?.direction)); + return logsSortDesc.slice(start, start + pagination.pageSize); + }, [logs, pagination.pageIndex, pagination.pageSize, sort?.direction]); + + useEffect(() => { + loadEventLogs(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [dateStart, dateEnd]); + + useEffect(() => { + if (isInitialized.current) { + loadEventLogs(); + } + isInitialized.current = true; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [refreshToken]); + + return ( +
+ + + + + + + + {isLoading && ( + + )} + { + if (changedPage) { + setPagination((prevPagination) => { + if ( + prevPagination.pageIndex !== changedPage.index || + prevPagination.pageSize !== changedPage.size + ) { + return { + ...prevPagination, + pageIndex: changedPage.index, + pageSize: changedPage.size, + }; + } + return prevPagination; + }); + } + if (changedSort) { + setSort((prevSort) => { + if (prevSort?.direction !== changedSort.direction) { + return changedSort; + } + return prevSort; + }); + } + }} + /> +
+ ); +}; + +export const RuleErrorLogWithApi = withBulkRuleOperations(RuleErrorLog); + +// eslint-disable-next-line import/no-default-export +export { RuleErrorLogWithApi as default }; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list.tsx index 7b9ade9b5f192..cc3bb0b20a203 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { useCallback, useEffect, useState, useMemo } from 'react'; +import React, { useCallback, useEffect, useState, useMemo, useRef } from 'react'; import { i18n } from '@kbn/i18n'; import datemath from '@elastic/datemath'; import { @@ -233,6 +233,8 @@ const updateButtonProps = { export type RuleEventLogListProps = { rule: Rule; localStorageKey?: string; + refreshToken?: number; + requestRefresh?: () => Promise; } & Pick; export const RuleEventLogList = (props: RuleEventLogListProps) => { @@ -240,6 +242,7 @@ export const RuleEventLogList = (props: RuleEventLogListProps) => { rule, localStorageKey = RULE_EVENT_LOG_LIST_STORAGE_KEY, loadExecutionLogAggregations, + refreshToken, } = props; const { uiSettings, notifications } = useKibana().services; @@ -277,6 +280,8 @@ export const RuleEventLogList = (props: RuleEventLogListProps) => { ); }); + const isInitialized = useRef(false); + // Main cell renderer, renders durations, statuses, etc. const renderCell = ({ rowIndex, columnId }: EuiDataGridCellValueElementProps) => { const { pageIndex, pageSize } = pagination; @@ -406,6 +411,14 @@ export const RuleEventLogList = (props: RuleEventLogListProps) => { // eslint-disable-next-line react-hooks/exhaustive-deps }, [sortingColumns, dateStart, dateEnd, filter, pagination.pageIndex, pagination.pageSize]); + useEffect(() => { + if (isInitialized.current) { + loadEventLogs(); + } + isInitialized.current = true; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [refreshToken]); + useEffect(() => { localStorage.setItem(localStorageKey, JSON.stringify(visibleColumns)); }, [localStorageKey, visibleColumns]); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_route.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_route.tsx index 393cdc404db9e..3e11f987138d2 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_route.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_route.tsx @@ -77,6 +77,7 @@ export const RuleRoute: React.FunctionComponent = ({ return ruleSummary ? ( & diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_status_dropdown.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_status_dropdown.test.tsx index 7873583131fdd..ad642738dfbba 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_status_dropdown.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_status_dropdown.test.tsx @@ -22,6 +22,7 @@ describe('RuleStatusDropdown', () => { enableRule, snoozeRule, unsnoozeRule, + isEditable: true, previousSnoozeInterval: null, item: { id: '1', @@ -115,4 +116,19 @@ describe('RuleStatusDropdown', () => { 'Disabled' ); }); + + test('renders read-only status control when isEditable is false', () => { + const wrapper = mountWithIntl( + + ); + expect(wrapper.find('[data-test-subj="statusDropdownReadonly"]').first().props().children).toBe( + 'Enabled' + ); + }); }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_status_dropdown.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_status_dropdown.tsx index 38867b5d2fe6b..098d7c08a78f5 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_status_dropdown.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_status_dropdown.tsx @@ -43,7 +43,9 @@ export interface ComponentOpts { disableRule: () => Promise; snoozeRule: (snoozeEndTime: string | -1, interval: string | null) => Promise; unsnoozeRule: () => Promise; + isEditable: boolean; previousSnoozeInterval: string | null; + direction?: 'column' | 'row'; } const COMMON_SNOOZE_TIMES: Array<[number, SnoozeUnit]> = [ @@ -60,7 +62,9 @@ export const RuleStatusDropdown: React.FunctionComponent = ({ enableRule, snoozeRule, unsnoozeRule, + isEditable, previousSnoozeInterval, + direction = 'column', }: ComponentOpts) => { const [isEnabled, setIsEnabled] = useState(item.enabled); const [isSnoozed, setIsSnoozed] = useState(isItemSnoozed(item)); @@ -78,6 +82,9 @@ export const RuleStatusDropdown: React.FunctionComponent = ({ const onChangeEnabledStatus = useCallback( async (enable: boolean) => { + if (item.enabled === enable) { + return; + } setIsUpdating(true); try { if (enable) { @@ -91,7 +98,7 @@ export const RuleStatusDropdown: React.FunctionComponent = ({ setIsUpdating(false); } }, - [setIsUpdating, isEnabled, setIsEnabled, onRuleChanged, enableRule, disableRule] + [item.enabled, isEnabled, onRuleChanged, enableRule, disableRule] ); const onChangeSnooze = useCallback( async (value: number, unit?: SnoozeUnit) => { @@ -124,11 +131,17 @@ export const RuleStatusDropdown: React.FunctionComponent = ({ ) : null; - const badge = ( + const nonEditableBadge = ( + + {badgeMessage} + + ); + + const editableBadge = ( = ({ return ( - - - + {isEditable ? ( + + + + ) : ( + nonEditableBadge + )} {remainingSnoozeTime} @@ -267,7 +285,7 @@ const RuleStatusMenu: React.FunctionComponent = ({ }, ]; - return ; + return ; }; interface SnoozePanelProps { @@ -328,7 +346,6 @@ const SnoozePanel: React.FunctionComponent = ({ ); - return ( @@ -362,7 +379,7 @@ const SnoozePanel: React.FunctionComponent = ({ /> - + {i18n.translate('xpack.triggersActionsUI.sections.rulesList.applySnooze', { defaultMessage: 'Apply', })} @@ -393,7 +410,7 @@ const SnoozePanel: React.FunctionComponent = ({ - + {i18n.translate('xpack.triggersActionsUI.sections.rulesList.snoozeIndefinitely', { defaultMessage: 'Snooze indefinitely', })} @@ -405,7 +422,7 @@ const SnoozePanel: React.FunctionComponent = ({ - + Cancel snooze diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_status_filter.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_status_filter.tsx index 185d18f605d42..65a4654b6ac29 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_status_filter.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_status_filter.tsx @@ -15,8 +15,8 @@ import { EuiHealth, } from '@elastic/eui'; import { - AlertExecutionStatuses, - AlertExecutionStatusValues, + RuleExecutionStatuses, + RuleExecutionStatusValues, } from '../../../../../../alerting/common'; import { rulesStatusesTranslationsMapping } from '../translations'; @@ -65,7 +65,7 @@ export const RuleStatusFilter: React.FunctionComponent = } >
- {[...AlertExecutionStatusValues].sort().map((item: AlertExecutionStatuses) => { + {[...RuleExecutionStatusValues].sort().map((item: RuleExecutionStatuses) => { const healthColor = getHealthColor(item); return ( = ); }; -export function getHealthColor(status: AlertExecutionStatuses) { +export function getHealthColor(status: RuleExecutionStatuses) { switch (status) { case 'active': return 'success'; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rules_list.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rules_list.test.tsx index a018b73eeeed9..7a73919b4dfec 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rules_list.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rules_list.test.tsx @@ -14,8 +14,8 @@ import { ruleTypeRegistryMock } from '../../../rule_type_registry.mock'; import { RulesList, percentileFields } from './rules_list'; import { RuleTypeModel, ValidationResult, Percentiles } from '../../../../types'; import { - AlertExecutionStatusErrorReasons, - AlertExecutionStatusWarningReasons, + RuleExecutionStatusErrorReasons, + RuleExecutionStatusWarningReasons, ALERTS_FEATURE_ID, parseDuration, } from '../../../../../../alerting/common'; @@ -305,7 +305,7 @@ describe('rules_list component with items', () => { lastDuration: 122000, lastExecutionDate: new Date('2020-08-20T19:23:38Z'), error: { - reason: AlertExecutionStatusErrorReasons.Unknown, + reason: RuleExecutionStatusErrorReasons.Unknown, message: 'test', }, }, @@ -331,7 +331,7 @@ describe('rules_list component with items', () => { lastDuration: 500, lastExecutionDate: new Date('2020-08-20T19:23:38Z'), error: { - reason: AlertExecutionStatusErrorReasons.License, + reason: RuleExecutionStatusErrorReasons.License, message: 'test', }, }, @@ -357,7 +357,7 @@ describe('rules_list component with items', () => { lastDuration: 500, lastExecutionDate: new Date('2020-08-20T19:23:38Z'), warning: { - reason: AlertExecutionStatusWarningReasons.MAX_EXECUTABLE_ACTIONS, + reason: RuleExecutionStatusWarningReasons.MAX_EXECUTABLE_ACTIONS, message: 'test', }, }, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rules_list.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rules_list.tsx index ba379046828b7..fa74c957d35e4 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rules_list.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rules_list.tsx @@ -79,10 +79,10 @@ import { routeToRuleDetails, DEFAULT_SEARCH_PAGE_SIZE } from '../../../constants import { DeleteModalConfirmation } from '../../../components/delete_modal_confirmation'; import { EmptyPrompt } from '../../../components/prompts/empty_prompt'; import { - AlertExecutionStatus, - AlertExecutionStatusValues, + RuleExecutionStatus, + RuleExecutionStatusValues, ALERTS_FEATURE_ID, - AlertExecutionStatusErrorReasons, + RuleExecutionStatusErrorReasons, formatDuration, parseDuration, MONITORING_HISTORY_LIMIT, @@ -191,7 +191,7 @@ export const RulesList: React.FunctionComponent = () => { ruleTypeId: string; } | null>(null); const [rulesStatusesTotal, setRulesStatusesTotal] = useState>( - AlertExecutionStatusValues.reduce( + RuleExecutionStatusValues.reduce( (prev: Record, status: string) => ({ ...prev, @@ -360,20 +360,18 @@ export const RulesList: React.FunctionComponent = () => { unsnoozeRule={async () => await unsnoozeRule({ http, id: item.id })} item={item} onRuleChanged={() => loadRulesData()} + isEditable={item.isEditable && isRuleTypeEditableInContext(item.ruleTypeId)} previousSnoozeInterval={previousSnoozeInterval} /> ); }; - const renderAlertExecutionStatus = ( - executionStatus: AlertExecutionStatus, - item: RuleTableItem - ) => { + const renderRuleExecutionStatus = (executionStatus: RuleExecutionStatus, item: RuleTableItem) => { const healthColor = getHealthColor(executionStatus.status); const tooltipMessage = executionStatus.status === 'error' ? `Error: ${executionStatus?.error?.message}` : null; const isLicenseError = - executionStatus.error?.reason === AlertExecutionStatusErrorReasons.License; + executionStatus.error?.reason === RuleExecutionStatusErrorReasons.License; const statusMessage = isLicenseError ? ALERT_STATUS_LICENSE_ERROR : rulesStatusesTranslationsMapping[executionStatus.status]; @@ -467,11 +465,11 @@ export const RulesList: React.FunctionComponent = () => { }; }; - const buildErrorListItems = (_executionStatus: AlertExecutionStatus) => { + const buildErrorListItems = (_executionStatus: RuleExecutionStatus) => { const hasErrorMessage = _executionStatus.status === 'error'; const errorMessage = _executionStatus?.error?.message; const isLicenseError = - _executionStatus.error?.reason === AlertExecutionStatusErrorReasons.License; + _executionStatus.error?.reason === RuleExecutionStatusErrorReasons.License; const statusMessage = isLicenseError ? ALERT_STATUS_LICENSE_ERROR : null; return [ @@ -493,7 +491,7 @@ export const RulesList: React.FunctionComponent = () => { ]; }; - const toggleErrorMessage = (_executionStatus: AlertExecutionStatus, ruleItem: RuleTableItem) => { + const toggleErrorMessage = (_executionStatus: RuleExecutionStatus, ruleItem: RuleTableItem) => { setItemIdToExpandedRowMap((itemToExpand) => { const _itemToExpand = { ...itemToExpand }; if (_itemToExpand[ruleItem.id]) { @@ -827,13 +825,16 @@ export const RulesList: React.FunctionComponent = () => { truncateText: false, width: '120px', 'data-test-subj': 'rulesTableCell-lastResponse', - render: (_executionStatus: AlertExecutionStatus, item: RuleTableItem) => { - return renderAlertExecutionStatus(item.executionStatus, item); + render: (_executionStatus: RuleExecutionStatus, item: RuleTableItem) => { + return renderRuleExecutionStatus(item.executionStatus, item); }, }, { field: 'enabled', - name: '', + name: i18n.translate( + 'xpack.triggersActionsUI.sections.rulesList.rulesListTable.columns.triggerActionsTitle', + { defaultMessage: 'Trigger actions' } + ), sortable: true, truncateText: false, width: '10%', @@ -916,7 +917,7 @@ export const RulesList: React.FunctionComponent = () => { const _executionStatus = item.executionStatus; const hasErrorMessage = _executionStatus.status === 'error'; const isLicenseError = - _executionStatus.error?.reason === AlertExecutionStatusErrorReasons.License; + _executionStatus.error?.reason === RuleExecutionStatusErrorReasons.License; return isLicenseError || hasErrorMessage ? ( ` // so the `Params` is a black-box of Record type SanitizedRule = Omit< - SanitizedAlert, + AlertingSanitizedRule, 'alertTypeId' > & { - ruleTypeId: SanitizedAlert['alertTypeId']; + ruleTypeId: AlertingSanitizedRule['alertTypeId']; }; type Rule = SanitizedRule; type ResolvedRule = Omit, 'alertTypeId'> & { ruleTypeId: ResolvedSanitizedRule['alertTypeId']; }; -type RuleAggregations = Omit & { - ruleExecutionStatus: AlertAggregations['alertExecutionStatus']; +type RuleAggregations = Omit & { + ruleExecutionStatus: AlertingRuleAggregations['alertExecutionStatus']; }; export type { @@ -120,7 +120,7 @@ export enum RuleFlyoutCloseReason { export interface ActionParamsProps { actionParams: Partial; index: number; - editAction: (key: string, value: AlertActionParam, index: number) => void; + editAction: (key: string, value: RuleActionParam, index: number) => void; errors: IErrorObject; messageVariables?: ActionVariable[]; defaultMessage?: string; diff --git a/x-pack/plugins/triggers_actions_ui/server/data/lib/time_series_query.test.ts b/x-pack/plugins/triggers_actions_ui/server/data/lib/time_series_query.test.ts index fb4879fa9ba39..c27d14b70c33f 100644 --- a/x-pack/plugins/triggers_actions_ui/server/data/lib/time_series_query.test.ts +++ b/x-pack/plugins/triggers_actions_ui/server/data/lib/time_series_query.test.ts @@ -29,7 +29,7 @@ const DefaultQueryParams: TimeSeriesQuery = { }; describe('timeSeriesQuery', () => { - const esClient = alertsMock.createAlertServices().scopedClusterClient.asCurrentUser; + const esClient = alertsMock.createRuleExecutorServices().scopedClusterClient.asCurrentUser; const logger = loggingSystemMock.create().get() as jest.Mocked; const params = { logger, diff --git a/x-pack/plugins/ui_actions_enhanced/public/custom_time_range_badge.tsx b/x-pack/plugins/ui_actions_enhanced/public/custom_time_range_badge.tsx index 28d936475f6b1..0e6217d360fa5 100644 --- a/x-pack/plugins/ui_actions_enhanced/public/custom_time_range_badge.tsx +++ b/x-pack/plugins/ui_actions_enhanced/public/custom_time_range_badge.tsx @@ -6,7 +6,8 @@ */ import React from 'react'; -import { prettyDuration, commonDurationRanges } from '@elastic/eui'; +import { renderToString } from 'react-dom/server'; +import { PrettyDuration } from '@elastic/eui'; import { IEmbeddable, Embeddable, EmbeddableInput } from 'src/plugins/embeddable/public'; import { Action, IncompatibleActionError } from '../../../../src/plugins/ui_actions/public'; import { TimeRange } from '../../../../src/plugins/data/public'; @@ -52,11 +53,12 @@ export class CustomTimeRangeBadge implements Action { } public getDisplayName({ embeddable }: TimeBadgeActionContext) { - return prettyDuration( - embeddable.getInput().timeRange.from, - embeddable.getInput().timeRange.to, - commonDurationRanges, - this.dateFormat + return renderToString( + ); } diff --git a/x-pack/plugins/uptime/public/state/api/alerts.ts b/x-pack/plugins/uptime/public/state/api/alerts.ts index d19b9688b21d0..49df4f390611b 100644 --- a/x-pack/plugins/uptime/public/state/api/alerts.ts +++ b/x-pack/plugins/uptime/public/state/api/alerts.ts @@ -12,7 +12,7 @@ import { ActionConnector } from '../alerts/alerts'; import { AlertsResult, MonitorIdParam } from '../actions/types'; import type { ActionType, AsApiContract, Rule } from '../../../../triggers_actions_ui/public'; import { API_URLS } from '../../../common/constants'; -import { AlertTypeParams } from '../../../../alerting/common'; +import { RuleTypeParams } from '../../../../alerting/common'; import { AtomicStatusCheckParams } from '../../../common/runtime_types/alerts'; import { populateAlertActions, RuleAction } from './alert_actions'; @@ -42,7 +42,7 @@ export const fetchConnectors = async (): Promise => { ); }; -export interface NewAlertParams extends AlertTypeParams { +export interface NewAlertParams extends RuleTypeParams { selectedMonitor: Ping; defaultActions: ActionConnector[]; defaultEmail?: DefaultEmail; diff --git a/x-pack/plugins/uptime/server/lib/alerts/test_utils/index.ts b/x-pack/plugins/uptime/server/lib/alerts/test_utils/index.ts index 374719172405f..e1a5da32c5fe4 100644 --- a/x-pack/plugins/uptime/server/lib/alerts/test_utils/index.ts +++ b/x-pack/plugins/uptime/server/lib/alerts/test_utils/index.ts @@ -61,7 +61,7 @@ export const createRuleTypeMocks = ( const services = { ...getUptimeESMockClient(), - ...alertsMock.createAlertServices(), + ...alertsMock.createRuleExecutorServices(), alertWithLifecycle: jest.fn().mockReturnValue({ scheduleActions, replaceState }), getAlertStartedDate: jest.fn().mockReturnValue('2022-03-17T13:13:33.755Z'), logger: loggerMock, diff --git a/x-pack/plugins/uptime/server/lib/alerts/types.ts b/x-pack/plugins/uptime/server/lib/alerts/types.ts index 5275cddae9d24..b100965db7a73 100644 --- a/x-pack/plugins/uptime/server/lib/alerts/types.ts +++ b/x-pack/plugins/uptime/server/lib/alerts/types.ts @@ -7,7 +7,7 @@ import { UptimeCorePluginsSetup, UptimeServerSetup } from '../adapters'; import { UMServerLibs } from '../lib'; import { AlertTypeWithExecutor } from '../../../../rule_registry/server'; -import { AlertInstanceContext, AlertTypeState } from '../../../../alerting/common'; +import { AlertInstanceContext, RuleTypeState } from '../../../../alerting/common'; import { LifecycleAlertService } from '../../../../rule_registry/server'; /** @@ -21,11 +21,7 @@ export type DefaultUptimeAlertInstance = AlertTy Record, AlertInstanceContext, { - alertWithLifecycle: LifecycleAlertService< - AlertTypeState, - AlertInstanceContext, - TActionGroupIds - >; + alertWithLifecycle: LifecycleAlertService; getAlertStartedDate: (alertId: string) => string | null; } >; diff --git a/x-pack/plugins/watcher/__jest__/client_integration/helpers/app_context.mock.tsx b/x-pack/plugins/watcher/__jest__/client_integration/helpers/app_context.mock.tsx index 6e246380e7049..1da2673714a98 100644 --- a/x-pack/plugins/watcher/__jest__/client_integration/helpers/app_context.mock.tsx +++ b/x-pack/plugins/watcher/__jest__/client_integration/helpers/app_context.mock.tsx @@ -14,6 +14,7 @@ import { notificationServiceMock, httpServiceMock, scopedHistoryMock, + executionContextServiceMock, } from '../../../../../../src/core/public/mocks'; import { AppDeps } from '../../../public/application/app'; import { LicenseStatus } from '../../../common/types/license_status'; @@ -48,4 +49,5 @@ export const mockContextValue: AppDeps = { http: httpServiceMock.createSetupContract(), history, getUrlForApp: jest.fn(), + executionContext: executionContextServiceMock.createStartContract(), }; diff --git a/x-pack/plugins/watcher/public/application/app.tsx b/x-pack/plugins/watcher/public/application/app.tsx index 2f8ca489a5787..7f93d5d8cf798 100644 --- a/x-pack/plugins/watcher/public/application/app.tsx +++ b/x-pack/plugins/watcher/public/application/app.tsx @@ -13,6 +13,7 @@ import { ToastsSetup, IUiSettingsClient, ApplicationStart, + ExecutionContextStart, } from 'kibana/public'; import { Router, Switch, Route, Redirect, withRouter, RouteComponentProps } from 'react-router-dom'; @@ -26,13 +27,14 @@ import { ManagementAppMountParams, } from '../../../../../src/plugins/management/public'; +import { ChartsPluginSetup } from '../../../../../src/plugins/charts/public'; import { LicenseStatus } from '../../common/types/license_status'; import { WatchStatus } from './sections/watch_status/components/watch_status'; import { WatchEdit } from './sections/watch_edit/components/watch_edit'; import { WatchList } from './sections/watch_list/components/watch_list'; import { registerRouter } from './lib/navigation'; import { AppContextProvider } from './app_context'; -import { ChartsPluginSetup } from '../../../../../src/plugins/charts/public'; +import { useExecutionContext } from './shared_imports'; const ShareRouter = withRouter(({ children, history }: RouteComponentProps & { children: any }) => { registerRouter({ history }); @@ -50,6 +52,7 @@ export interface AppDeps { setBreadcrumbs: Parameters[0]['setBreadcrumbs']; history: ManagementAppMountParams['history']; getUrlForApp: ApplicationStart['getUrlForApp']; + executionContext: ExecutionContextStart; } export const App = (deps: AppDeps) => { @@ -60,6 +63,11 @@ export const App = (deps: AppDeps) => { return () => s.unsubscribe(); }, [deps.licenseStatus$]); + useExecutionContext(deps.executionContext, { + type: 'application', + page: 'watcher', + }); + if (!valid) { return ( diff --git a/x-pack/plugins/watcher/public/application/shared_imports.ts b/x-pack/plugins/watcher/public/application/shared_imports.ts index 0e11e0fdcf9be..4001b55bfdd2e 100644 --- a/x-pack/plugins/watcher/public/application/shared_imports.ts +++ b/x-pack/plugins/watcher/public/application/shared_imports.ts @@ -19,4 +19,7 @@ export { EuiCodeEditor, } from '../../../../../src/plugins/es_ui_shared/public'; -export { KibanaThemeProvider } from '../../../../../src/plugins/kibana_react/public'; +export { + KibanaThemeProvider, + useExecutionContext, +} from '../../../../../src/plugins/kibana_react/public'; diff --git a/x-pack/plugins/watcher/public/plugin.ts b/x-pack/plugins/watcher/public/plugin.ts index dcc9d9fd56fdc..2da4415010d6c 100644 --- a/x-pack/plugins/watcher/public/plugin.ts +++ b/x-pack/plugins/watcher/public/plugin.ts @@ -50,6 +50,7 @@ export class WatcherUIPlugin implements Plugin { docLinks, savedObjects, application, + executionContext, } = coreStart; docTitle.change(pluginName); @@ -74,6 +75,7 @@ export class WatcherUIPlugin implements Plugin { history, getUrlForApp: application.getUrlForApp, theme$, + executionContext, }); return () => { diff --git a/x-pack/scripts/functional_tests.js b/x-pack/scripts/functional_tests.js index 977d0c3f1768c..ee99785aa8fad 100644 --- a/x-pack/scripts/functional_tests.js +++ b/x-pack/scripts/functional_tests.js @@ -7,6 +7,7 @@ require('../../src/setup_node_env'); require('@kbn/test').runTestsCli([ + require.resolve('../test/functional/config.ccs.ts'), require.resolve('../test/functional/config.js'), require.resolve('../test/functional_basic/config.ts'), require.resolve('../test/security_solution_endpoint/config.ts'), diff --git a/x-pack/test/alerting_api_integration/common/fixtures/plugins/alerts/server/alert_types.ts b/x-pack/test/alerting_api_integration/common/fixtures/plugins/alerts/server/alert_types.ts index dd37f0cc8b67e..9acc0d791b886 100644 --- a/x-pack/test/alerting_api_integration/common/fixtures/plugins/alerts/server/alert_types.ts +++ b/x-pack/test/alerting_api_integration/common/fixtures/plugins/alerts/server/alert_types.ts @@ -14,8 +14,8 @@ import { RuleType, AlertInstanceState, AlertInstanceContext, - AlertTypeState, - AlertTypeParams, + RuleTypeState, + RuleTypeParams, } from '../../../../../../../plugins/alerting/server'; export const EscapableStrings = { @@ -53,7 +53,7 @@ function getAlwaysFiringAlertType() { groupsToScheduleActionsInSeries: schema.maybe(schema.arrayOf(schema.nullable(schema.string()))), }); type ParamsType = TypeOf; - interface State extends AlertTypeState { + interface State extends RuleTypeState { groupInSeriesIndex?: number; } interface InstanceState extends AlertInstanceState { @@ -63,7 +63,7 @@ function getAlwaysFiringAlertType() { instanceContextValue: boolean; } const result: RuleType< - ParamsType & AlertTypeParams, + ParamsType & RuleTypeParams, never, // Only use if defining useSavedObjectReferences hook State, InstanceState, @@ -153,7 +153,7 @@ async function alwaysFiringExecutor(alertExecutorOptions: any) { } function getCumulativeFiringAlertType() { - interface State extends AlertTypeState { + interface State extends RuleTypeState { runCount?: number; } interface InstanceState extends AlertInstanceState { @@ -197,7 +197,7 @@ function getNeverFiringAlertType() { reference: schema.string(), }); type ParamsType = TypeOf; - interface State extends AlertTypeState { + interface State extends RuleTypeState { globalStateValue: boolean; } const result: RuleType = { @@ -401,7 +401,7 @@ function getPatternFiringAlertType() { reference: schema.maybe(schema.string()), }); type ParamsType = TypeOf; - interface State extends AlertTypeState { + interface State extends RuleTypeState { patternIndex?: number; } const result: RuleType = { @@ -470,7 +470,7 @@ function getPatternSuccessOrFailureAlertType() { pattern: schema.arrayOf(schema.oneOf([schema.boolean(), schema.string()])), }); type ParamsType = TypeOf; - interface State extends AlertTypeState { + interface State extends RuleTypeState { patternIndex?: number; } const result: RuleType = { @@ -510,7 +510,7 @@ function getLongRunningPatternRuleType(cancelAlertsOnRuleTimeout: boolean = true pattern: schema.arrayOf(schema.boolean()), }); type ParamsType = TypeOf; - interface State extends AlertTypeState { + interface State extends RuleTypeState { patternIndex?: number; } const result: RuleType = { @@ -675,23 +675,32 @@ export function defineAlertTypes( throw new Error('this alert is intended to fail'); }, }; - const longRunningAlertType: RuleType<{}, {}, {}, {}, {}, 'default'> = { - id: 'test.longRunning', - name: 'Test: Long Running', - actionGroups: [ - { - id: 'default', - name: 'Default', + function getLongRunningRuleType() { + const paramsSchema = schema.object({ + delay: schema.maybe(schema.number({ defaultValue: 5000 })), + }); + type ParamsType = TypeOf; + + const result: RuleType = { + id: 'test.longRunning', + name: 'Test: Long Running', + actionGroups: [ + { + id: 'default', + name: 'Default', + }, + ], + producer: 'alertsFixture', + defaultActionGroupId: 'default', + minimumLicenseRequired: 'basic', + isExportable: true, + async executor(ruleExecutorOptions) { + const { params } = ruleExecutorOptions; + await new Promise((resolve) => setTimeout(resolve, params.delay ?? 5000)); }, - ], - producer: 'alertsFixture', - defaultActionGroupId: 'default', - minimumLicenseRequired: 'basic', - isExportable: true, - async executor() { - await new Promise((resolve) => setTimeout(resolve, 5000)); - }, - }; + }; + return result; + } const exampleAlwaysFiringAlertType: RuleType<{}, {}, {}, {}, {}, 'small' | 'medium' | 'large'> = { id: 'example.always-firing', name: 'Always firing', @@ -769,7 +778,7 @@ export function defineAlertTypes( alerting.registerType(onlyStateVariablesAlertType); alerting.registerType(getPatternFiringAlertType()); alerting.registerType(throwAlertType); - alerting.registerType(longRunningAlertType); + alerting.registerType(getLongRunningRuleType()); alerting.registerType(goldNoopAlertType); alerting.registerType(exampleAlwaysFiringAlertType); alerting.registerType(multipleSearchesRuleType); diff --git a/x-pack/test/alerting_api_integration/common/lib/es_test_index_tool.ts b/x-pack/test/alerting_api_integration/common/lib/es_test_index_tool.ts index c880ce945042f..524709e6c02a7 100644 --- a/x-pack/test/alerting_api_integration/common/lib/es_test_index_tool.ts +++ b/x-pack/test/alerting_api_integration/common/lib/es_test_index_tool.ts @@ -107,7 +107,8 @@ export class ESTestIndexTool { return await this.retry.try(async () => { const searchResult = await this.search(source, reference); // @ts-expect-error doesn't handle total: number - if (searchResult.body.hits.total.value < numDocs) { + const value = searchResult.body.hits.total.value?.value || searchResult.body.hits.total.value; + if (value < numDocs) { // @ts-expect-error doesn't handle total: number throw new Error(`Expected ${numDocs} but received ${searchResult.body.hits.total.value}.`); } diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/execution_status.ts b/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/execution_status.ts index dba73cba184dd..2eb33d95fa4ea 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/execution_status.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/execution_status.ts @@ -6,7 +6,7 @@ */ import expect from '@kbn/expect'; -import { AlertExecutionStatusErrorReasons } from '../../../../../plugins/alerting/common'; +import { RuleExecutionStatusErrorReasons } from '../../../../../plugins/alerting/common'; import { Spaces } from '../../scenarios'; import { getUrlPrefix, getTestRuleData, ObjectRemover } from '../../../common/lib'; import { FtrProviderContext } from '../../../common/ftr_provider_context'; @@ -54,7 +54,7 @@ export default function executionStatusAlertTests({ getService }: FtrProviderCon executionStatus = await waitForStatus(alertId, new Set(['error'])); expect(executionStatus.error).to.be.ok(); - expect(executionStatus.error.reason).to.be(AlertExecutionStatusErrorReasons.Decrypt); + expect(executionStatus.error.reason).to.be(RuleExecutionStatusErrorReasons.Decrypt); expect(executionStatus.error.message).to.be('Unable to decrypt attribute "apiKey"'); }); }); diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/tests/telemetry/alerting_telemetry.ts b/x-pack/test/alerting_api_integration/security_and_spaces/tests/telemetry/alerting_telemetry.ts index 3b768b563b999..2773d137f25a4 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/tests/telemetry/alerting_telemetry.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/tests/telemetry/alerting_telemetry.ts @@ -176,13 +176,7 @@ export default function createAlertingTelemetryTests({ getService }: FtrProvider throttle: null, enabled: false, params: {}, - actions: [ - { - id: noopConnectorId, - group: 'default', - params: {}, - }, - ], + actions: [], }, }); @@ -190,20 +184,25 @@ export default function createAlertingTelemetryTests({ getService }: FtrProvider space: space.id, ruleOverwrites: { rule_type_id: 'test.multipleSearches', - schedule: { interval: '29s' }, + schedule: { interval: '40s' }, throttle: '1m', params: { numSearches: 2, delay: `2s` }, + actions: [], + }, + }); + + await createRule({ + space: space.id, + ruleOverwrites: { + rule_type_id: 'test.cumulative-firing', + schedule: { interval: '61s' }, + throttle: '2s', actions: [ { id: noopConnectorId, group: 'default', params: {}, }, - { - id: noopConnectorId, - group: 'default', - params: {}, - }, ], }, }); @@ -242,10 +241,10 @@ export default function createAlertingTelemetryTests({ getService }: FtrProvider const telemetry = JSON.parse(taskState!); // total number of rules - expect(telemetry.count_total).to.equal(18); + expect(telemetry.count_total).to.equal(21); // total number of enabled rules - expect(telemetry.count_active_total).to.equal(15); + expect(telemetry.count_active_total).to.equal(18); // total number of disabled rules expect(telemetry.count_disabled_total).to.equal(3); @@ -256,6 +255,7 @@ export default function createAlertingTelemetryTests({ getService }: FtrProvider expect(telemetry.count_by_type.test__throw).to.equal(3); expect(telemetry.count_by_type.test__noop).to.equal(6); expect(telemetry.count_by_type.test__multipleSearches).to.equal(3); + expect(telemetry.count_by_type['test__cumulative-firing']).to.equal(3); // total number of enabled rules broken down by rule type expect(telemetry.count_active_by_type.test__onlyContextVariables).to.equal(3); @@ -263,13 +263,14 @@ export default function createAlertingTelemetryTests({ getService }: FtrProvider expect(telemetry.count_active_by_type.test__throw).to.equal(3); expect(telemetry.count_active_by_type.test__noop).to.equal(3); expect(telemetry.count_active_by_type.test__multipleSearches).to.equal(3); + expect(telemetry.count_active_by_type['test__cumulative-firing']).to.equal(3); // throttle time stats expect(telemetry.throttle_time.min).to.equal('0s'); - expect(telemetry.throttle_time.avg).to.equal('138.2s'); + expect(telemetry.throttle_time.avg).to.equal('115.5s'); expect(telemetry.throttle_time.max).to.equal('600s'); expect(telemetry.throttle_time_number_s.min).to.equal(0); - expect(telemetry.throttle_time_number_s.avg).to.equal(138.2); + expect(telemetry.throttle_time_number_s.avg).to.equal(115.5); expect(telemetry.throttle_time_number_s.max).to.equal(600); // schedule interval stats @@ -281,8 +282,8 @@ export default function createAlertingTelemetryTests({ getService }: FtrProvider expect(telemetry.schedule_time_number_s.max).to.equal(300); // attached connectors stats - expect(telemetry.connectors_per_alert.min).to.equal(1); - expect(telemetry.connectors_per_alert.avg).to.equal(1.5); + expect(telemetry.connectors_per_alert.min).to.equal(0); + expect(telemetry.connectors_per_alert.avg).to.equal(1); expect(telemetry.connectors_per_alert.max).to.equal(3); // number of spaces with rules @@ -290,7 +291,7 @@ export default function createAlertingTelemetryTests({ getService }: FtrProvider // number of rule executions - just checking for non-zero as we can't set an exact number // each rule should have had a chance to execute once - expect(telemetry.count_rules_executions_per_day >= 18).to.be(true); + expect(telemetry.count_rules_executions_per_day >= 21).to.be(true); // number of rule executions broken down by rule type expect(telemetry.count_by_type.test__onlyContextVariables >= 3).to.be(true); @@ -298,6 +299,7 @@ export default function createAlertingTelemetryTests({ getService }: FtrProvider expect(telemetry.count_by_type.test__throw >= 3).to.be(true); expect(telemetry.count_by_type.test__noop >= 3).to.be(true); expect(telemetry.count_by_type.test__multipleSearches >= 3).to.be(true); + expect(telemetry.count_by_type['test__cumulative-firing'] >= 3).to.be(true); // average execution time - just checking for non-zero as we can't set an exact number expect(telemetry.avg_execution_time_per_day > 0).to.be(true); @@ -312,6 +314,9 @@ export default function createAlertingTelemetryTests({ getService }: FtrProvider expect(telemetry.avg_execution_time_by_type_per_day.test__throw > 0).to.be(true); expect(telemetry.avg_execution_time_by_type_per_day.test__noop > 0).to.be(true); expect(telemetry.avg_execution_time_by_type_per_day.test__multipleSearches > 0).to.be(true); + expect(telemetry.avg_execution_time_by_type_per_day['test__cumulative-firing'] > 0).to.be( + true + ); // average es search time - just checking for non-zero as we can't set an exact number expect(telemetry.avg_es_search_duration_per_day > 0).to.be(true); @@ -325,6 +330,9 @@ export default function createAlertingTelemetryTests({ getService }: FtrProvider ).to.be(true); expect(telemetry.avg_es_search_duration_by_type_per_day.test__throw === 0).to.be(true); expect(telemetry.avg_es_search_duration_by_type_per_day.test__noop === 0).to.be(true); + expect( + telemetry.avg_es_search_duration_by_type_per_day['test__cumulative-firing'] === 0 + ).to.be(true); // rule type that performs ES search expect(telemetry.avg_es_search_duration_by_type_per_day.test__multipleSearches > 0).to.be( @@ -343,6 +351,9 @@ export default function createAlertingTelemetryTests({ getService }: FtrProvider ).to.be(true); expect(telemetry.avg_total_search_duration_by_type_per_day.test__throw === 0).to.be(true); expect(telemetry.avg_total_search_duration_by_type_per_day.test__noop === 0).to.be(true); + expect( + telemetry.avg_total_search_duration_by_type_per_day['test__cumulative-firing'] === 0 + ).to.be(true); // rule type that performs ES search expect(telemetry.avg_total_search_duration_by_type_per_day.test__multipleSearches > 0).to.be( @@ -368,6 +379,70 @@ export default function createAlertingTelemetryTests({ getService }: FtrProvider expect( telemetry.count_failed_and_unrecognized_rule_tasks_by_status_by_type_per_day ).to.be.empty(); + + // percentile calculations for number of scheduled actions + expect(telemetry.percentile_num_scheduled_actions_per_day.p50 >= 0).to.be(true); + expect(telemetry.percentile_num_scheduled_actions_per_day.p90 > 0).to.be(true); + expect(telemetry.percentile_num_scheduled_actions_per_day.p99 > 0).to.be(true); + + // percentile calculations by rule type. most of these rule types don't schedule actions so they should all be 0 + expect( + telemetry.percentile_num_scheduled_actions_by_type_per_day.p50['example__always-firing'] + ).to.equal(0); + expect( + telemetry.percentile_num_scheduled_actions_by_type_per_day.p90['example__always-firing'] + ).to.equal(0); + expect( + telemetry.percentile_num_scheduled_actions_by_type_per_day.p99['example__always-firing'] + ).to.equal(0); + + expect( + telemetry.percentile_num_scheduled_actions_by_type_per_day.p50.test__onlyContextVariables + ).to.equal(0); + expect( + telemetry.percentile_num_scheduled_actions_by_type_per_day.p90.test__onlyContextVariables + ).to.equal(0); + expect( + telemetry.percentile_num_scheduled_actions_by_type_per_day.p99.test__onlyContextVariables + ).to.equal(0); + + expect(telemetry.percentile_num_scheduled_actions_by_type_per_day.p50.test__noop).to.equal(0); + expect(telemetry.percentile_num_scheduled_actions_by_type_per_day.p90.test__noop).to.equal(0); + expect(telemetry.percentile_num_scheduled_actions_by_type_per_day.p99.test__noop).to.equal(0); + + expect(telemetry.percentile_num_scheduled_actions_by_type_per_day.p50.test__throw).to.equal( + 0 + ); + expect(telemetry.percentile_num_scheduled_actions_by_type_per_day.p90.test__throw).to.equal( + 0 + ); + expect(telemetry.percentile_num_scheduled_actions_by_type_per_day.p99.test__throw).to.equal( + 0 + ); + + expect( + telemetry.percentile_num_scheduled_actions_by_type_per_day.p50.test__multipleSearches + ).to.equal(0); + expect( + telemetry.percentile_num_scheduled_actions_by_type_per_day.p90.test__multipleSearches + ).to.equal(0); + expect( + telemetry.percentile_num_scheduled_actions_by_type_per_day.p99.test__multipleSearches + ).to.equal(0); + + // this rule type does schedule actions so should be least 1 action scheduled + expect( + telemetry.percentile_num_scheduled_actions_by_type_per_day.p50['test__cumulative-firing'] >= + 1 + ).to.be(true); + expect( + telemetry.percentile_num_scheduled_actions_by_type_per_day.p90['test__cumulative-firing'] >= + 1 + ).to.be(true); + expect( + telemetry.percentile_num_scheduled_actions_by_type_per_day.p99['test__cumulative-firing'] >= + 1 + ).to.be(true); }); }); } diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/builtin_alert_types/es_query/alert.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/builtin_alert_types/es_query/alert.ts index 2a2fdbcf9e4d2..e62ad1db4a652 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/builtin_alert_types/es_query/alert.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/builtin_alert_types/es_query/alert.ts @@ -32,6 +32,7 @@ const ES_GROUPS_TO_WRITE = 3; export default function alertTests({ getService }: FtrProviderContext) { const supertest = getService('supertest'); const retry = getService('retry'); + const indexPatterns = getService('indexPatterns'); const es = getService('es'); const esTestIndexTool = new ESTestIndexTool(es, retry); const esTestIndexToolOutput = new ESTestIndexTool(es, retry, ES_TEST_OUTPUT_INDEX_NAME); @@ -61,180 +62,357 @@ export default function alertTests({ getService }: FtrProviderContext) { await esTestIndexToolOutput.destroy(); }); - it('runs correctly: threshold on hit count < >', async () => { - // write documents from now to the future end date in groups - createEsDocumentsInGroups(ES_GROUPS_TO_WRITE); - - await createAlert({ - name: 'never fire', - esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, - size: 100, - thresholdComparator: '<', - threshold: [0], - }); - - await createAlert({ - name: 'always fire', - esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, - size: 100, - thresholdComparator: '>', - threshold: [-1], - }); - - const docs = await waitForDocs(2); - for (let i = 0; i < docs.length; i++) { - const doc = docs[i]; - const { previousTimestamp, hits } = doc._source; - const { name, title, message } = doc._source.params; - - expect(name).to.be('always fire'); - expect(title).to.be(`alert 'always fire' matched query`); - const messagePattern = - /alert 'always fire' is active:\n\n- Value: \d+\n- Conditions Met: Number of matching documents is greater than -1 over 15s\n- Timestamp: \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/; - expect(message).to.match(messagePattern); - expect(hits).not.to.be.empty(); - - // during the first execution, the latestTimestamp value should be empty - // since this alert always fires, the latestTimestamp value should be updated each execution - if (!i) { - expect(previousTimestamp).to.be.empty(); - } else { - expect(previousTimestamp).not.to.be.empty(); + [ + [ + 'esQuery', + async () => { + await createAlert({ + name: 'never fire', + esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, + size: 100, + thresholdComparator: '<', + threshold: [0], + }); + await createAlert({ + name: 'always fire', + esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, + size: 100, + thresholdComparator: '>', + threshold: [-1], + }); + }, + ] as const, + [ + 'searchSource', + async () => { + const esTestDataView = await indexPatterns.create( + { title: ES_TEST_INDEX_NAME, timeFieldName: 'date' }, + { override: true }, + getUrlPrefix(Spaces.space1.id) + ); + await createAlert({ + name: 'never fire', + size: 100, + thresholdComparator: '<', + threshold: [0], + searchType: 'searchSource', + searchConfiguration: { + query: { + query: '', + language: 'kuery', + }, + index: esTestDataView.id, + filter: [], + }, + }); + await createAlert({ + name: 'always fire', + size: 100, + thresholdComparator: '>', + threshold: [-1], + searchType: 'searchSource', + searchConfiguration: { + query: { + query: '', + language: 'kuery', + }, + index: esTestDataView.id, + filter: [], + }, + }); + }, + ] as const, + ].forEach(([searchType, initData]) => + it(`runs correctly: threshold on hit count < > for ${searchType} search type`, async () => { + // write documents from now to the future end date in groups + createEsDocumentsInGroups(ES_GROUPS_TO_WRITE); + await initData(); + + const docs = await waitForDocs(2); + for (let i = 0; i < docs.length; i++) { + const doc = docs[i]; + const { previousTimestamp, hits } = doc._source; + const { name, title, message } = doc._source.params; + + expect(name).to.be('always fire'); + expect(title).to.be(`alert 'always fire' matched query`); + const messagePattern = + /alert 'always fire' is active:\n\n- Value: \d+\n- Conditions Met: Number of matching documents is greater than -1 over 15s\n- Timestamp: \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/; + expect(message).to.match(messagePattern); + expect(hits).not.to.be.empty(); + + // during the first execution, the latestTimestamp value should be empty + // since this alert always fires, the latestTimestamp value should be updated each execution + if (!i) { + expect(previousTimestamp).to.be.empty(); + } else { + expect(previousTimestamp).not.to.be.empty(); + } } - } - }); - - it('runs correctly: use epoch millis - threshold on hit count < >', async () => { - // write documents from now to the future end date in groups - createEsDocumentsInGroups(ES_GROUPS_TO_WRITE); - - await createAlert({ - name: 'never fire', - esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, - size: 100, - thresholdComparator: '<', - threshold: [0], - timeField: 'date_epoch_millis', - }); - - await createAlert({ - name: 'always fire', - esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, - size: 100, - thresholdComparator: '>', - threshold: [-1], - timeField: 'date_epoch_millis', - }); - - const docs = await waitForDocs(2); - for (let i = 0; i < docs.length; i++) { - const doc = docs[i]; - const { previousTimestamp, hits } = doc._source; - const { name, title, message } = doc._source.params; - - expect(name).to.be('always fire'); - expect(title).to.be(`alert 'always fire' matched query`); - const messagePattern = - /alert 'always fire' is active:\n\n- Value: \d+\n- Conditions Met: Number of matching documents is greater than -1 over 15s\n- Timestamp: \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/; - expect(message).to.match(messagePattern); - expect(hits).not.to.be.empty(); - - // during the first execution, the latestTimestamp value should be empty - // since this alert always fires, the latestTimestamp value should be updated each execution - if (!i) { - expect(previousTimestamp).to.be.empty(); - } else { - expect(previousTimestamp).not.to.be.empty(); + }) + ); + + [ + [ + 'esQuery', + async () => { + await createAlert({ + name: 'never fire', + size: 100, + thresholdComparator: '<', + threshold: [0], + timeField: 'date_epoch_millis', + esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, + }); + await createAlert({ + name: 'always fire', + esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, + size: 100, + thresholdComparator: '>', + threshold: [-1], + timeField: 'date_epoch_millis', + }); + }, + ] as const, + [ + 'searchSource', + async () => { + const esTestDataView = await indexPatterns.create( + { title: ES_TEST_INDEX_NAME, timeFieldName: 'date_epoch_millis' }, + { override: true }, + getUrlPrefix(Spaces.space1.id) + ); + await createAlert({ + name: 'never fire', + size: 100, + thresholdComparator: '<', + threshold: [0], + searchType: 'searchSource', + searchConfiguration: { + query: { + query: '', + language: 'kuery', + }, + index: esTestDataView.id, + filter: [], + }, + }); + await createAlert({ + name: 'always fire', + size: 100, + thresholdComparator: '>', + threshold: [-1], + searchType: 'searchSource', + searchConfiguration: { + query: { + query: '', + language: 'kuery', + }, + index: esTestDataView.id, + filter: [], + }, + }); + }, + ] as const, + ].forEach(([searchType, initData]) => + it(`runs correctly: use epoch millis - threshold on hit count < > for ${searchType} search type`, async () => { + // write documents from now to the future end date in groups + createEsDocumentsInGroups(ES_GROUPS_TO_WRITE); + await initData(); + + const docs = await waitForDocs(2); + for (let i = 0; i < docs.length; i++) { + const doc = docs[i]; + const { previousTimestamp, hits } = doc._source; + const { name, title, message } = doc._source.params; + + expect(name).to.be('always fire'); + expect(title).to.be(`alert 'always fire' matched query`); + const messagePattern = + /alert 'always fire' is active:\n\n- Value: \d+\n- Conditions Met: Number of matching documents is greater than -1 over 15s\n- Timestamp: \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/; + expect(message).to.match(messagePattern); + expect(hits).not.to.be.empty(); + + // during the first execution, the latestTimestamp value should be empty + // since this alert always fires, the latestTimestamp value should be updated each execution + if (!i) { + expect(previousTimestamp).to.be.empty(); + } else { + expect(previousTimestamp).not.to.be.empty(); + } } - } - }); - - it('runs correctly with query: threshold on hit count < >', async () => { - // write documents from now to the future end date in groups - createEsDocumentsInGroups(ES_GROUPS_TO_WRITE); - - const rangeQuery = (rangeThreshold: number) => { - return { - query: { - bool: { - filter: [ - { - range: { - testedValue: { - gte: rangeThreshold, + }) + ); + + [ + [ + 'esQuery', + async () => { + const rangeQuery = (rangeThreshold: number) => { + return { + query: { + bool: { + filter: [ + { + range: { + testedValue: { + gte: rangeThreshold, + }, + }, }, - }, + ], }, - ], + }, + }; + }; + await createAlert({ + name: 'never fire', + esQuery: JSON.stringify(rangeQuery(ES_GROUPS_TO_WRITE * ALERT_INTERVALS_TO_WRITE + 1)), + size: 100, + thresholdComparator: '<', + threshold: [-1], + }); + await createAlert({ + name: 'fires once', + esQuery: JSON.stringify( + rangeQuery(Math.floor((ES_GROUPS_TO_WRITE * ALERT_INTERVALS_TO_WRITE) / 2)) + ), + size: 100, + thresholdComparator: '>=', + threshold: [0], + }); + }, + ] as const, + [ + 'searchSource', + async () => { + const esTestDataView = await indexPatterns.create( + { title: ES_TEST_INDEX_NAME, timeFieldName: 'date' }, + { override: true }, + getUrlPrefix(Spaces.space1.id) + ); + await createAlert({ + name: 'never fire', + size: 100, + thresholdComparator: '<', + threshold: [-1], + searchType: 'searchSource', + searchConfiguration: { + query: { + query: `testedValue > ${ES_GROUPS_TO_WRITE * ALERT_INTERVALS_TO_WRITE + 1}`, + language: 'kuery', + }, + index: esTestDataView.id, + filter: [], }, - }, - }; - }; - - await createAlert({ - name: 'never fire', - esQuery: JSON.stringify(rangeQuery(ES_GROUPS_TO_WRITE * ALERT_INTERVALS_TO_WRITE + 1)), - size: 100, - thresholdComparator: '<', - threshold: [-1], - }); - - await createAlert({ - name: 'fires once', - esQuery: JSON.stringify( - rangeQuery(Math.floor((ES_GROUPS_TO_WRITE * ALERT_INTERVALS_TO_WRITE) / 2)) - ), - size: 100, - thresholdComparator: '>=', - threshold: [0], - }); - - const docs = await waitForDocs(1); - for (const doc of docs) { - const { previousTimestamp, hits } = doc._source; - const { name, title, message } = doc._source.params; - - expect(name).to.be('fires once'); - expect(title).to.be(`alert 'fires once' matched query`); - const messagePattern = - /alert 'fires once' is active:\n\n- Value: \d+\n- Conditions Met: Number of matching documents is greater than or equal to 0 over 15s\n- Timestamp: \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/; - expect(message).to.match(messagePattern); - expect(hits).not.to.be.empty(); - expect(previousTimestamp).to.be.empty(); - } - }); - - it('runs correctly: no matches', async () => { - await createAlert({ - name: 'always fire', - esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, - size: 100, - thresholdComparator: '<', - threshold: [1], - }); - - const docs = await waitForDocs(1); - for (let i = 0; i < docs.length; i++) { - const doc = docs[i]; - const { previousTimestamp, hits } = doc._source; - const { name, title, message } = doc._source.params; - - expect(name).to.be('always fire'); - expect(title).to.be(`alert 'always fire' matched query`); - const messagePattern = - /alert 'always fire' is active:\n\n- Value: 0+\n- Conditions Met: Number of matching documents is less than 1 over 15s\n- Timestamp: \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/; - expect(message).to.match(messagePattern); - expect(hits).to.be.empty(); - - // during the first execution, the latestTimestamp value should be empty - // since this alert always fires, the latestTimestamp value should be updated each execution - if (!i) { + }); + await createAlert({ + name: 'fires once', + size: 100, + thresholdComparator: '>=', + threshold: [0], + searchType: 'searchSource', + searchConfiguration: { + query: { + query: `testedValue > ${Math.floor( + (ES_GROUPS_TO_WRITE * ALERT_INTERVALS_TO_WRITE) / 2 + )}`, + language: 'kuery', + }, + index: esTestDataView.id, + filter: [], + }, + }); + }, + ] as const, + ].forEach(([searchType, initData]) => + it(`runs correctly with query: threshold on hit count < > for ${searchType}`, async () => { + // write documents from now to the future end date in groups + createEsDocumentsInGroups(ES_GROUPS_TO_WRITE); + await initData(); + + const docs = await waitForDocs(1); + for (const doc of docs) { + const { previousTimestamp, hits } = doc._source; + const { name, title, message } = doc._source.params; + + expect(name).to.be('fires once'); + expect(title).to.be(`alert 'fires once' matched query`); + const messagePattern = + /alert 'fires once' is active:\n\n- Value: \d+\n- Conditions Met: Number of matching documents is greater than or equal to 0 over 15s\n- Timestamp: \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/; + expect(message).to.match(messagePattern); + expect(hits).not.to.be.empty(); expect(previousTimestamp).to.be.empty(); - } else { - expect(previousTimestamp).not.to.be.empty(); } - } - }); + }) + ); + + [ + [ + 'esQuery', + async () => { + await createAlert({ + name: 'always fire', + esQuery: `{\n \"query\":{\n \"match_all\" : {}\n }\n}`, + size: 100, + thresholdComparator: '<', + threshold: [1], + }); + }, + ] as const, + [ + 'searchSource', + async () => { + const esTestDataView = await indexPatterns.create( + { title: ES_TEST_INDEX_NAME, timeFieldName: 'date' }, + { override: true }, + getUrlPrefix(Spaces.space1.id) + ); + + await createAlert({ + name: 'always fire', + size: 100, + thresholdComparator: '<', + threshold: [1], + searchType: 'searchSource', + searchConfiguration: { + query: { + query: '', + language: 'kuery', + }, + index: esTestDataView.id, + filter: [], + }, + }); + }, + ] as const, + ].forEach(([searchType, initData]) => + it(`runs correctly: no matches for ${searchType} search type`, async () => { + await initData(); + + const docs = await waitForDocs(1); + for (let i = 0; i < docs.length; i++) { + const doc = docs[i]; + const { previousTimestamp, hits } = doc._source; + const { name, title, message } = doc._source.params; + + expect(name).to.be('always fire'); + expect(title).to.be(`alert 'always fire' matched query`); + const messagePattern = + /alert 'always fire' is active:\n\n- Value: 0+\n- Conditions Met: Number of matching documents is less than 1 over 15s\n- Timestamp: \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/; + expect(message).to.match(messagePattern); + expect(hits).to.be.empty(); + + // during the first execution, the latestTimestamp value should be empty + // since this alert always fires, the latestTimestamp value should be updated each execution + if (!i) { + expect(previousTimestamp).to.be.empty(); + } else { + expect(previousTimestamp).not.to.be.empty(); + } + } + }) + ); async function createEsDocumentsInGroups(groups: number) { await createEsDocuments( @@ -257,12 +435,14 @@ export default function alertTests({ getService }: FtrProviderContext) { interface CreateAlertParams { name: string; - timeField?: string; - esQuery: string; size: number; thresholdComparator: string; threshold: number[]; timeWindowSize?: number; + esQuery?: string; + timeField?: string; + searchConfiguration?: unknown; + searchType?: 'searchSource'; } async function createAlert(params: CreateAlertParams): Promise { @@ -288,6 +468,17 @@ export default function alertTests({ getService }: FtrProviderContext) { }, }; + const alertParams = + params.searchType === 'searchSource' + ? { + searchConfiguration: params.searchConfiguration, + } + : { + index: [ES_TEST_INDEX_NAME], + timeField: params.timeField || 'date', + esQuery: params.esQuery, + }; + const { body: createdAlert } = await supertest .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerting/rule`) .set('kbn-xsrf', 'foo') @@ -300,14 +491,13 @@ export default function alertTests({ getService }: FtrProviderContext) { actions: [action], notify_when: 'onActiveAlert', params: { - index: [ES_TEST_INDEX_NAME], - timeField: params.timeField || 'date', - esQuery: params.esQuery, size: params.size, timeWindowSize: params.timeWindowSize || ALERT_INTERVAL_SECONDS * 5, timeWindowUnit: 's', thresholdComparator: params.thresholdComparator, threshold: params.threshold, + searchType: params.searchType, + ...alertParams, }, }) .expect(200); diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/get_execution_log.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/get_execution_log.ts index 17e2a4c395989..7b4463996edf3 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/get_execution_log.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/get_execution_log.ts @@ -126,6 +126,32 @@ export default function createGetExecutionLogTests({ getService }: FtrProviderCo expect(response.body.errors).to.eql([]); }); + it('gets execution log for rule that is currently running', async () => { + const { body: createdRule } = await supertest + .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerting/rule`) + .set('kbn-xsrf', 'foo') + .send(getTestRuleData({ rule_type_id: 'test.longRunning', params: { delay: 120000 } })) + .expect(200); + objectRemover.add(Spaces.space1.id, createdRule.id, 'rule', 'alerting'); + + // wait for execute-start event that signals rule has started running + await waitForEvents(createdRule.id, 'alerting', new Map([['execute-start', { gte: 1 }]])); + + const response = await supertest.get( + `${getUrlPrefix(Spaces.space1.id)}/internal/alerting/rule/${ + createdRule.id + }/_execution_log?date_start=${dateStart}` + ); + + expect(response.status).to.eql(200); + + // since these events should have been excluded from the agg, should return empty + expect(response.body.total).to.eql(0); + expect(response.body.data).to.eql([]); + expect(response.body.totalErrors).to.eql(0); + expect(response.body.errors).to.eql([]); + }); + it('gets execution log for rule that performs ES searches', async () => { const { body: createdRule } = await supertest .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerting/rule`) diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/index.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/index.ts index 3007e37395156..bdc5a6c5ef646 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/index.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/index.ts @@ -11,8 +11,8 @@ import { buildUp, tearDown } from '..'; // eslint-disable-next-line import/no-default-export export default function alertingTests({ loadTestFile, getService }: FtrProviderContext) { describe('Alerting', () => { - before(async () => buildUp(getService)); - after(async () => tearDown(getService)); + before(async () => await buildUp(getService)); + after(async () => await tearDown(getService)); loadTestFile(require.resolve('./aggregate')); loadTestFile(require.resolve('./create')); diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/migrations.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/migrations.ts index 9bcce86b57fe6..23200cdab110a 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/migrations.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/migrations.ts @@ -9,7 +9,7 @@ import expect from '@kbn/expect'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { getUrlPrefix } from '../../../common/lib'; import { FtrProviderContext } from '../../../common/ftr_provider_context'; -import type { RawRule, RawAlertAction } from '../../../../../plugins/alerting/server/types'; +import type { RawRule, RawRuleAction } from '../../../../../plugins/alerting/server/types'; import { FILEBEAT_7X_INDICATOR_PATH } from '../../../../../plugins/alerting/server/saved_objects/migrations'; // eslint-disable-next-line import/no-default-export @@ -243,7 +243,7 @@ export default function createGetTests({ getService }: FtrProviderContext) { expect(searchResult.statusCode).to.equal(200); expect((searchResult.body.hits.total as estypes.SearchTotalHits).value).to.equal(1); const hit = searchResult.body.hits.hits[0]; - expect((hit!._source!.alert! as RawRule).actions! as RawAlertAction[]).to.eql([ + expect((hit!._source!.alert! as RawRule).actions! as RawRuleAction[]).to.eql([ { actionRef: 'action_0', actionTypeId: 'test.noop', diff --git a/x-pack/test/api_integration/apis/index.ts b/x-pack/test/api_integration/apis/index.ts index b37d88a5dc426..ec964f97922ad 100644 --- a/x-pack/test/api_integration/apis/index.ts +++ b/x-pack/test/api_integration/apis/index.ts @@ -35,5 +35,6 @@ export default function ({ loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./file_upload')); loadTestFile(require.resolve('./ml')); loadTestFile(require.resolve('./watcher')); + loadTestFile(require.resolve('./logs_ui')); }); } diff --git a/x-pack/test/api_integration/apis/lens/field_stats.ts b/x-pack/test/api_integration/apis/lens/field_stats.ts index 5090fe14576d5..4d38b54b02252 100644 --- a/x-pack/test/api_integration/apis/lens/field_stats.ts +++ b/x-pack/test/api_integration/apis/lens/field_stats.ts @@ -17,6 +17,7 @@ const COMMON_HEADERS = { export default ({ getService }: FtrProviderContext) => { const esArchiver = getService('esArchiver'); + const kibanaServer = getService('kibanaServer'); const supertest = getService('supertest'); describe('index stats apis', () => { @@ -29,10 +30,13 @@ export default ({ getService }: FtrProviderContext) => { describe('field distribution', () => { before(async () => { - await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/visualize/default'); + await kibanaServer.savedObjects.cleanStandardList(); + await kibanaServer.importExport.load( + 'x-pack/test/functional/fixtures/kbn_archiver/visualize/default' + ); }); after(async () => { - await esArchiver.unload('x-pack/test/functional/es_archives/visualize/default'); + await kibanaServer.savedObjects.cleanStandardList(); }); it('should return a 404 for missing index patterns', async () => { diff --git a/x-pack/test/api_integration/apis/lens/legacy_existing_fields.ts b/x-pack/test/api_integration/apis/lens/legacy_existing_fields.ts index 370807c99d806..6963df17ddedd 100644 --- a/x-pack/test/api_integration/apis/lens/legacy_existing_fields.ts +++ b/x-pack/test/api_integration/apis/lens/legacy_existing_fields.ts @@ -165,6 +165,10 @@ export default ({ getService }: FtrProviderContext) => { before(async () => { await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/logstash_functional'); await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/visualize/default'); + await kibanaServer.savedObjects.cleanStandardList(); + await kibanaServer.importExport.load( + 'x-pack/test/functional/fixtures/kbn_archiver/visualize/default' + ); await kibanaServer.uiSettings.update({ 'lens:useFieldExistenceSampling': true, }); @@ -172,6 +176,7 @@ export default ({ getService }: FtrProviderContext) => { after(async () => { await esArchiver.unload('x-pack/test/functional/es_archives/logstash_functional'); await esArchiver.unload('x-pack/test/functional/es_archives/visualize/default'); + await kibanaServer.savedObjects.cleanStandardList(); await kibanaServer.uiSettings.update({ 'lens:useFieldExistenceSampling': false, }); diff --git a/x-pack/test/api_integration/apis/logs_ui/index.ts b/x-pack/test/api_integration/apis/logs_ui/index.ts new file mode 100644 index 0000000000000..125ca65f52734 --- /dev/null +++ b/x-pack/test/api_integration/apis/logs_ui/index.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 { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ loadTestFile }: FtrProviderContext) { + describe('Logs UI routes', () => { + loadTestFile(require.resolve('./log_views')); + }); +} diff --git a/x-pack/test/api_integration/apis/logs_ui/log_views.ts b/x-pack/test/api_integration/apis/logs_ui/log_views.ts new file mode 100644 index 0000000000000..e2b316218c9fd --- /dev/null +++ b/x-pack/test/api_integration/apis/logs_ui/log_views.ts @@ -0,0 +1,200 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { defaultLogViewId, LogViewAttributes } from '../../../../plugins/infra/common/log_views'; +import { + defaultSourceConfiguration, + infraSourceConfigurationSavedObjectName, + mergeSourceConfiguration, +} from '../../../../plugins/infra/server/lib/sources'; +import { extractSavedObjectReferences } from '../../../../plugins/infra/server/lib/sources/saved_object_references'; +import { logViewSavedObjectName } from '../../../../plugins/infra/server/saved_objects/log_view'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getService }: FtrProviderContext) { + const logViewsService = getService('infraLogViews'); + const kibanaServer = getService('kibanaServer'); + + describe('log view', () => { + describe('GET', () => { + before(async () => { + await kibanaServer.savedObjects.clean({ + types: [infraSourceConfigurationSavedObjectName, logViewSavedObjectName], + }); + }); + + afterEach(async () => { + await kibanaServer.savedObjects.clean({ + types: [infraSourceConfigurationSavedObjectName, logViewSavedObjectName], + }); + }); + + it('falls back to the static infra source default', async () => { + const logView = await logViewsService.getLogView('NONEXISTENT_LOG_VIEW'); + expect(logView.data.origin).to.eql('infra-source-fallback'); + }); + + it('falls back to a stored infra source', async () => { + await kibanaServer.savedObjects.create({ + id: 'default', + type: infraSourceConfigurationSavedObjectName, + overwrite: true, + ...extractSavedObjectReferences( + mergeSourceConfiguration(defaultSourceConfiguration, { + name: 'Test Infra Source', + logIndices: { type: 'index_pattern', indexPatternId: 'NONEXISTENT_INDEX_PATTERN' }, + }) + ), + }); + const logView = await logViewsService.getLogView('default'); + expect(logView.data.origin).to.eql('infra-source-stored'); + expect(logView.data.attributes.name).to.eql('Test Infra Source'); + expect(logView.data.attributes.logIndices).to.eql({ + type: 'data_view', + dataViewId: 'NONEXISTENT_INDEX_PATTERN', + }); + }); + }); + + describe('PUT', () => { + before(async () => { + await kibanaServer.savedObjects.clean({ + types: [infraSourceConfigurationSavedObjectName, logViewSavedObjectName], + }); + }); + + afterEach(async () => { + await kibanaServer.savedObjects.clean({ + types: [infraSourceConfigurationSavedObjectName, logViewSavedObjectName], + }); + }); + + it('stores new log views', async () => { + const logViewAttributes: Partial = { + name: 'Test Log View 1', + description: 'Test Description 1', + logIndices: { type: 'data_view', dataViewId: 'NONEXISTENT_DATA_VIEW' }, + logColumns: [], + }; + + const storedLogView = await logViewsService.putLogView('TEST_LOG_VIEW_1', { + attributes: logViewAttributes, + }); + + expect(storedLogView.data.attributes).to.eql(logViewAttributes); + + const fetchedLogView = await logViewsService.getLogView('TEST_LOG_VIEW_1'); + + expect(fetchedLogView.data.attributes).to.eql(logViewAttributes); + }); + + it('stores new partial log views with default attributes', async () => { + const storedLogView = await logViewsService.putLogView('TEST_LOG_VIEW_1', { + attributes: {}, + }); + + expect(storedLogView.data.attributes.name).to.be.a('string'); + expect(storedLogView.data.attributes.description).to.be.a('string'); + expect(storedLogView.data.attributes.logIndices.type).to.be.a('string'); + expect(storedLogView.data.attributes.logColumns).to.be.an('array'); + expect(storedLogView.data.attributes.logColumns).to.not.be.empty(); + + const fetchedLogView = await logViewsService.getLogView('TEST_LOG_VIEW_1'); + + expect(fetchedLogView.data.attributes.name).to.be.a('string'); + expect(fetchedLogView.data.attributes.description).to.be.a('string'); + expect(fetchedLogView.data.attributes.logIndices.type).to.be.a('string'); + expect(fetchedLogView.data.attributes.logColumns).to.be.an('array'); + expect(fetchedLogView.data.attributes.logColumns).to.not.be.empty(); + }); + + it('overwrites existing log views', async () => { + const initialLogViewAttributes: Partial = { + name: 'Test Log View 1', + description: 'Test Description 1', + logIndices: { type: 'data_view', dataViewId: 'NONEXISTENT_DATA_VIEW' }, + logColumns: [], + }; + const changedLogViewAttributes: Partial = { + name: 'Test Log View 1A', + description: 'Test Description 1A', + logIndices: { type: 'data_view', dataViewId: 'NONEXISTENT_DATA_VIEW_A' }, + logColumns: [{ timestampColumn: { id: 'TIMESTAMP_COLUMN' } }], + }; + + const initialStoredLogView = await logViewsService.putLogView('TEST_LOG_VIEW_1', { + attributes: initialLogViewAttributes, + }); + + expect(initialStoredLogView.data.attributes).to.eql(initialLogViewAttributes); + + const changedStoredLogView = await logViewsService.putLogView('TEST_LOG_VIEW_1', { + attributes: changedLogViewAttributes, + }); + + expect(changedStoredLogView.data.attributes).to.eql(changedLogViewAttributes); + }); + + it('overwrites existing default log view', async () => { + const oldestLogViewAttributes: Partial = { + name: 'Oldest Log View 1', + description: 'Oldest Description 1', + logIndices: { type: 'data_view', dataViewId: 'NONEXISTENT_DATA_VIEW' }, + logColumns: [], + }; + const newerLogViewAttributes: Partial = { + name: 'Newer Log View 1', + description: 'Newer Description 1', + logIndices: { type: 'data_view', dataViewId: 'NONEXISTENT_DATA_VIEW' }, + logColumns: [], + }; + const newestLogViewAttributes: Partial = { + name: 'Newest Log View 1A', + description: 'Newest Description 1A', + logIndices: { type: 'data_view', dataViewId: 'NONEXISTENT_DATA_VIEW_A' }, + logColumns: [{ timestampColumn: { id: 'TIMESTAMP_COLUMN' } }], + }; + + // initially this is the default view + const oldestStoredLogView = await logViewsService.putLogView('OLDEST_LOG_VIEW_ID', { + attributes: oldestLogViewAttributes, + }); + + // check that it's interpreted as the default view + const fetchedOldestLogView = await logViewsService.getLogView(defaultLogViewId); + + expect(oldestStoredLogView).to.eql(fetchedOldestLogView); + + // this becomes the default view now + const newerStoredLogView = await logViewsService.putLogView('NEWER_LOG_VIEW_ID', { + attributes: newerLogViewAttributes, + }); + + expect(newerStoredLogView.data.attributes).to.eql(newerLogViewAttributes); + + // this update should change the newer view + const newestStoredLogView = await logViewsService.putLogView(defaultLogViewId, { + attributes: newestLogViewAttributes, + }); + + expect(newestStoredLogView.data.attributes).to.eql(newestLogViewAttributes); + + // check that default id translation works + expect(newerStoredLogView.data.id).to.eql(newestStoredLogView.data.id); + + // check that the oldest view is unchanged + const refetchedOldestLogView = await logViewsService.getLogView('OLDEST_LOG_VIEW_ID'); + expect(refetchedOldestLogView).to.eql(fetchedOldestLogView); + + // check that the newer view has been changed + const refetchedNewerLogView = await logViewsService.getLogView('NEWER_LOG_VIEW_ID'); + expect(refetchedNewerLogView).to.eql(newestStoredLogView); + }); + }); + }); +} diff --git a/x-pack/test/api_integration/apis/metrics_ui/index.js b/x-pack/test/api_integration/apis/metrics_ui/index.js index 77560d966350e..150a123121051 100644 --- a/x-pack/test/api_integration/apis/metrics_ui/index.js +++ b/x-pack/test/api_integration/apis/metrics_ui/index.js @@ -9,7 +9,6 @@ export default function ({ loadTestFile }) { describe('MetricsUI Endpoints', () => { loadTestFile(require.resolve('./metadata')); loadTestFile(require.resolve('./log_entry_highlights')); - loadTestFile(require.resolve('./log_sources')); loadTestFile(require.resolve('./log_summary')); loadTestFile(require.resolve('./metrics')); loadTestFile(require.resolve('./sources')); diff --git a/x-pack/test/api_integration/apis/metrics_ui/inventory_threshold_alert.ts b/x-pack/test/api_integration/apis/metrics_ui/inventory_threshold_alert.ts index 0deff26e00aad..75869e37199c5 100644 --- a/x-pack/test/api_integration/apis/metrics_ui/inventory_threshold_alert.ts +++ b/x-pack/test/api_integration/apis/metrics_ui/inventory_threshold_alert.ts @@ -93,7 +93,7 @@ export default function ({ getService }: FtrProviderContext) { source, logQueryFields: void 0, compositeSize: 10000, - startTime: DATES['8.0.0'].hosts_only.max, + executionTimestamp: new Date(DATES['8.0.0'].hosts_only.max), logger, }; @@ -232,6 +232,132 @@ export default function ({ getService }: FtrProviderContext) { }); }); + describe('Custom rate metric per host', () => { + before(() => esArchiver.load('x-pack/test/functional/es_archives/infra/8.0.0/hosts_only')); + after(() => esArchiver.unload('x-pack/test/functional/es_archives/infra/8.0.0/hosts_only')); + it('should work FOR LAST 1 minute', async () => { + const results = await evaluateCondition({ + ...baseOptions, + condition: { + ...baseCondition, + metric: 'custom', + customMetric: { + type: 'custom', + id: 'alert-custom-metric', + aggregation: 'rate', + field: 'system.network.in.bytes', + label: 'RX', + }, + threshold: [1], + }, + esClient, + }); + expect(results).to.eql({ + 'host-0': { + metric: 'custom', + timeSize: 1, + timeUnit: 'm', + sourceId: 'default', + threshold: [1], + comparator: '>', + customMetric: { + type: 'custom', + id: 'alert-custom-metric', + aggregation: 'rate', + field: 'system.network.in.bytes', + label: 'RX', + }, + shouldFire: true, + shouldWarn: false, + isNoData: false, + isError: false, + currentValue: 833.3333333333334, + }, + 'host-1': { + metric: 'custom', + timeSize: 1, + timeUnit: 'm', + sourceId: 'default', + threshold: [1], + comparator: '>', + customMetric: { + type: 'custom', + id: 'alert-custom-metric', + aggregation: 'rate', + field: 'system.network.in.bytes', + label: 'RX', + }, + shouldFire: true, + shouldWarn: false, + isNoData: false, + isError: false, + currentValue: 1000, + }, + }); + }); + it('should work FOR LAST 5 minute', async () => { + const results = await evaluateCondition({ + ...baseOptions, + condition: { + ...baseCondition, + metric: 'custom', + customMetric: { + type: 'custom', + id: 'alert-custom-metric', + aggregation: 'rate', + field: 'system.network.in.bytes', + label: 'RX', + }, + threshold: [1], + timeSize: 5, + }, + esClient, + }); + expect(results).to.eql({ + 'host-0': { + metric: 'custom', + timeSize: 5, + timeUnit: 'm', + sourceId: 'default', + threshold: [1], + comparator: '>', + customMetric: { + type: 'custom', + id: 'alert-custom-metric', + aggregation: 'rate', + field: 'system.network.in.bytes', + label: 'RX', + }, + shouldFire: true, + shouldWarn: false, + isNoData: false, + isError: false, + currentValue: 1133.3333333333333, + }, + 'host-1': { + metric: 'custom', + timeSize: 5, + timeUnit: 'm', + sourceId: 'default', + threshold: [1], + comparator: '>', + customMetric: { + type: 'custom', + id: 'alert-custom-metric', + aggregation: 'rate', + field: 'system.network.in.bytes', + label: 'RX', + }, + shouldFire: true, + shouldWarn: false, + isNoData: false, + isError: false, + currentValue: 1133.3333333333333, + }, + }); + }); + }); + describe('Log rate per host', () => { before(() => esArchiver.load('x-pack/test/functional/es_archives/infra/8.0.0/hosts_only')); after(() => esArchiver.unload('x-pack/test/functional/es_archives/infra/8.0.0/hosts_only')); @@ -325,7 +451,7 @@ export default function ({ getService }: FtrProviderContext) { it('should work FOR LAST 1 minute', async () => { const results = await evaluateCondition({ ...baseOptions, - startTime: DATES['8.0.0'].pods_only.max, + executionTimestamp: new Date(DATES['8.0.0'].pods_only.max), nodeType: 'pod' as InventoryItemType, condition: { ...baseCondition, @@ -366,7 +492,7 @@ export default function ({ getService }: FtrProviderContext) { it('should work FOR LAST 5 minute', async () => { const results = await evaluateCondition({ ...baseOptions, - startTime: DATES['8.0.0'].pods_only.max, + executionTimestamp: new Date(DATES['8.0.0'].pods_only.max), logQueryFields: { indexPattern: 'metricbeat-*' }, nodeType: 'pod', condition: { diff --git a/x-pack/test/api_integration/apis/metrics_ui/log_sources.ts b/x-pack/test/api_integration/apis/metrics_ui/log_sources.ts deleted file mode 100644 index 516c262429299..0000000000000 --- a/x-pack/test/api_integration/apis/metrics_ui/log_sources.ts +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import expect from '@kbn/expect'; -import { beforeEach } from 'mocha'; -import { - getLogSourceConfigurationSuccessResponsePayloadRT, - patchLogSourceConfigurationSuccessResponsePayloadRT, -} from '../../../../plugins/infra/common/http_api/log_sources'; -import { decodeOrThrow } from '../../../../plugins/infra/common/runtime_types'; -import { FtrProviderContext } from '../../ftr_provider_context'; - -export default function ({ getService }: FtrProviderContext) { - const esArchiver = getService('esArchiver'); - const logSourceConfiguration = getService('infraLogSourceConfiguration'); - - describe('log sources api', () => { - before(() => esArchiver.load('x-pack/test/functional/es_archives/infra/metrics_and_logs')); - after(() => esArchiver.unload('x-pack/test/functional/es_archives/infra/metrics_and_logs')); - beforeEach(() => esArchiver.load('x-pack/test/functional/es_archives/empty_kibana')); - afterEach(() => esArchiver.unload('x-pack/test/functional/es_archives/empty_kibana')); - - describe('source configuration get method for non-existant source', () => { - it('returns the default source configuration', async () => { - const response = await logSourceConfiguration - .createGetLogSourceConfigurationAgent('default') - .expect(200); - - const { - data: { configuration, origin }, - } = decodeOrThrow(getLogSourceConfigurationSuccessResponsePayloadRT)(response.body); - - expect(origin).to.be('fallback'); - expect(configuration.name).to.be('Default'); - expect(configuration.logIndices).to.eql({ - type: 'index_name', - indexName: 'logs-*,filebeat-*,kibana_sample_data_logs*', - }); - expect(configuration.logColumns[0]).to.have.key('timestampColumn'); - expect(configuration.logColumns[1]).to.have.key('fieldColumn'); - expect(configuration.logColumns[2]).to.have.key('messageColumn'); - }); - }); - - describe('source configuration patch method for non-existant source', () => { - it('creates a source configuration', async () => { - const response = await logSourceConfiguration - .createUpdateLogSourceConfigurationAgent('default', { - name: 'NAME', - description: 'DESCRIPTION', - logIndices: { - type: 'index_pattern', - indexPatternId: 'kip-id', - }, - logColumns: [ - { - messageColumn: { - id: 'MESSAGE_COLUMN', - }, - }, - ], - }) - .expect(200); - - // check direct response - const { - data: { configuration, origin }, - } = decodeOrThrow(patchLogSourceConfigurationSuccessResponsePayloadRT)(response.body); - - expect(configuration.name).to.be('NAME'); - expect(origin).to.be('stored'); - expect(configuration.logIndices).to.eql({ - type: 'index_pattern', - indexPatternId: 'kip-id', - }); - expect(configuration.logColumns).to.have.length(1); - expect(configuration.logColumns[0]).to.have.key('messageColumn'); - - // check for persistence - const { - data: { configuration: persistedConfiguration }, - } = await logSourceConfiguration.getLogSourceConfiguration('default'); - - expect(configuration).to.eql(persistedConfiguration); - }); - - it('creates a source configuration with default values for unspecified properties', async () => { - const response = await logSourceConfiguration - .createUpdateLogSourceConfigurationAgent('default', {}) - .expect(200); - - const { - data: { configuration, origin }, - } = decodeOrThrow(patchLogSourceConfigurationSuccessResponsePayloadRT)(response.body); - - expect(configuration.name).to.be('Default'); - expect(origin).to.be('stored'); - expect(configuration.logIndices).eql({ - type: 'index_name', - indexName: 'logs-*,filebeat-*,kibana_sample_data_logs*', - }); - expect(configuration.logColumns).to.have.length(3); - expect(configuration.logColumns[0]).to.have.key('timestampColumn'); - expect(configuration.logColumns[1]).to.have.key('fieldColumn'); - expect(configuration.logColumns[2]).to.have.key('messageColumn'); - - // check for persistence - const { - data: { configuration: persistedConfiguration, origin: persistedOrigin }, - } = await logSourceConfiguration.getLogSourceConfiguration('default'); - - expect(persistedOrigin).to.be('stored'); - expect(configuration).to.eql(persistedConfiguration); - }); - }); - - describe('source configuration patch method for existing source', () => { - beforeEach(async () => { - await logSourceConfiguration.updateLogSourceConfiguration('default', {}); - }); - - it('updates a source configuration', async () => { - const response = await logSourceConfiguration - .createUpdateLogSourceConfigurationAgent('default', { - name: 'NAME', - description: 'DESCRIPTION', - logIndices: { - type: 'index_pattern', - indexPatternId: 'kip-id', - }, - logColumns: [ - { - messageColumn: { - id: 'MESSAGE_COLUMN', - }, - }, - ], - }) - .expect(200); - - const { - data: { configuration, origin }, - } = decodeOrThrow(patchLogSourceConfigurationSuccessResponsePayloadRT)(response.body); - - expect(configuration.name).to.be('NAME'); - expect(origin).to.be('stored'); - expect(configuration.logIndices).to.eql({ - type: 'index_pattern', - indexPatternId: 'kip-id', - }); - expect(configuration.logColumns).to.have.length(1); - expect(configuration.logColumns[0]).to.have.key('messageColumn'); - }); - - it('partially updates a source configuration', async () => { - const response = await logSourceConfiguration - .createUpdateLogSourceConfigurationAgent('default', { - name: 'NAME', - }) - .expect(200); - - const { - data: { configuration, origin }, - } = decodeOrThrow(patchLogSourceConfigurationSuccessResponsePayloadRT)(response.body); - - expect(configuration.name).to.be('NAME'); - expect(origin).to.be('stored'); - expect(configuration.logIndices).to.eql({ - type: 'index_name', - indexName: 'logs-*,filebeat-*,kibana_sample_data_logs*', - }); - expect(configuration.logColumns).to.have.length(3); - expect(configuration.logColumns[0]).to.have.key('timestampColumn'); - expect(configuration.logColumns[1]).to.have.key('fieldColumn'); - expect(configuration.logColumns[2]).to.have.key('messageColumn'); - }); - }); - }); -} diff --git a/x-pack/test/api_integration/apis/security_solution/authentications.ts b/x-pack/test/api_integration/apis/security_solution/authentications.ts index 8254ce034d2a5..920be90ba4227 100644 --- a/x-pack/test/api_integration/apis/security_solution/authentications.ts +++ b/x-pack/test/api_integration/apis/security_solution/authentications.ts @@ -7,8 +7,11 @@ import expect from '@kbn/expect'; import { - HostAuthenticationsStrategyResponse, - HostsQueries, + AuthStackByField, + Direction, + UserAuthenticationsRequestOptions, + UserAuthenticationsStrategyResponse, + UsersQueries, } from '../../../../plugins/security_solution/common/search_strategy'; import { FtrProviderContext } from '../../ftr_provider_context'; @@ -35,25 +38,29 @@ export default function ({ getService }: FtrProviderContext) { ); it('Make sure that we get Authentication data', async () => { - const authentications = await bsearch.send({ - supertest, - options: { - factoryQueryType: HostsQueries.authentications, - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - pagination: { - activePage: 0, - cursorStart: 0, - fakePossibleCount: 3, - querySize: 1, - }, - defaultIndex: ['auditbeat-*'], - docValueFields: [], - inspect: false, + const requestOptions: UserAuthenticationsRequestOptions = { + factoryQueryType: UsersQueries.authentications, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + pagination: { + activePage: 0, + cursorStart: 0, + fakePossibleCount: 3, + querySize: 1, }, + defaultIndex: ['auditbeat-*'], + docValueFields: [], + stackByField: AuthStackByField.userName, + sort: { field: 'timestamp', direction: Direction.asc }, + filterQuery: '', + }; + + const authentications = await bsearch.send({ + supertest, + options: requestOptions, strategy: 'securitySolutionSearchStrategy', }); @@ -63,25 +70,29 @@ export default function ({ getService }: FtrProviderContext) { }); it('Make sure that pagination is working in Authentications query', async () => { - const authentications = await bsearch.send({ - supertest, - options: { - factoryQueryType: HostsQueries.authentications, - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - pagination: { - activePage: 2, - cursorStart: 1, - fakePossibleCount: 5, - querySize: 2, - }, - defaultIndex: ['auditbeat-*'], - docValueFields: [], - inspect: false, + const requestOptions: UserAuthenticationsRequestOptions = { + factoryQueryType: UsersQueries.authentications, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + pagination: { + activePage: 2, + cursorStart: 1, + fakePossibleCount: 5, + querySize: 2, }, + defaultIndex: ['auditbeat-*'], + docValueFields: [], + stackByField: AuthStackByField.userName, + sort: { field: 'timestamp', direction: Direction.asc }, + filterQuery: '', + }; + + const authentications = await bsearch.send({ + supertest, + options: requestOptions, strategy: 'securitySolutionSearchStrategy', }); diff --git a/x-pack/test/api_integration/services/index.ts b/x-pack/test/api_integration/services/index.ts index cf439eb7cd5a8..5db28d64cf953 100644 --- a/x-pack/test/api_integration/services/index.ts +++ b/x-pack/test/api_integration/services/index.ts @@ -16,7 +16,6 @@ import { SupertestWithoutAuthProvider } from './supertest_without_auth'; import { UsageAPIProvider } from './usage_api'; import { InfraOpsSourceConfigurationProvider } from './infraops_source_configuration'; -import { InfraLogSourceConfigurationProvider } from './infra_log_source_configuration'; import { MachineLearningProvider } from './ml'; import { IngestManagerProvider } from '../../common/services/ingest_manager'; import { TransformProvider } from './transform'; @@ -29,7 +28,6 @@ export const services = { esSupertestWithoutAuth: EsSupertestWithoutAuthProvider, infraOpsSourceConfiguration: InfraOpsSourceConfigurationProvider, - infraLogSourceConfiguration: InfraLogSourceConfigurationProvider, supertestWithoutAuth: SupertestWithoutAuthProvider, usageAPI: UsageAPIProvider, ml: MachineLearningProvider, diff --git a/x-pack/test/api_integration/services/infra_log_source_configuration.ts b/x-pack/test/api_integration/services/infra_log_source_configuration.ts deleted file mode 100644 index cc8eaa81a9e7f..0000000000000 --- a/x-pack/test/api_integration/services/infra_log_source_configuration.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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { - getLogSourceConfigurationPath, - getLogSourceConfigurationSuccessResponsePayloadRT, - PatchLogSourceConfigurationRequestBody, - patchLogSourceConfigurationRequestBodyRT, - patchLogSourceConfigurationResponsePayloadRT, -} from '../../../plugins/infra/common/http_api/log_sources'; -import { decodeOrThrow } from '../../../plugins/infra/common/runtime_types'; -import { FtrProviderContext } from '../ftr_provider_context'; - -export function InfraLogSourceConfigurationProvider({ getService }: FtrProviderContext) { - const supertest = getService('supertest'); - const log = getService('log'); - - const createGetLogSourceConfigurationAgent = (sourceId: string) => - supertest - .get(getLogSourceConfigurationPath(sourceId)) - .set({ - 'kbn-xsrf': 'some-xsrf-token', - }) - .send(); - - const getLogSourceConfiguration = async (sourceId: string) => { - log.debug(`Fetching Logs UI source configuration "${sourceId}"`); - - const response = await createGetLogSourceConfigurationAgent(sourceId); - - return decodeOrThrow(getLogSourceConfigurationSuccessResponsePayloadRT)(response.body); - }; - - const createUpdateLogSourceConfigurationAgent = ( - sourceId: string, - sourceProperties: PatchLogSourceConfigurationRequestBody['data'] - ) => - supertest - .patch(getLogSourceConfigurationPath(sourceId)) - .set({ - 'kbn-xsrf': 'some-xsrf-token', - }) - .send(patchLogSourceConfigurationRequestBodyRT.encode({ data: sourceProperties })); - - const updateLogSourceConfiguration = async ( - sourceId: string, - sourceProperties: PatchLogSourceConfigurationRequestBody['data'] - ) => { - log.debug( - `Updating Logs UI source configuration "${sourceId}" with properties ${JSON.stringify( - sourceProperties - )}` - ); - - const response = await createUpdateLogSourceConfigurationAgent(sourceId, sourceProperties); - - return decodeOrThrow(patchLogSourceConfigurationResponsePayloadRT)(response.body); - }; - - return { - createGetLogSourceConfigurationAgent, - createUpdateLogSourceConfigurationAgent, - getLogSourceConfiguration, - updateLogSourceConfiguration, - }; -} diff --git a/x-pack/test/apm_api_integration/tests/alerts/anomaly_alert.spec.ts b/x-pack/test/apm_api_integration/tests/alerts/anomaly_alert.spec.ts new file mode 100644 index 0000000000000..bd4be58e2bb1c --- /dev/null +++ b/x-pack/test/apm_api_integration/tests/alerts/anomaly_alert.spec.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 { apm, timerange } from '@elastic/apm-synthtrace'; +import datemath from '@elastic/datemath'; +import expect from '@kbn/expect'; +import { range } from 'lodash'; +import { AlertType } from '../../../../plugins/apm/common/alert_types'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { createAndRunApmMlJob } from '../../common/utils/create_and_run_apm_ml_job'; +import { waitForRuleStatus } from './wait_for_rule_status'; + +export default function ApiTest({ getService }: FtrProviderContext) { + const registry = getService('registry'); + const synthtraceEsClient = getService('synthtraceEsClient'); + const ml = getService('ml'); + const supertest = getService('supertest'); + const log = getService('log'); + + registry.when( + 'fetching service anomalies with a trial license', + { config: 'trial', archives: ['apm_mappings_only_8.0.0'] }, + () => { + const spikeStart = datemath.parse('now-2h')!.valueOf(); + const spikeEnd = datemath.parse('now')!.valueOf(); + + const start = datemath.parse('now-2w')!.valueOf(); + const end = datemath.parse('now')!.valueOf(); + + const NORMAL_DURATION = 100; + const NORMAL_RATE = 1; + + let ruleId: string | undefined; + + before(async () => { + const serviceA = apm.service('service-a', 'production', 'java').instance('a'); + + const events = timerange(new Date(start).getTime(), new Date(end).getTime()) + .interval('1m') + .rate(1) + .spans((timestamp) => { + const isInSpike = timestamp >= spikeStart && timestamp < spikeEnd; + const count = isInSpike ? 4 : NORMAL_RATE; + const duration = isInSpike ? 1000 : NORMAL_DURATION; + const outcome = isInSpike ? 'failure' : 'success'; + + return [ + ...range(0, count).flatMap((_) => + serviceA + .transaction('tx', 'request') + .timestamp(timestamp) + .duration(duration) + .outcome(outcome) + .serialize() + ), + ]; + }); + + await synthtraceEsClient.index(events); + await createAndRunApmMlJob({ environment: 'production', ml }); + const { body: createdRule } = await supertest + .post(`/api/alerting/rule`) + .set('kbn-xsrf', 'foo') + .send({ + params: { + environment: 'production', + serviceName: 'service-a', + transactionType: 'request', + windowSize: 30, + windowUnit: 'm', + anomalySeverityType: 'warning', + }, + consumer: 'apm', + schedule: { + interval: '1m', + }, + tags: ['apm', 'service.name:service-a'], + name: 'Latency anomaly | service-a', + rule_type_id: AlertType.Anomaly, + notify_when: 'onActiveAlert', + actions: [], + }); + ruleId = createdRule.id; + }); + + after(async () => { + await synthtraceEsClient.clean(); + await ml.cleanMlIndices(); + await supertest.delete(`/api/alerting/rule/${ruleId}`).set('kbn-xsrf', 'foo'); + }); + + it('checks if alert is active', async () => { + const executionStatus = await waitForRuleStatus({ + id: ruleId, + expectedStatus: 'active', + supertest, + log, + }); + expect(executionStatus.status).to.be('active'); + }); + } + ); +} diff --git a/x-pack/test/apm_api_integration/tests/alerts/wait_for_rule_status.ts b/x-pack/test/apm_api_integration/tests/alerts/wait_for_rule_status.ts new file mode 100644 index 0000000000000..b31f8b70eab10 --- /dev/null +++ b/x-pack/test/apm_api_integration/tests/alerts/wait_for_rule_status.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 { ToolingLog } from '@kbn/dev-utils'; +import expect from '@kbn/expect'; +import type SuperTest from 'supertest'; + +const WAIT_FOR_STATUS_INCREMENT = 500; + +export async function waitForRuleStatus({ + id, + expectedStatus, + waitMillis = 10000, + supertest, + log, +}: { + expectedStatus: string; + supertest: SuperTest.SuperTest; + log: ToolingLog; + waitMillis?: number; + id?: string; +}): Promise> { + if (waitMillis < 0 || !id) { + expect().fail(`waiting for alert ${id} status ${expectedStatus} timed out`); + } + + const response = await supertest.get(`/api/alerting/rule/${id}`); + expect(response.status).to.eql(200); + + const { execution_status: executionStatus } = response.body || {}; + const { status } = executionStatus || {}; + + const message = `waitForStatus(${expectedStatus}): got ${JSON.stringify(executionStatus)}`; + + if (status === expectedStatus) { + return executionStatus; + } + + log.debug(`${message}, retrying`); + + await delay(WAIT_FOR_STATUS_INCREMENT); + return await waitForRuleStatus({ + id, + expectedStatus, + waitMillis: waitMillis - WAIT_FOR_STATUS_INCREMENT, + supertest, + log, + }); +} + +async function delay(millis: number): Promise { + await new Promise((resolve) => setTimeout(resolve, millis)); +} diff --git a/x-pack/test/cases_api_integration/security_and_spaces/tests/common/cases/find_cases.ts b/x-pack/test/cases_api_integration/security_and_spaces/tests/common/cases/find_cases.ts index 89f6f96aeb7d1..5cf7c4947c23c 100644 --- a/x-pack/test/cases_api_integration/security_and_spaces/tests/common/cases/find_cases.ts +++ b/x-pack/test/cases_api_integration/security_and_spaces/tests/common/cases/find_cases.ts @@ -52,6 +52,7 @@ export default ({ getService }: FtrProviderContext): void => { const es = getService('es'); const supertestWithoutAuth = getService('supertestWithoutAuth'); const esArchiver = getService('esArchiver'); + const kibanaServer = getService('kibanaServer'); describe('find_cases', () => { describe('basic tests', () => { @@ -478,6 +479,53 @@ export default ({ getService }: FtrProviderContext): void => { }); }); + describe('range queries', () => { + before(async () => { + await kibanaServer.importExport.load( + 'x-pack/test/functional/fixtures/kbn_archiver/cases/8.2.0/cases_various_dates.json' + ); + }); + + after(async () => { + await kibanaServer.importExport.unload( + 'x-pack/test/functional/fixtures/kbn_archiver/cases/8.2.0/cases_various_dates.json' + ); + await deleteAllCaseItems(es); + }); + + it('returns all cases without a range filter', async () => { + const EXPECTED_CASES = 3; + const cases = await findCases({ supertest }); + + expect(cases.total).to.be(EXPECTED_CASES); + expect(cases.count_open_cases).to.be(EXPECTED_CASES); + expect(cases.cases.length).to.be(EXPECTED_CASES); + }); + + it('respects the range parameters', async () => { + const queries = [ + { expectedCases: 2, query: { from: '2022-03-16' } }, + { expectedCases: 2, query: { to: '2022-03-21' } }, + { expectedCases: 2, query: { from: '2022-03-15', to: '2022-03-21' } }, + ]; + + for (const query of queries) { + const cases = await findCases({ + supertest, + query: query.query, + }); + + expect(cases.total).to.be(query.expectedCases); + expect(cases.count_open_cases).to.be(query.expectedCases); + expect(cases.cases.length).to.be(query.expectedCases); + } + }); + + it('returns a bad request on malformed parameter', async () => { + await findCases({ supertest, query: { from: '<' }, expectedHttpCode: 400 }); + }); + }); + describe('rbac', () => { afterEach(async () => { await deleteAllCaseItems(es); @@ -717,6 +765,40 @@ export default ({ getService }: FtrProviderContext): void => { // Only security solution cases are being returned ensureSavedObjectIsAuthorized(res.cases, 1, ['securitySolutionFixture']); }); + + describe('range queries', () => { + before(async () => { + await kibanaServer.importExport.load( + 'x-pack/test/functional/fixtures/kbn_archiver/cases/8.2.0/cases_various_dates.json', + { space: 'space1' } + ); + }); + + after(async () => { + await kibanaServer.importExport.unload( + 'x-pack/test/functional/fixtures/kbn_archiver/cases/8.2.0/cases_various_dates.json', + { space: 'space1' } + ); + await deleteAllCaseItems(es); + }); + + it('should respect the owner filter when using range queries', async () => { + const res = await findCases({ + supertest: supertestWithoutAuth, + query: { + from: '2022-03-15', + to: '2022-03-21', + }, + auth: { + user: secOnly, + space: 'space1', + }, + }); + + // Only security solution cases are being returned + ensureSavedObjectIsAuthorized(res.cases, 1, ['securitySolutionFixture']); + }); + }); }); }); }; diff --git a/x-pack/test/cases_api_integration/security_and_spaces/tests/common/cases/status/get_status.ts b/x-pack/test/cases_api_integration/security_and_spaces/tests/common/cases/status/get_status.ts index c170dc0ff3ccd..27433c09cd2e0 100644 --- a/x-pack/test/cases_api_integration/security_and_spaces/tests/common/cases/status/get_status.ts +++ b/x-pack/test/cases_api_integration/security_and_spaces/tests/common/cases/status/get_status.ts @@ -34,12 +34,9 @@ import { assertWarningHeader } from '../../../../../common/lib/validation'; export default ({ getService }: FtrProviderContext): void => { const supertest = getService('supertest'); const es = getService('es'); + const kibanaServer = getService('kibanaServer'); describe('get_status', () => { - afterEach(async () => { - await deleteAllCaseItems(es); - }); - it('should return case statuses', async () => { const [, inProgressCase, postedCase] = await Promise.all([ createCase(supertest, postCaseReq), @@ -74,7 +71,58 @@ export default ({ getService }: FtrProviderContext): void => { }); }); + describe('range queries', () => { + before(async () => { + await deleteAllCaseItems(es); + await kibanaServer.importExport.load( + 'x-pack/test/functional/fixtures/kbn_archiver/cases/8.2.0/cases_various_dates.json' + ); + }); + + after(async () => { + await kibanaServer.importExport.unload( + 'x-pack/test/functional/fixtures/kbn_archiver/cases/8.2.0/cases_various_dates.json' + ); + await deleteAllCaseItems(es); + }); + + it('returns all cases without a range filter', async () => { + const statuses = await getAllCasesStatuses({ supertest }); + + expect(statuses).to.eql({ + count_open_cases: 3, + count_closed_cases: 0, + count_in_progress_cases: 0, + }); + }); + + it('respects the range parameters', async () => { + const queries = [ + { expectedCases: 2, query: { from: '2022-03-16' } }, + { expectedCases: 2, query: { to: '2022-03-21' } }, + { expectedCases: 2, query: { from: '2022-03-15', to: '2022-03-21' } }, + ]; + + for (const query of queries) { + const statuses = await getAllCasesStatuses({ supertest, query: query.query }); + expect(statuses).to.eql({ + count_open_cases: query.expectedCases, + count_closed_cases: 0, + count_in_progress_cases: 0, + }); + } + }); + + it('returns a bad request on malformed parameter', async () => { + await getAllCasesStatuses({ supertest, query: { from: '<' }, expectedHttpCode: 400 }); + }); + }); + describe('rbac', () => { + afterEach(async () => { + await deleteAllCaseItems(es); + }); + const supertestWithoutAuth = getService('supertestWithoutAuth'); it('should return the correct status stats', async () => { @@ -183,6 +231,43 @@ export default ({ getService }: FtrProviderContext): void => { }); }); } + + describe('range queries', () => { + before(async () => { + await kibanaServer.importExport.load( + 'x-pack/test/functional/fixtures/kbn_archiver/cases/8.2.0/cases_various_dates.json', + { space: 'space1' } + ); + }); + + after(async () => { + await kibanaServer.importExport.unload( + 'x-pack/test/functional/fixtures/kbn_archiver/cases/8.2.0/cases_various_dates.json', + { space: 'space1' } + ); + await deleteAllCaseItems(es); + }); + + it('should respect the owner filter when using range queries', async () => { + const res = await getAllCasesStatuses({ + supertest: supertestWithoutAuth, + query: { + from: '2022-03-15', + to: '2022-03-21', + }, + auth: { + user: secOnly, + space: 'space1', + }, + }); + + expect(res).to.eql({ + count_open_cases: 1, + count_closed_cases: 0, + count_in_progress_cases: 0, + }); + }); + }); }); describe('deprecations', () => { diff --git a/x-pack/test/common/services/index.ts b/x-pack/test/common/services/index.ts index b015e10309efb..c51fe7a06e6ac 100644 --- a/x-pack/test/common/services/index.ts +++ b/x-pack/test/common/services/index.ts @@ -5,16 +5,16 @@ * 2.0. */ -import { services as kibanaCommonServices } from '../../../../test/common/services'; import { services as kibanaApiIntegrationServices } from '../../../../test/api_integration/services'; - +import { services as kibanaCommonServices } from '../../../../test/common/services'; +import { InfraLogViewsServiceProvider } from './infra_log_views'; import { SpacesServiceProvider } from './spaces'; import { BSecureSearchProvider } from './bsearch_secure'; export const services = { ...kibanaCommonServices, + infraLogViews: InfraLogViewsServiceProvider, supertest: kibanaApiIntegrationServices.supertest, - spaces: SpacesServiceProvider, secureBsearch: BSecureSearchProvider, }; diff --git a/x-pack/test/common/services/infra_log_views.ts b/x-pack/test/common/services/infra_log_views.ts new file mode 100644 index 0000000000000..df7eb96ebc793 --- /dev/null +++ b/x-pack/test/common/services/infra_log_views.ts @@ -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 { + getLogViewResponsePayloadRT, + getLogViewUrl, + PutLogViewRequestPayload, + putLogViewRequestPayloadRT, + putLogViewResponsePayloadRT, +} from '../../../plugins/infra/common/http_api/log_views'; +import { decodeOrThrow } from '../../../plugins/infra/common/runtime_types'; +import { FtrProviderContext } from '../ftr_provider_context'; + +export function InfraLogViewsServiceProvider({ getService }: FtrProviderContext) { + const supertest = getService('supertest'); + const log = getService('log'); + + const createGetLogViewAgent = (logViewId: string) => + supertest + .get(getLogViewUrl(logViewId)) + .set({ + 'kbn-xsrf': 'some-xsrf-token', + }) + .send(); + + const getLogView = async (logViewId: string) => { + log.debug(`Fetching log view "${logViewId}"...`); + + const response = await createGetLogViewAgent(logViewId); + + return decodeOrThrow(getLogViewResponsePayloadRT)(response.body); + }; + + const createPutLogViewAgent = (logViewId: string, payload: PutLogViewRequestPayload) => + supertest + .put(getLogViewUrl(logViewId)) + .set({ + 'kbn-xsrf': 'some-xsrf-token', + }) + .send(putLogViewRequestPayloadRT.encode(payload)); + + const putLogView = async (logViewId: string, payload: PutLogViewRequestPayload) => { + log.debug(`Storing log view "${logViewId}"...`); + + const response = await createPutLogViewAgent(logViewId, payload); + + return decodeOrThrow(putLogViewResponsePayloadRT)(response.body); + }; + + return { + getLogView, + putLogView, + }; +} diff --git a/x-pack/test/functional/apps/lens/index.ts b/x-pack/test/functional/apps/lens/index.ts index 76a193c8a8b25..372d17b473e4d 100644 --- a/x-pack/test/functional/apps/lens/index.ts +++ b/x-pack/test/functional/apps/lens/index.ts @@ -5,84 +5,119 @@ * 2.0. */ +import { EsArchiver } from '@kbn/es-archiver'; import { FtrProviderContext } from '../../ftr_provider_context'; -export default function ({ getService, loadTestFile, getPageObjects }: FtrProviderContext) { +export default ({ getService, loadTestFile, getPageObjects }: FtrProviderContext) => { const browser = getService('browser'); const log = getService('log'); const esArchiver = getService('esArchiver'); const kibanaServer = getService('kibanaServer'); const PageObjects = getPageObjects(['timePicker']); + const config = getService('config'); + let remoteEsArchiver; describe('lens app', () => { + const esArchive = 'x-pack/test/functional/es_archives/logstash_functional'; + const localIndexPatternString = 'logstash-*'; + const remoteIndexPatternString = 'ftr-remote:logstash-*'; + const localFixtures = { + lensBasic: 'x-pack/test/functional/fixtures/kbn_archiver/lens/lens_basic.json', + lensDefault: 'x-pack/test/functional/fixtures/kbn_archiver/lens/default', + }; + + const remoteFixtures = { + lensBasic: 'x-pack/test/functional/fixtures/kbn_archiver/lens/ccs/lens_basic.json', + lensDefault: 'x-pack/test/functional/fixtures/kbn_archiver/lens/ccs/default', + }; + let esNode: EsArchiver; + let fixtureDirs: { + lensBasic: string; + lensDefault: string; + }; + let indexPatternString: string; before(async () => { - log.debug('Starting lens before method'); + await log.debug('Starting lens before method'); await browser.setWindowSize(1280, 1200); - await esArchiver.load('x-pack/test/functional/es_archives/logstash_functional'); + try { + config.get('esTestCluster.ccs'); + remoteEsArchiver = getService('remoteEsArchiver' as 'esArchiver'); + esNode = remoteEsArchiver; + fixtureDirs = remoteFixtures; + indexPatternString = remoteIndexPatternString; + } catch (error) { + esNode = esArchiver; + fixtureDirs = localFixtures; + indexPatternString = localIndexPatternString; + } + + await esNode.load(esArchive); // changing the timepicker default here saves us from having to set it in Discover (~8s) await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings(); - await kibanaServer.uiSettings.update({ defaultIndex: 'logstash-*', 'dateFormat:tz': 'UTC' }); - await kibanaServer.importExport.load( - 'x-pack/test/functional/fixtures/kbn_archiver/lens/lens_basic.json' - ); - await kibanaServer.importExport.load( - 'x-pack/test/functional/fixtures/kbn_archiver/lens/default' - ); + await kibanaServer.uiSettings.update({ + defaultIndex: indexPatternString, + 'dateFormat:tz': 'UTC', + }); + await kibanaServer.importExport.load(fixtureDirs.lensBasic); + await kibanaServer.importExport.load(fixtureDirs.lensDefault); }); after(async () => { - await esArchiver.unload('x-pack/test/functional/es_archives/logstash_functional'); + await esArchiver.unload(esArchive); await PageObjects.timePicker.resetDefaultAbsoluteRangeViaUiSettings(); - await kibanaServer.importExport.unload( - 'x-pack/test/functional/fixtures/kbn_archiver/lens/lens_basic.json' - ); - await kibanaServer.importExport.unload( - 'x-pack/test/functional/fixtures/kbn_archiver/lens/default' - ); + await kibanaServer.importExport.unload(fixtureDirs.lensBasic); + await kibanaServer.importExport.unload(fixtureDirs.lensDefault); }); - describe('', function () { - this.tags(['ciGroup3', 'skipFirefox']); - loadTestFile(require.resolve('./smokescreen')); - loadTestFile(require.resolve('./persistent_context')); - }); + if (config.get('esTestCluster.ccs')) { + describe('', function () { + this.tags(['ciGroup3', 'skipFirefox']); + loadTestFile(require.resolve('./smokescreen')); + }); + } else { + describe('', function () { + this.tags(['ciGroup3', 'skipFirefox']); + loadTestFile(require.resolve('./smokescreen')); + loadTestFile(require.resolve('./persistent_context')); + }); - describe('', function () { - this.tags(['ciGroup16', 'skipFirefox']); + describe('', function () { + this.tags(['ciGroup16', 'skipFirefox']); - loadTestFile(require.resolve('./add_to_dashboard')); - loadTestFile(require.resolve('./table_dashboard')); - loadTestFile(require.resolve('./table')); - loadTestFile(require.resolve('./runtime_fields')); - loadTestFile(require.resolve('./dashboard')); - loadTestFile(require.resolve('./multi_terms')); - loadTestFile(require.resolve('./epoch_millis')); - loadTestFile(require.resolve('./show_underlying_data')); - loadTestFile(require.resolve('./show_underlying_data_dashboard')); - }); + loadTestFile(require.resolve('./add_to_dashboard')); + loadTestFile(require.resolve('./table_dashboard')); + loadTestFile(require.resolve('./table')); + loadTestFile(require.resolve('./runtime_fields')); + loadTestFile(require.resolve('./dashboard')); + loadTestFile(require.resolve('./multi_terms')); + loadTestFile(require.resolve('./epoch_millis')); + loadTestFile(require.resolve('./show_underlying_data')); + loadTestFile(require.resolve('./show_underlying_data_dashboard')); + }); - describe('', function () { - this.tags(['ciGroup4', 'skipFirefox']); + describe('', function () { + this.tags(['ciGroup4', 'skipFirefox']); - loadTestFile(require.resolve('./colors')); - loadTestFile(require.resolve('./chart_data')); - loadTestFile(require.resolve('./time_shift')); - loadTestFile(require.resolve('./drag_and_drop')); - loadTestFile(require.resolve('./disable_auto_apply')); - loadTestFile(require.resolve('./geo_field')); - loadTestFile(require.resolve('./formula')); - loadTestFile(require.resolve('./heatmap')); - loadTestFile(require.resolve('./gauge')); - loadTestFile(require.resolve('./metrics')); - loadTestFile(require.resolve('./reference_lines')); - loadTestFile(require.resolve('./annotations')); - loadTestFile(require.resolve('./inspector')); - loadTestFile(require.resolve('./error_handling')); - loadTestFile(require.resolve('./lens_tagging')); - loadTestFile(require.resolve('./lens_reporting')); - loadTestFile(require.resolve('./tsvb_open_in_lens')); - // has to be last one in the suite because it overrides saved objects - loadTestFile(require.resolve('./rollup')); - }); + loadTestFile(require.resolve('./colors')); + loadTestFile(require.resolve('./chart_data')); + loadTestFile(require.resolve('./time_shift')); + loadTestFile(require.resolve('./drag_and_drop')); + loadTestFile(require.resolve('./disable_auto_apply')); + loadTestFile(require.resolve('./geo_field')); + loadTestFile(require.resolve('./formula')); + loadTestFile(require.resolve('./heatmap')); + loadTestFile(require.resolve('./gauge')); + loadTestFile(require.resolve('./metrics')); + loadTestFile(require.resolve('./reference_lines')); + loadTestFile(require.resolve('./annotations')); + loadTestFile(require.resolve('./inspector')); + loadTestFile(require.resolve('./error_handling')); + loadTestFile(require.resolve('./lens_tagging')); + loadTestFile(require.resolve('./lens_reporting')); + loadTestFile(require.resolve('./tsvb_open_in_lens')); + // has to be last one in the suite because it overrides saved objects + loadTestFile(require.resolve('./rollup')); + }); + } }); -} +}; diff --git a/x-pack/test/functional/apps/lens/smokescreen.ts b/x-pack/test/functional/apps/lens/smokescreen.ts index 13525ed0ec9c2..721ff1e210326 100644 --- a/x-pack/test/functional/apps/lens/smokescreen.ts +++ b/x-pack/test/functional/apps/lens/smokescreen.ts @@ -17,6 +17,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const elasticChart = getService('elasticChart'); const filterBar = getService('filterBar'); const retry = getService('retry'); + const config = getService('config'); describe('lens smokescreen tests', () => { it('should allow creation of lens xy chart', async () => { @@ -686,8 +687,14 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('should allow to change index pattern', async () => { - await PageObjects.lens.switchFirstLayerIndexPattern('log*'); - expect(await PageObjects.lens.getFirstLayerIndexPattern()).to.equal('log*'); + let indexPatternString; + if (config.get('esTestCluster.ccs')) { + indexPatternString = 'ftr-remote:log*'; + } else { + indexPatternString = 'log*'; + } + await PageObjects.lens.switchFirstLayerIndexPattern(indexPatternString); + expect(await PageObjects.lens.getFirstLayerIndexPattern()).to.equal(indexPatternString); }); it('should show a download button only when the configuration is valid', async () => { diff --git a/x-pack/test/functional/apps/maps/saved_object_management.js b/x-pack/test/functional/apps/maps/saved_object_management.js index 01e3e64c7172d..0ae023e645a56 100644 --- a/x-pack/test/functional/apps/maps/saved_object_management.js +++ b/x-pack/test/functional/apps/maps/saved_object_management.js @@ -42,7 +42,7 @@ export default function ({ getPageObjects, getService }) { it('should update global Kibana refresh config to value stored with map', async () => { const kibanaRefreshConfig = await PageObjects.timePicker.getRefreshConfig(); expect(kibanaRefreshConfig.interval).to.equal('1'); - expect(kibanaRefreshConfig.units).to.equal('seconds'); + expect(kibanaRefreshConfig.units).to.equal('Seconds'); expect(kibanaRefreshConfig.isPaused).to.equal(true); }); diff --git a/x-pack/test/functional/apps/transform/cloning.ts b/x-pack/test/functional/apps/transform/cloning.ts index 9d3ce49803d28..3cbb0892bd4ec 100644 --- a/x-pack/test/functional/apps/transform/cloning.ts +++ b/x-pack/test/functional/apps/transform/cloning.ts @@ -85,8 +85,7 @@ export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); const transform = getService('transform'); - // FAILING: https://github.com/elastic/kibana/issues/128967 - describe.skip('cloning', function () { + describe('cloning', function () { const transformConfigWithPivot = getTransformConfig(); const transformConfigWithRuntimeMapping = getTransformConfigWithRuntimeMappings(); const transformConfigWithLatest = getLatestTransformConfig('cloning'); diff --git a/x-pack/test/functional/apps/transform/creation_index_pattern.ts b/x-pack/test/functional/apps/transform/creation_index_pattern.ts index dc8190c877d61..bc680cd2c0ff9 100644 --- a/x-pack/test/functional/apps/transform/creation_index_pattern.ts +++ b/x-pack/test/functional/apps/transform/creation_index_pattern.ts @@ -21,8 +21,7 @@ export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); const transform = getService('transform'); - // Failing ES Promotion: https://github.com/elastic/kibana/issues/126812 - describe.skip('creation_index_pattern', function () { + describe('creation_index_pattern', function () { before(async () => { await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/ml/ecommerce'); await transform.testResources.createIndexPatternIfNeeded('ft_ecommerce', 'order_date'); @@ -417,6 +416,7 @@ export default function ({ getService }: FtrProviderContext) { get destinationIndex(): string { return `user-${this.transformId}`; }, + destinationDataViewTimeField: 'order_date', discoverAdjustSuperDatePicker: true, expected: { latestPreview: { @@ -592,6 +592,12 @@ export default function ({ getService }: FtrProviderContext) { await transform.wizard.assertCreateDataViewSwitchExists(); await transform.wizard.assertCreateDataViewSwitchCheckState(true); + if (testData.destinationDataViewTimeField) { + await transform.testExecution.logTestStep('sets the data view time field'); + await transform.wizard.assertDataViewTimeFieldInputExists(); + await transform.wizard.setDataViewTimeField(testData.destinationDataViewTimeField); + } + await transform.testExecution.logTestStep('displays the continuous mode switch'); await transform.wizard.assertContinuousModeSwitchExists(); await transform.wizard.assertContinuousModeSwitchCheckState(false); diff --git a/x-pack/test/functional/apps/transform/index.ts b/x-pack/test/functional/apps/transform/index.ts index 5f5f35ce1c2f8..4966e018a4b03 100644 --- a/x-pack/test/functional/apps/transform/index.ts +++ b/x-pack/test/functional/apps/transform/index.ts @@ -15,8 +15,7 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { const esArchiver = getService('esArchiver'); const transform = getService('transform'); - // FAILING TEST: https://github.com/elastic/kibana/issues/109687 - describe.skip('transform', function () { + describe('transform', function () { this.tags(['ciGroup21', 'transform']); before(async () => { @@ -66,6 +65,7 @@ export interface BaseTransformTestData { transformDescription: string; expected: any; destinationIndex: string; + destinationDataViewTimeField?: string; discoverAdjustSuperDatePicker: boolean; } diff --git a/x-pack/test/functional/apps/visualize/feature_controls/visualize_security.ts b/x-pack/test/functional/apps/visualize/feature_controls/visualize_security.ts index 08137f167badf..85b9a31e2d361 100644 --- a/x-pack/test/functional/apps/visualize/feature_controls/visualize_security.ts +++ b/x-pack/test/functional/apps/visualize/feature_controls/visualize_security.ts @@ -10,6 +10,7 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getPageObjects, getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); + const kibanaServer = getService('kibanaServer'); const security = getService('security'); const config = getService('config'); const PageObjects = getPageObjects([ @@ -30,7 +31,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { describe('visualize feature controls security', () => { before(async () => { - await esArchiver.load('x-pack/test/functional/es_archives/visualize/default'); + await kibanaServer.savedObjects.cleanStandardList(); + await kibanaServer.importExport.load( + 'x-pack/test/functional/fixtures/kbn_archiver/visualize/default' + ); await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/logstash_functional'); // ensure we're logged out so we can login as the appropriate users await PageObjects.security.forceLogout(); @@ -40,8 +44,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { // logout, so the other tests don't accidentally run as the custom users we're testing below // NOTE: Logout needs to happen before anything else to avoid flaky behavior await PageObjects.security.forceLogout(); - - await esArchiver.unload('x-pack/test/functional/es_archives/visualize/default'); + await kibanaServer.savedObjects.cleanStandardList(); }); describe('global visualize all privileges', () => { diff --git a/x-pack/test/functional/apps/visualize/feature_controls/visualize_spaces.ts b/x-pack/test/functional/apps/visualize/feature_controls/visualize_spaces.ts index fe2456afafbf4..80aff8d27c77d 100644 --- a/x-pack/test/functional/apps/visualize/feature_controls/visualize_spaces.ts +++ b/x-pack/test/functional/apps/visualize/feature_controls/visualize_spaces.ts @@ -11,32 +11,41 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getPageObjects, getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); + const kibanaServer = getService('kibanaServer'); const config = getService('config'); const spacesService = getService('spaces'); const PageObjects = getPageObjects(['common', 'visualize', 'security', 'spaceSelector', 'error']); const testSubjects = getService('testSubjects'); const appsMenu = getService('appsMenu'); - describe('visualize', () => { + describe('visualize spaces', () => { before(async () => { await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/logstash_functional'); + await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/visualize/default'); }); describe('space with no features disabled', () => { before(async () => { // we need to load the following in every situation as deleting // a space deletes all of the associated saved objects - await esArchiver.load('x-pack/test/functional/es_archives/visualize/default'); + await kibanaServer.savedObjects.cleanStandardList(); + await kibanaServer.importExport.load( + 'x-pack/test/functional/fixtures/kbn_archiver/visualize/default' + ); await spacesService.create({ id: 'custom_space', name: 'custom_space', disabledFeatures: [], }); + await kibanaServer.importExport.load( + 'x-pack/test/functional/fixtures/kbn_archiver/visualize/custom_space', + { space: 'custom_space' } + ); }); after(async () => { await spacesService.delete('custom_space'); - await esArchiver.unload('x-pack/test/functional/es_archives/visualize/default'); + await kibanaServer.savedObjects.cleanStandardList(); }); it('shows visualize navlink', async () => { @@ -50,7 +59,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { it(`can view existing Visualization`, async () => { await PageObjects.common.navigateToActualUrl( 'visualize', - `${VisualizeConstants.EDIT_PATH}/i-exist`, + `${VisualizeConstants.EDIT_PATH}/custom_i-exist`, { basePath: '/s/custom_space', ensureCurrentUrl: false, @@ -67,7 +76,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { before(async () => { // we need to load the following in every situation as deleting // a space deletes all of the associated saved objects - await esArchiver.load('x-pack/test/functional/es_archives/visualize/default'); + await kibanaServer.savedObjects.cleanStandardList(); + await kibanaServer.importExport.load( + 'x-pack/test/functional/fixtures/kbn_archiver/visualize/default' + ); await spacesService.create({ id: 'custom_space', name: 'custom_space', @@ -77,7 +89,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { after(async () => { await spacesService.delete('custom_space'); - await esArchiver.unload('x-pack/test/functional/es_archives/visualize/default'); + await kibanaServer.savedObjects.cleanStandardList(); }); it(`doesn't show visualize navlink`, async () => { diff --git a/x-pack/test/functional/config.ccs.ts b/x-pack/test/functional/config.ccs.ts new file mode 100644 index 0000000000000..e6e0da5293190 --- /dev/null +++ b/x-pack/test/functional/config.ccs.ts @@ -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 { FtrConfigProviderContext } from '@kbn/test'; +import { RemoteEsArchiverProvider } from './services/remote_es/remote_es_archiver'; +import { RemoteEsProvider } from './services/remote_es/remote_es'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const functionalConfig = await readConfigFile(require.resolve('./config')); + + return { + ...functionalConfig.getAll(), + + testFiles: [require.resolve('./apps/lens')], + + junit: { + reportName: 'X-Pack CCS Tests', + }, + + security: { + ...functionalConfig.get('security'), + remoteEsRoles: { + ccs_remote_search: { + indices: [ + { + names: ['*'], + privileges: ['read', 'view_index_metadata', 'read_cross_cluster'], + }, + ], + }, + }, + defaultRoles: [...(functionalConfig.get('security.defaultRoles') ?? []), 'ccs_remote_search'], + }, + + esTestCluster: { + ...functionalConfig.get('esTestCluster'), + ccs: { + remoteClusterUrl: + process.env.REMOTE_CLUSTER_URL ?? + 'http://elastic:changeme@localhost:' + + `${functionalConfig.get('servers.elasticsearch.port') + 1}`, + }, + }, + services: { + ...functionalConfig.get('services'), + remoteEs: RemoteEsProvider, + remoteEsArchiver: RemoteEsArchiverProvider, + }, + }; +} diff --git a/x-pack/test/functional/es_archives/reporting/errors/data.json b/x-pack/test/functional/es_archives/reporting/errors/data.json new file mode 100644 index 0000000000000..5e8bc8241554b --- /dev/null +++ b/x-pack/test/functional/es_archives/reporting/errors/data.json @@ -0,0 +1,202 @@ +{ + "type": "doc", + "value": { + "id": "l0voxhg902ed8f5fe5bskgyf", + "index": ".reporting-2022-03-13", + "source": { + "attempts": 1, + "completed_at": "2022-03-18T00:36:45.897Z", + "created_at": "2022-03-18T00:36:10.521Z", + "created_by": "elastic", + "jobtype": "printable_pdf_v2", + "kibana_id": "acf18950-a6a6-41cb-9808-b65c6d0aa241", + "kibana_name": "reporting-benchmark", + "max_attempts": 1, + "meta": { + "layout": "print", + "objectType": "dashboard" + }, + "metrics": { + "pdf": { + "cpu": 0, + "cpuInPercentage": 0, + "memory": 123101184, + "memoryInMegabytes": 117.4, + "pages": 8 + } + }, + "migration_version": "7.14.0", + "output": { + "content_type": "application/pdf", + "size": 1610958 + }, + "payload": { + "browserTimezone": "America/Phoenix", + "forceNow": "2022-03-18T00:36:10.520Z", + "layout": { + "dimensions": { + "height": 2052, + "width": 2119.111083984375 + }, + "id": "print" + }, + "locatorParams": [ + { + "id": "DASHBOARD_APP_LOCATOR", + "params": { + "dashboardId": "722b74f0-b882-11e8-a6d9-e546fe2bba5f", + "preserveSavedFilters": true, + "timeRange": { + "from": "2022-01-13T19:00:00.000Z", + "to": "2022-01-20T19:00:00.000Z" + }, + "useHash": false, + "viewMode": "view" + }, + "version": "8.2.0-SNAPSHOT" + } + ], + "objectType": "dashboard", + "spaceId": "reporting-test-fixtures", + "title": "[eCommerce] Revenue Dashboard", + "version": "8.2.0-SNAPSHOT" + }, + "process_expiration": "2022-03-18T00:38:13.528Z", + "started_at": "2022-03-18T00:36:13.528Z", + "status": "completed", + "timeout": 120000 + } + } +} + +{ + "type": "doc", + "value": { + "id": "l0vp0um102ed8f5fe5c6p49v", + "index": ".reporting-2022-03-13", + "source": { + "attempts": 1, + "completed_at": "2022-03-18T00:41:15.816Z", + "created_at": "2022-03-18T00:38:47.545Z", + "created_by": "elastic", + "jobtype": "printable_pdf_v2", + "kibana_id": "acf18950-a6a6-41cb-9808-b65c6d0aa241", + "kibana_name": "reporting-benchmark", + "max_attempts": 1, + "meta": { + "layout": "print", + "objectType": "dashboard" + }, + "migration_version": "7.14.0", + "output": { + "content": "ReportingError(code: unknown_error) \"Max attempts (1) reached for job l0vp0um102ed8f5fe5c6p49v. Failed with: undefined\"", + "content_type": null, + "error_code": "unknown_error", + "warnings": [ + "ReportingError(code: unknown_error) \"Max attempts (1) reached for job l0vp0um102ed8f5fe5c6p49v. Failed with: undefined\"" + ] + }, + "payload": { + "browserTimezone": "America/Phoenix", + "forceNow": "2022-03-18T00:38:47.537Z", + "layout": { + "dimensions": { + "height": 12356, + "width": 2071.111083984375 + }, + "id": "print" + }, + "locatorParams": [ + { + "id": "DASHBOARD_APP_LOCATOR", + "params": { + "dashboardId": "722b74f0-b882-11e8-a6d9-e546fe2bba5f", + "preserveSavedFilters": true, + "timeRange": { + "from": "2022-01-13T19:00:00.000Z", + "to": "2022-01-20T19:00:00.000Z" + }, + "useHash": false, + "viewMode": "view" + }, + "version": "8.2.0-SNAPSHOT" + } + ], + "objectType": "dashboard", + "spaceId": "reporting-test-fixtures", + "title": "[eCommerce] Revenue Dashboard", + "version": "8.2.0-SNAPSHOT" + }, + "process_expiration": "2022-03-18T00:42:47.911Z", + "started_at": "2022-03-18T00:40:47.911Z", + "status": "failed", + "timeout": 120000 + } + } +} + +{ + "type": "doc", + "value": { + "id": "l0vp0rtu02ed8f5fe525941x", + "index": ".reporting-2022-03-13", + "source": { + "attempts": 1, + "completed_at": "2022-03-18T00:41:19.222Z", + "created_at": "2022-03-18T00:38:43.938Z", + "created_by": "elastic", + "jobtype": "printable_pdf_v2", + "kibana_id": "acf18950-a6a6-41cb-9808-b65c6d0aa241", + "kibana_name": "reporting-benchmark", + "max_attempts": 1, + "meta": { + "layout": "preserve_layout", + "objectType": "dashboard" + }, + "migration_version": "7.14.0", + "output": { + "content": "ReportingError(code: queue_timeout_error) \"Max attempts reached (1). Queue timeout reached.\"", + "content_type": null, + "error_code": "queue_timeout_error", + "warnings": [ + "ReportingError(code: queue_timeout_error) \"Max attempts reached (1). Queue timeout reached.\"" + ] + }, + "payload": { + "browserTimezone": "America/Phoenix", + "forceNow": "2022-03-18T00:38:43.928Z", + "layout": { + "dimensions": { + "height": 12356, + "width": 2071.111083984375 + }, + "id": "preserve_layout" + }, + "locatorParams": [ + { + "id": "DASHBOARD_APP_LOCATOR", + "params": { + "dashboardId": "722b74f0-b882-11e8-a6d9-e546fe2bba5f", + "preserveSavedFilters": true, + "timeRange": { + "from": "2022-01-13T19:00:00.000Z", + "to": "2022-01-20T19:00:00.000Z" + }, + "useHash": false, + "viewMode": "view" + }, + "version": "8.2.0-SNAPSHOT" + } + ], + "objectType": "dashboard", + "spaceId": "reporting-test-fixtures", + "title": "[eCommerce] Revenue Dashboard", + "version": "8.2.0-SNAPSHOT" + }, + "process_expiration": null, + "started_at": "2022-03-18T00:38:44.816Z", + "status": "failed", + "timeout": 120000 + } + } +} diff --git a/x-pack/test/functional/es_archives/reporting/errors/mappings.json b/x-pack/test/functional/es_archives/reporting/errors/mappings.json new file mode 100644 index 0000000000000..23912641e12c8 --- /dev/null +++ b/x-pack/test/functional/es_archives/reporting/errors/mappings.json @@ -0,0 +1,172 @@ +{ + "type": "index", + "value": { + "aliases": { + }, + "index": ".reporting-2022-03-13", + "mappings": { + "properties": { + "attempts": { + "type": "short" + }, + "completed_at": { + "type": "date" + }, + "created_at": { + "type": "date" + }, + "created_by": { + "type": "keyword" + }, + "jobtype": { + "type": "keyword" + }, + "kibana_id": { + "type": "keyword" + }, + "kibana_name": { + "type": "keyword" + }, + "max_attempts": { + "type": "short" + }, + "meta": { + "properties": { + "isDeprecated": { + "type": "boolean" + }, + "layout": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + }, + "objectType": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + } + } + }, + "metrics": { + "properties": { + "csv": { + "properties": { + "rows": { + "type": "long" + } + } + }, + "pdf": { + "properties": { + "cpu": { + "type": "double" + }, + "cpuInPercentage": { + "type": "double" + }, + "memory": { + "type": "long" + }, + "memoryInMegabytes": { + "type": "double" + }, + "pages": { + "type": "long" + } + } + }, + "png": { + "properties": { + "cpu": { + "type": "double" + }, + "cpuInPercentage": { + "type": "double" + }, + "memory": { + "type": "long" + }, + "memoryInMegabytes": { + "type": "double" + } + } + } + } + }, + "migration_version": { + "type": "keyword" + }, + "output": { + "properties": { + "chunk": { + "type": "long" + }, + "content": { + "enabled": false, + "type": "object" + }, + "content_type": { + "type": "keyword" + }, + "error_code": { + "type": "keyword" + }, + "size": { + "type": "long" + }, + "warnings": { + "fields": { + "keyword": { + "ignore_above": 256, + "type": "keyword" + } + }, + "type": "text" + } + } + }, + "parent_id": { + "type": "keyword" + }, + "payload": { + "enabled": false, + "type": "object" + }, + "priority": { + "type": "byte" + }, + "process_expiration": { + "type": "date" + }, + "started_at": { + "type": "date" + }, + "status": { + "type": "keyword" + }, + "timeout": { + "type": "long" + } + } + }, + "settings": { + "index": { + "auto_expand_replicas": "0-1", + "hidden": "true", + "lifecycle": { + "name": "kibana-reporting" + }, + "number_of_replicas": "0", + "number_of_shards": "1" + } + } + } +} \ No newline at end of file diff --git a/x-pack/test/functional/es_archives/visualize/default/data.json b/x-pack/test/functional/es_archives/visualize/default/data.json index a16e1676611ce..b47d504242b7a 100644 --- a/x-pack/test/functional/es_archives/visualize/default/data.json +++ b/x-pack/test/functional/es_archives/visualize/default/data.json @@ -1,26 +1,3 @@ -{ - "type": "doc", - "value": { - "id": "space:default", - "index": ".kibana_1", - "source": { - "migrationVersion": { - "space": "6.6.0" - }, - "references": [ - ], - "space": { - "_reserved": true, - "description": "This is the default space!", - "disabledFeatures": [ - ], - "name": "Default" - }, - "type": "space" - } - } -} - { "type": "doc", "value": { @@ -99,209 +76,3 @@ } } - -{ - "type": "doc", - "value": { - "id": "index-pattern:metricbeat-*", - "index": ".kibana_1", - "source": { - "index-pattern": { - "fieldFormatMap": "{\"aerospike.namespace.device.available.pct\":{\"id\":\"percent\",\"params\":{}},\"aerospike.namespace.device.free.pct\":{\"id\":\"percent\",\"params\":{}},\"aerospike.namespace.device.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aerospike.namespace.device.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aerospike.namespace.memory.free.pct\":{\"id\":\"percent\",\"params\":{}},\"aerospike.namespace.memory.used.data.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aerospike.namespace.memory.used.index.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aerospike.namespace.memory.used.sindex.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aerospike.namespace.memory.used.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.ec2.diskio.read.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.ec2.diskio.write.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.ec2.network.in.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.ec2.network.out.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.rds.cpu.total.pct\":{\"id\":\"percent\",\"params\":{}},\"aws.rds.disk_usage.bin_log.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.rds.free_local_storage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.rds.free_storage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.rds.freeable_memory.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.rds.latency.commit\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.latency.ddl\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.latency.dml\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.latency.insert\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.latency.read\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.latency.select\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.latency.update\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.latency.write\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.replica_lag.sec\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.swap_usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.rds.volume_used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.s3_daily_storage.bucket.size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.s3_request.downloaded.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.s3_request.latency.first_byte.ms\":{\"id\":\"duration\",\"params\":{}},\"aws.s3_request.latency.total_request.ms\":{\"id\":\"duration\",\"params\":{}},\"aws.s3_request.requests.select_returned.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.s3_request.requests.select_scanned.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.s3_request.uploaded.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.sqs.oldest_message_age.sec\":{\"id\":\"duration\",\"params\":{}},\"aws.sqs.sent_message_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_disk.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_disk.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_disk.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_status.degraded.ratio\":{\"id\":\"percent\",\"params\":{}},\"ceph.cluster_status.misplace.ratio\":{\"id\":\"percent\",\"params\":{}},\"ceph.cluster_status.pg.avail_bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_status.pg.data_bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_status.pg.total_bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_status.pg.used_bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_status.traffic.read_bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_status.traffic.write_bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.monitor_health.store_stats.log.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.monitor_health.store_stats.misc.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.monitor_health.store_stats.sst.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.monitor_health.store_stats.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.osd_df.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.osd_df.total.byte\":{\"id\":\"bytes\",\"params\":{}},\"ceph.osd_df.used.byte\":{\"id\":\"bytes\",\"params\":{}},\"ceph.osd_df.used.pct\":{\"id\":\"percent\",\"params\":{}},\"ceph.pool_disk.stats.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.pool_disk.stats.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"client.bytes\":{\"id\":\"bytes\",\"params\":{}},\"client.nat.port\":{\"id\":\"string\",\"params\":{}},\"client.port\":{\"id\":\"string\",\"params\":{}},\"coredns.stats.dns.request.duration.ns.sum\":{\"id\":\"duration\",\"params\":{}},\"couchbase.bucket.data.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.bucket.disk.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.bucket.memory.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.bucket.quota.ram.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.bucket.quota.use.pct\":{\"id\":\"percent\",\"params\":{}},\"couchbase.cluster.hdd.free.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.hdd.quota.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.hdd.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.hdd.used.by_data.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.hdd.used.value.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.ram.quota.total.per_node.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.ram.quota.total.value.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.ram.quota.used.per_node.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.ram.quota.used.value.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.ram.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.ram.used.by_data.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.ram.used.value.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.node.couch.docs.data_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.node.couch.docs.disk_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.node.mcd_memory.allocated.bytes\":{\"id\":\"bytes\",\"params\":{}},\"destination.bytes\":{\"id\":\"bytes\",\"params\":{}},\"destination.nat.port\":{\"id\":\"string\",\"params\":{}},\"destination.port\":{\"id\":\"string\",\"params\":{}},\"docker.cpu.core.*.pct\":{\"id\":\"percent\",\"params\":{}},\"docker.cpu.kernel.pct\":{\"id\":\"percent\",\"params\":{}},\"docker.cpu.system.pct\":{\"id\":\"percent\",\"params\":{}},\"docker.cpu.total.pct\":{\"id\":\"percent\",\"params\":{}},\"docker.cpu.user.pct\":{\"id\":\"percent\",\"params\":{}},\"docker.diskio.read.bytes\":{\"id\":\"bytes\",\"params\":{}},\"docker.diskio.summary.bytes\":{\"id\":\"bytes\",\"params\":{}},\"docker.diskio.write.bytes\":{\"id\":\"bytes\",\"params\":{}},\"docker.memory.commit.peak\":{\"id\":\"bytes\",\"params\":{}},\"docker.memory.commit.total\":{\"id\":\"bytes\",\"params\":{}},\"docker.memory.limit\":{\"id\":\"bytes\",\"params\":{}},\"docker.memory.private_working_set.total\":{\"id\":\"bytes\",\"params\":{}},\"docker.memory.rss.pct\":{\"id\":\"percent\",\"params\":{}},\"docker.memory.rss.total\":{\"id\":\"bytes\",\"params\":{}},\"docker.memory.usage.max\":{\"id\":\"bytes\",\"params\":{}},\"docker.memory.usage.pct\":{\"id\":\"percent\",\"params\":{}},\"docker.memory.usage.total\":{\"id\":\"bytes\",\"params\":{}},\"docker.network.in.bytes\":{\"id\":\"bytes\",\"params\":{}},\"docker.network.inbound.bytes\":{\"id\":\"bytes\",\"params\":{}},\"docker.network.out.bytes\":{\"id\":\"bytes\",\"params\":{}},\"docker.network.outbound.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.index.summary.primaries.segments.memory.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.index.summary.primaries.store.size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.index.summary.total.segments.memory.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.index.summary.total.store.size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.index.total.segments.memory.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.index.total.store.size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.jvm.memory.heap.init.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.jvm.memory.heap.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.jvm.memory.nonheap.init.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.jvm.memory.nonheap.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.fs.summary.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.fs.summary.free.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.fs.summary.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.indices.segments.memory.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.old.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.old.peak.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.old.peak_max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.old.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.survivor.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.survivor.peak.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.survivor.peak_max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.survivor.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.young.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.young.peak.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.young.peak_max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.young.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"etcd.disk.mvcc_db_total_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"etcd.memory.go_memstats_alloc.bytes\":{\"id\":\"bytes\",\"params\":{}},\"etcd.network.client_grpc_received.bytes\":{\"id\":\"bytes\",\"params\":{}},\"etcd.network.client_grpc_sent.bytes\":{\"id\":\"bytes\",\"params\":{}},\"event.duration\":{\"id\":\"duration\",\"params\":{\"inputFormat\":\"nanoseconds\",\"outputFormat\":\"asMilliseconds\",\"outputPrecision\":1}},\"event.sequence\":{\"id\":\"string\",\"params\":{}},\"event.severity\":{\"id\":\"string\",\"params\":{}},\"golang.heap.allocations.active\":{\"id\":\"bytes\",\"params\":{}},\"golang.heap.allocations.allocated\":{\"id\":\"bytes\",\"params\":{}},\"golang.heap.allocations.idle\":{\"id\":\"bytes\",\"params\":{}},\"golang.heap.allocations.total\":{\"id\":\"bytes\",\"params\":{}},\"golang.heap.gc.next_gc_limit\":{\"id\":\"bytes\",\"params\":{}},\"golang.heap.system.obtained\":{\"id\":\"bytes\",\"params\":{}},\"golang.heap.system.released\":{\"id\":\"bytes\",\"params\":{}},\"golang.heap.system.stack\":{\"id\":\"bytes\",\"params\":{}},\"golang.heap.system.total\":{\"id\":\"bytes\",\"params\":{}},\"haproxy.info.idle.pct\":{\"id\":\"percent\",\"params\":{}},\"haproxy.info.memory.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"haproxy.info.ssl.frontend.session_reuse.pct\":{\"id\":\"percent\",\"params\":{}},\"haproxy.stat.compressor.bypassed.bytes\":{\"id\":\"bytes\",\"params\":{}},\"haproxy.stat.compressor.in.bytes\":{\"id\":\"bytes\",\"params\":{}},\"haproxy.stat.compressor.out.bytes\":{\"id\":\"bytes\",\"params\":{}},\"haproxy.stat.compressor.response.bytes\":{\"id\":\"bytes\",\"params\":{}},\"haproxy.stat.in.bytes\":{\"id\":\"bytes\",\"params\":{}},\"haproxy.stat.out.bytes\":{\"id\":\"bytes\",\"params\":{}},\"haproxy.stat.throttle.pct\":{\"id\":\"percent\",\"params\":{}},\"http.request.body.bytes\":{\"id\":\"bytes\",\"params\":{}},\"http.request.bytes\":{\"id\":\"bytes\",\"params\":{}},\"http.response.body.bytes\":{\"id\":\"bytes\",\"params\":{}},\"http.response.bytes\":{\"id\":\"bytes\",\"params\":{}},\"http.response.status_code\":{\"id\":\"string\",\"params\":{}},\"kibana.stats.process.memory.heap.size_limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kibana.stats.process.memory.heap.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kibana.stats.process.memory.heap.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.apiserver.http.request.size.bytes.sum\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.apiserver.http.response.size.bytes.sum\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.apiserver.process.memory.resident.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.apiserver.process.memory.virtual.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.cpu.usage.limit.pct\":{\"id\":\"percent\",\"params\":{}},\"kubernetes.container.cpu.usage.node.pct\":{\"id\":\"percent\",\"params\":{}},\"kubernetes.container.logs.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.logs.capacity.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.logs.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.memory.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.memory.limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.memory.request.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.memory.rss.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.memory.usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.memory.usage.limit.pct\":{\"id\":\"percent\",\"params\":{}},\"kubernetes.container.memory.usage.node.pct\":{\"id\":\"percent\",\"params\":{}},\"kubernetes.container.memory.workingset.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.rootfs.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.rootfs.capacity.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.rootfs.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.controllermanager.http.request.size.bytes.sum\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.controllermanager.http.response.size.bytes.sum\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.controllermanager.process.memory.resident.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.controllermanager.process.memory.virtual.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.fs.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.fs.capacity.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.fs.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.memory.allocatable.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.memory.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.memory.capacity.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.memory.rss.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.memory.usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.memory.workingset.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.network.rx.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.network.tx.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.runtime.imagefs.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.runtime.imagefs.capacity.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.runtime.imagefs.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.pod.cpu.usage.limit.pct\":{\"id\":\"percent\",\"params\":{}},\"kubernetes.pod.cpu.usage.node.pct\":{\"id\":\"percent\",\"params\":{}},\"kubernetes.pod.memory.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.pod.memory.rss.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.pod.memory.usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.pod.memory.usage.limit.pct\":{\"id\":\"percent\",\"params\":{}},\"kubernetes.pod.memory.usage.node.pct\":{\"id\":\"percent\",\"params\":{}},\"kubernetes.pod.memory.working_set.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.pod.network.rx.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.pod.network.tx.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.proxy.http.request.size.bytes.sum\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.proxy.http.response.size.bytes.sum\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.proxy.process.memory.resident.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.proxy.process.memory.virtual.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.scheduler.http.request.size.bytes.sum\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.scheduler.http.response.size.bytes.sum\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.scheduler.process.memory.resident.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.scheduler.process.memory.virtual.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.system.memory.rss.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.system.memory.usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.system.memory.workingset.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.volume.fs.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.volume.fs.capacity.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.volume.fs.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.dbstats.avg_obj_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.dbstats.data_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.dbstats.extent_free_list.size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.dbstats.file_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.dbstats.index_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.dbstats.storage_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.replstatus.headroom.max\":{\"id\":\"duration\",\"params\":{}},\"mongodb.replstatus.headroom.min\":{\"id\":\"duration\",\"params\":{}},\"mongodb.replstatus.lag.max\":{\"id\":\"duration\",\"params\":{}},\"mongodb.replstatus.lag.min\":{\"id\":\"duration\",\"params\":{}},\"mongodb.replstatus.oplog.size.allocated\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.replstatus.oplog.size.used\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.extra_info.heap_usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.network.in.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.network.out.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.wired_tiger.cache.dirty.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.wired_tiger.cache.maximum.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.wired_tiger.cache.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.wired_tiger.log.max_file_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.wired_tiger.log.size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.wired_tiger.log.write.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mysql.status.bytes.received\":{\"id\":\"bytes\",\"params\":{}},\"mysql.status.bytes.sent\":{\"id\":\"bytes\",\"params\":{}},\"nats.stats.cpu\":{\"id\":\"percent\",\"params\":{}},\"nats.stats.in.bytes\":{\"id\":\"bytes\",\"params\":{}},\"nats.stats.mem.bytes\":{\"id\":\"bytes\",\"params\":{}},\"nats.stats.out.bytes\":{\"id\":\"bytes\",\"params\":{}},\"nats.stats.uptime\":{\"id\":\"duration\",\"params\":{}},\"nats.subscriptions.cache.hit_rate\":{\"id\":\"percent\",\"params\":{}},\"network.bytes\":{\"id\":\"bytes\",\"params\":{}},\"oracle.tablespace.data_file.size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"oracle.tablespace.data_file.size.free.bytes\":{\"id\":\"bytes\",\"params\":{}},\"oracle.tablespace.data_file.size.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"oracle.tablespace.space.free.bytes\":{\"id\":\"bytes\",\"params\":{}},\"oracle.tablespace.space.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"oracle.tablespace.space.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"process.pgid\":{\"id\":\"string\",\"params\":{}},\"process.pid\":{\"id\":\"string\",\"params\":{}},\"process.ppid\":{\"id\":\"string\",\"params\":{}},\"process.thread.id\":{\"id\":\"string\",\"params\":{}},\"rabbitmq.connection.frame_max\":{\"id\":\"bytes\",\"params\":{}},\"rabbitmq.node.disk.free.bytes\":{\"id\":\"bytes\",\"params\":{}},\"rabbitmq.node.disk.free.limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"rabbitmq.node.gc.reclaimed.bytes\":{\"id\":\"bytes\",\"params\":{}},\"rabbitmq.node.io.read.bytes\":{\"id\":\"bytes\",\"params\":{}},\"rabbitmq.node.io.write.bytes\":{\"id\":\"bytes\",\"params\":{}},\"rabbitmq.node.mem.limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"rabbitmq.queue.consumers.utilisation.pct\":{\"id\":\"percent\",\"params\":{}},\"rabbitmq.queue.memory.bytes\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.allocator_stats.active\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.allocator_stats.allocated\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.allocator_stats.fragmentation.bytes\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.allocator_stats.resident\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.allocator_stats.rss.bytes\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.fragmentation.bytes\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.max.value\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.used.dataset\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.used.lua\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.used.peak\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.used.rss\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.used.value\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.persistence.aof.buffer.size\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.persistence.aof.copy_on_write.last_size\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.persistence.aof.rewrite.buffer.size\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.persistence.aof.rewrite.current_time.sec\":{\"id\":\"duration\",\"params\":{}},\"redis.info.persistence.aof.rewrite.last_time.sec\":{\"id\":\"duration\",\"params\":{}},\"redis.info.persistence.aof.size.base\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.persistence.aof.size.current\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.persistence.rdb.bgsave.current_time.sec\":{\"id\":\"duration\",\"params\":{}},\"redis.info.persistence.rdb.bgsave.last_time.sec\":{\"id\":\"duration\",\"params\":{}},\"redis.info.persistence.rdb.copy_on_write.last_size\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.replication.backlog.size\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.replication.master.last_io_seconds_ago\":{\"id\":\"duration\",\"params\":{}},\"redis.info.replication.master.sync.last_io_seconds_ago\":{\"id\":\"duration\",\"params\":{}},\"redis.info.replication.master.sync.left_bytes\":{\"id\":\"bytes\",\"params\":{}},\"server.bytes\":{\"id\":\"bytes\",\"params\":{}},\"server.nat.port\":{\"id\":\"string\",\"params\":{}},\"server.port\":{\"id\":\"string\",\"params\":{}},\"source.bytes\":{\"id\":\"bytes\",\"params\":{}},\"source.nat.port\":{\"id\":\"string\",\"params\":{}},\"source.port\":{\"id\":\"string\",\"params\":{}},\"system.core.idle.pct\":{\"id\":\"percent\",\"params\":{}},\"system.core.iowait.pct\":{\"id\":\"percent\",\"params\":{}},\"system.core.irq.pct\":{\"id\":\"percent\",\"params\":{}},\"system.core.nice.pct\":{\"id\":\"percent\",\"params\":{}},\"system.core.softirq.pct\":{\"id\":\"percent\",\"params\":{}},\"system.core.steal.pct\":{\"id\":\"percent\",\"params\":{}},\"system.core.system.pct\":{\"id\":\"percent\",\"params\":{}},\"system.core.user.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.idle.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.idle.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.iowait.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.iowait.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.irq.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.irq.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.nice.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.nice.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.softirq.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.softirq.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.steal.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.steal.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.system.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.system.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.total.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.total.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.user.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.user.pct\":{\"id\":\"percent\",\"params\":{}},\"system.diskio.iostat.read.per_sec.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.diskio.iostat.write.per_sec.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.diskio.read.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.diskio.write.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.entropy.pct\":{\"id\":\"percent\",\"params\":{}},\"system.filesystem.available\":{\"id\":\"bytes\",\"params\":{}},\"system.filesystem.free\":{\"id\":\"bytes\",\"params\":{}},\"system.filesystem.total\":{\"id\":\"bytes\",\"params\":{}},\"system.filesystem.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.filesystem.used.pct\":{\"id\":\"percent\",\"params\":{}},\"system.fsstat.total_size.free\":{\"id\":\"bytes\",\"params\":{}},\"system.fsstat.total_size.total\":{\"id\":\"bytes\",\"params\":{}},\"system.fsstat.total_size.used\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.actual.free\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.actual.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.actual.used.pct\":{\"id\":\"percent\",\"params\":{}},\"system.memory.free\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.hugepages.default_size\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.hugepages.free\":{\"id\":\"number\",\"params\":{}},\"system.memory.hugepages.reserved\":{\"id\":\"number\",\"params\":{}},\"system.memory.hugepages.surplus\":{\"id\":\"number\",\"params\":{}},\"system.memory.hugepages.total\":{\"id\":\"number\",\"params\":{}},\"system.memory.hugepages.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.hugepages.used.pct\":{\"id\":\"percent\",\"params\":{}},\"system.memory.swap.free\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.swap.total\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.swap.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.swap.used.pct\":{\"id\":\"percent\",\"params\":{}},\"system.memory.total\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.used.pct\":{\"id\":\"percent\",\"params\":{}},\"system.network.in.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.network.out.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.blkio.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.kmem.limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.kmem.usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.kmem.usage.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.kmem_tcp.limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.kmem_tcp.usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.kmem_tcp.usage.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.mem.limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.mem.usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.mem.usage.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.memsw.limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.memsw.usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.memsw.usage.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.active_anon.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.active_file.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.cache.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.hierarchical_memory_limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.hierarchical_memsw_limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.inactive_anon.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.inactive_file.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.mapped_file.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.rss.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.rss_huge.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.swap.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.unevictable.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cpu.total.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.process.cpu.total.pct\":{\"id\":\"percent\",\"params\":{}},\"system.process.memory.rss.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.memory.rss.pct\":{\"id\":\"percent\",\"params\":{}},\"system.process.memory.share\":{\"id\":\"bytes\",\"params\":{}},\"system.process.memory.size\":{\"id\":\"bytes\",\"params\":{}},\"system.socket.summary.tcp.memory\":{\"id\":\"bytes\",\"params\":{}},\"system.socket.summary.udp.memory\":{\"id\":\"bytes\",\"params\":{}},\"system.uptime.duration.ms\":{\"id\":\"duration\",\"params\":{\"inputFormat\":\"milliseconds\"}},\"url.port\":{\"id\":\"string\",\"params\":{}},\"vsphere.datastore.capacity.free.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.datastore.capacity.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.datastore.capacity.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.datastore.capacity.used.pct\":{\"id\":\"percent\",\"params\":{}},\"vsphere.host.memory.free.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.host.memory.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.host.memory.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.virtualmachine.memory.free.guest.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.virtualmachine.memory.total.guest.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.virtualmachine.memory.used.guest.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.virtualmachine.memory.used.host.bytes\":{\"id\":\"bytes\",\"params\":{}},\"windows.service.uptime.ms\":{\"id\":\"duration\",\"params\":{\"inputFormat\":\"milliseconds\"}}}", - "timeFieldName": "@timestamp", - "title": "metricbeat-*" - }, - "migrationVersion": { - "index-pattern": "7.11.0" - }, - "references": [ - ], - "type": "index-pattern", - "updated_at": "2020-01-22T15:34:59.061Z" - } - } -} - -{ - "type": "doc", - "value": { - "index": ".kibana", - "type": "doc", - "id": "index-pattern:logstash-*", - "index": ".kibana_1", - "source": { - "index-pattern": { - "timeFieldName": "@timestamp", - "title": "logstash-*" - }, - "migrationVersion": { - "index-pattern": "7.11.0" - }, - "references": [ - ], - "type": "index-pattern", - "updated_at": "2018-12-21T00:43:07.096Z" - } - } -} - -{ - "type": "doc", - "value": { - "index": ".kibana", - "type": "doc", - "id": "index-pattern:logstash-2015.09.22", - "index": ".kibana_1", - "source": { - "index-pattern": { - "timeFieldName": "@timestamp", - "title": "logstash-2015.09.22", - "fields":"[{\"name\":\"scripted_date\",\"type\":\"date\",\"count\":0,\"scripted\":true,\"script\":\"1234\",\"lang\":\"painless\",\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"scripted_string\",\"type\":\"string\",\"count\":0,\"scripted\":true,\"script\":\"return 'hello'\",\"lang\":\"painless\",\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false}]", - "runtimeFieldMap":"{\"runtime_string_field\":{\"type\":\"keyword\",\"script\":{\"source\":\"emit('hello world!')\"}},\"runtime_number_field\":{\"type\":\"double\",\"script\":{\"source\":\"emit(5)\"}}}" - }, - "migrationVersion": { - "index-pattern": "7.11.0" - }, - "references": [ - ], - "type": "index-pattern", - "updated_at": "2018-12-21T00:43:07.096Z" - } - } -} - -{ - "type": "doc", - "value": { - "id": "custom_space:index-pattern:logstash-*", - "index": ".kibana_1", - "source": { - "index-pattern": { - "timeFieldName": "@timestamp", - "title": "logstash-*" - }, - "migrationVersion": { - "index-pattern": "7.11.0" - }, - "namespace": "custom_space", - "references": [ - ], - "type": "index-pattern", - "updated_at": "2018-12-21T00:43:07.096Z" - } - } -} - -{ - "type": "doc", - "value": { - "id": "visualization:i-exist", - "index": ".kibana_1", - "source": { - "migrationVersion": { - "visualization": "7.12.0" - }, - "references": [ - { - "id": "logstash-*", - "name": "kibanaSavedObjectMeta.searchSourceJSON.index", - "type": "index-pattern" - } - ], - "type": "visualization", - "updated_at": "2019-01-22T19:32:31.206Z", - "visualization": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" - }, - "title": "A Pie", - "uiStateJSON": "{}", - "version": 1, - "visState": "{\"title\":\"A Pie\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":0,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"geo.src\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}" - } - } - } -} - -{ - "type": "doc", - "value": { - "id": "custom_space:visualization:i-exist", - "index": ".kibana_1", - "source": { - "migrationVersion": { - "visualization": "7.12.0" - }, - "namespace": "custom_space", - "references": [ - { - "id": "logstash-*", - "name": "kibanaSavedObjectMeta.searchSourceJSON.index", - "type": "index-pattern" - } - ], - "type": "visualization", - "updated_at": "2019-01-22T19:32:31.206Z", - "visualization": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" - }, - "title": "A Pie", - "uiStateJSON": "{}", - "version": 1, - "visState": "{\"title\":\"A Pie\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":0,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"geo.src\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}" - } - } - } -} - -{ - "type": "doc", - "value": { - "id": "query:OKJpgs", - "index": ".kibana_1", - "source": { - "query": { - "description": "Ok responses for jpg files", - "filters": [ - { - "$state": { - "store": "appState" - }, - "meta": { - "alias": null, - "disabled": false, - "index": "b15b1d40-a8bb-11e9-98cf-2bb06ef63e0b", - "key": "extension.raw", - "negate": false, - "params": { - "query": "jpg" - }, - "type": "phrase", - "value": "jpg" - }, - "query": { - "match": { - "extension.raw": { - "query": "jpg", - "type": "phrase" - } - } - } - } - ], - "query": { - "language": "kuery", - "query": "response:200" - }, - "title": "OKJpgs" - }, - "references": [ - ], - "type": "query", - "updated_at": "2019-07-17T17:54:26.378Z" - } - } -} diff --git a/x-pack/test/functional/fixtures/kbn_archiver/cases/8.2.0/cases_various_dates.json b/x-pack/test/functional/fixtures/kbn_archiver/cases/8.2.0/cases_various_dates.json new file mode 100644 index 0000000000000..ffdfef08735fd --- /dev/null +++ b/x-pack/test/functional/fixtures/kbn_archiver/cases/8.2.0/cases_various_dates.json @@ -0,0 +1,125 @@ +{ + "attributes": { + "closed_at": null, + "closed_by": null, + "connector": { + "fields": null, + "name": "none", + "type": ".none" + }, + "created_at": "2022-03-15T10:16:56.252Z", + "created_by": { + "email": "", + "full_name": "", + "username": "cnasikas" + }, + "description": "test", + "external_service": null, + "owner": "securitySolutionFixture", + "settings": { + "syncAlerts": false + }, + "status": "open", + "tags": [], + "title": "stack", + "updated_at": "2022-03-29T10:33:09.754Z", + "updated_by": { + "email": "", + "full_name": "", + "username": "cnasikas" + } + }, + "coreMigrationVersion": "8.2.0", + "id": "1537b380-a512-11ec-b94f-85999e89e434", + "migrationVersion": { + "cases": "8.1.0" + }, + "references": [], + "type": "cases", + "updated_at": "2022-03-29T10:33:09.754Z", + "version": "WzE2OTYyNCwxNF0=" +} + +{ + "attributes": { + "closed_at": null, + "closed_by": null, + "connector": { + "fields": null, + "name": "none", + "type": ".none" + }, + "created_at": "2022-03-20T10:16:56.252Z", + "created_by": { + "email": "", + "full_name": "", + "username": "cnasikas" + }, + "description": "test 2", + "external_service": null, + "owner": "observabilityFixture", + "settings": { + "syncAlerts": false + }, + "status": "open", + "tags": [], + "title": "stack", + "updated_at": "2022-03-29T10:33:09.754Z", + "updated_by": { + "email": "", + "full_name": "", + "username": "cnasikas" + } + }, + "coreMigrationVersion": "8.2.0", + "id": "3537b580-a512-11ec-b94f-85979e89e434", + "migrationVersion": { + "cases": "8.1.0" + }, + "references": [], + "type": "cases", + "updated_at": "2022-03-29T10:33:09.754Z", + "version": "WzE2OTYyNCwxNF0=" +} + +{ + "attributes": { + "closed_at": null, + "closed_by": null, + "connector": { + "fields": null, + "name": "none", + "type": ".none" + }, + "created_at": "2022-03-25T10:16:56.252Z", + "created_by": { + "email": "", + "full_name": "", + "username": "cnasikas" + }, + "description": "test 2", + "external_service": null, + "owner": "securitySolutionFixture", + "settings": { + "syncAlerts": false + }, + "status": "open", + "tags": [], + "title": "stack", + "updated_at": "2022-03-29T10:33:09.754Z", + "updated_by": { + "email": "", + "full_name": "", + "username": "cnasikas" + } + }, + "coreMigrationVersion": "8.2.0", + "id": "4537b380-a512-11ec-b92f-859b9e89e434", + "migrationVersion": { + "cases": "8.1.0" + }, + "references": [], + "type": "cases", + "updated_at": "2022-03-29T10:33:09.754Z", + "version": "WzE2OTYyNCwxNF0=" +} diff --git a/x-pack/test/functional/fixtures/kbn_archiver/lens/ccs/default.json b/x-pack/test/functional/fixtures/kbn_archiver/lens/ccs/default.json new file mode 100644 index 0000000000000..5fe080700b1ce --- /dev/null +++ b/x-pack/test/functional/fixtures/kbn_archiver/lens/ccs/default.json @@ -0,0 +1,154 @@ +{ + "attributes": { + "fields": "[{\"name\":\"@message\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"@message.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"@tags\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"@tags.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"@timestamp\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"_id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_score\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_source\",\"type\":\"_source\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"agent\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"agent.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"bytes\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"clientip\",\"type\":\"ip\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"extension\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"extension.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.coordinates\",\"type\":\"geo_point\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.dest\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.src\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.srcdest\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"headings\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"headings.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"host.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"id\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"index.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"ip\",\"type\":\"ip\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"links\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"links.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"machine.os\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"machine.os.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"machine.ram\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"memory\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"meta.char\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"meta.related\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"meta.user.firstname\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"meta.user.lastname\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"phpmemory\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"referer\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.article:modified_time\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.article:published_time\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.article:section\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.article:section.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.article:tag\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.article:tag.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:description\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:description.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:image\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:image.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:image:height\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:image:height.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:image:width\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:image:width.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:site_name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:site_name.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:title\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:title.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:type.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:url\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:url.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:card\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:card.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:description\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:description.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:image\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:image.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:site\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:site.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:title\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:title.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.url\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.url.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"request\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"request.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"response\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"response.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"spaces\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"spaces.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"url.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"utc_time\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"xss\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"xss.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]", + "timeFieldName": "@timestamp", + "title": "ftr-remote:logstash-*" + }, + "coreMigrationVersion": "8.0.0", + "id": "ftr-remote:logstash-*", + "migrationVersion": { + "index-pattern": "7.11.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2018-12-21T00:43:07.096Z", + "version": "WzEzLDJd" +} + +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "4ba1a1be-6e67-434b-b3a0-f30db8ea5395": { + "columnOrder": [ + "70d52318-354d-47d5-b33b-43d50eb34425", + "bafe3009-1776-4227-a0fe-b0d6ccbb4961", + "3dc0bd55-2087-4e60-aea2-f9910714f7db" + ], + "columns": { + "3dc0bd55-2087-4e60-aea2-f9910714f7db": { + "dataType": "number", + "isBucketed": false, + "label": "Median of bytes", + "operationType": "median", + "scale": "ratio", + "sourceField": "bytes" + }, + "70d52318-354d-47d5-b33b-43d50eb34425": { + "dataType": "string", + "isBucketed": true, + "label": "Top values of response.raw", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "3dc0bd55-2087-4e60-aea2-f9910714f7db", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 3 + }, + "scale": "ordinal", + "sourceField": "response.raw" + }, + "bafe3009-1776-4227-a0fe-b0d6ccbb4961": { + "dataType": "string", + "isBucketed": true, + "label": "Top values of geo.src", + "operationType": "terms", + "params": { + "orderBy": { + "columnId": "3dc0bd55-2087-4e60-aea2-f9910714f7db", + "type": "column" + }, + "orderDirection": "desc", + "size": 7 + }, + "scale": "ordinal", + "sourceField": "geo.src" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [ + { + "$state": { + "store": "appState" + }, + "meta": { + "alias": null, + "disabled": false, + "indexRefName": "filter-index-pattern-0", + "key": "response", + "negate": true, + "params": { + "query": "200" + }, + "type": "phrase" + }, + "query": { + "match_phrase": { + "response": "200" + } + } + } + ], + "query": { + "language": "kuery", + "query": "extension.raw : \"jpg\" or extension.raw : \"gif\" " + }, + "visualization": { + "columns": [ + { + "columnId": "bafe3009-1776-4227-a0fe-b0d6ccbb4961", + "isTransposed": false + }, + { + "columnId": "3dc0bd55-2087-4e60-aea2-f9910714f7db", + "isTransposed": false + }, + { + "columnId": "70d52318-354d-47d5-b33b-43d50eb34425", + "isTransposed": true + } + ], + "layerId": "4ba1a1be-6e67-434b-b3a0-f30db8ea5395", + "layerType": "data" + } + }, + "title": "lnsTableVis", + "visualizationType": "lnsDatatable" +}, + "coreMigrationVersion": "7.16.0", + "id": "a800e2b0-268c-11ec-b2b6-f1bd289a74d4", + "migrationVersion": { + "lens": "7.15.0" + }, + "references": [ + { + "id": "ftr-remote:logstash-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "ftr-remote:logstash-*", + "name": "indexpattern-datasource-layer-4ba1a1be-6e67-434b-b3a0-f30db8ea5395", + "type": "index-pattern" + }, + { + "id": "ftr-remote:logstash-*", + "name": "filter-index-pattern-0", + "type": "index-pattern" + } + ], + "type": "lens", + "updated_at": "2020-11-23T19:57:52.834Z", + "version": "WzUyLDJd" +} diff --git a/x-pack/test/functional/fixtures/kbn_archiver/lens/ccs/lens_basic.json b/x-pack/test/functional/fixtures/kbn_archiver/lens/ccs/lens_basic.json new file mode 100644 index 0000000000000..76ffbd3171154 --- /dev/null +++ b/x-pack/test/functional/fixtures/kbn_archiver/lens/ccs/lens_basic.json @@ -0,0 +1,433 @@ +{ + "attributes": { + "fields": "[{\"name\":\"@message\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"@message.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"@tags\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"@tags.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"@timestamp\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"_id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_score\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_source\",\"type\":\"_source\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"agent\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"agent.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"bytes\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"clientip\",\"type\":\"ip\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"extension\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"extension.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.coordinates\",\"type\":\"geo_point\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.dest\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.src\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.srcdest\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"headings\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"headings.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"host.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"id\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"index.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"ip\",\"type\":\"ip\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"links\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"links.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"machine.os\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"machine.os.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"machine.ram\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"memory\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"meta.char\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"meta.related\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"meta.user.firstname\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"meta.user.lastname\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"phpmemory\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"referer\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.article:modified_time\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.article:published_time\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.article:section\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.article:section.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.article:tag\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.article:tag.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:description\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:description.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:image\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:image.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:image:height\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:image:height.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:image:width\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:image:width.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:site_name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:site_name.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:title\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:title.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:type.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:url\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:url.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:card\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:card.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:description\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:description.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:image\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:image.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:site\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:site.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:title\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:title.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.url\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.url.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"request\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"request.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"response\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"response.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"spaces\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"spaces.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"url.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"utc_time\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"xss\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"xss.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]", + "timeFieldName": "@timestamp", + "title": "ftr-remote:logstash-*" + }, + "coreMigrationVersion": "8.0.0", + "id": "ftr-remote:logstash-*", + "migrationVersion": { + "index-pattern": "7.11.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2018-12-21T00:43:07.096Z", + "version": "WzEzLDJd" +} + +{ + "attributes": { + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "c61a8afb-a185-4fae-a064-fb3846f6c451": { + "columnOrder": [ + "2cd09808-3915-49f4-b3b0-82767eba23f7" + ], + "columns": { + "2cd09808-3915-49f4-b3b0-82767eba23f7": { + "dataType": "number", + "isBucketed": false, + "label": "Maximum of bytes", + "operationType": "max", + "scale": "ratio", + "sourceField": "bytes" + } + } + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "accessor": "2cd09808-3915-49f4-b3b0-82767eba23f7", + "isHorizontal": false, + "layerId": "c61a8afb-a185-4fae-a064-fb3846f6c451", + "layers": [ + { + "accessors": [ + "d3e62a7a-c259-4fff-a2fc-eebf20b7008a", + "26ef70a9-c837-444c-886e-6bd905ee7335" + ], + "layerId": "c61a8afb-a185-4fae-a064-fb3846f6c451", + "seriesType": "area", + "splitAccessor": "54cd64ed-2a44-4591-af84-b2624504569a", + "xAccessor": "d6e40cea-6299-43b4-9c9d-b4ee305a2ce8" + } + ], + "legend": { + "isVisible": true, + "position": "right" + }, + "preferredSeriesType": "area" + } + }, + "title": "Artistpreviouslyknownaslens", + "visualizationType": "lnsMetric" + }, + "coreMigrationVersion": "8.0.0", + "id": "76fc4200-cf44-11e9-b933-fd84270f3ac1", + "migrationVersion": { + "lens": "7.14.0" + }, + "references": [ + { + "id": "ftr-remote:logstash-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "ftr-remote:logstash-*", + "name": "indexpattern-datasource-layer-c61a8afb-a185-4fae-a064-fb3846f6c451", + "type": "index-pattern" + } + ], + "type": "lens", + "updated_at": "2019-10-16T00:28:08.979Z", + "version": "WzIwLDJd" +} + +{ + "attributes": { + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "4ba1a1be-6e67-434b-b3a0-f30db8ea5395": { + "columnOrder": [ + "7a5d833b-ca6f-4e48-a924-d2a28d365dc3", + "3cf18f28-3495-4d45-a55f-d97f88022099", + "3dc0bd55-2087-4e60-aea2-f9910714f7db" + ], + "columns": { + "3cf18f28-3495-4d45-a55f-d97f88022099": { + "dataType": "date", + "isBucketed": true, + "label": "@timestamp", + "operationType": "date_histogram", + "params": { + "interval": "auto" + }, + "scale": "interval", + "sourceField": "@timestamp" + }, + "3dc0bd55-2087-4e60-aea2-f9910714f7db": { + "dataType": "number", + "isBucketed": false, + "label": "Average of bytes", + "operationType": "average", + "scale": "ratio", + "sourceField": "bytes" + }, + "7a5d833b-ca6f-4e48-a924-d2a28d365dc3": { + "dataType": "ip", + "isBucketed": true, + "label": "Top values of ip", + "operationType": "terms", + "params": { + "orderBy": { + "columnId": "3dc0bd55-2087-4e60-aea2-f9910714f7db", + "type": "column" + }, + "orderDirection": "desc", + "size": 3 + }, + "scale": "ordinal", + "sourceField": "ip" + } + } + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "layers": [ + { + "accessors": [ + "3dc0bd55-2087-4e60-aea2-f9910714f7db" + ], + "layerId": "4ba1a1be-6e67-434b-b3a0-f30db8ea5395", + "seriesType": "bar_stacked", + "splitAccessor": "7a5d833b-ca6f-4e48-a924-d2a28d365dc3", + "xAccessor": "3cf18f28-3495-4d45-a55f-d97f88022099" + } + ], + "legend": { + "isVisible": true, + "position": "right" + }, + "preferredSeriesType": "bar_stacked" + } + }, + "title": "lnsXYvis", + "visualizationType": "lnsXY" + }, + "coreMigrationVersion": "8.0.0", + "id": "76fc4200-cf44-11e9-b933-fd84270f3ac2", + "migrationVersion": { + "lens": "7.14.0" + }, + "references": [ + { + "id": "ftr-remote:logstash-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "ftr-remote:logstash-*", + "name": "indexpattern-datasource-layer-4ba1a1be-6e67-434b-b3a0-f30db8ea5395", + "type": "index-pattern" + } + ], + "type": "lens", + "updated_at": "2019-10-16T00:28:08.979Z", + "version": "WzIyLDJd" +} + +{ + "attributes": { + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "4ba1a1be-6e67-434b-b3a0-f30db8ea5395": { + "columnOrder": [ + "bafe3009-1776-4227-a0fe-b0d6ccbb4961", + "c1ebe4c9-f283-486c-ae95-6b3e99e83bd8", + "3dc0bd55-2087-4e60-aea2-f9910714f7db" + ], + "columns": { + "3dc0bd55-2087-4e60-aea2-f9910714f7db": { + "dataType": "number", + "isBucketed": false, + "label": "Average of bytes", + "operationType": "average", + "scale": "ratio", + "sourceField": "bytes" + }, + "5bd1c078-e1dd-465b-8d25-7a6404befa88": { + "dataType": "date", + "isBucketed": true, + "label": "@timestamp", + "operationType": "date_histogram", + "params": { + "interval": "auto" + }, + "scale": "interval", + "sourceField": "@timestamp" + }, + "65340cf3-8402-4494-96f2-293701c59571": { + "dataType": "number", + "isBucketed": true, + "label": "Top values of bytes", + "operationType": "terms", + "params": { + "orderBy": { + "columnId": "3dc0bd55-2087-4e60-aea2-f9910714f7db", + "type": "column" + }, + "orderDirection": "desc", + "size": 3 + }, + "scale": "ordinal", + "sourceField": "bytes" + }, + "87554e1d-3dbf-4c1c-a358-4c9d40424cfa": { + "dataType": "string", + "isBucketed": true, + "label": "Top values of type", + "operationType": "terms", + "params": { + "orderBy": { + "columnId": "3dc0bd55-2087-4e60-aea2-f9910714f7db", + "type": "column" + }, + "orderDirection": "desc", + "size": 3 + }, + "scale": "ordinal", + "sourceField": "type" + }, + "bafe3009-1776-4227-a0fe-b0d6ccbb4961": { + "dataType": "string", + "isBucketed": true, + "label": "Top values of geo.dest", + "operationType": "terms", + "params": { + "orderBy": { + "columnId": "3dc0bd55-2087-4e60-aea2-f9910714f7db", + "type": "column" + }, + "orderDirection": "desc", + "size": 7 + }, + "scale": "ordinal", + "sourceField": "geo.dest" + }, + "c1ebe4c9-f283-486c-ae95-6b3e99e83bd8": { + "dataType": "string", + "isBucketed": true, + "label": "Top values of geo.src", + "operationType": "terms", + "params": { + "orderBy": { + "columnId": "3dc0bd55-2087-4e60-aea2-f9910714f7db", + "type": "column" + }, + "orderDirection": "desc", + "size": 3 + }, + "scale": "ordinal", + "sourceField": "geo.src" + } + } + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "bafe3009-1776-4227-a0fe-b0d6ccbb4961", + "c1ebe4c9-f283-486c-ae95-6b3e99e83bd8" + ], + "layerId": "4ba1a1be-6e67-434b-b3a0-f30db8ea5395", + "legendDisplay": "default", + "metric": "3dc0bd55-2087-4e60-aea2-f9910714f7db", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "lnsPieVis", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "8.0.0", + "id": "9536bed0-d57e-11ea-b169-e3a222a76b9c", + "migrationVersion": { + "lens": "7.14.0" + }, + "references": [ + { + "id": "ftr-remote:logstash-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "ftr-remote:logstash-*", + "name": "indexpattern-datasource-layer-4ba1a1be-6e67-434b-b3a0-f30db8ea5395", + "type": "index-pattern" + } + ], + "type": "lens", + "updated_at": "2020-08-03T11:43:43.421Z", + "version": "WzIxLDJd" +} + +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + }, + "title": "A Pie", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"A Pie\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":0,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}},\"palette\":{\"type\":\"palette\",\"name\":\"kibana_palette\"},\"distinctColors\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"geo.src\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}" + }, + "coreMigrationVersion": "8.0.0", + "id": "i-exist", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "ftr-remote:logstash-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization", + "updated_at": "2019-01-22T19:32:31.206Z", + "version": "WzE2LDJd" +} + +{ + "attributes": { + "fields": "[{\"name\":\"@message\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"@message.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"@tags\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"@tags.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"@timestamp\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"_id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_score\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_source\",\"type\":\"_source\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"agent\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"agent.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"bytes\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"clientip\",\"type\":\"ip\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"extension\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"extension.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.coordinates\",\"type\":\"geo_point\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.dest\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.src\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.srcdest\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"headings\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"headings.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"host.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"id\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"index.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"ip\",\"type\":\"ip\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"links\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"links.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"machine.os\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"machine.os.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"machine.ram\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"memory\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"meta.char\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"meta.related\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"meta.user.firstname\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"meta.user.lastname\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"phpmemory\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"referer\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.article:modified_time\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.article:published_time\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.article:section\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.article:section.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.article:tag\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.article:tag.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:description\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:description.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:image\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:image.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:image:height\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:image:height.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:image:width\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:image:width.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:site_name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:site_name.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:title\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:title.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:type.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:url\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:url.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:card\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:card.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:description\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:description.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:image\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:image.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:site\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:site.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:title\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:title.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.url\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.url.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"request\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"request.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"response\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"response.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"spaces\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"spaces.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"url.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"utc_time\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"xss\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"xss.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]", + "timeFieldName": "@timestamp", + "title": "ftr-remote:log*" + }, + "coreMigrationVersion": "8.0.0", + "id": "ftr-remote:log*", + "migrationVersion": { + "index-pattern": "7.11.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2018-12-21T00:43:07.096Z", + "version": "WzE0LDJd" +} + +{ + "attributes": { + "description": "Ok responses for jpg files", + "filters": [ + { + "$state": { + "store": "appState" + }, + "meta": { + "alias": null, + "disabled": false, + "index": "b15b1d40-a8bb-11e9-98cf-2bb06ef63e0b", + "key": "extension.raw", + "negate": false, + "params": { + "query": "jpg" + }, + "type": "phrase", + "value": "jpg" + }, + "query": { + "match": { + "extension.raw": { + "query": "jpg", + "type": "phrase" + } + } + } + } + ], + "query": { + "language": "kuery", + "query": "response:200" + }, + "title": "OKJpgs" + }, + "coreMigrationVersion": "8.0.0", + "id": "okjpgs", + "references": [], + "type": "query", + "updated_at": "2019-07-17T17:54:26.378Z", + "version": "WzE4LDJd" +} \ No newline at end of file diff --git a/x-pack/test/functional/fixtures/kbn_archiver/visualize/custom_space.json b/x-pack/test/functional/fixtures/kbn_archiver/visualize/custom_space.json new file mode 100644 index 0000000000000..6247f2548dfd3 --- /dev/null +++ b/x-pack/test/functional/fixtures/kbn_archiver/visualize/custom_space.json @@ -0,0 +1,43 @@ +{ + "attributes": { + "timeFieldName": "@timestamp", + "title": "logstash-*" + }, + "coreMigrationVersion": "7.17.2", + "id": "custom_logstash-*", + "migrationVersion": { + "index-pattern": "7.11.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2018-12-21T00:43:07.096Z", + "version": "WzEyLDJd" +} + +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + }, + "title": "A Pie", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"A Pie\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":0,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}},\"palette\":{\"type\":\"palette\",\"name\":\"kibana_palette\"},\"distinctColors\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"geo.src\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}" + }, + "coreMigrationVersion": "7.17.2", + "id": "custom_i-exist", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "custom_logstash-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization", + "updated_at": "2019-01-22T19:32:31.206Z", + "version": "WzE0LDJd" +} \ No newline at end of file diff --git a/x-pack/test/functional/fixtures/kbn_archiver/visualize/default.json b/x-pack/test/functional/fixtures/kbn_archiver/visualize/default.json new file mode 100644 index 0000000000000..243cfede1308b --- /dev/null +++ b/x-pack/test/functional/fixtures/kbn_archiver/visualize/default.json @@ -0,0 +1,147 @@ +{ + "attributes": { + "description": "Ok responses for jpg files", + "filters": [ + { + "$state": { + "store": "appState" + }, + "meta": { + "alias": null, + "disabled": false, + "index": "6afbb87f-5e4b-4514-9d73-a2b40188f7ff", + "key": "extension.raw", + "negate": false, + "params": { + "query": "jpg" + }, + "type": "phrase", + "value": "jpg" + }, + "query": { + "match": { + "extension.raw": { + "query": "jpg", + "type": "phrase" + } + } + } + } + ], + "query": { + "language": "kuery", + "query": "response:200" + }, + "title": "OKJpgs" + }, + "coreMigrationVersion": "7.17.2", + "id": "OKJpgs", + "migrationVersion": { + "query": "7.16.0" + }, + "references": [ + { + "id": "b15b1d40-a8bb-11e9-98cf-2bb06ef63e0b", + "name": "6afbb87f-5e4b-4514-9d73-a2b40188f7ff", + "type": "index-pattern" + } + ], + "type": "query", + "updated_at": "2019-07-17T17:54:26.378Z", + "version": "WzE1LDJd" +} + +{ + "attributes": { + "timeFieldName": "@timestamp", + "title": "logstash-*" + }, + "coreMigrationVersion": "7.17.2", + "id": "logstash-*", + "migrationVersion": { + "index-pattern": "7.11.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2018-12-21T00:43:07.096Z", + "version": "WzEwLDJd" +} + +{ + "attributes": { + "timeFieldName": "@timestamp", + "title": "logs*" + }, + "coreMigrationVersion": "7.17.2", + "id": "b15b1d40-a8bb-11e9-98cf-2bb06ef63e0b", + "migrationVersion": { + "index-pattern": "7.11.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2018-12-21T00:43:07.096Z", + "version": "WzEwLDJd" +} + +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + }, + "title": "A Pie", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"A Pie\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":0,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}},\"palette\":{\"type\":\"palette\",\"name\":\"kibana_palette\"},\"distinctColors\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"geo.src\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}" + }, + "coreMigrationVersion": "7.17.2", + "id": "i-exist", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logstash-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization", + "updated_at": "2019-01-22T19:32:31.206Z", + "version": "WzEzLDJd" +} + +{ + "attributes": { + "fields": "[{\"name\":\"scripted_date\",\"type\":\"date\",\"count\":0,\"scripted\":true,\"script\":\"1234\",\"lang\":\"painless\",\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"scripted_string\",\"type\":\"string\",\"count\":0,\"scripted\":true,\"script\":\"return 'hello'\",\"lang\":\"painless\",\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false}]", + "runtimeFieldMap": "{\"runtime_string_field\":{\"type\":\"keyword\",\"script\":{\"source\":\"emit('hello world!')\"}},\"runtime_number_field\":{\"type\":\"double\",\"script\":{\"source\":\"emit(5)\"}}}", + "timeFieldName": "@timestamp", + "title": "logstash-2015.09.22" + }, + "coreMigrationVersion": "7.17.2", + "id": "logstash-2015.09.22", + "migrationVersion": { + "index-pattern": "7.11.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2018-12-21T00:43:07.096Z", + "version": "WzExLDJd" +} + +{ + "attributes": { + "fieldFormatMap": "{\"aerospike.namespace.device.available.pct\":{\"id\":\"percent\",\"params\":{}},\"aerospike.namespace.device.free.pct\":{\"id\":\"percent\",\"params\":{}},\"aerospike.namespace.device.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aerospike.namespace.device.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aerospike.namespace.memory.free.pct\":{\"id\":\"percent\",\"params\":{}},\"aerospike.namespace.memory.used.data.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aerospike.namespace.memory.used.index.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aerospike.namespace.memory.used.sindex.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aerospike.namespace.memory.used.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.ec2.diskio.read.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.ec2.diskio.write.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.ec2.network.in.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.ec2.network.out.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.rds.cpu.total.pct\":{\"id\":\"percent\",\"params\":{}},\"aws.rds.disk_usage.bin_log.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.rds.free_local_storage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.rds.free_storage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.rds.freeable_memory.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.rds.latency.commit\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.latency.ddl\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.latency.dml\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.latency.insert\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.latency.read\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.latency.select\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.latency.update\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.latency.write\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.replica_lag.sec\":{\"id\":\"duration\",\"params\":{}},\"aws.rds.swap_usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.rds.volume_used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.s3_daily_storage.bucket.size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.s3_request.downloaded.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.s3_request.latency.first_byte.ms\":{\"id\":\"duration\",\"params\":{}},\"aws.s3_request.latency.total_request.ms\":{\"id\":\"duration\",\"params\":{}},\"aws.s3_request.requests.select_returned.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.s3_request.requests.select_scanned.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.s3_request.uploaded.bytes\":{\"id\":\"bytes\",\"params\":{}},\"aws.sqs.oldest_message_age.sec\":{\"id\":\"duration\",\"params\":{}},\"aws.sqs.sent_message_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_disk.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_disk.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_disk.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_status.degraded.ratio\":{\"id\":\"percent\",\"params\":{}},\"ceph.cluster_status.misplace.ratio\":{\"id\":\"percent\",\"params\":{}},\"ceph.cluster_status.pg.avail_bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_status.pg.data_bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_status.pg.total_bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_status.pg.used_bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_status.traffic.read_bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.cluster_status.traffic.write_bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.monitor_health.store_stats.log.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.monitor_health.store_stats.misc.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.monitor_health.store_stats.sst.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.monitor_health.store_stats.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.osd_df.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.osd_df.total.byte\":{\"id\":\"bytes\",\"params\":{}},\"ceph.osd_df.used.byte\":{\"id\":\"bytes\",\"params\":{}},\"ceph.osd_df.used.pct\":{\"id\":\"percent\",\"params\":{}},\"ceph.pool_disk.stats.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"ceph.pool_disk.stats.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"client.bytes\":{\"id\":\"bytes\",\"params\":{}},\"client.nat.port\":{\"id\":\"string\",\"params\":{}},\"client.port\":{\"id\":\"string\",\"params\":{}},\"coredns.stats.dns.request.duration.ns.sum\":{\"id\":\"duration\",\"params\":{}},\"couchbase.bucket.data.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.bucket.disk.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.bucket.memory.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.bucket.quota.ram.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.bucket.quota.use.pct\":{\"id\":\"percent\",\"params\":{}},\"couchbase.cluster.hdd.free.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.hdd.quota.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.hdd.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.hdd.used.by_data.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.hdd.used.value.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.ram.quota.total.per_node.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.ram.quota.total.value.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.ram.quota.used.per_node.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.ram.quota.used.value.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.ram.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.ram.used.by_data.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.cluster.ram.used.value.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.node.couch.docs.data_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.node.couch.docs.disk_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"couchbase.node.mcd_memory.allocated.bytes\":{\"id\":\"bytes\",\"params\":{}},\"destination.bytes\":{\"id\":\"bytes\",\"params\":{}},\"destination.nat.port\":{\"id\":\"string\",\"params\":{}},\"destination.port\":{\"id\":\"string\",\"params\":{}},\"docker.cpu.core.*.pct\":{\"id\":\"percent\",\"params\":{}},\"docker.cpu.kernel.pct\":{\"id\":\"percent\",\"params\":{}},\"docker.cpu.system.pct\":{\"id\":\"percent\",\"params\":{}},\"docker.cpu.total.pct\":{\"id\":\"percent\",\"params\":{}},\"docker.cpu.user.pct\":{\"id\":\"percent\",\"params\":{}},\"docker.diskio.read.bytes\":{\"id\":\"bytes\",\"params\":{}},\"docker.diskio.summary.bytes\":{\"id\":\"bytes\",\"params\":{}},\"docker.diskio.write.bytes\":{\"id\":\"bytes\",\"params\":{}},\"docker.memory.commit.peak\":{\"id\":\"bytes\",\"params\":{}},\"docker.memory.commit.total\":{\"id\":\"bytes\",\"params\":{}},\"docker.memory.limit\":{\"id\":\"bytes\",\"params\":{}},\"docker.memory.private_working_set.total\":{\"id\":\"bytes\",\"params\":{}},\"docker.memory.rss.pct\":{\"id\":\"percent\",\"params\":{}},\"docker.memory.rss.total\":{\"id\":\"bytes\",\"params\":{}},\"docker.memory.usage.max\":{\"id\":\"bytes\",\"params\":{}},\"docker.memory.usage.pct\":{\"id\":\"percent\",\"params\":{}},\"docker.memory.usage.total\":{\"id\":\"bytes\",\"params\":{}},\"docker.network.in.bytes\":{\"id\":\"bytes\",\"params\":{}},\"docker.network.inbound.bytes\":{\"id\":\"bytes\",\"params\":{}},\"docker.network.out.bytes\":{\"id\":\"bytes\",\"params\":{}},\"docker.network.outbound.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.index.summary.primaries.segments.memory.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.index.summary.primaries.store.size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.index.summary.total.segments.memory.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.index.summary.total.store.size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.index.total.segments.memory.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.index.total.store.size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.jvm.memory.heap.init.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.jvm.memory.heap.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.jvm.memory.nonheap.init.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.jvm.memory.nonheap.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.fs.summary.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.fs.summary.free.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.fs.summary.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.indices.segments.memory.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.old.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.old.peak.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.old.peak_max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.old.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.survivor.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.survivor.peak.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.survivor.peak_max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.survivor.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.young.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.young.peak.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.young.peak_max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"elasticsearch.node.stats.jvm.mem.pools.young.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"etcd.disk.mvcc_db_total_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"etcd.memory.go_memstats_alloc.bytes\":{\"id\":\"bytes\",\"params\":{}},\"etcd.network.client_grpc_received.bytes\":{\"id\":\"bytes\",\"params\":{}},\"etcd.network.client_grpc_sent.bytes\":{\"id\":\"bytes\",\"params\":{}},\"event.duration\":{\"id\":\"duration\",\"params\":{\"inputFormat\":\"nanoseconds\",\"outputFormat\":\"asMilliseconds\",\"outputPrecision\":1}},\"event.sequence\":{\"id\":\"string\",\"params\":{}},\"event.severity\":{\"id\":\"string\",\"params\":{}},\"golang.heap.allocations.active\":{\"id\":\"bytes\",\"params\":{}},\"golang.heap.allocations.allocated\":{\"id\":\"bytes\",\"params\":{}},\"golang.heap.allocations.idle\":{\"id\":\"bytes\",\"params\":{}},\"golang.heap.allocations.total\":{\"id\":\"bytes\",\"params\":{}},\"golang.heap.gc.next_gc_limit\":{\"id\":\"bytes\",\"params\":{}},\"golang.heap.system.obtained\":{\"id\":\"bytes\",\"params\":{}},\"golang.heap.system.released\":{\"id\":\"bytes\",\"params\":{}},\"golang.heap.system.stack\":{\"id\":\"bytes\",\"params\":{}},\"golang.heap.system.total\":{\"id\":\"bytes\",\"params\":{}},\"haproxy.info.idle.pct\":{\"id\":\"percent\",\"params\":{}},\"haproxy.info.memory.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"haproxy.info.ssl.frontend.session_reuse.pct\":{\"id\":\"percent\",\"params\":{}},\"haproxy.stat.compressor.bypassed.bytes\":{\"id\":\"bytes\",\"params\":{}},\"haproxy.stat.compressor.in.bytes\":{\"id\":\"bytes\",\"params\":{}},\"haproxy.stat.compressor.out.bytes\":{\"id\":\"bytes\",\"params\":{}},\"haproxy.stat.compressor.response.bytes\":{\"id\":\"bytes\",\"params\":{}},\"haproxy.stat.in.bytes\":{\"id\":\"bytes\",\"params\":{}},\"haproxy.stat.out.bytes\":{\"id\":\"bytes\",\"params\":{}},\"haproxy.stat.throttle.pct\":{\"id\":\"percent\",\"params\":{}},\"http.request.body.bytes\":{\"id\":\"bytes\",\"params\":{}},\"http.request.bytes\":{\"id\":\"bytes\",\"params\":{}},\"http.response.body.bytes\":{\"id\":\"bytes\",\"params\":{}},\"http.response.bytes\":{\"id\":\"bytes\",\"params\":{}},\"http.response.status_code\":{\"id\":\"string\",\"params\":{}},\"kibana.stats.process.memory.heap.size_limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kibana.stats.process.memory.heap.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kibana.stats.process.memory.heap.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.apiserver.http.request.size.bytes.sum\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.apiserver.http.response.size.bytes.sum\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.apiserver.process.memory.resident.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.apiserver.process.memory.virtual.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.cpu.usage.limit.pct\":{\"id\":\"percent\",\"params\":{}},\"kubernetes.container.cpu.usage.node.pct\":{\"id\":\"percent\",\"params\":{}},\"kubernetes.container.logs.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.logs.capacity.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.logs.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.memory.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.memory.limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.memory.request.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.memory.rss.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.memory.usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.memory.usage.limit.pct\":{\"id\":\"percent\",\"params\":{}},\"kubernetes.container.memory.usage.node.pct\":{\"id\":\"percent\",\"params\":{}},\"kubernetes.container.memory.workingset.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.rootfs.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.rootfs.capacity.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.container.rootfs.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.controllermanager.http.request.size.bytes.sum\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.controllermanager.http.response.size.bytes.sum\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.controllermanager.process.memory.resident.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.controllermanager.process.memory.virtual.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.fs.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.fs.capacity.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.fs.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.memory.allocatable.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.memory.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.memory.capacity.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.memory.rss.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.memory.usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.memory.workingset.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.network.rx.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.network.tx.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.runtime.imagefs.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.runtime.imagefs.capacity.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.node.runtime.imagefs.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.pod.cpu.usage.limit.pct\":{\"id\":\"percent\",\"params\":{}},\"kubernetes.pod.cpu.usage.node.pct\":{\"id\":\"percent\",\"params\":{}},\"kubernetes.pod.memory.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.pod.memory.rss.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.pod.memory.usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.pod.memory.usage.limit.pct\":{\"id\":\"percent\",\"params\":{}},\"kubernetes.pod.memory.usage.node.pct\":{\"id\":\"percent\",\"params\":{}},\"kubernetes.pod.memory.working_set.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.pod.network.rx.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.pod.network.tx.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.proxy.http.request.size.bytes.sum\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.proxy.http.response.size.bytes.sum\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.proxy.process.memory.resident.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.proxy.process.memory.virtual.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.scheduler.http.request.size.bytes.sum\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.scheduler.http.response.size.bytes.sum\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.scheduler.process.memory.resident.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.scheduler.process.memory.virtual.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.system.memory.rss.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.system.memory.usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.system.memory.workingset.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.volume.fs.available.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.volume.fs.capacity.bytes\":{\"id\":\"bytes\",\"params\":{}},\"kubernetes.volume.fs.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.dbstats.avg_obj_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.dbstats.data_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.dbstats.extent_free_list.size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.dbstats.file_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.dbstats.index_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.dbstats.storage_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.replstatus.headroom.max\":{\"id\":\"duration\",\"params\":{}},\"mongodb.replstatus.headroom.min\":{\"id\":\"duration\",\"params\":{}},\"mongodb.replstatus.lag.max\":{\"id\":\"duration\",\"params\":{}},\"mongodb.replstatus.lag.min\":{\"id\":\"duration\",\"params\":{}},\"mongodb.replstatus.oplog.size.allocated\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.replstatus.oplog.size.used\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.extra_info.heap_usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.network.in.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.network.out.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.wired_tiger.cache.dirty.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.wired_tiger.cache.maximum.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.wired_tiger.cache.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.wired_tiger.log.max_file_size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.wired_tiger.log.size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mongodb.status.wired_tiger.log.write.bytes\":{\"id\":\"bytes\",\"params\":{}},\"mysql.status.bytes.received\":{\"id\":\"bytes\",\"params\":{}},\"mysql.status.bytes.sent\":{\"id\":\"bytes\",\"params\":{}},\"nats.stats.cpu\":{\"id\":\"percent\",\"params\":{}},\"nats.stats.in.bytes\":{\"id\":\"bytes\",\"params\":{}},\"nats.stats.mem.bytes\":{\"id\":\"bytes\",\"params\":{}},\"nats.stats.out.bytes\":{\"id\":\"bytes\",\"params\":{}},\"nats.stats.uptime\":{\"id\":\"duration\",\"params\":{}},\"nats.subscriptions.cache.hit_rate\":{\"id\":\"percent\",\"params\":{}},\"network.bytes\":{\"id\":\"bytes\",\"params\":{}},\"oracle.tablespace.data_file.size.bytes\":{\"id\":\"bytes\",\"params\":{}},\"oracle.tablespace.data_file.size.free.bytes\":{\"id\":\"bytes\",\"params\":{}},\"oracle.tablespace.data_file.size.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"oracle.tablespace.space.free.bytes\":{\"id\":\"bytes\",\"params\":{}},\"oracle.tablespace.space.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"oracle.tablespace.space.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"process.pgid\":{\"id\":\"string\",\"params\":{}},\"process.pid\":{\"id\":\"string\",\"params\":{}},\"process.ppid\":{\"id\":\"string\",\"params\":{}},\"process.thread.id\":{\"id\":\"string\",\"params\":{}},\"rabbitmq.connection.frame_max\":{\"id\":\"bytes\",\"params\":{}},\"rabbitmq.node.disk.free.bytes\":{\"id\":\"bytes\",\"params\":{}},\"rabbitmq.node.disk.free.limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"rabbitmq.node.gc.reclaimed.bytes\":{\"id\":\"bytes\",\"params\":{}},\"rabbitmq.node.io.read.bytes\":{\"id\":\"bytes\",\"params\":{}},\"rabbitmq.node.io.write.bytes\":{\"id\":\"bytes\",\"params\":{}},\"rabbitmq.node.mem.limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"rabbitmq.queue.consumers.utilisation.pct\":{\"id\":\"percent\",\"params\":{}},\"rabbitmq.queue.memory.bytes\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.allocator_stats.active\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.allocator_stats.allocated\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.allocator_stats.fragmentation.bytes\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.allocator_stats.resident\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.allocator_stats.rss.bytes\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.fragmentation.bytes\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.max.value\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.used.dataset\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.used.lua\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.used.peak\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.used.rss\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.memory.used.value\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.persistence.aof.buffer.size\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.persistence.aof.copy_on_write.last_size\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.persistence.aof.rewrite.buffer.size\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.persistence.aof.rewrite.current_time.sec\":{\"id\":\"duration\",\"params\":{}},\"redis.info.persistence.aof.rewrite.last_time.sec\":{\"id\":\"duration\",\"params\":{}},\"redis.info.persistence.aof.size.base\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.persistence.aof.size.current\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.persistence.rdb.bgsave.current_time.sec\":{\"id\":\"duration\",\"params\":{}},\"redis.info.persistence.rdb.bgsave.last_time.sec\":{\"id\":\"duration\",\"params\":{}},\"redis.info.persistence.rdb.copy_on_write.last_size\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.replication.backlog.size\":{\"id\":\"bytes\",\"params\":{}},\"redis.info.replication.master.last_io_seconds_ago\":{\"id\":\"duration\",\"params\":{}},\"redis.info.replication.master.sync.last_io_seconds_ago\":{\"id\":\"duration\",\"params\":{}},\"redis.info.replication.master.sync.left_bytes\":{\"id\":\"bytes\",\"params\":{}},\"server.bytes\":{\"id\":\"bytes\",\"params\":{}},\"server.nat.port\":{\"id\":\"string\",\"params\":{}},\"server.port\":{\"id\":\"string\",\"params\":{}},\"source.bytes\":{\"id\":\"bytes\",\"params\":{}},\"source.nat.port\":{\"id\":\"string\",\"params\":{}},\"source.port\":{\"id\":\"string\",\"params\":{}},\"system.core.idle.pct\":{\"id\":\"percent\",\"params\":{}},\"system.core.iowait.pct\":{\"id\":\"percent\",\"params\":{}},\"system.core.irq.pct\":{\"id\":\"percent\",\"params\":{}},\"system.core.nice.pct\":{\"id\":\"percent\",\"params\":{}},\"system.core.softirq.pct\":{\"id\":\"percent\",\"params\":{}},\"system.core.steal.pct\":{\"id\":\"percent\",\"params\":{}},\"system.core.system.pct\":{\"id\":\"percent\",\"params\":{}},\"system.core.user.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.idle.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.idle.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.iowait.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.iowait.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.irq.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.irq.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.nice.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.nice.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.softirq.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.softirq.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.steal.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.steal.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.system.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.system.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.total.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.total.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.user.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.cpu.user.pct\":{\"id\":\"percent\",\"params\":{}},\"system.diskio.iostat.read.per_sec.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.diskio.iostat.write.per_sec.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.diskio.read.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.diskio.write.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.entropy.pct\":{\"id\":\"percent\",\"params\":{}},\"system.filesystem.available\":{\"id\":\"bytes\",\"params\":{}},\"system.filesystem.free\":{\"id\":\"bytes\",\"params\":{}},\"system.filesystem.total\":{\"id\":\"bytes\",\"params\":{}},\"system.filesystem.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.filesystem.used.pct\":{\"id\":\"percent\",\"params\":{}},\"system.fsstat.total_size.free\":{\"id\":\"bytes\",\"params\":{}},\"system.fsstat.total_size.total\":{\"id\":\"bytes\",\"params\":{}},\"system.fsstat.total_size.used\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.actual.free\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.actual.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.actual.used.pct\":{\"id\":\"percent\",\"params\":{}},\"system.memory.free\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.hugepages.default_size\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.hugepages.free\":{\"id\":\"number\",\"params\":{}},\"system.memory.hugepages.reserved\":{\"id\":\"number\",\"params\":{}},\"system.memory.hugepages.surplus\":{\"id\":\"number\",\"params\":{}},\"system.memory.hugepages.total\":{\"id\":\"number\",\"params\":{}},\"system.memory.hugepages.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.hugepages.used.pct\":{\"id\":\"percent\",\"params\":{}},\"system.memory.swap.free\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.swap.total\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.swap.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.swap.used.pct\":{\"id\":\"percent\",\"params\":{}},\"system.memory.total\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.memory.used.pct\":{\"id\":\"percent\",\"params\":{}},\"system.network.in.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.network.out.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.blkio.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.kmem.limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.kmem.usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.kmem.usage.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.kmem_tcp.limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.kmem_tcp.usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.kmem_tcp.usage.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.mem.limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.mem.usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.mem.usage.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.memsw.limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.memsw.usage.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.memsw.usage.max.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.active_anon.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.active_file.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.cache.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.hierarchical_memory_limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.hierarchical_memsw_limit.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.inactive_anon.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.inactive_file.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.mapped_file.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.rss.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.rss_huge.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.swap.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cgroup.memory.stats.unevictable.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.cpu.total.norm.pct\":{\"id\":\"percent\",\"params\":{}},\"system.process.cpu.total.pct\":{\"id\":\"percent\",\"params\":{}},\"system.process.memory.rss.bytes\":{\"id\":\"bytes\",\"params\":{}},\"system.process.memory.rss.pct\":{\"id\":\"percent\",\"params\":{}},\"system.process.memory.share\":{\"id\":\"bytes\",\"params\":{}},\"system.process.memory.size\":{\"id\":\"bytes\",\"params\":{}},\"system.socket.summary.tcp.memory\":{\"id\":\"bytes\",\"params\":{}},\"system.socket.summary.udp.memory\":{\"id\":\"bytes\",\"params\":{}},\"system.uptime.duration.ms\":{\"id\":\"duration\",\"params\":{\"inputFormat\":\"milliseconds\"}},\"url.port\":{\"id\":\"string\",\"params\":{}},\"vsphere.datastore.capacity.free.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.datastore.capacity.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.datastore.capacity.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.datastore.capacity.used.pct\":{\"id\":\"percent\",\"params\":{}},\"vsphere.host.memory.free.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.host.memory.total.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.host.memory.used.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.virtualmachine.memory.free.guest.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.virtualmachine.memory.total.guest.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.virtualmachine.memory.used.guest.bytes\":{\"id\":\"bytes\",\"params\":{}},\"vsphere.virtualmachine.memory.used.host.bytes\":{\"id\":\"bytes\",\"params\":{}},\"windows.service.uptime.ms\":{\"id\":\"duration\",\"params\":{\"inputFormat\":\"milliseconds\"}}}", + "timeFieldName": "@timestamp", + "title": "metricbeat-*" + }, + "coreMigrationVersion": "7.17.2", + "id": "metricbeat-*", + "migrationVersion": { + "index-pattern": "7.11.0" + }, + "references": [], + "type": "index-pattern", + "updated_at": "2020-01-22T15:34:59.061Z", + "version": "WzksMl0=" +} \ No newline at end of file diff --git a/x-pack/test/functional/services/ml/alerting.ts b/x-pack/test/functional/services/ml/alerting.ts index 45c4c9ba39ed1..0acda99622443 100644 --- a/x-pack/test/functional/services/ml/alerting.ts +++ b/x-pack/test/functional/services/ml/alerting.ts @@ -10,7 +10,7 @@ import { FtrProviderContext } from '../../ftr_provider_context'; import { MlApi } from './api'; import { MlCommonUI } from './common_ui'; import { ML_ALERT_TYPES } from '../../../../plugins/ml/common/constants/alerts'; -import { Alert } from '../../../../plugins/alerting/common'; +import { Rule } from '../../../../plugins/alerting/common'; import { MlAnomalyDetectionAlertParams } from '../../../../plugins/ml/common/types/alerts'; export function MachineLearningAlertingProvider( @@ -161,9 +161,7 @@ export function MachineLearningAlertingProvider( .set('kbn-xsrf', 'foo'); mlApi.assertResponseStatusCode(200, findResponseStatus, anomalyDetectionRules); - for (const rule of anomalyDetectionRules.data as Array< - Alert - >) { + for (const rule of anomalyDetectionRules.data as Array>) { const { body, status } = await supertest .delete(`/api/alerting/rule/${rule.id}`) .set('kbn-xsrf', 'foo'); diff --git a/x-pack/test/functional/services/remote_es/remote_es.ts b/x-pack/test/functional/services/remote_es/remote_es.ts new file mode 100644 index 0000000000000..15f46131d6927 --- /dev/null +++ b/x-pack/test/functional/services/remote_es/remote_es.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 { Client } from '@elastic/elasticsearch'; + +import { systemIndicesSuperuser, createRemoteEsClientForFtrConfig } from '@kbn/test'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +/** + * Kibana-specific @elastic/elasticsearch client instance. + */ +export function RemoteEsProvider({ getService }: FtrProviderContext): Client { + const config = getService('config'); + + return createRemoteEsClientForFtrConfig(config, { + // Use system indices user so tests can write to system indices + authOverride: systemIndicesSuperuser, + }); +} diff --git a/x-pack/test/functional/services/remote_es/remote_es_archiver.ts b/x-pack/test/functional/services/remote_es/remote_es_archiver.ts new file mode 100644 index 0000000000000..82439258a0e43 --- /dev/null +++ b/x-pack/test/functional/services/remote_es/remote_es_archiver.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 { EsArchiver } from '@kbn/es-archiver'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export function RemoteEsArchiverProvider({ getService }: FtrProviderContext): EsArchiver { + const remoteEs = getService('remoteEs' as 'es'); + const log = getService('log'); + const kibanaServer = getService('kibanaServer'); + + return new EsArchiver({ + client: remoteEs, + log, + kbnClient: kibanaServer, + }); +} diff --git a/x-pack/test/functional/services/transform/security_common.ts b/x-pack/test/functional/services/transform/security_common.ts index dfe6d9e0917ef..36670a65211b3 100644 --- a/x-pack/test/functional/services/transform/security_common.ts +++ b/x-pack/test/functional/services/transform/security_common.ts @@ -31,7 +31,7 @@ export function TransformSecurityCommonProvider({ getService }: FtrProviderConte { name: 'transform_dest', elasticsearch: { - indices: [{ names: ['user-*'], privileges: ['read', 'index', 'manage'] }], + indices: [{ names: ['user-*'], privileges: ['read', 'index', 'manage', 'delete'] }], }, kibana: [], }, diff --git a/x-pack/test/functional/services/transform/wizard.ts b/x-pack/test/functional/services/transform/wizard.ts index 2b95570a9fb1a..3c75db1c4c366 100644 --- a/x-pack/test/functional/services/transform/wizard.ts +++ b/x-pack/test/functional/services/transform/wizard.ts @@ -684,6 +684,27 @@ export function TransformWizardProvider({ getService, getPageObjects }: FtrProvi ); }, + async assertDataViewTimeFieldInputExists() { + await testSubjects.existOrFail(`transformDataViewTimeFieldSelect`); + }, + + async assertDataViewTimeFieldValue(expectedValue: string) { + const actualValue = await testSubjects.getAttribute( + `transformDataViewTimeFieldSelect`, + 'value' + ); + expect(actualValue).to.eql( + expectedValue, + `Data view time field should be ${expectedValue}, got ${actualValue}` + ); + }, + + async setDataViewTimeField(fieldName: string) { + const selectControl = await testSubjects.find('transformDataViewTimeFieldSelect'); + await selectControl.type(fieldName); + await this.assertDataViewTimeFieldValue(fieldName); + }, + async assertContinuousModeSwitchExists() { await testSubjects.existOrFail(`transformContinuousModeSwitch`, { allowHidden: true }); }, diff --git a/x-pack/test/functional_with_es_ssl/apps/cases/view_case.ts b/x-pack/test/functional_with_es_ssl/apps/cases/view_case.ts index 8c14e7e1263ee..8fd5821ffdef1 100644 --- a/x-pack/test/functional_with_es_ssl/apps/cases/view_case.ts +++ b/x-pack/test/functional_with_es_ssl/apps/cases/view_case.ts @@ -19,7 +19,8 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { const retry = getService('retry'); const comboBox = getService('comboBox'); - describe('View case', () => { + // Failing: See https://github.com/elastic/kibana/issues/129248 + describe.skip('View case', () => { describe('properties', () => { // create the case to test on before(async () => { diff --git a/x-pack/test/functional_with_es_ssl/apps/discover/index.ts b/x-pack/test/functional_with_es_ssl/apps/discover/index.ts new file mode 100644 index 0000000000000..708da2f02da74 --- /dev/null +++ b/x-pack/test/functional_with_es_ssl/apps/discover/index.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 { FtrProviderContext } from '../../ftr_provider_context'; + +export default ({ loadTestFile, getService }: FtrProviderContext) => { + describe('Discover alerting', function () { + this.tags('ciGroup6'); + loadTestFile(require.resolve('./search_source_alert')); + }); +}; diff --git a/x-pack/test/functional_with_es_ssl/apps/discover/search_source_alert.ts b/x-pack/test/functional_with_es_ssl/apps/discover/search_source_alert.ts new file mode 100644 index 0000000000000..bae045fc93838 --- /dev/null +++ b/x-pack/test/functional_with_es_ssl/apps/discover/search_source_alert.ts @@ -0,0 +1,340 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { asyncForEach } from '@kbn/std'; +import { last } from 'lodash'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getService, getPageObjects }: FtrProviderContext) { + const log = getService('log'); + const es = getService('es'); + const monacoEditor = getService('monacoEditor'); + const PageObjects = getPageObjects([ + 'settings', + 'common', + 'header', + 'discover', + 'timePicker', + 'dashboard', + ]); + const deployment = getService('deployment'); + const dataGrid = getService('dataGrid'); + const browser = getService('browser'); + const retry = getService('retry'); + const testSubjects = getService('testSubjects'); + const supertest = getService('supertest'); + const queryBar = getService('queryBar'); + const security = getService('security'); + + const SOURCE_DATA_INDEX = 'search-source-alert'; + const OUTPUT_DATA_INDEX = 'search-source-alert-output'; + const ACTION_TYPE_ID = '.index'; + const RULE_NAME = 'test-search-source-alert'; + let sourceDataViewId: string; + let outputDataViewId: string; + let connectorId: string; + + const createSourceIndex = () => + es.index({ + index: SOURCE_DATA_INDEX, + body: { + settings: { number_of_shards: 1 }, + mappings: { + properties: { + '@timestamp': { type: 'date' }, + message: { type: 'text' }, + }, + }, + }, + }); + + const generateNewDocs = async (docsNumber: number) => { + const mockMessages = new Array(docsNumber).map((current) => `msg-${current}`); + const dateNow = new Date().toISOString(); + for (const message of mockMessages) { + await es.transport.request({ + path: `/${SOURCE_DATA_INDEX}/_doc`, + method: 'POST', + body: { + '@timestamp': dateNow, + message, + }, + }); + } + }; + + const createOutputDataIndex = () => + es.index({ + index: OUTPUT_DATA_INDEX, + body: { + settings: { + number_of_shards: 1, + }, + mappings: { + properties: { + rule_id: { type: 'text' }, + rule_name: { type: 'text' }, + alert_id: { type: 'text' }, + context_message: { type: 'text' }, + }, + }, + }, + }); + + const deleteAlerts = (alertIds: string[]) => + asyncForEach(alertIds, async (alertId: string) => { + await supertest + .delete(`/api/alerting/rule/${alertId}`) + .set('kbn-xsrf', 'foo') + .expect(204, ''); + }); + + const getAlertsByName = async (name: string) => { + const { + body: { data: alerts }, + } = await supertest + .get(`/api/alerting/rules/_find?search=${name}&search_fields=name`) + .expect(200); + + return alerts; + }; + + const createDataView = async (dataView: string) => { + log.debug(`create data view ${dataView}`); + return await supertest + .post(`/api/data_views/data_view`) + .set('kbn-xsrf', 'foo') + .send({ data_view: { title: dataView, timeFieldName: '@timestamp' } }) + .expect(200); + }; + + const createConnector = async (): Promise => { + const { body: createdAction } = await supertest + .post(`/api/actions/connector`) + .set('kbn-xsrf', 'foo') + .send({ + name: 'search-source-alert-test-connector', + connector_type_id: ACTION_TYPE_ID, + config: { index: OUTPUT_DATA_INDEX }, + secrets: {}, + }) + .expect(200); + + return createdAction.id; + }; + + const deleteConnector = (id: string) => + supertest.delete(`/api/actions/connector/${id}`).set('kbn-xsrf', 'foo').expect(204, ''); + + const deleteDataViews = (dataViews: string[]) => + asyncForEach( + dataViews, + async (dataView: string) => + await supertest + .delete(`/api/data_views/data_view/${dataView}`) + .set('kbn-xsrf', 'foo') + .expect(200) + ); + + const defineSearchSourceAlert = async (alertName: string) => { + await testSubjects.click('discoverAlertsButton'); + await testSubjects.click('discoverCreateAlertButton'); + + await testSubjects.setValue('ruleNameInput', alertName); + await testSubjects.click('thresholdPopover'); + await testSubjects.setValue('alertThresholdInput', '3'); + await testSubjects.click('.index-ActionTypeSelectOption'); + + await monacoEditor.setCodeEditorValue(`{ + "rule_id": "{{ruleId}}", + "rule_name": "{{ruleName}}", + "alert_id": "{{alertId}}", + "context_message": "{{context.message}}" + }`); + await testSubjects.click('saveRuleButton'); + }; + + const getLastToast = async () => { + const toastList = await testSubjects.find('globalToastList'); + const titles = await toastList.findAllByCssSelector('.euiToastHeader'); + const lastTitleElement = last(titles)!; + const title = await lastTitleElement.getVisibleText(); + const messages = await toastList.findAllByCssSelector('.euiToastBody'); + const lastMessageElement = last(messages)!; + const message = await lastMessageElement.getVisibleText(); + return { message, title }; + }; + + const openOutputIndex = async () => { + await PageObjects.common.navigateToApp('discover'); + await PageObjects.header.waitUntilLoadingHasFinished(); + await PageObjects.discover.selectIndexPattern(OUTPUT_DATA_INDEX); + + const [{ id: alertId }] = await getAlertsByName(RULE_NAME); + await queryBar.setQuery(`alert_id:${alertId}`); + await retry.waitFor('document explorer contains alert', async () => { + await queryBar.submitQuery(); + await PageObjects.discover.waitUntilSearchingHasFinished(); + return (await dataGrid.getDocCount()) > 0; + }); + }; + + const getResultsLink = async () => { + // getting the link + await dataGrid.clickRowToggle(); + await testSubjects.click('collapseBtn'); + const contextMessageElement = await testSubjects.find('tableDocViewRow-context_message-value'); + const contextMessage = await contextMessageElement.getVisibleText(); + const [, link] = contextMessage.split(`Link\: `); + + return link; + }; + + const navigateToDiscover = async (link: string) => { + // following ling provided by alert to see documents triggered the alert + const baseUrl = deployment.getHostPort(); + await browser.navigateTo(baseUrl + link); + await PageObjects.discover.waitUntilSearchingHasFinished(); + + await retry.waitFor('navigate to discover', async () => { + const currentUrl = await browser.getCurrentUrl(); + return currentUrl.includes(sourceDataViewId); + }); + }; + + const navigateToResults = async () => { + const link = await getResultsLink(); + await navigateToDiscover(link); + }; + + const openAlertRule = async () => { + await PageObjects.common.navigateToApp('management'); + await PageObjects.header.waitUntilLoadingHasFinished(); + + await testSubjects.click('triggersActions'); + await PageObjects.header.waitUntilLoadingHasFinished(); + + const rulesList = await testSubjects.find('rulesList'); + const alertRule = await rulesList.findByCssSelector('[title="test-search-source-alert"]'); + await alertRule.click(); + await PageObjects.header.waitUntilLoadingHasFinished(); + }; + + describe('Search source Alert', () => { + before(async () => { + await security.testUser.setRoles(['discover_alert']); + + log.debug('create source index'); + await createSourceIndex(); + + log.debug('generate documents'); + await generateNewDocs(5); + + log.debug('create output index'); + await createOutputDataIndex(); + + log.debug('create data views'); + const sourceDataViewResponse = await createDataView(SOURCE_DATA_INDEX); + const outputDataViewResponse = await createDataView(OUTPUT_DATA_INDEX); + + log.debug('create connector'); + connectorId = await createConnector(); + + sourceDataViewId = sourceDataViewResponse.body.data_view.id; + outputDataViewId = outputDataViewResponse.body.data_view.id; + }); + + after(async () => { + // delete only remaining output index + await es.transport.request({ + path: `/${OUTPUT_DATA_INDEX}`, + method: 'DELETE', + }); + await deleteDataViews([sourceDataViewId, outputDataViewId]); + await deleteConnector(connectorId); + const alertsToDelete = await getAlertsByName(RULE_NAME); + await deleteAlerts(alertsToDelete.map((alertItem: { id: string }) => alertItem.id)); + await security.testUser.restoreDefaults(); + }); + + it('should navigate to discover via view in app link', async () => { + await PageObjects.common.navigateToApp('discover'); + await PageObjects.discover.waitUntilSearchingHasFinished(); + await PageObjects.discover.selectIndexPattern(SOURCE_DATA_INDEX); + await PageObjects.timePicker.setCommonlyUsedTime('Last_15 minutes'); + + // create an alert + await defineSearchSourceAlert(RULE_NAME); + await PageObjects.header.waitUntilLoadingHasFinished(); + + await openAlertRule(); + + await testSubjects.click('ruleDetails-viewInApp'); + await PageObjects.header.waitUntilLoadingHasFinished(); + + await retry.waitFor('navigate to discover', async () => { + const currentUrl = await browser.getCurrentUrl(); + return currentUrl.includes(sourceDataViewId); + }); + + expect(await dataGrid.getDocCount()).to.be(5); + }); + + it('should open documents triggered the alert', async () => { + await openOutputIndex(); + await navigateToResults(); + + const { message, title } = await getLastToast(); + expect(await dataGrid.getDocCount()).to.be(5); + expect(title).to.be.equal('Displayed documents may vary'); + expect(message).to.be.equal( + 'The displayed documents might differ from the documents that triggered the alert. Some documents might have been added or deleted.' + ); + }); + + it('should display warning about updated alert rule', async () => { + await openAlertRule(); + + // change rule configuration + await testSubjects.click('openEditRuleFlyoutButton'); + await testSubjects.click('thresholdPopover'); + await testSubjects.setValue('alertThresholdInput', '1'); + await testSubjects.click('saveEditedRuleButton'); + await PageObjects.header.waitUntilLoadingHasFinished(); + + await openOutputIndex(); + await navigateToResults(); + + const { message, title } = await getLastToast(); + expect(await dataGrid.getDocCount()).to.be(5); + expect(title).to.be.equal('Alert rule has changed'); + expect(message).to.be.equal( + 'The displayed documents might not match the documents that triggered the alert because the rule configuration changed.' + ); + }); + + it('should display not found index error', async () => { + await openOutputIndex(); + const link = await getResultsLink(); + await navigateToDiscover(link); + + await es.transport.request({ + path: `/${SOURCE_DATA_INDEX}`, + method: 'DELETE', + }); + await browser.refresh(); + + await navigateToDiscover(link); + + const { title } = await getLastToast(); + expect(title).to.be.equal( + 'No matching indices found: No indices match "search-source-alert"' + ); + }); + }); +} diff --git a/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/details.ts b/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/details.ts index 22c98b189a590..3813a8686826e 100644 --- a/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/details.ts +++ b/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/details.ts @@ -180,75 +180,90 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { }); it('should disable the rule', async () => { - const enableSwitch = await testSubjects.find('enableSwitch'); + const actionsDropdown = await testSubjects.find('statusDropdown'); - const isChecked = await enableSwitch.getAttribute('aria-checked'); - expect(isChecked).to.eql('true'); + expect(await actionsDropdown.getVisibleText()).to.eql('Enabled'); - await enableSwitch.click(); + await actionsDropdown.click(); + const actionsMenuElem = await testSubjects.find('ruleStatusMenu'); + const actionsMenuItemElem = await actionsMenuElem.findAllByClassName('euiContextMenuItem'); - const disableSwitchAfterDisabling = await testSubjects.find('enableSwitch'); - const isCheckedAfterDisabling = await disableSwitchAfterDisabling.getAttribute( - 'aria-checked' - ); - expect(isCheckedAfterDisabling).to.eql('false'); + await actionsMenuItemElem.at(1)?.click(); + + await retry.try(async () => { + expect(await actionsDropdown.getVisibleText()).to.eql('Disabled'); + }); }); - it('shouldnt allow you to mute a disabled rule', async () => { - const disabledEnableSwitch = await testSubjects.find('enableSwitch'); - expect(await disabledEnableSwitch.getAttribute('aria-checked')).to.eql('false'); + it('shouldnt allow you to snooze a disabled rule', async () => { + const actionsDropdown = await testSubjects.find('statusDropdown'); - const muteSwitch = await testSubjects.find('muteSwitch'); - expect(await muteSwitch.getAttribute('aria-checked')).to.eql('false'); + expect(await actionsDropdown.getVisibleText()).to.eql('Disabled'); - await muteSwitch.click(); + await actionsDropdown.click(); + const actionsMenuElem = await testSubjects.find('ruleStatusMenu'); + const actionsMenuItemElem = await actionsMenuElem.findAllByClassName('euiContextMenuItem'); - const muteSwitchAfterTryingToMute = await testSubjects.find('muteSwitch'); - const isDisabledMuteAfterDisabling = await muteSwitchAfterTryingToMute.getAttribute( - 'aria-checked' - ); - expect(isDisabledMuteAfterDisabling).to.eql('false'); + expect(await actionsMenuItemElem.at(2)?.getVisibleText()).to.eql('Snooze'); + expect(await actionsMenuItemElem.at(2)?.getAttribute('disabled')).to.eql('true'); + // close the dropdown + await actionsDropdown.click(); }); it('should reenable a disabled the rule', async () => { - const enableSwitch = await testSubjects.find('enableSwitch'); + const actionsDropdown = await testSubjects.find('statusDropdown'); - const isChecked = await enableSwitch.getAttribute('aria-checked'); - expect(isChecked).to.eql('false'); + expect(await actionsDropdown.getVisibleText()).to.eql('Disabled'); - await enableSwitch.click(); + await actionsDropdown.click(); + const actionsMenuElem = await testSubjects.find('ruleStatusMenu'); + const actionsMenuItemElem = await actionsMenuElem.findAllByClassName('euiContextMenuItem'); - const disableSwitchAfterReenabling = await testSubjects.find('enableSwitch'); - const isCheckedAfterDisabling = await disableSwitchAfterReenabling.getAttribute( - 'aria-checked' - ); - expect(isCheckedAfterDisabling).to.eql('true'); + await actionsMenuItemElem.at(0)?.click(); + + await retry.try(async () => { + expect(await actionsDropdown.getVisibleText()).to.eql('Enabled'); + }); }); - it('should mute the rule', async () => { - const muteSwitch = await testSubjects.find('muteSwitch'); + it('should snooze the rule', async () => { + const actionsDropdown = await testSubjects.find('statusDropdown'); - const isChecked = await muteSwitch.getAttribute('aria-checked'); - expect(isChecked).to.eql('false'); + expect(await actionsDropdown.getVisibleText()).to.eql('Enabled'); - await muteSwitch.click(); + await actionsDropdown.click(); + const actionsMenuElem = await testSubjects.find('ruleStatusMenu'); + const actionsMenuItemElem = await actionsMenuElem.findAllByClassName('euiContextMenuItem'); - const muteSwitchAfterDisabling = await testSubjects.find('muteSwitch'); - const isCheckedAfterDisabling = await muteSwitchAfterDisabling.getAttribute('aria-checked'); - expect(isCheckedAfterDisabling).to.eql('true'); + await actionsMenuItemElem.at(2)?.click(); + + const snoozeIndefinite = await testSubjects.find('ruleSnoozeIndefiniteApply'); + await snoozeIndefinite.click(); + + await retry.try(async () => { + expect(await actionsDropdown.getVisibleText()).to.eql('Snoozed'); + const remainingSnoozeTime = await testSubjects.find('remainingSnoozeTime'); + expect(await remainingSnoozeTime.getVisibleText()).to.eql('Indefinitely'); + }); }); - it('should unmute the rule', async () => { - const muteSwitch = await testSubjects.find('muteSwitch'); + it('should unsnooze the rule', async () => { + const actionsDropdown = await testSubjects.find('statusDropdown'); - const isChecked = await muteSwitch.getAttribute('aria-checked'); - expect(isChecked).to.eql('true'); + expect(await actionsDropdown.getVisibleText()).to.eql('Snoozed'); - await muteSwitch.click(); + await actionsDropdown.click(); + const actionsMenuElem = await testSubjects.find('ruleStatusMenu'); + const actionsMenuItemElem = await actionsMenuElem.findAllByClassName('euiContextMenuItem'); - const muteSwitchAfterUnmuting = await testSubjects.find('muteSwitch'); - const isCheckedAfterDisabling = await muteSwitchAfterUnmuting.getAttribute('aria-checked'); - expect(isCheckedAfterDisabling).to.eql('false'); + await actionsMenuItemElem.at(2)?.click(); + + const snoozeCancel = await testSubjects.find('ruleSnoozeCancel'); + await snoozeCancel.click(); + + await retry.try(async () => { + expect(await actionsDropdown.getVisibleText()).to.eql('Enabled'); + }); }); }); diff --git a/x-pack/test/functional_with_es_ssl/config.ts b/x-pack/test/functional_with_es_ssl/config.ts index cee793c8c8bb9..1c10548b90699 100644 --- a/x-pack/test/functional_with_es_ssl/config.ts +++ b/x-pack/test/functional_with_es_ssl/config.ts @@ -48,6 +48,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { pageObjects, // list paths to the files that contain your plugins tests testFiles: [ + resolve(__dirname, './apps/discover'), resolve(__dirname, './apps/triggers_actions_ui'), resolve(__dirname, './apps/uptime'), resolve(__dirname, './apps/ml'), @@ -111,6 +112,30 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { }, ], }, + discover_alert: { + kibana: [ + { + feature: { + actions: ['all'], + stackAlerts: ['all'], + discover: ['all'], + advancedSettings: ['all'], + }, + spaces: ['*'], + }, + ], + elasticsearch: { + cluster: [], + indices: [ + { + names: ['search-source-alert', 'search-source-alert-output'], + privileges: ['read', 'view_index_metadata', 'manage', 'create_index', 'index'], + field_security: { grant: ['*'], except: [] }, + }, + ], + run_as: [], + }, + }, }, defaultRoles: ['superuser'], }, diff --git a/x-pack/test/functional_with_es_ssl/fixtures/plugins/alerts/public/plugin.ts b/x-pack/test/functional_with_es_ssl/fixtures/plugins/alerts/public/plugin.ts index a5fa20fca25ef..d3eff0b60955e 100644 --- a/x-pack/test/functional_with_es_ssl/fixtures/plugins/alerts/public/plugin.ts +++ b/x-pack/test/functional_with_es_ssl/fixtures/plugins/alerts/public/plugin.ts @@ -8,7 +8,7 @@ import React from 'react'; import { Plugin, CoreSetup, AppMountParameters } from 'kibana/public'; import { PluginSetupContract as AlertingSetup } from '../../../../../../plugins/alerting/public'; -import { SanitizedAlert } from '../../../../../../plugins/alerting/common'; +import { SanitizedRule } from '../../../../../../plugins/alerting/common'; import { TriggersAndActionsUIPublicPluginSetup } from '../../../../../../plugins/triggers_actions_ui/public'; export type Setup = void; @@ -24,7 +24,7 @@ export class AlertingFixturePlugin implements Plugin `/rule/${alert.id}` + (alert: SanitizedRule) => `/rule/${alert.id}` ); triggersActionsUi.ruleTypeRegistry.register({ diff --git a/x-pack/test/reporting_api_integration/reporting_and_security/usage/error_codes.ts b/x-pack/test/reporting_api_integration/reporting_and_security/usage/error_codes.ts new file mode 100644 index 0000000000000..73cabb26d9aa9 --- /dev/null +++ b/x-pack/test/reporting_api_integration/reporting_and_security/usage/error_codes.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../ftr_provider_context'; +import { UsageStats } from '../../services/usage'; + +type ReportingUsage = UsageStats['reporting']; +interface ReportingUsageApiResponse { + all: ReportingUsage['_all']; + csv_searchsource: ReportingUsage['csv_searchsource']; + pngv_2: ReportingUsage['PNGV2']; + printable_pdf_v_2: ReportingUsage['printable_pdf_v2']; +} + +const DATA_ARCHIVE_PATH = 'x-pack/test/functional/es_archives/reporting/errors'; + +// eslint-disable-next-line import/no-default-export +export default function ({ getService }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const reportingAPI = getService('reportingAPI'); + const usageAPI = getService('usageAPI'); + + describe(`error codes`, () => { + let reporting: ReportingUsageApiResponse; + + before(async () => { + await reportingAPI.deleteAllReports(); + await esArchiver.load(DATA_ARCHIVE_PATH); + ({ reporting } = await usageAPI.getUsageStats()); + }); + + after(async () => { + await esArchiver.unload(DATA_ARCHIVE_PATH); + await reportingAPI.deleteAllReports(); + }); + + it('includes error code statistics', async () => { + expect(reporting.all).equal(3); + expectSnapshot( + ['csv_searchsource', 'pngv_2', 'printable_pdf_v_2'].map((k) => { + const field = reporting[k as keyof Omit]; + return { key: k, error_codes: field.error_codes, total: field.total }; + }) + ).toMatchInline(` + Array [ + Object { + "error_codes": undefined, + "key": "csv_searchsource", + "total": 0, + }, + Object { + "error_codes": undefined, + "key": "pngv_2", + "total": 0, + }, + Object { + "error_codes": Object { + "queue_timeout_error": 1, + "unknown_error": 1, + }, + "key": "printable_pdf_v_2", + "total": 3, + }, + ] + `); + }); + }); +} diff --git a/x-pack/test/reporting_api_integration/reporting_and_security/usage/index.ts b/x-pack/test/reporting_api_integration/reporting_and_security/usage/index.ts index 5b6dc7cc31ab0..4abb52ac4796a 100644 --- a/x-pack/test/reporting_api_integration/reporting_and_security/usage/index.ts +++ b/x-pack/test/reporting_api_integration/reporting_and_security/usage/index.ts @@ -20,5 +20,6 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./initial')); loadTestFile(require.resolve('./metrics')); loadTestFile(require.resolve('./new_jobs')); + loadTestFile(require.resolve('./error_codes')); }); } diff --git a/x-pack/test/rule_registry/common/lib/helpers/wait_until_next_execution.ts b/x-pack/test/rule_registry/common/lib/helpers/wait_until_next_execution.ts index 8bc325c4a6bb7..64999aafd2f60 100644 --- a/x-pack/test/rule_registry/common/lib/helpers/wait_until_next_execution.ts +++ b/x-pack/test/rule_registry/common/lib/helpers/wait_until_next_execution.ts @@ -7,18 +7,18 @@ import { GetService } from '../../types'; import { getAlertsTargetIndices } from './get_alerts_target_indices'; import { BULK_INDEX_DELAY, MAX_POLLS } from '../../constants'; -import { Alert } from '../../../../../plugins/alerting/common'; +import { Rule } from '../../../../../plugins/alerting/common'; import { getSpaceUrlPrefix } from '../authentication/spaces'; import { User } from '../authentication/types'; export async function waitUntilNextExecution( getService: GetService, user: User, - alert: Alert, + alert: Rule, spaceId: string, intervalInSeconds: number = 1, count: number = 0 -): Promise { +): Promise { const supertest = getService('supertestWithoutAuth'); const es = getService('es'); @@ -48,7 +48,7 @@ export async function waitUntilNextExecution( throw error; } - const nextAlert = body as Alert; + const nextAlert = body as Rule; if (nextAlert.executionStatus.lastExecutionDate !== alert.executionStatus.lastExecutionDate) { await new Promise((resolve) => { diff --git a/x-pack/test/rule_registry/common/types.ts b/x-pack/test/rule_registry/common/types.ts index c773a19b6d95d..bd457d17a92df 100644 --- a/x-pack/test/rule_registry/common/types.ts +++ b/x-pack/test/rule_registry/common/types.ts @@ -6,13 +6,13 @@ */ import { GenericFtrProviderContext } from '@kbn/test'; import { - Alert as Rule, - AlertTypeParams as RuleTypeParams, + Rule, + RuleTypeParams, ActionGroupIdsOf, AlertInstanceState as AlertState, AlertInstanceContext as AlertContext, } from '../../../plugins/alerting/common'; -import { AlertTypeState as RuleTypeState } from '../../../plugins/alerting/server'; +import { RuleTypeState } from '../../../plugins/alerting/server'; import { services } from './services'; export type GetService = GenericFtrProviderContext['getService']; diff --git a/x-pack/test/rule_registry/spaces_only/tests/trial/create_rule.ts b/x-pack/test/rule_registry/spaces_only/tests/trial/create_rule.ts index 4df3ff6b20649..4e9c9c1475388 100644 --- a/x-pack/test/rule_registry/spaces_only/tests/trial/create_rule.ts +++ b/x-pack/test/rule_registry/spaces_only/tests/trial/create_rule.ts @@ -29,7 +29,7 @@ import { deleteAlert, } from '../../../common/lib/helpers'; import { AlertDef, AlertParams } from '../../../common/types'; -import { Alert } from '../../../../../plugins/alerting/common'; +import { Rule } from '../../../../../plugins/alerting/common'; import { APM_METRIC_INDEX_NAME } from '../../../common/constants'; import { obsOnly } from '../../../common/lib/authentication/users'; @@ -58,7 +58,7 @@ export default function registryRulesApiTest({ getService }: FtrProviderContext) describe('when creating a rule', () => { let createResponse: { - alert: Alert; + alert: Rule; status: number; }; before(async () => { diff --git a/x-pack/test/rule_registry/spaces_only/tests/trial/lifecycle_executor.ts b/x-pack/test/rule_registry/spaces_only/tests/trial/lifecycle_executor.ts index 8fabaf9151d53..689144791b048 100644 --- a/x-pack/test/rule_registry/spaces_only/tests/trial/lifecycle_executor.ts +++ b/x-pack/test/rule_registry/spaces_only/tests/trial/lifecycle_executor.ts @@ -31,7 +31,7 @@ import { MockAlertState, MockAllowedActionGroups, } from '../../../common/types'; -import { AlertExecutorOptions as RuleExecutorOptions } from '../../../../../plugins/alerting/server'; +import { RuleExecutorOptions } from '../../../../../plugins/alerting/server'; import { cleanupRegistryIndices } from '../../../common/lib/helpers/cleanup_registry_indices'; // eslint-disable-next-line import/no-default-export diff --git a/yarn.lock b/yarn.lock index 9d28bc7349943..eca2c6c07f4ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1485,10 +1485,10 @@ dependencies: "@elastic/ecs-helpers" "^1.1.0" -"@elastic/elasticsearch@npm:@elastic/elasticsearch-canary@8.2.0-canary.1": - version "8.2.0-canary.1" - resolved "https://registry.yarnpkg.com/@elastic/elasticsearch-canary/-/elasticsearch-canary-8.2.0-canary.1.tgz#da547aaf0a39846cda4484bc021dea2117acaf0c" - integrity sha512-MxDCQjcKgxQulX+PJiPWdwFJwYq5J1EVycU5EaE1sDODLnnJp5dvQFPtRRla9MM5Elyy52swtfzQA5ktGixyRg== +"@elastic/elasticsearch@npm:@elastic/elasticsearch-canary@8.2.0-canary.2": + version "8.2.0-canary.2" + resolved "https://registry.yarnpkg.com/@elastic/elasticsearch-canary/-/elasticsearch-canary-8.2.0-canary.2.tgz#2513926cdbfe7c070e1fa6926f7829171b27cdba" + integrity sha512-Ki2lQ3/UlOnBaf5EjNw0WmCdXiW+J020aYtdVnIuCNhPSLoNPKoM7P+MlggdfeRnENvINlStrMy4bkYF/h6Vbw== dependencies: "@elastic/transport" "^8.0.2" tslib "^2.3.0" @@ -1516,10 +1516,10 @@ resolved "https://registry.yarnpkg.com/@elastic/eslint-plugin-eui/-/eslint-plugin-eui-0.0.2.tgz#56b9ef03984a05cc213772ae3713ea8ef47b0314" integrity sha512-IoxURM5zraoQ7C8f+mJb9HYSENiZGgRVcG4tLQxE61yHNNRDXtGDWTZh8N1KIHcsqN1CEPETjuzBXkJYF/fDiQ== -"@elastic/eui@52.2.0": - version "52.2.0" - resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-52.2.0.tgz#761101a29b96a4b5270ef93541dab7bb27f5ca50" - integrity sha512-XboYerntCOTHWHYMWJGzJtu5JYO6pk5IWh0ZHJEQ4SEjmLbTV2bFrVBTO/8uaU7GhV9/RNIo7BU5wHRyYP7z1g== +"@elastic/eui@53.0.1": + version "53.0.1" + resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-53.0.1.tgz#82359460ae4edab3a538846b6915518cb1214848" + integrity sha512-fPOuDyc7adjHBp+UHOtIJTHdZVKi8MGzyuYxTRN8ZYLHbzcNTaCsogdk+0eb6u4ISRqhk3tudG8Q0znksVHt1w== dependencies: "@types/chroma-js" "^2.0.0" "@types/lodash" "^4.14.160" @@ -9974,10 +9974,10 @@ chrome-trace-event@^1.0.2: dependencies: tslib "^1.9.0" -chromedriver@^99.0.0: - version "99.0.0" - resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-99.0.0.tgz#fbfcc7e74991dd50962e7dd456d78eaf49f56774" - integrity sha512-pyB+5LuyZdb7EBPL3i5D5yucZUD+SlkdiUtmpjaEnLd9zAXp+SvD/hP5xF4l/ZmWvUo/1ZLxAI1YBdhazGTpgA== +chromedriver@^100.0.0: + version "100.0.0" + resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-100.0.0.tgz#1b4bf5c89cea12c79f53bc94d8f5bb5aa79ed7be" + integrity sha512-oLfB0IgFEGY9qYpFQO/BNSXbPw7bgfJUN5VX8Okps9W2qNT4IqKh5hDwKWtpUIQNI6K3ToWe2/J5NdpurTY02g== dependencies: "@testim/chrome-version" "^1.1.2" axios "^0.24.0" @@ -16431,12 +16431,7 @@ idx@^2.5.6: resolved "https://registry.yarnpkg.com/idx/-/idx-2.5.6.tgz#1f824595070100ae9ad585c86db08dc74f83a59d" integrity sha512-WFXLF7JgPytbMgelpRY46nHz5tyDcedJ76pLV+RJWdb8h33bxFq4bdZau38DhNSzk5eVniBf1K3jwfK+Lb5nYA== -ieee754@^1.1.12, ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -ieee754@^1.1.13, ieee754@^1.2.1: +ieee754@^1.1.12, ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==