diff --git a/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts b/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts index 6050867fb5b94..99f107d56f02b 100644 --- a/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts +++ b/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts @@ -179,6 +179,15 @@ export async function pickTestGroupRunOrder() { throw new Error(`invalid FUNCTIONAL_MAX_MINUTES: ${process.env.FUNCTIONAL_MAX_MINUTES}`); } + /** + * This env variable corresponds to the env stanza within + * https://github.com/elastic/kibana/blob/bc2cb5dc613c3d455a5fed9c54450fd7e46ffd92/.buildkite/pipelines/code_coverage/daily.yml#L17 + * + * It is a flag that signals the job for which test runners will be executed. + * + * For example in code coverage pipeline definition, it is "limited" + * to 'unit,integration'. This means FTR tests will not be executed. + */ const LIMIT_CONFIG_TYPE = process.env.LIMIT_CONFIG_TYPE ? process.env.LIMIT_CONFIG_TYPE.split(',') .map((t) => t.trim()) @@ -218,9 +227,10 @@ export async function pickTestGroupRunOrder() { : ['build']; const { defaultQueue, ftrConfigsByQueue } = getEnabledFtrConfigs(FTR_CONFIG_PATTERNS); - if (!LIMIT_CONFIG_TYPE.includes('functional')) { - ftrConfigsByQueue.clear(); - } + + const ftrConfigsIncluded = LIMIT_CONFIG_TYPE.includes('functional'); + + if (!ftrConfigsIncluded) ftrConfigsByQueue.clear(); const jestUnitConfigs = LIMIT_CONFIG_TYPE.includes('unit') ? globby.sync(['**/jest.config.js', '!**/__fixtures__/**'], { @@ -377,9 +387,11 @@ export async function pickTestGroupRunOrder() { Fs.writeFileSync('jest_run_order.json', JSON.stringify({ unit, integration }, null, 2)); bk.uploadArtifacts('jest_run_order.json'); - // write the config for functional steps to an artifact that can be used by the individual functional jobs - Fs.writeFileSync('ftr_run_order.json', JSON.stringify(ftrRunOrder, null, 2)); - bk.uploadArtifacts('ftr_run_order.json'); + if (ftrConfigsIncluded) { + // write the config for functional steps to an artifact that can be used by the individual functional jobs + Fs.writeFileSync('ftr_run_order.json', JSON.stringify(ftrRunOrder, null, 2)); + bk.uploadArtifacts('ftr_run_order.json'); + } // upload the step definitions to Buildkite bk.uploadSteps( diff --git a/.buildkite/pipelines/code_coverage/daily.yml b/.buildkite/pipelines/code_coverage/daily.yml index bef3182c89690..a2b73329b4b01 100644 --- a/.buildkite/pipelines/code_coverage/daily.yml +++ b/.buildkite/pipelines/code_coverage/daily.yml @@ -13,7 +13,6 @@ steps: queue: kibana-default env: FTR_CONFIGS_DEPS: '' - # LIMIT_CONFIG_TYPE: 'unit,functional,integration' LIMIT_CONFIG_TYPE: 'unit,integration' JEST_UNIT_SCRIPT: '.buildkite/scripts/steps/code_coverage/jest.sh' JEST_INTEGRATION_SCRIPT: '.buildkite/scripts/steps/code_coverage/jest_integration.sh' @@ -25,6 +24,5 @@ steps: depends_on: - jest - jest-integration - # - ftr-configs timeout_in_minutes: 30 key: ingest diff --git a/.buildkite/scripts/steps/code_coverage/node_scripts.sh b/.buildkite/scripts/steps/code_coverage/node_scripts.sh deleted file mode 100755 index 20e475101995a..0000000000000 --- a/.buildkite/scripts/steps/code_coverage/node_scripts.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -buildPlatformPlugins() { - echo "--- Build Platform Plugins" - - NODE_OPTIONS=--max_old_space_size=14336 \ - node scripts/build_kibana_platform_plugins \ - --no-examples --test-plugins --workers 4 -} - -runFTRInstrumented() { - local ftrConfig=$1 - echo "--- $ runFTRInstrumented against $ftrConfig" - - NODE_OPTIONS=--max_old_space_size=16384 \ - ./node_modules/.bin/nyc \ - --nycrc-path ./src/dev/code_coverage/nyc_config/nyc.server.config.js \ - node scripts/functional_tests \ - --config="$ftrConfig" \ - --exclude-tag "skipCoverage" -} - -reportMergeFunctional() { - echo "--- Merging code coverage for FTR Configs" - - NODE_OPTIONS=--max_old_space_size=16384 yarn nyc report \ - --nycrc-path src/dev/code_coverage/nyc_config/nyc.functional.config.js --reporter json -} diff --git a/.buildkite/scripts/steps/storybooks/build_and_upload.ts b/.buildkite/scripts/steps/storybooks/build_and_upload.ts index d6dff037dd98a..fbe8daee88370 100644 --- a/.buildkite/scripts/steps/storybooks/build_and_upload.ts +++ b/.buildkite/scripts/steps/storybooks/build_and_upload.ts @@ -19,6 +19,7 @@ const STORYBOOKS = [ 'cloud_chat', 'coloring', 'chart_icons', + 'content_management_plugin', 'controls', 'custom_integrations', 'dashboard_enhanced', diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 74ebfafa69322..e72310f914fd6 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -282,6 +282,7 @@ packages/core/usage-data/core-usage-data-base-server-internal @elastic/kibana-co packages/core/usage-data/core-usage-data-server @elastic/kibana-core packages/core/usage-data/core-usage-data-server-internal @elastic/kibana-core packages/core/usage-data/core-usage-data-server-mocks @elastic/kibana-core +packages/core/versioning/core-version-http-server @elastic/kibana-core x-pack/plugins/cross_cluster_replication @elastic/platform-deployment-management packages/kbn-crypto @elastic/kibana-security packages/kbn-crypto-browser @elastic/kibana-core diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 3e926c99476ef..a257c12adbd18 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions'] --- import actionsObj from './actions.devdocs.json'; diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx index 8b7c1387882a8..74cb31efe5258 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings'] --- import advancedSettingsObj from './advanced_settings.devdocs.json'; diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx index c0df2688bc350..f98a2c66e218c 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops'] --- import aiopsObj from './aiops.devdocs.json'; diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index adada612c63f6..3c414acb8bda5 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index 0a1ea8fbc3f59..99082a8c0e8f4 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index 390aea6cfea56..2c1caa102e88b 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'banners'] --- import bannersObj from './banners.devdocs.json'; diff --git a/api_docs/bfetch.mdx b/api_docs/bfetch.mdx index bd2371a5e5b5e..c8c099671d3e1 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'bfetch'] --- import bfetchObj from './bfetch.devdocs.json'; diff --git a/api_docs/canvas.mdx b/api_docs/canvas.mdx index 2eb95893c4fb7..752b7215e8ae7 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.devdocs.json b/api_docs/cases.devdocs.json index 182b65687cabd..22ad30c92f35e 100644 --- a/api_docs/cases.devdocs.json +++ b/api_docs/cases.devdocs.json @@ -1602,6 +1602,23 @@ } ], "misc": [ + { + "parentPluginId": "cases", + "id": "def-common.APP_ID", + "type": "string", + "tags": [], + "label": "APP_ID", + "description": [ + "\nApplication" + ], + "signature": [ + "\"cases\"" + ], + "path": "x-pack/plugins/cases/common/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "cases", "id": "def-common.Case", @@ -1707,6 +1724,133 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "cases", + "id": "def-common.CaseResponse", + "type": "Type", + "tags": [], + "label": "CaseResponse", + "description": [], + "signature": [ + "{ description: string; status: ", + { + "pluginId": "@kbn/cases-components", + "scope": "common", + "docId": "kibKbnCasesComponentsPluginApi", + "section": "def-common.CaseStatuses", + "text": "CaseStatuses" + }, + "; tags: string[]; title: string; connector: { id: string; } & (({ type: ", + "ConnectorTypes", + ".casesWebhook; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".jira; fields: { issueType: string | null; priority: string | null; parent: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".none; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".resilient; fields: { incidentTypes: string[] | null; severityCode: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowITSM; fields: { impact: string | null; severity: string | null; urgency: string | null; category: string | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowSIR; fields: { category: string | null; destIp: boolean | null; malwareHash: boolean | null; malwareUrl: boolean | null; priority: string | null; sourceIp: boolean | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".swimlane; fields: { caseId: string | null; } | null; } & { name: string; })); settings: { syncAlerts: boolean; }; owner: string; severity: ", + "CaseSeverity", + "; assignees: { uid: string; }[]; } & { duration: number | null; closed_at: string | null; closed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; external_service: ({ connector_id: string; } & { connector_name: string; external_id: string; external_title: string; external_url: string; pushed_at: string; pushed_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; } & { id: string; totalComment: number; totalAlerts: number; version: string; } & { comments?: ((({ comment: string; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".user; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".alert; alertId: string | string[]; index: string | string[]; rule: { id: string | null; name: string | null; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".actions; comment: string; actions: { targets: { hostname: string; endpointId: string; }[]; type: string; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | (({ externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".elasticSearchDoc; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; } | { externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".savedObject; soType: string; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; }) & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".persistableState; owner: string; persistableStateAttachmentTypeId: string; persistableStateAttachmentState: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; }; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; })) & { id: string; version: string; })[] | undefined; }" + ], + "path": "x-pack/plugins/cases/common/api/cases/case.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "cases", "id": "def-common.CASES_URL", @@ -1724,6 +1868,260 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "cases", + "id": "def-common.CasesBulkGetRequestCertainFields", + "type": "Type", + "tags": [], + "label": "CasesBulkGetRequestCertainFields", + "description": [], + "signature": [ + "Omit<{ ids: string[]; } & { fields?: string | string[] | undefined; }, \"fields\"> & { fields?: Field[] | undefined; }" + ], + "path": "x-pack/plugins/cases/common/api/cases/case.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "cases", + "id": "def-common.CasesBulkGetResponseCertainFields", + "type": "Type", + "tags": [], + "label": "CasesBulkGetResponseCertainFields", + "description": [], + "signature": [ + "Omit<{ cases: ({ description: string; status: ", + { + "pluginId": "@kbn/cases-components", + "scope": "common", + "docId": "kibKbnCasesComponentsPluginApi", + "section": "def-common.CaseStatuses", + "text": "CaseStatuses" + }, + "; tags: string[]; title: string; connector: { id: string; } & (({ type: ", + "ConnectorTypes", + ".casesWebhook; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".jira; fields: { issueType: string | null; priority: string | null; parent: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".none; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".resilient; fields: { incidentTypes: string[] | null; severityCode: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowITSM; fields: { impact: string | null; severity: string | null; urgency: string | null; category: string | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowSIR; fields: { category: string | null; destIp: boolean | null; malwareHash: boolean | null; malwareUrl: boolean | null; priority: string | null; sourceIp: boolean | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".swimlane; fields: { caseId: string | null; } | null; } & { name: string; })); settings: { syncAlerts: boolean; }; owner: string; severity: ", + "CaseSeverity", + "; assignees: { uid: string; }[]; } & { duration: number | null; closed_at: string | null; closed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; external_service: ({ connector_id: string; } & { connector_name: string; external_id: string; external_title: string; external_url: string; pushed_at: string; pushed_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; } & { id: string; totalComment: number; totalAlerts: number; version: string; } & { comments?: ((({ comment: string; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".user; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".alert; alertId: string | string[]; index: string | string[]; rule: { id: string | null; name: string | null; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".actions; comment: string; actions: { targets: { hostname: string; endpointId: string; }[]; type: string; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | (({ externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".elasticSearchDoc; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; } | { externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".savedObject; soType: string; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; }) & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".persistableState; owner: string; persistableStateAttachmentTypeId: string; persistableStateAttachmentState: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; }; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; })) & { id: string; version: string; })[] | undefined; })[]; errors: { error: string; message: string; status: number | undefined; caseId: string; }[]; }, \"cases\"> & { cases: Pick<{ description: string; status: ", + { + "pluginId": "@kbn/cases-components", + "scope": "common", + "docId": "kibKbnCasesComponentsPluginApi", + "section": "def-common.CaseStatuses", + "text": "CaseStatuses" + }, + "; tags: string[]; title: string; connector: { id: string; } & (({ type: ", + "ConnectorTypes", + ".casesWebhook; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".jira; fields: { issueType: string | null; priority: string | null; parent: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".none; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".resilient; fields: { incidentTypes: string[] | null; severityCode: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowITSM; fields: { impact: string | null; severity: string | null; urgency: string | null; category: string | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowSIR; fields: { category: string | null; destIp: boolean | null; malwareHash: boolean | null; malwareUrl: boolean | null; priority: string | null; sourceIp: boolean | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".swimlane; fields: { caseId: string | null; } | null; } & { name: string; })); settings: { syncAlerts: boolean; }; owner: string; severity: ", + "CaseSeverity", + "; assignees: { uid: string; }[]; } & { duration: number | null; closed_at: string | null; closed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; external_service: ({ connector_id: string; } & { connector_name: string; external_id: string; external_title: string; external_url: string; pushed_at: string; pushed_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; } & { id: string; totalComment: number; totalAlerts: number; version: string; } & { comments?: ((({ comment: string; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".user; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".alert; alertId: string | string[]; index: string | string[]; rule: { id: string | null; name: string | null; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".actions; comment: string; actions: { targets: { hostname: string; endpointId: string; }[]; type: string; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | (({ externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".elasticSearchDoc; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; } | { externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".savedObject; soType: string; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; }) & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".persistableState; owner: string; persistableStateAttachmentTypeId: string; persistableStateAttachmentState: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; }; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; })) & { id: string; version: string; })[] | undefined; }, \"id\" | \"version\" | \"owner\" | Field>[]; }" + ], + "path": "x-pack/plugins/cases/common/api/cases/case.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "cases", "id": "def-common.CasesFeatures", @@ -1805,6 +2203,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "cases", + "id": "def-common.INTERNAL_BULK_GET_CASES_URL", + "type": "string", + "tags": [], + "label": "INTERNAL_BULK_GET_CASES_URL", + "description": [], + "signature": [ + "\"/internal/cases/_bulk_get\"" + ], + "path": "x-pack/plugins/cases/common/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "cases", "id": "def-common.OBSERVABILITY_OWNER", diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 1a59ab69ccccf..c101ceb2e6eaf 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 87 | 0 | 71 | 28 | +| 92 | 0 | 75 | 28 | ## Client diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 419e785e6fa23..1b7e764158d98 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts'] --- import chartsObj from './charts.devdocs.json'; diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx index f0eeee257c076..94c21a617fa14 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_chat.mdx b/api_docs/cloud_chat.mdx index 1b66211c3606a..8db4fd37cb73a 100644 --- a/api_docs/cloud_chat.mdx +++ b/api_docs/cloud_chat.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudChat title: "cloudChat" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudChat plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudChat'] --- import cloudChatObj from './cloud_chat.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index 15a13dd2ba2ad..48a2b1d911e48 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index 1d37f83f96702..8c103e71b3970 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index bb69cb33d2319..833923e335df6 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudExperiments'] --- import cloudExperimentsObj from './cloud_experiments.devdocs.json'; diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx index bb9ab23be4031..c25cb6d2b7354 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture'] --- import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json'; diff --git a/api_docs/console.mdx b/api_docs/console.mdx index e7214f8f32f32..09222fa654d76 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.devdocs.json b/api_docs/content_management.devdocs.json index 779fcfac4f572..896f476aaffb2 100644 --- a/api_docs/content_management.devdocs.json +++ b/api_docs/content_management.devdocs.json @@ -128,6 +128,72 @@ "classes": [], "functions": [], "interfaces": [ + { + "parentPluginId": "contentManagement", + "id": "def-common.BulkGetIn", + "type": "Interface", + "tags": [], + "label": "BulkGetIn", + "description": [], + "signature": [ + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.BulkGetIn", + "text": "BulkGetIn" + }, + "" + ], + "path": "src/plugins/content_management/common/rpc/bulk_get.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "contentManagement", + "id": "def-common.BulkGetIn.contentTypeId", + "type": "Uncategorized", + "tags": [], + "label": "contentTypeId", + "description": [], + "signature": [ + "T" + ], + "path": "src/plugins/content_management/common/rpc/bulk_get.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.BulkGetIn.ids", + "type": "Array", + "tags": [], + "label": "ids", + "description": [], + "signature": [ + "string[]" + ], + "path": "src/plugins/content_management/common/rpc/bulk_get.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.BulkGetIn.options", + "type": "Uncategorized", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "Options | undefined" + ], + "path": "src/plugins/content_management/common/rpc/bulk_get.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "contentManagement", "id": "def-common.CreateIn", @@ -562,7 +628,7 @@ "label": "ProcedureName", "description": [], "signature": [ - "\"create\" | \"update\" | \"get\" | \"delete\" | \"search\"" + "\"create\" | \"update\" | \"get\" | \"delete\" | \"search\" | \"bulkGet\"" ], "path": "src/plugins/content_management/common/rpc/constants.ts", "deprecated": false, @@ -579,7 +645,7 @@ "label": "procedureNames", "description": [], "signature": [ - "readonly [\"get\", \"create\", \"update\", \"delete\", \"search\"]" + "readonly [\"get\", \"bulkGet\", \"create\", \"update\", \"delete\", \"search\"]" ], "path": "src/plugins/content_management/common/rpc/constants.ts", "deprecated": false, @@ -617,6 +683,26 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "contentManagement", + "id": "def-common.schemas.bulkGet", + "type": "Object", + "tags": [], + "label": "bulkGet", + "description": [], + "signature": [ + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.ProcedureSchemas", + "text": "ProcedureSchemas" + } + ], + "path": "src/plugins/content_management/common/rpc/rpc.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "contentManagement", "id": "def-common.schemas.create", diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index de9413917e3c1..5b06857b73d19 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 41 | 0 | 41 | 3 | +| 46 | 0 | 46 | 3 | ## Client diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 2031219295dc0..75827a22e17bd 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index a498d9daf1215..b186ea13d3731 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index 47ccf22f1d4c0..56c213af3d15d 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard'] --- import dashboardObj from './dashboard.devdocs.json'; diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx index 5ae45f329d207..4a226601fd315 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] --- import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json'; diff --git a/api_docs/data.mdx b/api_docs/data.mdx index b1841ff331163..8aab1229fe283 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 0bcaf823d1053..2afc84872d01d 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index 2928c1d74b072..3daeaef637aeb 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search'] --- import dataSearchObj from './data_search.devdocs.json'; diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx index 1dcd1ce588b5a..3cfe54158cc2e 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewEditor'] --- import dataViewEditorObj from './data_view_editor.devdocs.json'; diff --git a/api_docs/data_view_field_editor.mdx b/api_docs/data_view_field_editor.mdx index 06034d231565c..c58a005b3cb09 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewFieldEditor'] --- import dataViewFieldEditorObj from './data_view_field_editor.devdocs.json'; diff --git a/api_docs/data_view_management.mdx b/api_docs/data_view_management.mdx index 93c19543506a5..45717e846a01c 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index de2998519b208..91bd0f29ba3e0 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews'] --- import dataViewsObj from './data_views.devdocs.json'; diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx index c1ce80e4c5782..ae3bdeb2edcba 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer'] --- import dataVisualizerObj from './data_visualizer.devdocs.json'; diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index b1c36f670e74f..1f1af64c0c9f6 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index ef311a52fa2a8..6f1cfe203b95b 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 9a3512c26dfa5..cd8436f4ca388 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index e19682fd4a70f..b80bce172a949 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'devTools'] --- import devToolsObj from './dev_tools.devdocs.json'; diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index 6af7f3c703902..6f56c66d3c5f4 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discover'] --- import discoverObj from './discover.devdocs.json'; diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx index 14819947d3e54..d42353b6c11cb 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index 1e6a21f7c8171..16b1019ecd3ed 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 161766f380f10..4224021b55423 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable'] --- import embeddableObj from './embeddable.devdocs.json'; diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx index efe75258646d6..84ff2ca16e22e 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddableEnhanced'] --- import embeddableEnhancedObj from './embeddable_enhanced.devdocs.json'; diff --git a/api_docs/encrypted_saved_objects.mdx b/api_docs/encrypted_saved_objects.mdx index 4d58390c80b3c..d4adf39f2b968 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'encryptedSavedObjects'] --- import encryptedSavedObjectsObj from './encrypted_saved_objects.devdocs.json'; diff --git a/api_docs/enterprise_search.mdx b/api_docs/enterprise_search.mdx index 8184578800fdf..14d20ebf5d61c 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch'] --- import enterpriseSearchObj from './enterprise_search.devdocs.json'; diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx index 722fe7bde8d81..51fcf854a986e 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared'] --- import esUiSharedObj from './es_ui_shared.devdocs.json'; diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx index d2f42a849ddb1..7d58d610b1dbd 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation'] --- import eventAnnotationObj from './event_annotation.devdocs.json'; diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index c0d159cf945b0..73e836f34ba81 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index 80baa289f0e2e..cd3691170c384 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError'] --- import expressionErrorObj from './expression_error.devdocs.json'; diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx index b9dccdadd3bc3..9ce0190f9f154 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] --- import expressionGaugeObj from './expression_gauge.devdocs.json'; diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index 5811a29f8bfad..9351452fcea4c 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap'] --- import expressionHeatmapObj from './expression_heatmap.devdocs.json'; diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx index 88bdd4792667e..e34b0a5ea27e3 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionImage'] --- import expressionImageObj from './expression_image.devdocs.json'; diff --git a/api_docs/expression_legacy_metric_vis.mdx b/api_docs/expression_legacy_metric_vis.mdx index a6caeb0d77c18..c0014c266d305 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionLegacyMetricVis'] --- import expressionLegacyMetricVisObj from './expression_legacy_metric_vis.devdocs.json'; diff --git a/api_docs/expression_metric.mdx b/api_docs/expression_metric.mdx index f43139104ef14..deb956943c728 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric'] --- import expressionMetricObj from './expression_metric.devdocs.json'; diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index 93a50653e87f8..ee50c931cbfca 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index 56a58c391c375..683b1b0d518f0 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index 362ca0c24aea2..38ed006c11b39 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRepeatImage'] --- import expressionRepeatImageObj from './expression_repeat_image.devdocs.json'; diff --git a/api_docs/expression_reveal_image.mdx b/api_docs/expression_reveal_image.mdx index 72fdf146aa441..d7f20a1cde784 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRevealImage'] --- import expressionRevealImageObj from './expression_reveal_image.devdocs.json'; diff --git a/api_docs/expression_shape.mdx b/api_docs/expression_shape.mdx index ddbaeb42b1332..5b8406d386c8f 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionShape'] --- import expressionShapeObj from './expression_shape.devdocs.json'; diff --git a/api_docs/expression_tagcloud.mdx b/api_docs/expression_tagcloud.mdx index 10a0bcb9bf6ad..7884000068cc6 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] --- import expressionTagcloudObj from './expression_tagcloud.devdocs.json'; diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx index a5797770c3a7c..b4d2041ed7541 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY'] --- import expressionXYObj from './expression_x_y.devdocs.json'; diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index f43af727a8cc1..e4563923867a6 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] --- import expressionsObj from './expressions.devdocs.json'; diff --git a/api_docs/features.mdx b/api_docs/features.mdx index 9e3bba7f9e307..36869e492a9fa 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features'] --- import featuresObj from './features.devdocs.json'; diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index 5b0aacb51f4ea..99bdec890e1ab 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] --- import fieldFormatsObj from './field_formats.devdocs.json'; diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index 3d3220e6d71d5..582a3304e3985 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload'] --- import fileUploadObj from './file_upload.devdocs.json'; diff --git a/api_docs/files.mdx b/api_docs/files.mdx index 5e5cbfb19c6e9..7ee3e730809da 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files'] --- import filesObj from './files.devdocs.json'; diff --git a/api_docs/files_management.mdx b/api_docs/files_management.mdx index 675ad45079f83..1055d8332ffed 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.devdocs.json b/api_docs/fleet.devdocs.json index 283f0825aebf7..c306185cef512 100644 --- a/api_docs/fleet.devdocs.json +++ b/api_docs/fleet.devdocs.json @@ -511,6 +511,211 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices", + "type": "Interface", + "tags": [], + "label": "FleetStartServices", + "description": [], + "signature": [ + { + "pluginId": "fleet", + "scope": "public", + "docId": "kibFleetPluginApi", + "section": "def-public.FleetStartServices", + "text": "FleetStartServices" + }, + " extends ", + { + "pluginId": "@kbn/core-lifecycle-browser", + "scope": "common", + "docId": "kibKbnCoreLifecycleBrowserPluginApi", + "section": "def-common.CoreStart", + "text": "CoreStart" + }, + ",", + "FleetStartDeps" + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.storage", + "type": "Object", + "tags": [], + "label": "storage", + "description": [], + "signature": [ + { + "pluginId": "kibanaUtils", + "scope": "public", + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.Storage", + "text": "Storage" + } + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.share", + "type": "CompoundType", + "tags": [], + "label": "share", + "description": [], + "signature": [ + "{ toggleShareContextMenu: (options: ", + { + "pluginId": "share", + "scope": "public", + "docId": "kibSharePluginApi", + "section": "def-public.ShowShareMenuOptions", + "text": "ShowShareMenuOptions" + }, + ") => void; } & { url: ", + { + "pluginId": "share", + "scope": "public", + "docId": "kibSharePluginApi", + "section": "def-public.BrowserUrlService", + "text": "BrowserUrlService" + }, + "; navigate(options: ", + "RedirectOptions", + "<", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + }, + ">): void; }" + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.cloud", + "type": "CompoundType", + "tags": [], + "label": "cloud", + "description": [], + "signature": [ + "(", + { + "pluginId": "cloud", + "scope": "public", + "docId": "kibCloudPluginApi", + "section": "def-public.CloudSetup", + "text": "CloudSetup" + }, + " & ", + { + "pluginId": "cloud", + "scope": "public", + "docId": "kibCloudPluginApi", + "section": "def-public.CloudStart", + "text": "CloudStart" + }, + ") | undefined" + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.discover", + "type": "Object", + "tags": [], + "label": "discover", + "description": [], + "signature": [ + { + "pluginId": "discover", + "scope": "public", + "docId": "kibDiscoverPluginApi", + "section": "def-public.DiscoverStart", + "text": "DiscoverStart" + }, + " | undefined" + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.spaces", + "type": "Object", + "tags": [], + "label": "spaces", + "description": [], + "signature": [ + { + "pluginId": "spaces", + "scope": "public", + "docId": "kibSpacesPluginApi", + "section": "def-public.SpacesApi", + "text": "SpacesApi" + }, + " | undefined" + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.authz", + "type": "Object", + "tags": [], + "label": "authz", + "description": [], + "signature": [ + { + "pluginId": "fleet", + "scope": "common", + "docId": "kibFleetPluginApi", + "section": "def-common.FleetAuthz", + "text": "FleetAuthz" + } + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.guidedOnboarding", + "type": "Object", + "tags": [], + "label": "guidedOnboarding", + "description": [], + "signature": [ + { + "pluginId": "guidedOnboarding", + "scope": "public", + "docId": "kibGuidedOnboardingPluginApi", + "section": "def-public.GuidedOnboardingPluginStart", + "text": "GuidedOnboardingPluginStart" + } + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "fleet", "id": "def-public.IntegrationsAppBrowseRouteState", diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 953b463a74548..d02798efed168 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) for questi | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 1079 | 3 | 974 | 26 | +| 1087 | 3 | 982 | 27 | ## Client diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index 6202396e1e7cb..d3459f079141a 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch'] --- import globalSearchObj from './global_search.devdocs.json'; diff --git a/api_docs/guided_onboarding.mdx b/api_docs/guided_onboarding.mdx index 7bbd0b618c908..5eb36e6d2d4f3 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding'] --- import guidedOnboardingObj from './guided_onboarding.devdocs.json'; diff --git a/api_docs/home.mdx b/api_docs/home.mdx index b1940dbc190b2..8a2a31e1b5fc1 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index 231db4c6bebdb..9e3231ebde6c8 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index c6c75389f83a3..2468270d9ada0 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement'] --- import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json'; diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index ea16aa53a349b..95309df53584c 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index 704f12fc8722c..a24ceb4e08626 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra'] --- import infraObj from './infra.devdocs.json'; diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx index bca3c11993651..13978e702b5f2 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] --- import inspectorObj from './inspector.devdocs.json'; diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index 17875d743a453..170b4930f9f05 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] --- import interactiveSetupObj from './interactive_setup.devdocs.json'; diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index f9b3a60039b24..0eca67952998b 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace'] --- import kbnAceObj from './kbn_ace.devdocs.json'; diff --git a/api_docs/kbn_aiops_components.mdx b/api_docs/kbn_aiops_components.mdx index c9696a8715dbc..d601d7690ee28 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components'] --- import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json'; diff --git a/api_docs/kbn_aiops_utils.mdx b/api_docs/kbn_aiops_utils.mdx index ab74febebf3da..b38f867e15aa0 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts.mdx b/api_docs/kbn_alerts.mdx index 427b8b5e49ce6..44cc18ce152e4 100644 --- a/api_docs/kbn_alerts.mdx +++ b/api_docs/kbn_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts title: "@kbn/alerts" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index e216fcc07dda8..f101504bb48ca 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index f635927f86b0b..4d579c4710176 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx index e2d5952a3729f..ea4e28b8f2e8b 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client'] --- import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx index f02f5e1c1c212..7547d77bdc0e9 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-browser'] --- import kbnAnalyticsShippersElasticV3BrowserObj from './kbn_analytics_shippers_elastic_v3_browser.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx index e5d41537a41fd..0f3aa1b5cf946 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-common'] --- import kbnAnalyticsShippersElasticV3CommonObj from './kbn_analytics_shippers_elastic_v3_common.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx index 5c5ef1306ffec..26d8da36afd33 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-server'] --- import kbnAnalyticsShippersElasticV3ServerObj from './kbn_analytics_shippers_elastic_v3_server.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_fullstory.mdx b/api_docs/kbn_analytics_shippers_fullstory.mdx index d9b6680f5bc8f..c0032039d5cbf 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_gainsight.mdx b/api_docs/kbn_analytics_shippers_gainsight.mdx index 4d3dff27228a7..0532a61460614 100644 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ b/api_docs/kbn_analytics_shippers_gainsight.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight title: "@kbn/analytics-shippers-gainsight" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-gainsight'] --- import kbnAnalyticsShippersGainsightObj from './kbn_analytics_shippers_gainsight.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index 635d6bd97cbb2..6dbb6a3609174 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader'] --- import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index fafa6c8e15455..80ecc8815df12 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index 4fb4669907449..6c52bea38b1fd 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index 0fe3cdd8230a9..46a47c1581576 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] --- import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json'; diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx index 2db64454f2fed..4d8428447469d 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] --- import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx index 2df6c87d68c6d..5833d2ba3df00 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index 4095c4a302ca3..317810b0333cc 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index 3fc4f3a6dfbfa..92e75675aeaaf 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index cb0ec12455375..0cef396bffa2a 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-icons'] --- import kbnChartIconsObj from './kbn_chart_icons.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_core.mdx b/api_docs/kbn_ci_stats_core.mdx index cbbaab83c591d..cb472c16b3406 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-core'] --- import kbnCiStatsCoreObj from './kbn_ci_stats_core.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_performance_metrics.mdx b/api_docs/kbn_ci_stats_performance_metrics.mdx index 7b27011a7c775..5fa0d302f386d 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-performance-metrics'] --- import kbnCiStatsPerformanceMetricsObj from './kbn_ci_stats_performance_metrics.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_reporter.mdx b/api_docs/kbn_ci_stats_reporter.mdx index 7cc043207929f..c0b72619c3f00 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-reporter'] --- import kbnCiStatsReporterObj from './kbn_ci_stats_reporter.devdocs.json'; diff --git a/api_docs/kbn_cli_dev_mode.mdx b/api_docs/kbn_cli_dev_mode.mdx index 32ef0cd5402a5..17a0ea5332890 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index b732297b203fc..c4d4fc73c9276 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mocks.mdx b/api_docs/kbn_code_editor_mocks.mdx index 3af81131ee414..5dac4f32adb6c 100644 --- a/api_docs/kbn_code_editor_mocks.mdx +++ b/api_docs/kbn_code_editor_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mocks title: "@kbn/code-editor-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mocks'] --- import kbnCodeEditorMocksObj from './kbn_code_editor_mocks.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index dd9ec036c7ca7..fe6a3ea0e5272 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/coloring'] --- import kbnColoringObj from './kbn_coloring.devdocs.json'; diff --git a/api_docs/kbn_config.mdx b/api_docs/kbn_config.mdx index 4482c7f5dff18..c220185aa000f 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config'] --- import kbnConfigObj from './kbn_config.devdocs.json'; diff --git a/api_docs/kbn_config_mocks.mdx b/api_docs/kbn_config_mocks.mdx index e1ee7cdc865a9..01c59112c239d 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks'] --- import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx index 0aa3db7aff995..136a1368b2986 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index 02cf81a71786b..2a84d532cc7c5 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index ea0f9f2e35dc9..4cdb7bd6c864c 100644 --- a/api_docs/kbn_content_management_table_list.mdx +++ b/api_docs/kbn_content_management_table_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list title: "@kbn/content-management-table-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list'] --- import kbnContentManagementTableListObj from './kbn_content_management_table_list.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx index 966d45b50d665..9a6b81fbcd30f 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser'] --- import kbnCoreAnalyticsBrowserObj from './kbn_core_analytics_browser.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_internal.mdx b/api_docs/kbn_core_analytics_browser_internal.mdx index 39288e860fd13..92024f3712226 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-internal'] --- import kbnCoreAnalyticsBrowserInternalObj from './kbn_core_analytics_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_mocks.mdx b/api_docs/kbn_core_analytics_browser_mocks.mdx index fa4f7b3aa1112..864193a84d074 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-mocks'] --- import kbnCoreAnalyticsBrowserMocksObj from './kbn_core_analytics_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server.mdx b/api_docs/kbn_core_analytics_server.mdx index 66d85ba70e6ac..eb6a29cb9644d 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server'] --- import kbnCoreAnalyticsServerObj from './kbn_core_analytics_server.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_internal.mdx b/api_docs/kbn_core_analytics_server_internal.mdx index 1c99d0541add8..7d5043e2e9291 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-internal'] --- import kbnCoreAnalyticsServerInternalObj from './kbn_core_analytics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_mocks.mdx b/api_docs/kbn_core_analytics_server_mocks.mdx index 7d80eb71e06ee..f2bb8b313921a 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-mocks'] --- import kbnCoreAnalyticsServerMocksObj from './kbn_core_analytics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser.mdx b/api_docs/kbn_core_application_browser.mdx index e940ee965a119..2ef17b5a00d8b 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser'] --- import kbnCoreApplicationBrowserObj from './kbn_core_application_browser.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_internal.mdx b/api_docs/kbn_core_application_browser_internal.mdx index 6c2c21928f147..fa21277c99eff 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-internal'] --- import kbnCoreApplicationBrowserInternalObj from './kbn_core_application_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_mocks.mdx b/api_docs/kbn_core_application_browser_mocks.mdx index 68468e5fb340b..3b0e3beb439b3 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-mocks'] --- import kbnCoreApplicationBrowserMocksObj from './kbn_core_application_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_common.mdx b/api_docs/kbn_core_application_common.mdx index 72ee977d01ee9..0bb533a58e003 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-common'] --- import kbnCoreApplicationCommonObj from './kbn_core_application_common.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_internal.mdx b/api_docs/kbn_core_apps_browser_internal.mdx index 3d2f5364882b4..a6a6afe493aa8 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-internal'] --- import kbnCoreAppsBrowserInternalObj from './kbn_core_apps_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_mocks.mdx b/api_docs/kbn_core_apps_browser_mocks.mdx index 3710af98fb348..7ddb7caa05fc9 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks'] --- import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_apps_server_internal.mdx b/api_docs/kbn_core_apps_server_internal.mdx index e880d11da6141..e586cf57d11a6 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-server-internal'] --- import kbnCoreAppsServerInternalObj from './kbn_core_apps_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx index 9ee2552a2662b..adc9ad098e3f7 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-browser-mocks'] --- import kbnCoreBaseBrowserMocksObj from './kbn_core_base_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_base_common.mdx b/api_docs/kbn_core_base_common.mdx index 412fdaf7d4956..a543d9d6abe6e 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-common'] --- import kbnCoreBaseCommonObj from './kbn_core_base_common.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_internal.mdx b/api_docs/kbn_core_base_server_internal.mdx index da8667ec9f4a5..68f675d2f7b40 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-internal'] --- import kbnCoreBaseServerInternalObj from './kbn_core_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_mocks.mdx b/api_docs/kbn_core_base_server_mocks.mdx index d6b453ce2cdff..a3d6e47b82c12 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-mocks'] --- import kbnCoreBaseServerMocksObj from './kbn_core_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_browser_mocks.mdx b/api_docs/kbn_core_capabilities_browser_mocks.mdx index 6cf8d2552bcbb..cc2d611962165 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-browser-mocks'] --- import kbnCoreCapabilitiesBrowserMocksObj from './kbn_core_capabilities_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_common.mdx b/api_docs/kbn_core_capabilities_common.mdx index 4a0d4e62fcdcb..4edaa1944f399 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-common'] --- import kbnCoreCapabilitiesCommonObj from './kbn_core_capabilities_common.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server.mdx b/api_docs/kbn_core_capabilities_server.mdx index 8e0e23e4a006f..1144bd453a657 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server'] --- import kbnCoreCapabilitiesServerObj from './kbn_core_capabilities_server.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server_mocks.mdx b/api_docs/kbn_core_capabilities_server_mocks.mdx index 8da4a0abfb4f6..00ec9c6918cc6 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server-mocks'] --- import kbnCoreCapabilitiesServerMocksObj from './kbn_core_capabilities_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx index 8220f61b3b760..b844aa16894d1 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser'] --- import kbnCoreChromeBrowserObj from './kbn_core_chrome_browser.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser_mocks.mdx b/api_docs/kbn_core_chrome_browser_mocks.mdx index b6abbdc10bce1..e0e005cc73040 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser-mocks'] --- import kbnCoreChromeBrowserMocksObj from './kbn_core_chrome_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_config_server_internal.mdx b/api_docs/kbn_core_config_server_internal.mdx index dee1ad581964d..7a6250780061e 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index 1ef5500a4a112..3adbf742482f0 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index 0d1bfd645fd6b..1e1a95e81a549 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index 41652a24b2de2..76b82bb483d99 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index 510c39c764001..06d2fc271d7c2 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index 41c69f6a08c32..504ccdfb4b0a1 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index bc2b2aff1d9af..c932593f181bd 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index 627967fc335b4..4303b73519fc1 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index 8ef75740987eb..2ce0848b300f0 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser'] --- import kbnCoreDeprecationsBrowserObj from './kbn_core_deprecations_browser.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_internal.mdx b/api_docs/kbn_core_deprecations_browser_internal.mdx index 7901f9a98a7e4..a16ced6c58004 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-internal'] --- import kbnCoreDeprecationsBrowserInternalObj from './kbn_core_deprecations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_mocks.mdx b/api_docs/kbn_core_deprecations_browser_mocks.mdx index e2d7bcda0a2a9..7699a97f2e5c0 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-mocks'] --- import kbnCoreDeprecationsBrowserMocksObj from './kbn_core_deprecations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_common.mdx b/api_docs/kbn_core_deprecations_common.mdx index 40bb2bbfc1b85..65bcfeb6e3280 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-common'] --- import kbnCoreDeprecationsCommonObj from './kbn_core_deprecations_common.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server.mdx b/api_docs/kbn_core_deprecations_server.mdx index 27b6d914c85f6..0259af4a2d603 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server'] --- import kbnCoreDeprecationsServerObj from './kbn_core_deprecations_server.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_internal.mdx b/api_docs/kbn_core_deprecations_server_internal.mdx index bc66b55f84bc6..3f67e1513fbdb 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-internal'] --- import kbnCoreDeprecationsServerInternalObj from './kbn_core_deprecations_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_mocks.mdx b/api_docs/kbn_core_deprecations_server_mocks.mdx index 8a9ccdacf34fe..55669cff7fcdd 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-mocks'] --- import kbnCoreDeprecationsServerMocksObj from './kbn_core_deprecations_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser.mdx b/api_docs/kbn_core_doc_links_browser.mdx index 32f0252b272b9..b29fac3f1ba6a 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser'] --- import kbnCoreDocLinksBrowserObj from './kbn_core_doc_links_browser.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser_mocks.mdx b/api_docs/kbn_core_doc_links_browser_mocks.mdx index c525c3a50c64d..c5cc6b5c0a074 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser-mocks'] --- import kbnCoreDocLinksBrowserMocksObj from './kbn_core_doc_links_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server.mdx b/api_docs/kbn_core_doc_links_server.mdx index abb6ba6f2cfec..6b49b420e5b05 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server'] --- import kbnCoreDocLinksServerObj from './kbn_core_doc_links_server.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server_mocks.mdx b/api_docs/kbn_core_doc_links_server_mocks.mdx index e3b7db75215b8..d2a48b99e821e 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server-mocks'] --- import kbnCoreDocLinksServerMocksObj from './kbn_core_doc_links_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx index ac9a8ab04a956..be2c94e6b7c87 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-internal'] --- import kbnCoreElasticsearchClientServerInternalObj from './kbn_core_elasticsearch_client_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx index 1b841b939d068..7435d517d2608 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-mocks'] --- import kbnCoreElasticsearchClientServerMocksObj from './kbn_core_elasticsearch_client_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx index ff9026332740a..88d24d6e7a5d6 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server'] --- import kbnCoreElasticsearchServerObj from './kbn_core_elasticsearch_server.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx index ff08543c85012..44819cd3529d0 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-internal'] --- import kbnCoreElasticsearchServerInternalObj from './kbn_core_elasticsearch_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_server_mocks.mdx index b489cb0a0e5fc..6f1d357fe621f 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-mocks'] --- import kbnCoreElasticsearchServerMocksObj from './kbn_core_elasticsearch_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_internal.mdx b/api_docs/kbn_core_environment_server_internal.mdx index 41eb176aeb1b1..a0e4b51510097 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-internal'] --- import kbnCoreEnvironmentServerInternalObj from './kbn_core_environment_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_mocks.mdx b/api_docs/kbn_core_environment_server_mocks.mdx index da9070bbd9d5b..e175438b3479f 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-mocks'] --- import kbnCoreEnvironmentServerMocksObj from './kbn_core_environment_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser.mdx b/api_docs/kbn_core_execution_context_browser.mdx index 91a1eb7e95d14..63fba0e6131d2 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser'] --- import kbnCoreExecutionContextBrowserObj from './kbn_core_execution_context_browser.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_internal.mdx b/api_docs/kbn_core_execution_context_browser_internal.mdx index 4ac62f82f9a47..50a269c58f111 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-internal'] --- import kbnCoreExecutionContextBrowserInternalObj from './kbn_core_execution_context_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_mocks.mdx b/api_docs/kbn_core_execution_context_browser_mocks.mdx index 5a3747e4e07f2..b2e3a4bb5878f 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-mocks'] --- import kbnCoreExecutionContextBrowserMocksObj from './kbn_core_execution_context_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_common.mdx b/api_docs/kbn_core_execution_context_common.mdx index 0732a260a34ce..3fc01b7d68aae 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-common'] --- import kbnCoreExecutionContextCommonObj from './kbn_core_execution_context_common.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server.mdx b/api_docs/kbn_core_execution_context_server.mdx index 20f52ba6731eb..50360bc76b83b 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server'] --- import kbnCoreExecutionContextServerObj from './kbn_core_execution_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_internal.mdx b/api_docs/kbn_core_execution_context_server_internal.mdx index 124a09ff69906..31d18de764c04 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-internal'] --- import kbnCoreExecutionContextServerInternalObj from './kbn_core_execution_context_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_mocks.mdx b/api_docs/kbn_core_execution_context_server_mocks.mdx index f519ee25f8939..fc7ecb1101b32 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-mocks'] --- import kbnCoreExecutionContextServerMocksObj from './kbn_core_execution_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser.mdx b/api_docs/kbn_core_fatal_errors_browser.mdx index affcecc3d105c..f4fbd702bebee 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser'] --- import kbnCoreFatalErrorsBrowserObj from './kbn_core_fatal_errors_browser.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx index 09744283fb995..d861cfbff935b 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser-mocks'] --- import kbnCoreFatalErrorsBrowserMocksObj from './kbn_core_fatal_errors_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser.mdx b/api_docs/kbn_core_http_browser.mdx index 9ae008e7d011a..48361a89b17b8 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser'] --- import kbnCoreHttpBrowserObj from './kbn_core_http_browser.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_internal.mdx b/api_docs/kbn_core_http_browser_internal.mdx index 24b19ae8f1d73..1204969db77da 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-internal'] --- import kbnCoreHttpBrowserInternalObj from './kbn_core_http_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_mocks.mdx b/api_docs/kbn_core_http_browser_mocks.mdx index 0dc8effe9371b..f344c111a01f7 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-mocks'] --- import kbnCoreHttpBrowserMocksObj from './kbn_core_http_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_common.mdx b/api_docs/kbn_core_http_common.mdx index 193eb2c930e79..11342669fccce 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-common'] --- import kbnCoreHttpCommonObj from './kbn_core_http_common.devdocs.json'; diff --git a/api_docs/kbn_core_http_context_server_mocks.mdx b/api_docs/kbn_core_http_context_server_mocks.mdx index 5ce70258f0b49..8a342ebb5fe82 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-context-server-mocks'] --- import kbnCoreHttpContextServerMocksObj from './kbn_core_http_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_request_handler_context_server.mdx b/api_docs/kbn_core_http_request_handler_context_server.mdx index 144b306e15894..bf5a6dd183df2 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server'] --- import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx index a83b82030ec1c..b451b1729fbd2 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server'] --- import kbnCoreHttpResourcesServerObj from './kbn_core_http_resources_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_internal.mdx b/api_docs/kbn_core_http_resources_server_internal.mdx index c1ae8be00852a..693c9b3896489 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-internal'] --- import kbnCoreHttpResourcesServerInternalObj from './kbn_core_http_resources_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx index ec2499cd82c66..15b472c612510 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-mocks'] --- import kbnCoreHttpResourcesServerMocksObj from './kbn_core_http_resources_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index 0e95e8581367e..608dc2a7f43f7 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal'] --- import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx index 292c9086ece26..86cc83d1c4665 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks'] --- import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index d06fc41f1decb..e7549d47de2fe 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server'] --- import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx index 5f70eaeac6401..d1e94c5570913 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-internal'] --- import kbnCoreHttpServerInternalObj from './kbn_core_http_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx index 6812b745be87e..87dc62e5d452d 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-mocks'] --- import kbnCoreHttpServerMocksObj from './kbn_core_http_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser.mdx b/api_docs/kbn_core_i18n_browser.mdx index b51b90da236ea..ede9c902005ae 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser'] --- import kbnCoreI18nBrowserObj from './kbn_core_i18n_browser.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser_mocks.mdx b/api_docs/kbn_core_i18n_browser_mocks.mdx index f0197ce673b94..5c7fbee728cbb 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser-mocks'] --- import kbnCoreI18nBrowserMocksObj from './kbn_core_i18n_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server.mdx b/api_docs/kbn_core_i18n_server.mdx index bc9fbd36bef6d..1d40cfd813e89 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server'] --- import kbnCoreI18nServerObj from './kbn_core_i18n_server.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_internal.mdx b/api_docs/kbn_core_i18n_server_internal.mdx index 5608bbe492830..973d179d55cf0 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-internal'] --- import kbnCoreI18nServerInternalObj from './kbn_core_i18n_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_mocks.mdx b/api_docs/kbn_core_i18n_server_mocks.mdx index 0396bf48da5d1..d86e4225507a1 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index 179135ccbfd40..4b757b514f144 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser-mocks'] --- import kbnCoreInjectedMetadataBrowserMocksObj from './kbn_core_injected_metadata_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_internal.mdx b/api_docs/kbn_core_integrations_browser_internal.mdx index d459bf1aeaa3a..5f3b5317f36d5 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-internal'] --- import kbnCoreIntegrationsBrowserInternalObj from './kbn_core_integrations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_mocks.mdx b/api_docs/kbn_core_integrations_browser_mocks.mdx index 205ac88f5e470..bcfd7fdd2b950 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-mocks'] --- import kbnCoreIntegrationsBrowserMocksObj from './kbn_core_integrations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx index 6d6d9a2bb00f2..90e6fa94adfca 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser'] --- import kbnCoreLifecycleBrowserObj from './kbn_core_lifecycle_browser.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser_mocks.mdx b/api_docs/kbn_core_lifecycle_browser_mocks.mdx index 306399cce5929..8c115b0f3c4fc 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser-mocks'] --- import kbnCoreLifecycleBrowserMocksObj from './kbn_core_lifecycle_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server.mdx b/api_docs/kbn_core_lifecycle_server.mdx index c53509c3542d8..632df357250b0 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server'] --- import kbnCoreLifecycleServerObj from './kbn_core_lifecycle_server.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server_mocks.mdx b/api_docs/kbn_core_lifecycle_server_mocks.mdx index b08743a11140a..017fae40e6765 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server-mocks'] --- import kbnCoreLifecycleServerMocksObj from './kbn_core_lifecycle_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_browser_mocks.mdx b/api_docs/kbn_core_logging_browser_mocks.mdx index b6e432314e9bb..4be638c9a4730 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-browser-mocks'] --- import kbnCoreLoggingBrowserMocksObj from './kbn_core_logging_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx index c78fcd55ebefc..b91004a22f116 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-common-internal'] --- import kbnCoreLoggingCommonInternalObj from './kbn_core_logging_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index 939b44ee1b714..dbe135950c523 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server'] --- import kbnCoreLoggingServerObj from './kbn_core_logging_server.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx index 8053ab596c478..b6fb01da2f86a 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-internal'] --- import kbnCoreLoggingServerInternalObj from './kbn_core_logging_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_mocks.mdx b/api_docs/kbn_core_logging_server_mocks.mdx index 140fd197caed0..90dbf178f1a11 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-mocks'] --- import kbnCoreLoggingServerMocksObj from './kbn_core_logging_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_internal.mdx b/api_docs/kbn_core_metrics_collectors_server_internal.mdx index d36475ee881a3..54e52d609628e 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-internal'] --- import kbnCoreMetricsCollectorsServerInternalObj from './kbn_core_metrics_collectors_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx index 1daf6aad8e8fe..f6f0efbf8ac4b 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-mocks'] --- import kbnCoreMetricsCollectorsServerMocksObj from './kbn_core_metrics_collectors_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server.mdx b/api_docs/kbn_core_metrics_server.mdx index 10e6282332ea7..bf86e0307a776 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server'] --- import kbnCoreMetricsServerObj from './kbn_core_metrics_server.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_internal.mdx b/api_docs/kbn_core_metrics_server_internal.mdx index 43685ad91870f..833425d24409e 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-internal'] --- import kbnCoreMetricsServerInternalObj from './kbn_core_metrics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_mocks.mdx b/api_docs/kbn_core_metrics_server_mocks.mdx index 069d9964aaae0..56753984ac2d5 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-mocks'] --- import kbnCoreMetricsServerMocksObj from './kbn_core_metrics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_mount_utils_browser.mdx b/api_docs/kbn_core_mount_utils_browser.mdx index 8acfeb3f25e3c..603fe381f870c 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-mount-utils-browser'] --- import kbnCoreMountUtilsBrowserObj from './kbn_core_mount_utils_browser.devdocs.json'; diff --git a/api_docs/kbn_core_node_server.mdx b/api_docs/kbn_core_node_server.mdx index 4c64ebacd23f6..5271ba85bb8cf 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server'] --- import kbnCoreNodeServerObj from './kbn_core_node_server.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_internal.mdx b/api_docs/kbn_core_node_server_internal.mdx index 6e24319a666e3..5d1e806aaaeeb 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-internal'] --- import kbnCoreNodeServerInternalObj from './kbn_core_node_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_mocks.mdx b/api_docs/kbn_core_node_server_mocks.mdx index c65c52f49f473..4094ffa9279ce 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-mocks'] --- import kbnCoreNodeServerMocksObj from './kbn_core_node_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser.mdx b/api_docs/kbn_core_notifications_browser.mdx index 77a16b07643c2..7bbcf245b2654 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser'] --- import kbnCoreNotificationsBrowserObj from './kbn_core_notifications_browser.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_internal.mdx b/api_docs/kbn_core_notifications_browser_internal.mdx index 26a3363d26fbc..631e0151740d6 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-internal'] --- import kbnCoreNotificationsBrowserInternalObj from './kbn_core_notifications_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_mocks.mdx b/api_docs/kbn_core_notifications_browser_mocks.mdx index 47a6777732623..9b269fea20985 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-mocks'] --- import kbnCoreNotificationsBrowserMocksObj from './kbn_core_notifications_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser.mdx b/api_docs/kbn_core_overlays_browser.mdx index 46f1c5fc8196c..9fd7a30065d13 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser'] --- import kbnCoreOverlaysBrowserObj from './kbn_core_overlays_browser.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_internal.mdx b/api_docs/kbn_core_overlays_browser_internal.mdx index fade1b5a20320..37a81e48fb305 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-internal'] --- import kbnCoreOverlaysBrowserInternalObj from './kbn_core_overlays_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_mocks.mdx b/api_docs/kbn_core_overlays_browser_mocks.mdx index 339686def13c0..47298a50463c1 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-mocks'] --- import kbnCoreOverlaysBrowserMocksObj from './kbn_core_overlays_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser.mdx b/api_docs/kbn_core_plugins_browser.mdx index 92bea55f56f76..fc627fc8cd415 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser'] --- import kbnCorePluginsBrowserObj from './kbn_core_plugins_browser.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser_mocks.mdx b/api_docs/kbn_core_plugins_browser_mocks.mdx index 33347b183b6a7..4584ddefeb046 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks'] --- import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx index 4ff83cf8191d2..0e9a904c09835 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server'] --- import kbnCorePluginsServerObj from './kbn_core_plugins_server.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server_mocks.mdx b/api_docs/kbn_core_plugins_server_mocks.mdx index dc367f111add3..7af3419dac952 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server-mocks'] --- import kbnCorePluginsServerMocksObj from './kbn_core_plugins_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx index e0d550041cfc5..36b4b5b764626 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server'] --- import kbnCorePrebootServerObj from './kbn_core_preboot_server.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server_mocks.mdx b/api_docs/kbn_core_preboot_server_mocks.mdx index e4b629ab32037..fbb30254f1632 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server-mocks'] --- import kbnCorePrebootServerMocksObj from './kbn_core_preboot_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_browser_mocks.mdx b/api_docs/kbn_core_rendering_browser_mocks.mdx index 2b735abc2620b..002488742db38 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser-mocks'] --- import kbnCoreRenderingBrowserMocksObj from './kbn_core_rendering_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx index 8c265cb3c7e6c..c84e51b6284a3 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-internal'] --- import kbnCoreRenderingServerInternalObj from './kbn_core_rendering_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_mocks.mdx b/api_docs/kbn_core_rendering_server_mocks.mdx index 06b40ffd1cdb3..66e44d5d323bf 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-mocks'] --- import kbnCoreRenderingServerMocksObj from './kbn_core_rendering_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_root_server_internal.mdx b/api_docs/kbn_core_root_server_internal.mdx index a060864d5066e..31a641a09f371 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-root-server-internal'] --- import kbnCoreRootServerInternalObj from './kbn_core_root_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index f0edb4776f5ad..e7e5661abf931 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser'] --- import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index a7cde7f878840..e59bb460fd89c 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server'] --- import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_internal.mdx b/api_docs/kbn_core_saved_objects_api_server_internal.mdx index 8b9e4f3ba610b..29c07b02f6c92 100644 --- a/api_docs/kbn_core_saved_objects_api_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-internal title: "@kbn/core-saved-objects-api-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-internal'] --- import kbnCoreSavedObjectsApiServerInternalObj from './kbn_core_saved_objects_api_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx index f73eab4ae5a5b..50cb340388b7c 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-mocks'] --- import kbnCoreSavedObjectsApiServerMocksObj from './kbn_core_saved_objects_api_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.mdx b/api_docs/kbn_core_saved_objects_base_server_internal.mdx index 3a7bbd2e54977..55f92d7fe094c 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal'] --- import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx index 1bfa37135bf73..e3f24535b399f 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-mocks'] --- import kbnCoreSavedObjectsBaseServerMocksObj from './kbn_core_saved_objects_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser.mdx b/api_docs/kbn_core_saved_objects_browser.mdx index c9f7d61a8cd39..f79a5328c145c 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser'] --- import kbnCoreSavedObjectsBrowserObj from './kbn_core_saved_objects_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_internal.mdx b/api_docs/kbn_core_saved_objects_browser_internal.mdx index 50387786c60ff..3988c40ca812d 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-internal'] --- import kbnCoreSavedObjectsBrowserInternalObj from './kbn_core_saved_objects_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_mocks.mdx b/api_docs/kbn_core_saved_objects_browser_mocks.mdx index 8605324724902..e83c272b4f4a4 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks'] --- import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index 0e20bceeb2556..9257f125a7a8f 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-common'] --- import kbnCoreSavedObjectsCommonObj from './kbn_core_saved_objects_common.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx index 9284ecaae1c2e..ba31ad24940a6 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-internal'] --- import kbnCoreSavedObjectsImportExportServerInternalObj from './kbn_core_saved_objects_import_export_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx index 7b3b9b8536d31..455fe0aa30903 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-mocks'] --- import kbnCoreSavedObjectsImportExportServerMocksObj from './kbn_core_saved_objects_import_export_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx index 32f3c5b7b6655..0d7df56f344f2 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-internal'] --- import kbnCoreSavedObjectsMigrationServerInternalObj from './kbn_core_saved_objects_migration_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx index a1d597c1c6fe5..10decba9473ff 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks'] --- import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index 3d87c55f1428c..16739d78d82dd 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server'] --- import kbnCoreSavedObjectsServerObj from './kbn_core_saved_objects_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_internal.mdx b/api_docs/kbn_core_saved_objects_server_internal.mdx index d56b7f4bbfd15..df1906cd3d36c 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-internal'] --- import kbnCoreSavedObjectsServerInternalObj from './kbn_core_saved_objects_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_mocks.mdx b/api_docs/kbn_core_saved_objects_server_mocks.mdx index 4404fda72564c..f6c6032dda09b 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-mocks'] --- import kbnCoreSavedObjectsServerMocksObj from './kbn_core_saved_objects_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_utils_server.mdx b/api_docs/kbn_core_saved_objects_utils_server.mdx index 7ce5cb45bdeb1..5059eb4c600d3 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server'] --- import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx index 9c64990d286b0..651efcc5127be 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common'] --- import kbnCoreStatusCommonObj from './kbn_core_status_common.devdocs.json'; diff --git a/api_docs/kbn_core_status_common_internal.mdx b/api_docs/kbn_core_status_common_internal.mdx index 424888c8aa2b6..3394b59a4e384 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common-internal'] --- import kbnCoreStatusCommonInternalObj from './kbn_core_status_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server.mdx b/api_docs/kbn_core_status_server.mdx index 6477075fa3bfc..76a4a454d2741 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server'] --- import kbnCoreStatusServerObj from './kbn_core_status_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_internal.mdx b/api_docs/kbn_core_status_server_internal.mdx index 6782772b8c228..451104ef23225 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-internal'] --- import kbnCoreStatusServerInternalObj from './kbn_core_status_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_mocks.mdx b/api_docs/kbn_core_status_server_mocks.mdx index 4b77a88937a30..05ddf5ec40ab7 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-mocks'] --- import kbnCoreStatusServerMocksObj from './kbn_core_status_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx index ae5239538d38d..33e4d2581b485 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-deprecations-getters'] --- import kbnCoreTestHelpersDeprecationsGettersObj from './kbn_core_test_helpers_deprecations_getters.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx index f70e4c3534ed7..aeab2763123c6 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-http-setup-browser'] --- import kbnCoreTestHelpersHttpSetupBrowserObj from './kbn_core_test_helpers_http_setup_browser.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_kbn_server.mdx b/api_docs/kbn_core_test_helpers_kbn_server.mdx index 14d9281233b2e..289d9f3ee3ff9 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server'] --- import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx index 0270000c32ef3..f7af932306c4e 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer'] --- import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx index 996595528a76e..98f0fdf81c560 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils'] --- import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index 68891b4c19a72..5347ab6ce4a8c 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser'] --- import kbnCoreThemeBrowserObj from './kbn_core_theme_browser.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_internal.mdx b/api_docs/kbn_core_theme_browser_internal.mdx index ec326db54267f..446420ce5cba7 100644 --- a/api_docs/kbn_core_theme_browser_internal.mdx +++ b/api_docs/kbn_core_theme_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-internal title: "@kbn/core-theme-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-internal'] --- import kbnCoreThemeBrowserInternalObj from './kbn_core_theme_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx index 12ceb96f1f953..e8415191c6f2d 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-mocks'] --- import kbnCoreThemeBrowserMocksObj from './kbn_core_theme_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser.mdx b/api_docs/kbn_core_ui_settings_browser.mdx index 1433e8e0b8451..80d8d789e59f1 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser'] --- import kbnCoreUiSettingsBrowserObj from './kbn_core_ui_settings_browser.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_internal.mdx b/api_docs/kbn_core_ui_settings_browser_internal.mdx index ce0be9d0eecfc..4219007df1164 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-internal'] --- import kbnCoreUiSettingsBrowserInternalObj from './kbn_core_ui_settings_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_mocks.mdx b/api_docs/kbn_core_ui_settings_browser_mocks.mdx index b56e363c1707b..fa1ce48f374ed 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-mocks'] --- import kbnCoreUiSettingsBrowserMocksObj from './kbn_core_ui_settings_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_common.mdx b/api_docs/kbn_core_ui_settings_common.mdx index 4383dc30150f4..96536c2679aba 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-common'] --- import kbnCoreUiSettingsCommonObj from './kbn_core_ui_settings_common.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server.mdx b/api_docs/kbn_core_ui_settings_server.mdx index 141a3b67487b1..0b7f73027b692 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server'] --- import kbnCoreUiSettingsServerObj from './kbn_core_ui_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_internal.mdx b/api_docs/kbn_core_ui_settings_server_internal.mdx index 0b18ce294fb2e..d95fc2e2168f0 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-internal'] --- import kbnCoreUiSettingsServerInternalObj from './kbn_core_ui_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_mocks.mdx b/api_docs/kbn_core_ui_settings_server_mocks.mdx index cb352de9c7071..cdea14facbf0f 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-mocks'] --- import kbnCoreUiSettingsServerMocksObj from './kbn_core_ui_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx index 4a7b514af95dd..a3004471ffad8 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server'] --- import kbnCoreUsageDataServerObj from './kbn_core_usage_data_server.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_internal.mdx b/api_docs/kbn_core_usage_data_server_internal.mdx index 0ba98d7e11377..71c7a8855bbbb 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-internal'] --- import kbnCoreUsageDataServerInternalObj from './kbn_core_usage_data_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_mocks.mdx b/api_docs/kbn_core_usage_data_server_mocks.mdx index e711636756b4a..1d500f2ffe217 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks'] --- import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx index 0eb371a73845b..a4ec585d44796 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto'] --- import kbnCryptoObj from './kbn_crypto.devdocs.json'; diff --git a/api_docs/kbn_crypto_browser.mdx b/api_docs/kbn_crypto_browser.mdx index ed21fc5391ab5..1b910aad919f4 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index ea9449b2b1c96..dfe1f317447aa 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 3908f6b4f8204..257691719951d 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath'] --- import kbnDatemathObj from './kbn_datemath.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx index 3cfd155383384..2deb130739bd1 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-errors'] --- import kbnDevCliErrorsObj from './kbn_dev_cli_errors.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx index 37baabb24a6eb..b9e9cb6e2132a 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-runner'] --- import kbnDevCliRunnerObj from './kbn_dev_cli_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_proc_runner.mdx b/api_docs/kbn_dev_proc_runner.mdx index 33e17e03beb13..84d9d9c9fe907 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-proc-runner'] --- import kbnDevProcRunnerObj from './kbn_dev_proc_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_utils.mdx b/api_docs/kbn_dev_utils.mdx index e44589c5ad5c8..ab9a84010f7f1 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.devdocs.json b/api_docs/kbn_doc_links.devdocs.json index b829e281babcd..75685baffbc4a 100644 --- a/api_docs/kbn_doc_links.devdocs.json +++ b/api_docs/kbn_doc_links.devdocs.json @@ -658,7 +658,7 @@ "label": "observability", "description": [], "signature": [ - "{ readonly guide: string; readonly infrastructureThreshold: string; readonly logsThreshold: string; readonly metricsThreshold: string; readonly monitorStatus: string; readonly monitorUptime: string; readonly tlsCertificate: string; readonly uptimeDurationAnomaly: string; readonly monitorLogs: string; readonly analyzeMetrics: string; readonly monitorUptimeSynthetics: string; readonly userExperience: string; readonly createAlerts: string; readonly syntheticsCommandReference: string; readonly syntheticsProjectMonitors: string; }" + "{ readonly guide: string; readonly infrastructureThreshold: string; readonly logsThreshold: string; readonly metricsThreshold: string; readonly monitorStatus: string; readonly monitorUptime: string; readonly tlsCertificate: string; readonly uptimeDurationAnomaly: string; readonly monitorLogs: string; readonly analyzeMetrics: string; readonly monitorUptimeSynthetics: string; readonly userExperience: string; readonly createAlerts: string; readonly syntheticsCommandReference: string; readonly syntheticsProjectMonitors: string; readonly syntheticsMigrateFromIntegration: 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 004ce641602e4..7cdb6bb36ab2d 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links'] --- import kbnDocLinksObj from './kbn_doc_links.devdocs.json'; diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx index ed1b9fa7f8442..9c31bda65af2d 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index 49148bf13e43e..1f86b4a42c1f1 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs.devdocs.json b/api_docs/kbn_ecs.devdocs.json index 32c5b52fbc08d..8d623867a82be 100644 --- a/api_docs/kbn_ecs.devdocs.json +++ b/api_docs/kbn_ecs.devdocs.json @@ -1570,7 +1570,7 @@ "\nECS version this event conforms to. `ecs.version` is a required field and must exist in all events.\nWhen querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events." ], "signature": [ - "\"8.6.0\"" + "\"8.6.1\"" ], "path": "packages/kbn-ecs/generated/ecs.ts", "deprecated": false, @@ -6780,7 +6780,7 @@ "label": "indicator", "description": [], "signature": [ - "{ as?: { number?: number | undefined; organization?: { name?: string | undefined; } | undefined; } | undefined; confidence?: string | undefined; description?: string | undefined; email?: { address?: string | undefined; } | undefined; file?: { accessed?: string | undefined; attributes?: string[] | undefined; code_signature?: { digest_algorithm?: string | undefined; exists?: boolean | undefined; signing_id?: string | undefined; status?: string | undefined; subject_name?: string | undefined; team_id?: string | undefined; timestamp?: string | undefined; trusted?: boolean | undefined; valid?: boolean | undefined; } | undefined; created?: string | undefined; ctime?: string | undefined; device?: string | undefined; directory?: string | undefined; drive_letter?: string | undefined; elf?: { architecture?: string | undefined; byte_order?: string | undefined; cpu_type?: string | undefined; creation_date?: string | undefined; exports?: Record[] | undefined; header?: { abi_version?: string | undefined; class?: string | undefined; data?: string | undefined; entrypoint?: number | undefined; object_version?: string | undefined; os_abi?: string | undefined; type?: string | undefined; version?: string | undefined; } | undefined; imports?: Record[] | undefined; sections?: Record[] | undefined; segments?: Record[] | undefined; shared_libraries?: string[] | undefined; telfhash?: string | undefined; } | undefined; extension?: string | undefined; fork_name?: string | undefined; gid?: string | undefined; group?: string | undefined; hash?: { md5?: string | undefined; sha1?: string | undefined; sha256?: string | undefined; sha384?: string | undefined; sha512?: string | undefined; ssdeep?: string | undefined; tlsh?: string | undefined; } | undefined; inode?: string | undefined; mime_type?: string | undefined; mode?: string | undefined; mtime?: string | undefined; name?: string | undefined; owner?: string | undefined; path?: string | undefined; pe?: { architecture?: string | undefined; company?: string | undefined; description?: string | undefined; file_version?: string | undefined; imphash?: string | undefined; original_file_name?: string | undefined; pehash?: string | undefined; product?: string | undefined; } | undefined; size?: number | undefined; target_path?: string | undefined; type?: string | undefined; uid?: string | undefined; x509?: { alternative_names?: string[] | undefined; issuer?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; not_after?: string | undefined; not_before?: string | undefined; public_key_algorithm?: string | undefined; public_key_curve?: string | undefined; public_key_exponent?: number | undefined; public_key_size?: number | undefined; serial_number?: string | undefined; signature_algorithm?: string | undefined; subject?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; version_number?: string | undefined; } | undefined; } | undefined; first_seen?: string | undefined; geo?: { city_name?: string | undefined; continent_code?: string | undefined; continent_name?: string | undefined; country_iso_code?: string | undefined; country_name?: string | undefined; location?: { lat: number; lon: number; } | undefined; name?: string | undefined; postal_code?: string | undefined; region_iso_code?: string | undefined; region_name?: string | undefined; timezone?: string | undefined; } | undefined; ip?: string | undefined; last_seen?: string | undefined; marking?: { tlp?: string | undefined; } | undefined; modified_at?: string | undefined; port?: number | undefined; provider?: string | undefined; reference?: string | undefined; registry?: { data?: { bytes?: string | undefined; strings?: string[] | undefined; type?: string | undefined; } | undefined; hive?: string | undefined; key?: string | undefined; path?: string | undefined; value?: string | undefined; } | undefined; scanner_stats?: number | undefined; sightings?: number | undefined; type?: string | undefined; url?: { domain?: string | undefined; extension?: string | undefined; fragment?: string | undefined; full?: string | undefined; original?: string | undefined; password?: string | undefined; path?: string | undefined; port?: number | undefined; query?: string | undefined; registered_domain?: string | undefined; scheme?: string | undefined; subdomain?: string | undefined; top_level_domain?: string | undefined; username?: string | undefined; } | undefined; x509?: { alternative_names?: string[] | undefined; issuer?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; not_after?: string | undefined; not_before?: string | undefined; public_key_algorithm?: string | undefined; public_key_curve?: string | undefined; public_key_exponent?: number | undefined; public_key_size?: number | undefined; serial_number?: string | undefined; signature_algorithm?: string | undefined; subject?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; version_number?: string | undefined; } | undefined; } | undefined" + "{ as?: { number?: number | undefined; organization?: { name?: string | undefined; } | undefined; } | undefined; confidence?: string | undefined; description?: string | undefined; email?: { address?: string | undefined; } | undefined; file?: { accessed?: string | undefined; attributes?: string[] | undefined; code_signature?: { digest_algorithm?: string | undefined; exists?: boolean | undefined; signing_id?: string | undefined; status?: string | undefined; subject_name?: string | undefined; team_id?: string | undefined; timestamp?: string | undefined; trusted?: boolean | undefined; valid?: boolean | undefined; } | undefined; created?: string | undefined; ctime?: string | undefined; device?: string | undefined; directory?: string | undefined; drive_letter?: string | undefined; elf?: { architecture?: string | undefined; byte_order?: string | undefined; cpu_type?: string | undefined; creation_date?: string | undefined; exports?: Record[] | undefined; header?: { abi_version?: string | undefined; class?: string | undefined; data?: string | undefined; entrypoint?: number | undefined; object_version?: string | undefined; os_abi?: string | undefined; type?: string | undefined; version?: string | undefined; } | undefined; imports?: Record[] | undefined; sections?: Record[] | undefined; segments?: Record[] | undefined; shared_libraries?: string[] | undefined; telfhash?: string | undefined; } | undefined; extension?: string | undefined; fork_name?: string | undefined; gid?: string | undefined; group?: string | undefined; hash?: { md5?: string | undefined; sha1?: string | undefined; sha256?: string | undefined; sha384?: string | undefined; sha512?: string | undefined; ssdeep?: string | undefined; tlsh?: string | undefined; } | undefined; inode?: string | undefined; mime_type?: string | undefined; mode?: string | undefined; mtime?: string | undefined; name?: string | undefined; owner?: string | undefined; path?: string | undefined; pe?: { architecture?: string | undefined; company?: string | undefined; description?: string | undefined; file_version?: string | undefined; imphash?: string | undefined; original_file_name?: string | undefined; pehash?: string | undefined; product?: string | undefined; } | undefined; size?: number | undefined; target_path?: string | undefined; type?: string | undefined; uid?: string | undefined; x509?: { alternative_names?: string[] | undefined; issuer?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; not_after?: string | undefined; not_before?: string | undefined; public_key_algorithm?: string | undefined; public_key_curve?: string | undefined; public_key_exponent?: number | undefined; public_key_size?: number | undefined; serial_number?: string | undefined; signature_algorithm?: string | undefined; subject?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; version_number?: string | undefined; } | undefined; } | undefined; first_seen?: string | undefined; geo?: { city_name?: string | undefined; continent_code?: string | undefined; continent_name?: string | undefined; country_iso_code?: string | undefined; country_name?: string | undefined; location?: { lat: number; lon: number; } | undefined; name?: string | undefined; postal_code?: string | undefined; region_iso_code?: string | undefined; region_name?: string | undefined; timezone?: string | undefined; } | undefined; ip?: string | undefined; last_seen?: string | undefined; marking?: { tlp?: string | undefined; tlp_version?: string | undefined; } | undefined; modified_at?: string | undefined; port?: number | undefined; provider?: string | undefined; reference?: string | undefined; registry?: { data?: { bytes?: string | undefined; strings?: string[] | undefined; type?: string | undefined; } | undefined; hive?: string | undefined; key?: string | undefined; path?: string | undefined; value?: string | undefined; } | undefined; scanner_stats?: number | undefined; sightings?: number | undefined; type?: string | undefined; url?: { domain?: string | undefined; extension?: string | undefined; fragment?: string | undefined; full?: string | undefined; original?: string | undefined; password?: string | undefined; path?: string | undefined; port?: number | undefined; query?: string | undefined; registered_domain?: string | undefined; scheme?: string | undefined; subdomain?: string | undefined; top_level_domain?: string | undefined; username?: string | undefined; } | undefined; x509?: { alternative_names?: string[] | undefined; issuer?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; not_after?: string | undefined; not_before?: string | undefined; public_key_algorithm?: string | undefined; public_key_curve?: string | undefined; public_key_exponent?: number | undefined; public_key_size?: number | undefined; serial_number?: string | undefined; signature_algorithm?: string | undefined; subject?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; version_number?: string | undefined; } | undefined; } | undefined" ], "path": "packages/kbn-ecs/generated/threat.ts", "deprecated": false, @@ -6827,20 +6827,6 @@ "path": "packages/kbn-ecs/generated/threat.ts", "deprecated": false, "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsThreat.threat", - "type": "Object", - "tags": [], - "label": "threat", - "description": [], - "signature": [ - "{ indicator?: { marking?: { tlp?: { version?: string | undefined; } | undefined; } | undefined; } | undefined; } | undefined" - ], - "path": "packages/kbn-ecs/generated/threat.ts", - "deprecated": false, - "trackAdoption": false } ], "initialIsOpen": false @@ -8350,7 +8336,7 @@ "label": "EcsVersion", "description": [], "signature": [ - "\"8.6.0\"" + "\"8.6.1\"" ], "path": "packages/kbn-ecs/generated/index.ts", "deprecated": false, @@ -142151,10 +142137,150 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp", + "type": "Object", + "tags": [], + "label": "'threat.enrichments.indicator.marking.tlp'", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.dashed_name", + "type": "string", + "tags": [], + "label": "dashed_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.example", + "type": "string", + "tags": [], + "label": "example", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.expected_values", + "type": "Array", + "tags": [], + "label": "expected_values", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.flat_name", + "type": "string", + "tags": [], + "label": "flat_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.ignore_above", + "type": "number", + "tags": [], + "label": "ignore_above", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.level", + "type": "string", + "tags": [], + "label": "level", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.normalize", + "type": "Array", + "tags": [], + "label": "normalize", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.short", + "type": "string", + "tags": [], + "label": "short", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version", "type": "Object", "tags": [], - "label": "'threat.enrichments.indicator.marking.tlp.version'", + "label": "'threat.enrichments.indicator.marking.tlp_version'", "description": [], "path": "packages/kbn-ecs/generated/ecs_flat.ts", "deprecated": false, @@ -142162,7 +142288,7 @@ "children": [ { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.dashed_name", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.dashed_name", "type": "string", "tags": [], "label": "dashed_name", @@ -142173,7 +142299,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.description", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.description", "type": "string", "tags": [], "label": "description", @@ -142184,7 +142310,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.example", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.example", "type": "number", "tags": [], "label": "example", @@ -142195,7 +142321,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.flat_name", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.flat_name", "type": "string", "tags": [], "label": "flat_name", @@ -142206,7 +142332,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.ignore_above", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.ignore_above", "type": "number", "tags": [], "label": "ignore_above", @@ -142217,7 +142343,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.level", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.level", "type": "string", "tags": [], "label": "level", @@ -142228,7 +142354,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.name", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.name", "type": "string", "tags": [], "label": "name", @@ -142239,7 +142365,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.normalize", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.normalize", "type": "Array", "tags": [], "label": "normalize", @@ -142253,7 +142379,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.short", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.short", "type": "string", "tags": [], "label": "short", @@ -142264,7 +142390,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.type", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.type", "type": "string", "tags": [], "label": "type", @@ -166692,6 +166818,132 @@ } ] }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version", + "type": "Object", + "tags": [], + "label": "'threat.indicator.marking.tlp_version'", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.dashed_name", + "type": "string", + "tags": [], + "label": "dashed_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.example", + "type": "number", + "tags": [], + "label": "example", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.flat_name", + "type": "string", + "tags": [], + "label": "flat_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.ignore_above", + "type": "number", + "tags": [], + "label": "ignore_above", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.level", + "type": "string", + "tags": [], + "label": "level", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.normalize", + "type": "Array", + "tags": [], + "label": "normalize", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.short", + "type": "string", + "tags": [], + "label": "short", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "@kbn/ecs", "id": "def-common.EcsFlat.threat.indicator.modified_at", @@ -175551,132 +175803,6 @@ } ] }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version", - "type": "Object", - "tags": [], - "label": "'threat.threat.indicator.marking.tlp.version'", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.dashed_name", - "type": "string", - "tags": [], - "label": "dashed_name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.description", - "type": "string", - "tags": [], - "label": "description", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.example", - "type": "number", - "tags": [], - "label": "example", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.flat_name", - "type": "string", - "tags": [], - "label": "flat_name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.ignore_above", - "type": "number", - "tags": [], - "label": "ignore_above", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.level", - "type": "string", - "tags": [], - "label": "level", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.normalize", - "type": "Array", - "tags": [], - "label": "normalize", - "description": [], - "signature": [ - "never[]" - ], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.short", - "type": "string", - "tags": [], - "label": "short", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, { "parentPluginId": "@kbn/ecs", "id": "def-common.EcsFlat.tls.cipher", @@ -345721,10 +345847,10 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp", "type": "Object", "tags": [], - "label": "'threat.enrichments.indicator.marking.tlp.version'", + "label": "'threat.enrichments.indicator.marking.tlp'", "description": [], "path": "packages/kbn-ecs/generated/ecs_nested.ts", "deprecated": false, @@ -345732,7 +345858,7 @@ "children": [ { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.dashed_name", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.dashed_name", "type": "string", "tags": [], "label": "dashed_name", @@ -345743,7 +345869,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.description", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.description", "type": "string", "tags": [], "label": "description", @@ -345754,7 +345880,147 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.example", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.example", + "type": "string", + "tags": [], + "label": "example", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.expected_values", + "type": "Array", + "tags": [], + "label": "expected_values", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.flat_name", + "type": "string", + "tags": [], + "label": "flat_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.ignore_above", + "type": "number", + "tags": [], + "label": "ignore_above", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.level", + "type": "string", + "tags": [], + "label": "level", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.normalize", + "type": "Array", + "tags": [], + "label": "normalize", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.short", + "type": "string", + "tags": [], + "label": "short", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version", + "type": "Object", + "tags": [], + "label": "'threat.enrichments.indicator.marking.tlp_version'", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.dashed_name", + "type": "string", + "tags": [], + "label": "dashed_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.example", "type": "number", "tags": [], "label": "example", @@ -345765,7 +346031,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.flat_name", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.flat_name", "type": "string", "tags": [], "label": "flat_name", @@ -345776,7 +346042,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.ignore_above", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.ignore_above", "type": "number", "tags": [], "label": "ignore_above", @@ -345787,7 +346053,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.level", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.level", "type": "string", "tags": [], "label": "level", @@ -345798,7 +346064,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.name", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.name", "type": "string", "tags": [], "label": "name", @@ -345809,7 +346075,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.normalize", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.normalize", "type": "Array", "tags": [], "label": "normalize", @@ -345823,7 +346089,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.short", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.short", "type": "string", "tags": [], "label": "short", @@ -345834,7 +346100,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.type", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.type", "type": "string", "tags": [], "label": "type", @@ -370262,6 +370528,132 @@ } ] }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version", + "type": "Object", + "tags": [], + "label": "'threat.indicator.marking.tlp_version'", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.dashed_name", + "type": "string", + "tags": [], + "label": "dashed_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.example", + "type": "number", + "tags": [], + "label": "example", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.flat_name", + "type": "string", + "tags": [], + "label": "flat_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.ignore_above", + "type": "number", + "tags": [], + "label": "ignore_above", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.level", + "type": "string", + "tags": [], + "label": "level", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.normalize", + "type": "Array", + "tags": [], + "label": "normalize", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.short", + "type": "string", + "tags": [], + "label": "short", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "@kbn/ecs", "id": "def-common.EcsNested.threat.fields.threat.indicator.modified_at", @@ -379120,132 +379512,6 @@ "trackAdoption": false } ] - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version", - "type": "Object", - "tags": [], - "label": "'threat.threat.indicator.marking.tlp.version'", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.dashed_name", - "type": "string", - "tags": [], - "label": "dashed_name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.description", - "type": "string", - "tags": [], - "label": "description", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.example", - "type": "number", - "tags": [], - "label": "example", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.flat_name", - "type": "string", - "tags": [], - "label": "flat_name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.ignore_above", - "type": "number", - "tags": [], - "label": "ignore_above", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.level", - "type": "string", - "tags": [], - "label": "level", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.normalize", - "type": "Array", - "tags": [], - "label": "normalize", - "description": [], - "signature": [ - "never[]" - ], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.short", - "type": "string", - "tags": [], - "label": "short", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - } - ] } ] }, diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx index 488cebb89a3b6..95d72a575996d 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 35102 | 0 | 34695 | 0 | +| 35125 | 0 | 34718 | 0 | ## Common diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index f0092b0f8bb11..4bb6302bb165f 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index de79ec32efbca..070d93a08d00b 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es'] --- import kbnEsObj from './kbn_es.devdocs.json'; diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index 2f5e0c942eb0f..15253132f300a 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-archiver'] --- import kbnEsArchiverObj from './kbn_es_archiver.devdocs.json'; diff --git a/api_docs/kbn_es_errors.mdx b/api_docs/kbn_es_errors.mdx index 93fa195ba86cd..a08a01774a28d 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.devdocs.json b/api_docs/kbn_es_query.devdocs.json index 94daa358e2546..15f5ca2dcacdb 100644 --- a/api_docs/kbn_es_query.devdocs.json +++ b/api_docs/kbn_es_query.devdocs.json @@ -3616,7 +3616,15 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined) => boolean" + "[] | undefined, comparatorOptions?: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.FilterCompareOptions", + "text": "FilterCompareOptions" + }, + " | undefined) => boolean" ], "path": "packages/kbn-es-query/src/filters/helpers/only_disabled.ts", "deprecated": false, @@ -3665,6 +3673,28 @@ "deprecated": false, "trackAdoption": false, "isRequired": false + }, + { + "parentPluginId": "@kbn/es-query", + "id": "def-common.onlyDisabledFiltersChanged.$3", + "type": "Object", + "tags": [], + "label": "comparatorOptions", + "description": [], + "signature": [ + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.FilterCompareOptions", + "text": "FilterCompareOptions" + }, + " | undefined" + ], + "path": "packages/kbn-es-query/src/filters/helpers/only_disabled.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [ diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 22bee16d0585c..12b22ea813f83 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 250 | 1 | 192 | 15 | +| 251 | 1 | 193 | 15 | ## Common diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index 16e8ec6d3ae5c..64d6b0993ae37 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types'] --- import kbnEsTypesObj from './kbn_es_types.devdocs.json'; diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx index 0837f234cf360..97f6d6680f269 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index 8213f9ee28f66..d2c3dc8088d43 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types'] --- import kbnFieldTypesObj from './kbn_field_types.devdocs.json'; diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx index 68e4f0d3116fb..8d33659226e2c 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules'] --- import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx index affa92183f493..6285bd78aad1c 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services'] --- import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json'; diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx index 3fd8dc4fad5c3..a12b731e81a82 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index 5e2a8257212e6..1fb38a717abf6 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding'] --- import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json'; diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index dfcaeb8177ede..933afc75407ab 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/handlebars'] --- import kbnHandlebarsObj from './kbn_handlebars.devdocs.json'; diff --git a/api_docs/kbn_hapi_mocks.mdx b/api_docs/kbn_hapi_mocks.mdx index d832fa1f08892..a433c650e6636 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks'] --- import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json'; diff --git a/api_docs/kbn_health_gateway_server.mdx b/api_docs/kbn_health_gateway_server.mdx index 904c8e9030cd9..d8c608dda917f 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/health-gateway-server'] --- import kbnHealthGatewayServerObj from './kbn_health_gateway_server.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx index 64a8be7ee09a6..c189c00ae487d 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-card'] --- import kbnHomeSampleDataCardObj from './kbn_home_sample_data_card.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_tab.mdx b/api_docs/kbn_home_sample_data_tab.mdx index 6055316ebaff3..c3965c5a54d8c 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-tab'] --- import kbnHomeSampleDataTabObj from './kbn_home_sample_data_tab.devdocs.json'; diff --git a/api_docs/kbn_i18n.mdx b/api_docs/kbn_i18n.mdx index 2cb9c9a8cfa3a..7b89b37412f27 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] --- import kbnI18nObj from './kbn_i18n.devdocs.json'; diff --git a/api_docs/kbn_i18n_react.mdx b/api_docs/kbn_i18n_react.mdx index 9ff4b65f97fcc..2c328b138b0ed 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n-react'] --- import kbnI18nReactObj from './kbn_i18n_react.devdocs.json'; diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx index 40b31612ad951..e7eae573de8f3 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver'] --- import kbnImportResolverObj from './kbn_import_resolver.devdocs.json'; diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx index abc36c4c5455c..7e8856c341331 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index 1e18a8d3b7586..8f6ef7d12cfae 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index 234d28e295b15..27990ece5fc2e 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/jest-serializers'] --- import kbnJestSerializersObj from './kbn_jest_serializers.devdocs.json'; diff --git a/api_docs/kbn_journeys.mdx b/api_docs/kbn_journeys.mdx index c85a757c4ed59..6186787494de9 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index 97a034693722e..584ffc19f24fc 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index ae7075c556124..7473276664b6a 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_language_documentation_popover.mdx b/api_docs/kbn_language_documentation_popover.mdx index 78b6689e3620b..c61c2d5b5b1ee 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover'] --- import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index b52baaa950073..1a5486690d201 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging'] --- import kbnLoggingObj from './kbn_logging.devdocs.json'; diff --git a/api_docs/kbn_logging_mocks.mdx b/api_docs/kbn_logging_mocks.mdx index 0f17dea4d5288..f650b29e4c6ca 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks'] --- import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json'; diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx index 09afe4a531470..0f86a458ef364 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config'] --- import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json'; diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index 87352e3142191..f33c3258798d8 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl'] --- import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json'; diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx index 0b2ad6dcde023..b2f900ba95a6c 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index b5a408b845b23..5b4aea536a671 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index a17bf71066b85..e983c66de8941 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index de78d68d1e53e..d05f4b24ea6a8 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index 41209eacc44a6..a562498f029bf 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index 9e80df4909ede..080e636896bf6 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index 6bc362697e9a2..caee19e6bf1cf 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 596fe6523a2d2..927faf5319566 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index 99b64dfadbf3a..9944e12d0adb5 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 9a2501165adad..689dfe081bf8b 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index 447ef2dddf8e1..7522ca07a0cbb 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer'] --- import kbnOptimizerObj from './kbn_optimizer.devdocs.json'; diff --git a/api_docs/kbn_optimizer_webpack_helpers.mdx b/api_docs/kbn_optimizer_webpack_helpers.mdx index b1f02f021a94e..2a93e781316a8 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer-webpack-helpers'] --- import kbnOptimizerWebpackHelpersObj from './kbn_optimizer_webpack_helpers.devdocs.json'; diff --git a/api_docs/kbn_osquery_io_ts_types.mdx b/api_docs/kbn_osquery_io_ts_types.mdx index f12bb05c5e02a..152fe5e3ca41a 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index bc4d50e4a8ec0..203f3cee97663 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor'] --- import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json'; diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx index 6b2260140b27b..b400ae67ba67a 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-generator'] --- import kbnPluginGeneratorObj from './kbn_plugin_generator.devdocs.json'; diff --git a/api_docs/kbn_plugin_helpers.mdx b/api_docs/kbn_plugin_helpers.mdx index 0b7384d58217f..9eef0e20e6173 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] --- import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json'; diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx index e38e032918779..f1307f4ee611e 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 18856c87584df..7515ba1dede62 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index 139bc59f09efd..a6795262f5ad7 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index 450ab51bb769e..fd451237e9748 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index a3afc7e6e394c..a4d97d360ed83 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index ef8fbeddce1b6..93592dd5f1941 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index ce2c207c44cb9..cb19994ce5109 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index 213798600769a..e3dc7195c25c7 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index add3cfd3ddcb2..cd2efdb8ab695 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index e1e4d7c386a6a..8d250e2a4fab0 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils'] --- import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx index 4a2c126f2c3f4..648ddb83dcba6 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 741e6e52093bc..ac65688098133 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-hook-utils'] --- import kbnSecuritysolutionHookUtilsObj from './kbn_securitysolution_hook_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx index d64bd39381a14..9e2f3c66e32a0 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-alerting-types'] --- import kbnSecuritysolutionIoTsAlertingTypesObj from './kbn_securitysolution_io_ts_alerting_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx index c1933b1d716a9..5d865ae5787cb 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-list-types'] --- import kbnSecuritysolutionIoTsListTypesObj from './kbn_securitysolution_io_ts_list_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_types.mdx b/api_docs/kbn_securitysolution_io_ts_types.mdx index d18659ef45b36..1bfb2c392e0f3 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-types'] --- import kbnSecuritysolutionIoTsTypesObj from './kbn_securitysolution_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_utils.mdx b/api_docs/kbn_securitysolution_io_ts_utils.mdx index 7830db8ad32bf..1b8b85d173f05 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-utils'] --- import kbnSecuritysolutionIoTsUtilsObj from './kbn_securitysolution_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_api.mdx b/api_docs/kbn_securitysolution_list_api.mdx index 959df4c94ed3d..c4e0abe6b5080 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-api'] --- import kbnSecuritysolutionListApiObj from './kbn_securitysolution_list_api.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx index edfb2c6cdcc37..9c900ecd8652f 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-constants'] --- import kbnSecuritysolutionListConstantsObj from './kbn_securitysolution_list_constants.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_hooks.mdx b/api_docs/kbn_securitysolution_list_hooks.mdx index 8fa3a18ea5633..048f7ab49a733 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-hooks'] --- import kbnSecuritysolutionListHooksObj from './kbn_securitysolution_list_hooks.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_utils.mdx b/api_docs/kbn_securitysolution_list_utils.mdx index a93c450c85fcf..02ec6d3200784 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-utils'] --- import kbnSecuritysolutionListUtilsObj from './kbn_securitysolution_list_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_rules.mdx b/api_docs/kbn_securitysolution_rules.mdx index 940401dcb1966..df55f55ed2e06 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-rules'] --- import kbnSecuritysolutionRulesObj from './kbn_securitysolution_rules.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_t_grid.mdx b/api_docs/kbn_securitysolution_t_grid.mdx index 455c90cf9eae3..1395de4f17b34 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-t-grid'] --- import kbnSecuritysolutionTGridObj from './kbn_securitysolution_t_grid.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_utils.mdx b/api_docs/kbn_securitysolution_utils.mdx index ee287d3470065..b36dda44e671d 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-utils'] --- import kbnSecuritysolutionUtilsObj from './kbn_securitysolution_utils.devdocs.json'; diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx index 1b5ebe0ee3ab9..ed54250119af9 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-http-tools'] --- import kbnServerHttpToolsObj from './kbn_server_http_tools.devdocs.json'; diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx index 20564c2a15c2c..ce4d9fdde00cf 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx index 8dd64775f30e8..262c77e7f062b 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg'] --- import kbnSharedSvgObj from './kbn_shared_svg.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_solution.mdx b/api_docs/kbn_shared_ux_avatar_solution.mdx index 6cfe61898f43f..c1e50f7dba731 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution'] --- import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx index af72da48648c7..3914362340354 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components title: "@kbn/shared-ux-avatar-user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-user-profile-components'] --- import kbnSharedUxAvatarUserProfileComponentsObj from './kbn_shared_ux_avatar_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx index 9a1487ae5aca8..b5d1660e9df95 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen'] --- import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx index 8b7a45e188408..689e8ad2e124c 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks title: "@kbn/shared-ux-button-exit-full-screen-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen-mocks'] --- import kbnSharedUxButtonExitFullScreenMocksObj from './kbn_shared_ux_button_exit_full_screen_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx index 84d5531642146..17c2dfb715875 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-toolbar'] --- import kbnSharedUxButtonToolbarObj from './kbn_shared_ux_button_toolbar.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data.mdx b/api_docs/kbn_shared_ux_card_no_data.mdx index d6b422d937535..a2fea2e3111fb 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data'] --- import kbnSharedUxCardNoDataObj from './kbn_shared_ux_card_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx index 08f0073f79005..a67cf07e5b28b 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks'] --- import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx index 98e19c9f6c08e..5913a20118344 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-context'] --- import kbnSharedUxFileContextObj from './kbn_shared_ux_file_context.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image.mdx b/api_docs/kbn_shared_ux_file_image.mdx index e0f939a4b42ac..a6801384bf8b8 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image'] --- import kbnSharedUxFileImageObj from './kbn_shared_ux_file_image.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image_mocks.mdx b/api_docs/kbn_shared_ux_file_image_mocks.mdx index bfd3ddd58aef3..198ae5b49b00d 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image-mocks'] --- import kbnSharedUxFileImageMocksObj from './kbn_shared_ux_file_image_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_mocks.mdx b/api_docs/kbn_shared_ux_file_mocks.mdx index 0e75a42baf3a8..493f47f4e9b67 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index 98cc4fdf9bf71..6640872b7d604 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index 0a87ef2e49859..59fd93a6babed 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index 41a8a4bc37989..9893d1871bf06 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-util'] --- import kbnSharedUxFileUtilObj from './kbn_shared_ux_file_util.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app.mdx b/api_docs/kbn_shared_ux_link_redirect_app.mdx index b925d3df6c55e..bfcde889bef09 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app'] --- import kbnSharedUxLinkRedirectAppObj from './kbn_shared_ux_link_redirect_app.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx index c01f812af5a4b..bd926c128a8f3 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app-mocks'] --- import kbnSharedUxLinkRedirectAppMocksObj from './kbn_shared_ux_link_redirect_app_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown.mdx b/api_docs/kbn_shared_ux_markdown.mdx index 4b68fa6dc58ca..df204af883f7a 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown'] --- import kbnSharedUxMarkdownObj from './kbn_shared_ux_markdown.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown_mocks.mdx b/api_docs/kbn_shared_ux_markdown_mocks.mdx index 1c703a2369b3c..49eddd8a9f06c 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown-mocks'] --- import kbnSharedUxMarkdownMocksObj from './kbn_shared_ux_markdown_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index 3768fbcd49cc6..4510a233a9511 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data'] --- import kbnSharedUxPageAnalyticsNoDataObj from './kbn_shared_ux_page_analytics_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx index 6b1e2b8a5984b..5092b87c3d55f 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data-mocks'] --- import kbnSharedUxPageAnalyticsNoDataMocksObj from './kbn_shared_ux_page_analytics_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx index ec00c6ac80b1a..1ced6ba3f37bb 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data'] --- import kbnSharedUxPageKibanaNoDataObj from './kbn_shared_ux_page_kibana_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx index 42ab9f9f06b3b..177fa9c24afd1 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data-mocks'] --- import kbnSharedUxPageKibanaNoDataMocksObj from './kbn_shared_ux_page_kibana_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template.mdx b/api_docs/kbn_shared_ux_page_kibana_template.mdx index 16b4ac7220b90..db05046ebedf6 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template'] --- import kbnSharedUxPageKibanaTemplateObj from './kbn_shared_ux_page_kibana_template.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx index bdb90364b95ee..0dfdcc4f8b2c0 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template-mocks'] --- import kbnSharedUxPageKibanaTemplateMocksObj from './kbn_shared_ux_page_kibana_template_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data.mdx b/api_docs/kbn_shared_ux_page_no_data.mdx index 120916cd68c1d..8d8dcd15f257d 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data'] --- import kbnSharedUxPageNoDataObj from './kbn_shared_ux_page_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config.mdx b/api_docs/kbn_shared_ux_page_no_data_config.mdx index eb96fd40af573..8d46675145ce2 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config'] --- import kbnSharedUxPageNoDataConfigObj from './kbn_shared_ux_page_no_data_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx index b6d1deae0b930..84ec584b3fd88 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config-mocks'] --- import kbnSharedUxPageNoDataConfigMocksObj from './kbn_shared_ux_page_no_data_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx index f427553fea303..653125f0b90f9 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-mocks'] --- import kbnSharedUxPageNoDataMocksObj from './kbn_shared_ux_page_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_solution_nav.mdx b/api_docs/kbn_shared_ux_page_solution_nav.mdx index d3cedcf51828e..bde06d7261bc4 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-solution-nav'] --- import kbnSharedUxPageSolutionNavObj from './kbn_shared_ux_page_solution_nav.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx index 26a062a60edee..7a304119b3b06 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views'] --- import kbnSharedUxPromptNoDataViewsObj from './kbn_shared_ux_prompt_no_data_views.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx index b39d624eb71e4..06c5add7a7c6c 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index 66fac2533b311..daafb4f8465c2 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index 35cc667e36f5a..fabe1be18825b 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router'] --- import kbnSharedUxRouterObj from './kbn_shared_ux_router.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router_mocks.mdx b/api_docs/kbn_shared_ux_router_mocks.mdx index 049ebcb17cb97..7aeae3a3a6b1a 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router-mocks'] --- import kbnSharedUxRouterMocksObj from './kbn_shared_ux_router_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_config.mdx b/api_docs/kbn_shared_ux_storybook_config.mdx index be11e8095ce12..3bea26b657ab2 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-config'] --- import kbnSharedUxStorybookConfigObj from './kbn_shared_ux_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_mock.mdx b/api_docs/kbn_shared_ux_storybook_mock.mdx index 0d993dc36582b..22e4e29361eeb 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock'] --- import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index 08ebaf46f88dc..cef4a3bf686d4 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index 3c3692c849172..f3577ce09bd65 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index 471d20db13daf..e0ce41f2d312a 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 6af2033dfd0e7..b934c66b352b7 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/std'] --- import kbnStdObj from './kbn_std.devdocs.json'; diff --git a/api_docs/kbn_stdio_dev_helpers.mdx b/api_docs/kbn_stdio_dev_helpers.mdx index 2fa8c47bf0f20..02f78612b0e19 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/stdio-dev-helpers'] --- import kbnStdioDevHelpersObj from './kbn_stdio_dev_helpers.devdocs.json'; diff --git a/api_docs/kbn_storybook.mdx b/api_docs/kbn_storybook.mdx index 013b04a6ab6a3..e81a3caac6a1b 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] --- import kbnStorybookObj from './kbn_storybook.devdocs.json'; diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index 6487d555a588c..15343a9d10fd3 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools'] --- import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json'; diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx index 0e7fb7d9c2538..e37e7404e01bd 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test'] --- import kbnTestObj from './kbn_test.devdocs.json'; diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx index 355290bae78bf..8c623011ee80b 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers'] --- import kbnTestJestHelpersObj from './kbn_test_jest_helpers.devdocs.json'; diff --git a/api_docs/kbn_test_subj_selector.mdx b/api_docs/kbn_test_subj_selector.mdx index 5443337f7498c..823128b1507ce 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector'] --- import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index 1987689104e19..7f38834280a2c 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index 5b5f002032916..da196b99a2eb5 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index e8c2d9140e38d..b0186a7eaef38 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index 4f630f5bb6c26..709dc8fe5d4a7 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index 590c9f141a32c..6699e3ae3a72e 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src'] --- import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.devdocs.json'; diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx index 2d95a6167fe2b..406b0d31950b9 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme'] --- import kbnUiThemeObj from './kbn_ui_theme.devdocs.json'; diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx index 9c162f36e195c..ad5ab07afb3b4 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/user-profile-components'] --- import kbnUserProfileComponentsObj from './kbn_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_utility_types.mdx b/api_docs/kbn_utility_types.mdx index 9e569eb13c66f..baea6336505ac 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types'] --- import kbnUtilityTypesObj from './kbn_utility_types.devdocs.json'; diff --git a/api_docs/kbn_utility_types_jest.mdx b/api_docs/kbn_utility_types_jest.mdx index 28c69ad56caa3..332d054c84c64 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types-jest'] --- import kbnUtilityTypesJestObj from './kbn_utility_types_jest.devdocs.json'; diff --git a/api_docs/kbn_utils.mdx b/api_docs/kbn_utils.mdx index a81f4e3a573cb..979da7e8af8b6 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] --- import kbnUtilsObj from './kbn_utils.devdocs.json'; diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx index 0c8e51749bce7..7d0023fc7afd3 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator'] --- import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json'; diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx index 471920263bfca..0ad6d61a8d1c6 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index a1cd10b5d2323..5963e56f66d7e 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact'] --- import kibanaReactObj from './kibana_react.devdocs.json'; diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx index 443a6f043921b..e247b5efe098b 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils'] --- import kibanaUtilsObj from './kibana_utils.devdocs.json'; diff --git a/api_docs/kubernetes_security.mdx b/api_docs/kubernetes_security.mdx index 16cacfa325773..008b6803db948 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index b5294a551334e..6acfa2346e9fb 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 40ce8a38d116e..790f98e3ddd5d 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseApiGuard'] --- import licenseApiGuardObj from './license_api_guard.devdocs.json'; diff --git a/api_docs/license_management.mdx b/api_docs/license_management.mdx index 77bedb1b11517..9ff6e16060236 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseManagement'] --- import licenseManagementObj from './license_management.devdocs.json'; diff --git a/api_docs/licensing.mdx b/api_docs/licensing.mdx index 8ebf24f36e2e5..492b0b8e9eff8 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing'] --- import licensingObj from './licensing.devdocs.json'; diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx index 561435c2be514..34e21f90f69ca 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] --- import listsObj from './lists.devdocs.json'; diff --git a/api_docs/management.mdx b/api_docs/management.mdx index 6d6bbc6a02f26..43029c741cf22 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management'] --- import managementObj from './management.devdocs.json'; diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx index f02a89ac26fcb..5263f92208fec 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'maps'] --- import mapsObj from './maps.devdocs.json'; diff --git a/api_docs/maps_ems.mdx b/api_docs/maps_ems.mdx index 3eb4448752b3e..df6f491f4f595 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms'] --- import mapsEmsObj from './maps_ems.devdocs.json'; diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index 6635a01a23bb7..f8ea753a35c43 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml'] --- import mlObj from './ml.devdocs.json'; diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx index 228899752c821..022b03256e6b1 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring'] --- import monitoringObj from './monitoring.devdocs.json'; diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx index 76588c2a1f27a..0416a4f58c2fa 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection'] --- import monitoringCollectionObj from './monitoring_collection.devdocs.json'; diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx index c1ef320f6acc1..4788c5b1b8020 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'navigation'] --- import navigationObj from './navigation.devdocs.json'; diff --git a/api_docs/newsfeed.mdx b/api_docs/newsfeed.mdx index 9a21cb27a02d1..a9fe231cb944b 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; diff --git a/api_docs/notifications.mdx b/api_docs/notifications.mdx index 9c86e4b570f5f..ac81901ba529d 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; diff --git a/api_docs/observability.devdocs.json b/api_docs/observability.devdocs.json index 9c56b9606c241..0f547a2ec7bfd 100644 --- a/api_docs/observability.devdocs.json +++ b/api_docs/observability.devdocs.json @@ -2380,6 +2380,20 @@ "deprecated": false, "trackAdoption": false, "children": [ + { + "parentPluginId": "observability", + "id": "def-public.ExploratoryEmbeddableProps.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "observability", "id": "def-public.ExploratoryEmbeddableProps.appId", @@ -2630,6 +2644,38 @@ ], "returnComment": [] }, + { + "parentPluginId": "observability", + "id": "def-public.ExploratoryEmbeddableProps.onLoad", + "type": "Function", + "tags": [], + "label": "onLoad", + "description": [], + "signature": [ + "((loading: boolean) => void) | undefined" + ], + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observability", + "id": "def-public.ExploratoryEmbeddableProps.onLoad.$1", + "type": "boolean", + "tags": [], + "label": "loading", + "description": [], + "signature": [ + "boolean" + ], + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "observability", "id": "def-public.ExploratoryEmbeddableProps.caseOwner", @@ -2800,6 +2846,20 @@ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-public.ExploratoryEmbeddableProps.searchSessionId", + "type": "string", + "tags": [], + "label": "searchSessionId", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 920856da040ca..2bdf7a44c55a8 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; -Contact [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) for questions regarding this plugin. +Contact [@elastic/actionable-observability](https://github.com/orgs/elastic/teams/actionable-observability) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 615 | 43 | 609 | 32 | +| 619 | 43 | 613 | 32 | ## Client diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index 18a3338a0bd36..5857090cae573 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery'] --- import osqueryObj from './osquery.devdocs.json'; diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx index c859b841720ff..823e0e09fc7ab 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -15,13 +15,13 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Count | Plugins or Packages with a
public API | Number of teams | |--------------|----------|------------------------| -| 573 | 469 | 39 | +| 573 | 469 | 38 | ### Public API health stats | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 67651 | 515 | 58481 | 1232 | +| 67699 | 515 | 58528 | 1234 | ## Plugin Directory @@ -35,7 +35,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 9 | 0 | 9 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Considering using bfetch capabilities when fetching large amounts of data. This services supports batching HTTP requests and streaming responses back. | 89 | 1 | 74 | 2 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds Canvas application to Kibana | 9 | 0 | 8 | 3 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | The Case management system in Kibana | 87 | 0 | 71 | 28 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | The Case management system in Kibana | 92 | 0 | 75 | 28 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 270 | 16 | 255 | 9 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 41 | 0 | 11 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Chat available on Elastic Cloud deployments for quicker assistance. | 1 | 0 | 0 | 0 | @@ -47,7 +47,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | cloudLinks | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Adds the links to the Elastic Cloud console | 0 | 0 | 0 | 0 | | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | The cloud security posture plugin | 17 | 0 | 2 | 2 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 13 | 0 | 13 | 1 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 41 | 0 | 41 | 3 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 46 | 0 | 46 | 3 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 270 | 0 | 266 | 9 | | crossClusterReplication | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | | customBranding | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Enables customization of Kibana | 0 | 0 | 0 | 0 | @@ -90,7 +90,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | The file upload plugin contains components and services for uploading a file, analyzing its data, and then importing the data into an Elasticsearch index. Supported file types include CSV, TSV, newline-delimited JSON and GeoJSON. | 62 | 0 | 62 | 2 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | File upload, download, sharing, and serving over HTTP implementation in Kibana. | 254 | 1 | 45 | 5 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Simple UI for managing files in Kibana | 2 | 1 | 2 | 0 | -| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1079 | 3 | 974 | 26 | +| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1087 | 3 | 982 | 27 | | ftrApis | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 68 | 0 | 14 | 5 | | globalSearchBar | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 0 | 0 | 0 | 0 | @@ -127,7 +127,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 34 | 0 | 34 | 2 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 17 | 0 | 17 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 1 | -| | [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) | - | 615 | 43 | 609 | 32 | +| | [@elastic/actionable-observability](https://github.com/orgs/elastic/teams/actionable-observability) | - | 619 | 43 | 613 | 32 | | | [@elastic/security-defend-workflows](https://github.com/orgs/elastic/teams/security-defend-workflows) | - | 24 | 0 | 24 | 7 | | painlessLab | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Presentation Utility Plugin is a set of common, shared components and toolkits for solutions within the Presentation space, (e.g. Dashboards, Canvas). | 219 | 7 | 163 | 12 | @@ -135,7 +135,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 4 | 0 | 4 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Reporting Services enables applications to feature reports that the user can automate with Watcher and download later. | 36 | 0 | 16 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 21 | 0 | 21 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 257 | 0 | 228 | 13 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 258 | 0 | 229 | 13 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 24 | 0 | 19 | 2 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 216 | 2 | 175 | 5 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 16 | 0 | 16 | 0 | @@ -164,7 +164,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 257 | 1 | 214 | 20 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the transforms features provided by Elastic. Transforms enable you to convert existing Elasticsearch indices into summarized indices, which provide opportunities for new insights and analytics. | 4 | 0 | 4 | 1 | | translations | [@elastic/kibana-localization](https://github.com/orgs/elastic/teams/kibana-localization) | - | 0 | 0 | 0 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 559 | 11 | 530 | 49 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 560 | 11 | 531 | 50 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds UI Actions service to Kibana | 134 | 2 | 92 | 9 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Extends UI Actions plugin with more functionality | 206 | 0 | 140 | 9 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the field list which can be integrated into apps | 267 | 0 | 242 | 7 | @@ -394,12 +394,12 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-docs](https://github.com/orgs/elastic/teams/kibana-docs) | - | 68 | 0 | 68 | 2 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 1 | 0 | 1 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 19 | 0 | 11 | 0 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 35102 | 0 | 34695 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 35125 | 0 | 34718 | 0 | | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 9 | 0 | 1 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 4 | 0 | 4 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 27 | 0 | 14 | 1 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 3 | 0 | -| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 250 | 1 | 192 | 15 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 251 | 1 | 193 | 15 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 12 | 0 | 12 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 1 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 20 | 0 | 16 | 0 | diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index b9618c23b8f65..ca90f53818d29 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil'] --- import presentationUtilObj from './presentation_util.devdocs.json'; diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx index db28fdc75ba51..92a6bf72ba860 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profiling'] --- import profilingObj from './profiling.devdocs.json'; diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx index df53b30d642e5..80802750fb4e7 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'remoteClusters'] --- import remoteClustersObj from './remote_clusters.devdocs.json'; diff --git a/api_docs/reporting.mdx b/api_docs/reporting.mdx index 9cb366395527d..b643c0c5e765d 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'reporting'] --- import reportingObj from './reporting.devdocs.json'; diff --git a/api_docs/rollup.mdx b/api_docs/rollup.mdx index a253b1d85aad9..c4ec0e27c4ed1 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.devdocs.json b/api_docs/rule_registry.devdocs.json index 9e7abc7076580..899300a8b0ad8 100644 --- a/api_docs/rule_registry.devdocs.json +++ b/api_docs/rule_registry.devdocs.json @@ -321,9 +321,9 @@ "section": "def-common.RuleTypeParams", "text": "RuleTypeParams" }, - " = never>({ query, aggs, _source, track_total_hits: trackTotalHits, size, index, sort, search_after: searchAfter, }: { query?: object | undefined; aggs?: object | undefined; index: string | undefined; track_total_hits?: boolean | undefined; _source?: string[] | undefined; size?: number | undefined; sort?: ", + " = never>({ aggs, featureIds, index, query, search_after: searchAfter, size, sort, track_total_hits: trackTotalHits, _source, }: { aggs?: object | undefined; featureIds?: string[] | undefined; index?: string | undefined; query?: object | undefined; search_after?: (string | number)[] | undefined; size?: number | undefined; sort?: ", "SortOptions", - "[] | undefined; search_after?: (string | number)[] | undefined; }) => Promise<", + "[] | undefined; track_total_hits?: boolean | undefined; _source?: string[] | undefined; }) => Promise<", "SearchResponse", ">, Record[]>; getCurrent: []>; bulkGet: (params?: ", + ">(params: ", { "pluginId": "security", "scope": "public", "docId": "kibSecurityPluginApi", - "section": "def-public.UserProfileGetCurrentParams", - "text": "UserProfileGetCurrentParams" + "section": "def-public.UserProfileBulkGetParams", + "text": "UserProfileBulkGetParams" }, - " | undefined) => Promise<", + ") => Promise<", { "pluginId": "security", "scope": "common", "docId": "kibSecurityPluginApi", - "section": "def-common.GetUserProfileResponse", - "text": "GetUserProfileResponse" + "section": "def-common.UserProfile", + "text": "UserProfile" }, - ">; bulkGet: []>; getCurrent: (params: ", + ">(params?: ", { "pluginId": "security", "scope": "public", "docId": "kibSecurityPluginApi", - "section": "def-public.UserProfileBulkGetParams", - "text": "UserProfileBulkGetParams" + "section": "def-public.UserProfileGetCurrentParams", + "text": "UserProfileGetCurrentParams" }, - ") => Promise<", + " | undefined) => Promise<", { "pluginId": "security", "scope": "common", "docId": "kibSecurityPluginApi", - "section": "def-common.UserProfile", - "text": "UserProfile" + "section": "def-common.GetUserProfileResponse", + "text": "GetUserProfileResponse" }, - "[]>; }" + ">; }" ], "path": "x-pack/plugins/security/public/plugin.tsx", "deprecated": false, diff --git a/api_docs/security.mdx b/api_docs/security.mdx index 70191ab01dddd..20f3f67992499 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index 7d8ff51f0d821..3fca53000d055 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] --- import securitySolutionObj from './security_solution.devdocs.json'; diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx index 753021b212885..3c4112f5b12bb 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sessionView'] --- import sessionViewObj from './session_view.devdocs.json'; diff --git a/api_docs/share.mdx b/api_docs/share.mdx index 0a2150f3472a8..7c88529509d63 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share'] --- import shareObj from './share.devdocs.json'; diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx index a07946b0b092d..6a9ef464b4a1a 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'snapshotRestore'] --- import snapshotRestoreObj from './snapshot_restore.devdocs.json'; diff --git a/api_docs/spaces.mdx b/api_docs/spaces.mdx index cc10d7b96133a..b7a23034f97ae 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'spaces'] --- import spacesObj from './spaces.devdocs.json'; diff --git a/api_docs/stack_alerts.mdx b/api_docs/stack_alerts.mdx index fba351dcf90a6..5e6dd0c326df3 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackAlerts'] --- import stackAlertsObj from './stack_alerts.devdocs.json'; diff --git a/api_docs/stack_connectors.mdx b/api_docs/stack_connectors.mdx index 1e632a9600bba..53877c1f379f1 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors'] --- import stackConnectorsObj from './stack_connectors.devdocs.json'; diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx index 8e881116157f5..d27609972d4ea 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'taskManager'] --- import taskManagerObj from './task_manager.devdocs.json'; diff --git a/api_docs/telemetry.mdx b/api_docs/telemetry.mdx index 8a6bbb9e3cbaa..45a23863a7603 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetry'] --- import telemetryObj from './telemetry.devdocs.json'; diff --git a/api_docs/telemetry_collection_manager.mdx b/api_docs/telemetry_collection_manager.mdx index 0c6893e47cc3a..aec602235ecea 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionManager'] --- import telemetryCollectionManagerObj from './telemetry_collection_manager.devdocs.json'; diff --git a/api_docs/telemetry_collection_xpack.mdx b/api_docs/telemetry_collection_xpack.mdx index 58d6865457bff..7d8cb8fbfdc83 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionXpack'] --- import telemetryCollectionXpackObj from './telemetry_collection_xpack.devdocs.json'; diff --git a/api_docs/telemetry_management_section.mdx b/api_docs/telemetry_management_section.mdx index 8d75936a263a8..56d906f61b8bd 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index 6349f41c5699b..8f6afa0b6a22d 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence'] --- import threatIntelligenceObj from './threat_intelligence.devdocs.json'; diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index de4bac799f58a..06481d7cb1e1f 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'timelines'] --- import timelinesObj from './timelines.devdocs.json'; diff --git a/api_docs/transform.mdx b/api_docs/transform.mdx index 76a65f5eb8c92..183bea6a7a636 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.devdocs.json b/api_docs/triggers_actions_ui.devdocs.json index 688489bebe219..bd2c23e17e0fc 100644 --- a/api_docs/triggers_actions_ui.devdocs.json +++ b/api_docs/triggers_actions_ui.devdocs.json @@ -2762,6 +2762,22 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "triggersActionsUi", + "id": "def-public.AlertsTableProps.casesData", + "type": "Object", + "tags": [], + "label": "casesData", + "description": [], + "signature": [ + "{ cases: Map; isLoading: boolean; }" + ], + "path": "x-pack/plugins/triggers_actions_ui/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "triggersActionsUi", "id": "def-public.AlertsTableProps.columns", diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index 0cd2f8955e1a1..86bbc27828a92 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 559 | 11 | 530 | 49 | +| 560 | 11 | 531 | 50 | ## Client diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index 4125cdb045e35..d2f75cdadaf80 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActions'] --- import uiActionsObj from './ui_actions.devdocs.json'; diff --git a/api_docs/ui_actions_enhanced.mdx b/api_docs/ui_actions_enhanced.mdx index eea96407dace6..bf728dcf6e4af 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced'] --- import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json'; diff --git a/api_docs/unified_field_list.mdx b/api_docs/unified_field_list.mdx index 34d2c09362829..46fe9159c1b3a 100644 --- a/api_docs/unified_field_list.mdx +++ b/api_docs/unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedFieldList title: "unifiedFieldList" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedFieldList plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedFieldList'] --- import unifiedFieldListObj from './unified_field_list.devdocs.json'; diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx index ddc71d4cfd0b3..b41ff3a4825b7 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram'] --- import unifiedHistogramObj from './unified_histogram.devdocs.json'; diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index 651e8c93786c9..152a96e32fcfa 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch'] --- import unifiedSearchObj from './unified_search.devdocs.json'; diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx index e5bcf93633d3f..c6f0835d6d807 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete'] --- import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json'; diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx index 73feec578abc9..259a59040d68e 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding'] --- import urlForwardingObj from './url_forwarding.devdocs.json'; diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx index 35aae853c2e12..5c7d485d13000 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'usageCollection'] --- import usageCollectionObj from './usage_collection.devdocs.json'; diff --git a/api_docs/ux.mdx b/api_docs/ux.mdx index 3b184cd0f3e92..f1a6c2942c2c5 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ux'] --- import uxObj from './ux.devdocs.json'; diff --git a/api_docs/vis_default_editor.mdx b/api_docs/vis_default_editor.mdx index c1909f3b2ff58..e5721b92a859b 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visDefaultEditor'] --- import visDefaultEditorObj from './vis_default_editor.devdocs.json'; diff --git a/api_docs/vis_type_gauge.mdx b/api_docs/vis_type_gauge.mdx index d0eb416f6c0b0..27036c12206fb 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeGauge'] --- import visTypeGaugeObj from './vis_type_gauge.devdocs.json'; diff --git a/api_docs/vis_type_heatmap.mdx b/api_docs/vis_type_heatmap.mdx index e12b5502a0c0f..9cd7efc20188d 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeHeatmap'] --- import visTypeHeatmapObj from './vis_type_heatmap.devdocs.json'; diff --git a/api_docs/vis_type_pie.mdx b/api_docs/vis_type_pie.mdx index 444127e1ec286..e1cec18a5f5e7 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypePie'] --- import visTypePieObj from './vis_type_pie.devdocs.json'; diff --git a/api_docs/vis_type_table.mdx b/api_docs/vis_type_table.mdx index 8b4667ed7e8b3..0032031091454 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTable'] --- import visTypeTableObj from './vis_type_table.devdocs.json'; diff --git a/api_docs/vis_type_timelion.mdx b/api_docs/vis_type_timelion.mdx index 72a47efd044dd..65b5fe199ab0d 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimelion'] --- import visTypeTimelionObj from './vis_type_timelion.devdocs.json'; diff --git a/api_docs/vis_type_timeseries.mdx b/api_docs/vis_type_timeseries.mdx index e45229f25e088..0ab63eb8a1f12 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimeseries'] --- import visTypeTimeseriesObj from './vis_type_timeseries.devdocs.json'; diff --git a/api_docs/vis_type_vega.mdx b/api_docs/vis_type_vega.mdx index 10248e6aa1b28..867534e663eb3 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVega'] --- import visTypeVegaObj from './vis_type_vega.devdocs.json'; diff --git a/api_docs/vis_type_vislib.mdx b/api_docs/vis_type_vislib.mdx index f1761d76647b8..3a61dfd4e18bb 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVislib'] --- import visTypeVislibObj from './vis_type_vislib.devdocs.json'; diff --git a/api_docs/vis_type_xy.mdx b/api_docs/vis_type_xy.mdx index 01232bd409ecd..ca42d227a9945 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy'] --- import visTypeXyObj from './vis_type_xy.devdocs.json'; diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index fb6fa4c55159c..46dd73403f330 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; diff --git a/docs/settings/apm-settings.asciidoc b/docs/settings/apm-settings.asciidoc index 9c3a893fd0214..c503b4cdcbf9c 100644 --- a/docs/settings/apm-settings.asciidoc +++ b/docs/settings/apm-settings.asciidoc @@ -69,7 +69,7 @@ Maximum number of traces per request for generating the global service map. Defa Set to `false` to hide the APM app from the main menu. Defaults to `true`. `xpack.apm.ui.maxTraceItems` {ess-icon}:: -Maximum number of child items displayed when viewing trace details. Defaults to `1000`. +Maximum number of child items displayed when viewing trace details. Defaults to `5000`. `xpack.observability.annotations.index` {ess-icon}:: Index name where Observability annotations are stored. Defaults to `observability-annotations`. diff --git a/package.json b/package.json index 8b7d7e070eedf..fa53d3c70e7e3 100644 --- a/package.json +++ b/package.json @@ -327,6 +327,7 @@ "@kbn/core-usage-data-base-server-internal": "link:packages/core/usage-data/core-usage-data-base-server-internal", "@kbn/core-usage-data-server": "link:packages/core/usage-data/core-usage-data-server", "@kbn/core-usage-data-server-internal": "link:packages/core/usage-data/core-usage-data-server-internal", + "@kbn/core-version-http-server": "link:packages/core/versioning/core-version-http-server", "@kbn/cross-cluster-replication-plugin": "link:x-pack/plugins/cross_cluster_replication", "@kbn/crypto": "link:packages/kbn-crypto", "@kbn/crypto-browser": "link:packages/kbn-crypto-browser", diff --git a/packages/core/saved-objects/core-saved-objects-base-server-internal/src/saved_objects_config.ts b/packages/core/saved-objects/core-saved-objects-base-server-internal/src/saved_objects_config.ts index c6a506d2b4dd4..22980bd8e88e7 100644 --- a/packages/core/saved-objects/core-saved-objects-base-server-internal/src/saved_objects_config.ts +++ b/packages/core/saved-objects/core-saved-objects-base-server-internal/src/saved_objects_config.ts @@ -42,6 +42,13 @@ export const savedObjectsMigrationConfig: ServiceConfigDescriptor; @@ -50,11 +57,11 @@ export const savedObjectsConfig: ServiceConfigDescriptor path: 'savedObjects', schema: soSchema, }; - export class SavedObjectConfig { public maxImportPayloadBytes: number; public maxImportExportSize: number; - + /* @internal depend on env: see https://github.com/elastic/dev/issues/2200 */ + public allowHttpApiAccess: boolean; public migration: SavedObjectsMigrationConfigType; constructor( @@ -64,5 +71,6 @@ export class SavedObjectConfig { this.maxImportPayloadBytes = rawConfig.maxImportPayloadBytes.getValueInBytes(); this.maxImportExportSize = rawConfig.maxImportExportSize; this.migration = rawMigrationConfig; + this.allowHttpApiAccess = rawConfig.allowHttpApiAccess; } } diff --git a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_create.ts b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_create.ts index 9c85b1aa0620c..c212dae936aed 100644 --- a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_create.ts +++ b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_create.ts @@ -7,20 +7,23 @@ */ import { schema } from '@kbn/config-schema'; +import { SavedObjectConfig } from '@kbn/core-saved-objects-base-server-internal'; import type { InternalCoreUsageDataSetup } from '@kbn/core-usage-data-base-server-internal'; import type { Logger } from '@kbn/logging'; import type { InternalSavedObjectRouter } from '../internal_types'; import { catchAndReturnBoomErrors, throwIfAnyTypeNotVisibleByAPI } from './utils'; interface RouteDependencies { + config: SavedObjectConfig; coreUsageData: InternalCoreUsageDataSetup; logger: Logger; } export const registerBulkCreateRoute = ( router: InternalSavedObjectRouter, - { coreUsageData, logger }: RouteDependencies + { config, coreUsageData, logger }: RouteDependencies ) => { + const { allowHttpApiAccess } = config; router.post( { path: '/_bulk_create', @@ -62,7 +65,9 @@ export const registerBulkCreateRoute = ( const { savedObjects } = await context.core; const typesToCheck = [...new Set(req.body.map(({ type }) => type))]; - throwIfAnyTypeNotVisibleByAPI(typesToCheck, savedObjects.typeRegistry); + if (!allowHttpApiAccess) { + throwIfAnyTypeNotVisibleByAPI(typesToCheck, savedObjects.typeRegistry); + } const result = await savedObjects.client.bulkCreate(req.body, { overwrite }); return res.ok({ body: result }); }) diff --git a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_delete.ts b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_delete.ts index cbd22f827a642..d0e80f75dc906 100644 --- a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_delete.ts +++ b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_delete.ts @@ -7,20 +7,23 @@ */ import { schema } from '@kbn/config-schema'; +import { SavedObjectConfig } from '@kbn/core-saved-objects-base-server-internal'; import type { InternalCoreUsageDataSetup } from '@kbn/core-usage-data-base-server-internal'; import type { Logger } from '@kbn/logging'; import type { InternalSavedObjectRouter } from '../internal_types'; import { catchAndReturnBoomErrors, throwIfAnyTypeNotVisibleByAPI } from './utils'; interface RouteDependencies { + config: SavedObjectConfig; coreUsageData: InternalCoreUsageDataSetup; logger: Logger; } export const registerBulkDeleteRoute = ( router: InternalSavedObjectRouter, - { coreUsageData, logger }: RouteDependencies + { config, coreUsageData, logger }: RouteDependencies ) => { + const { allowHttpApiAccess } = config; router.post( { path: '/_bulk_delete', @@ -47,8 +50,9 @@ export const registerBulkDeleteRoute = ( const { savedObjects } = await context.core; const typesToCheck = [...new Set(req.body.map(({ type }) => type))]; - throwIfAnyTypeNotVisibleByAPI(typesToCheck, savedObjects.typeRegistry); - + if (!allowHttpApiAccess) { + throwIfAnyTypeNotVisibleByAPI(typesToCheck, savedObjects.typeRegistry); + } const statuses = await savedObjects.client.bulkDelete(req.body, { force }); return res.ok({ body: statuses }); }) diff --git a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_get.ts b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_get.ts index 455657d9ca640..c2e2bb6c6ec1f 100644 --- a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_get.ts +++ b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_get.ts @@ -7,20 +7,23 @@ */ import { schema } from '@kbn/config-schema'; +import { SavedObjectConfig } from '@kbn/core-saved-objects-base-server-internal'; import type { InternalCoreUsageDataSetup } from '@kbn/core-usage-data-base-server-internal'; import type { Logger } from '@kbn/logging'; import type { InternalSavedObjectRouter } from '../internal_types'; import { catchAndReturnBoomErrors, throwIfAnyTypeNotVisibleByAPI } from './utils'; interface RouteDependencies { + config: SavedObjectConfig; coreUsageData: InternalCoreUsageDataSetup; logger: Logger; } export const registerBulkGetRoute = ( router: InternalSavedObjectRouter, - { coreUsageData, logger }: RouteDependencies + { config, coreUsageData, logger }: RouteDependencies ) => { + const { allowHttpApiAccess } = config; router.post( { path: '/_bulk_get', @@ -42,8 +45,9 @@ export const registerBulkGetRoute = ( const { savedObjects } = await context.core; const typesToCheck = [...new Set(req.body.map(({ type }) => type))]; - throwIfAnyTypeNotVisibleByAPI(typesToCheck, savedObjects.typeRegistry); - + if (!allowHttpApiAccess) { + throwIfAnyTypeNotVisibleByAPI(typesToCheck, savedObjects.typeRegistry); + } const result = await savedObjects.client.bulkGet(req.body); return res.ok({ body: result }); }) diff --git a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_resolve.ts b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_resolve.ts index 874df9f59bb8c..231eb108b50e1 100644 --- a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_resolve.ts +++ b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_resolve.ts @@ -7,20 +7,23 @@ */ import { schema } from '@kbn/config-schema'; +import { SavedObjectConfig } from '@kbn/core-saved-objects-base-server-internal'; import type { InternalCoreUsageDataSetup } from '@kbn/core-usage-data-base-server-internal'; import type { Logger } from '@kbn/logging'; import type { InternalSavedObjectRouter } from '../internal_types'; import { catchAndReturnBoomErrors, throwIfAnyTypeNotVisibleByAPI } from './utils'; interface RouteDependencies { + config: SavedObjectConfig; coreUsageData: InternalCoreUsageDataSetup; logger: Logger; } export const registerBulkResolveRoute = ( router: InternalSavedObjectRouter, - { coreUsageData, logger }: RouteDependencies + { config, coreUsageData, logger }: RouteDependencies ) => { + const { allowHttpApiAccess } = config; router.post( { path: '/_bulk_resolve', @@ -42,7 +45,9 @@ export const registerBulkResolveRoute = ( const { savedObjects } = await context.core; const typesToCheck = [...new Set(req.body.map(({ type }) => type))]; - throwIfAnyTypeNotVisibleByAPI(typesToCheck, savedObjects.typeRegistry); + if (!allowHttpApiAccess) { + throwIfAnyTypeNotVisibleByAPI(typesToCheck, savedObjects.typeRegistry); + } const result = await savedObjects.client.bulkResolve(req.body); return res.ok({ body: result }); }) diff --git a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_update.ts b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_update.ts index b51e39fd1c6d5..699a997074bc7 100644 --- a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_update.ts +++ b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/bulk_update.ts @@ -7,20 +7,23 @@ */ import { schema } from '@kbn/config-schema'; +import { SavedObjectConfig } from '@kbn/core-saved-objects-base-server-internal'; import type { InternalCoreUsageDataSetup } from '@kbn/core-usage-data-base-server-internal'; import type { Logger } from '@kbn/logging'; import type { InternalSavedObjectRouter } from '../internal_types'; import { catchAndReturnBoomErrors, throwIfAnyTypeNotVisibleByAPI } from './utils'; interface RouteDependencies { + config: SavedObjectConfig; coreUsageData: InternalCoreUsageDataSetup; logger: Logger; } export const registerBulkUpdateRoute = ( router: InternalSavedObjectRouter, - { coreUsageData, logger }: RouteDependencies + { config, coreUsageData, logger }: RouteDependencies ) => { + const { allowHttpApiAccess } = config; router.put( { path: '/_bulk_update', @@ -55,8 +58,9 @@ export const registerBulkUpdateRoute = ( const { savedObjects } = await context.core; const typesToCheck = [...new Set(req.body.map(({ type }) => type))]; - throwIfAnyTypeNotVisibleByAPI(typesToCheck, savedObjects.typeRegistry); - + if (!allowHttpApiAccess) { + throwIfAnyTypeNotVisibleByAPI(typesToCheck, savedObjects.typeRegistry); + } const savedObject = await savedObjects.client.bulkUpdate(req.body); return res.ok({ body: savedObject }); }) diff --git a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/create.ts b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/create.ts index af0be90481c33..82533c8979636 100644 --- a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/create.ts +++ b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/create.ts @@ -7,20 +7,23 @@ */ import { schema } from '@kbn/config-schema'; +import { SavedObjectConfig } from '@kbn/core-saved-objects-base-server-internal'; import type { InternalCoreUsageDataSetup } from '@kbn/core-usage-data-base-server-internal'; import type { Logger } from '@kbn/logging'; import type { InternalSavedObjectRouter } from '../internal_types'; import { catchAndReturnBoomErrors, throwIfTypeNotVisibleByAPI } from './utils'; interface RouteDependencies { + config: SavedObjectConfig; coreUsageData: InternalCoreUsageDataSetup; logger: Logger; } export const registerCreateRoute = ( router: InternalSavedObjectRouter, - { coreUsageData, logger }: RouteDependencies + { config, coreUsageData, logger }: RouteDependencies ) => { + const { allowHttpApiAccess } = config; router.post( { path: '/{type}/{id?}', @@ -60,9 +63,9 @@ export const registerCreateRoute = ( usageStatsClient.incrementSavedObjectsCreate({ request: req }).catch(() => {}); const { savedObjects } = await context.core; - - throwIfTypeNotVisibleByAPI(type, savedObjects.typeRegistry); - + if (!allowHttpApiAccess) { + throwIfTypeNotVisibleByAPI(type, savedObjects.typeRegistry); + } const options = { id, overwrite, diff --git a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/delete.ts b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/delete.ts index 71124fee2ca38..4f341e027e155 100644 --- a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/delete.ts +++ b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/delete.ts @@ -7,20 +7,23 @@ */ import { schema } from '@kbn/config-schema'; +import { SavedObjectConfig } from '@kbn/core-saved-objects-base-server-internal'; import type { InternalCoreUsageDataSetup } from '@kbn/core-usage-data-base-server-internal'; import type { Logger } from '@kbn/logging'; import type { InternalSavedObjectRouter } from '../internal_types'; import { catchAndReturnBoomErrors, throwIfTypeNotVisibleByAPI } from './utils'; interface RouteDependencies { + config: SavedObjectConfig; coreUsageData: InternalCoreUsageDataSetup; logger: Logger; } export const registerDeleteRoute = ( router: InternalSavedObjectRouter, - { coreUsageData, logger }: RouteDependencies + { config, coreUsageData, logger }: RouteDependencies ) => { + const { allowHttpApiAccess } = config; router.delete( { path: '/{type}/{id}', @@ -42,8 +45,9 @@ export const registerDeleteRoute = ( const usageStatsClient = coreUsageData.getClient(); usageStatsClient.incrementSavedObjectsDelete({ request: req }).catch(() => {}); - throwIfTypeNotVisibleByAPI(type, typeRegistry); - + if (!allowHttpApiAccess) { + throwIfTypeNotVisibleByAPI(type, typeRegistry); + } const client = getClient(); const result = await client.delete(type, id, { force }); return res.ok({ body: result }); diff --git a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/find.ts b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/find.ts index 42cf0290b52d2..5768c04e40929 100644 --- a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/find.ts +++ b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/find.ts @@ -7,19 +7,21 @@ */ import { schema } from '@kbn/config-schema'; +import { SavedObjectConfig } from '@kbn/core-saved-objects-base-server-internal'; import type { InternalCoreUsageDataSetup } from '@kbn/core-usage-data-base-server-internal'; import type { Logger } from '@kbn/logging'; import type { InternalSavedObjectRouter } from '../internal_types'; import { catchAndReturnBoomErrors, throwOnHttpHiddenTypes } from './utils'; interface RouteDependencies { + config: SavedObjectConfig; coreUsageData: InternalCoreUsageDataSetup; logger: Logger; } export const registerFindRoute = ( router: InternalSavedObjectRouter, - { coreUsageData, logger }: RouteDependencies + { config, coreUsageData, logger }: RouteDependencies ) => { const referenceSchema = schema.object({ type: schema.string(), @@ -28,7 +30,7 @@ export const registerFindRoute = ( const searchOperatorSchema = schema.oneOf([schema.literal('OR'), schema.literal('AND')], { defaultValue: 'OR', }); - + const { allowHttpApiAccess } = config; router.get( { path: '/_find', @@ -95,7 +97,7 @@ export const registerFindRoute = ( return fullType.name; } }); - if (unsupportedTypes.length > 0) { + if (unsupportedTypes.length > 0 && !allowHttpApiAccess) { throwOnHttpHiddenTypes(unsupportedTypes); } diff --git a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/get.ts b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/get.ts index ecacdc4452c67..62f7c88a12b98 100644 --- a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/get.ts +++ b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/get.ts @@ -7,20 +7,23 @@ */ import { schema } from '@kbn/config-schema'; +import { SavedObjectConfig } from '@kbn/core-saved-objects-base-server-internal'; import type { InternalCoreUsageDataSetup } from '@kbn/core-usage-data-base-server-internal'; import type { Logger } from '@kbn/logging'; import type { InternalSavedObjectRouter } from '../internal_types'; import { catchAndReturnBoomErrors, throwIfTypeNotVisibleByAPI } from './utils'; interface RouteDependencies { + config: SavedObjectConfig; coreUsageData: InternalCoreUsageDataSetup; logger: Logger; } export const registerGetRoute = ( router: InternalSavedObjectRouter, - { coreUsageData, logger }: RouteDependencies + { config, coreUsageData, logger }: RouteDependencies ) => { + const { allowHttpApiAccess } = config; router.get( { path: '/{type}/{id}', @@ -39,7 +42,10 @@ export const registerGetRoute = ( usageStatsClient.incrementSavedObjectsGet({ request: req }).catch(() => {}); const { savedObjects } = await context.core; - throwIfTypeNotVisibleByAPI(type, savedObjects.typeRegistry); + + if (!allowHttpApiAccess) { + throwIfTypeNotVisibleByAPI(type, savedObjects.typeRegistry); + } const object = await savedObjects.client.get(type, id); return res.ok({ body: object }); diff --git a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/index.ts b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/index.ts index 8c85017064498..3fc2ef2afd51c 100644 --- a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/index.ts +++ b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/index.ts @@ -53,17 +53,17 @@ export function registerRoutes({ const router = http.createRouter('/api/saved_objects/'); - registerGetRoute(router, { coreUsageData, logger }); - registerResolveRoute(router, { coreUsageData, logger }); - registerCreateRoute(router, { coreUsageData, logger }); - registerDeleteRoute(router, { coreUsageData, logger }); - registerFindRoute(router, { coreUsageData, logger }); - registerUpdateRoute(router, { coreUsageData, logger }); - registerBulkGetRoute(router, { coreUsageData, logger }); - registerBulkCreateRoute(router, { coreUsageData, logger }); - registerBulkResolveRoute(router, { coreUsageData, logger }); - registerBulkUpdateRoute(router, { coreUsageData, logger }); - registerBulkDeleteRoute(router, { coreUsageData, logger }); + registerGetRoute(router, { config, coreUsageData, logger }); + registerResolveRoute(router, { config, coreUsageData, logger }); + registerCreateRoute(router, { config, coreUsageData, logger }); + registerDeleteRoute(router, { config, coreUsageData, logger }); + registerFindRoute(router, { config, coreUsageData, logger }); + registerUpdateRoute(router, { config, coreUsageData, logger }); + registerBulkGetRoute(router, { config, coreUsageData, logger }); + registerBulkCreateRoute(router, { config, coreUsageData, logger }); + registerBulkResolveRoute(router, { config, coreUsageData, logger }); + registerBulkUpdateRoute(router, { config, coreUsageData, logger }); + registerBulkDeleteRoute(router, { config, coreUsageData, logger }); registerExportRoute(router, { config, coreUsageData }); registerImportRoute(router, { config, coreUsageData }); registerResolveImportErrorsRoute(router, { config, coreUsageData }); diff --git a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/resolve.ts b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/resolve.ts index be77423cba09b..527c7f13e5500 100644 --- a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/resolve.ts +++ b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/resolve.ts @@ -7,20 +7,23 @@ */ import { schema } from '@kbn/config-schema'; +import { SavedObjectConfig } from '@kbn/core-saved-objects-base-server-internal'; import type { InternalCoreUsageDataSetup } from '@kbn/core-usage-data-base-server-internal'; import type { Logger } from '@kbn/logging'; import type { InternalSavedObjectRouter } from '../internal_types'; import { throwIfTypeNotVisibleByAPI } from './utils'; interface RouteDependencies { + config: SavedObjectConfig; coreUsageData: InternalCoreUsageDataSetup; logger: Logger; } export const registerResolveRoute = ( router: InternalSavedObjectRouter, - { coreUsageData, logger }: RouteDependencies + { config, coreUsageData, logger }: RouteDependencies ) => { + const { allowHttpApiAccess } = config; router.get( { path: '/resolve/{type}/{id}', @@ -40,9 +43,9 @@ export const registerResolveRoute = ( const usageStatsClient = coreUsageData.getClient(); usageStatsClient.incrementSavedObjectsResolve({ request: req }).catch(() => {}); - - throwIfTypeNotVisibleByAPI(type, savedObjects.typeRegistry); - + if (!allowHttpApiAccess) { + throwIfTypeNotVisibleByAPI(type, savedObjects.typeRegistry); + } const result = await savedObjects.client.resolve(type, id); return res.ok({ body: result }); }) diff --git a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/update.ts b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/update.ts index d1b544519efa3..327f856d580fe 100644 --- a/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/update.ts +++ b/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/update.ts @@ -9,19 +9,22 @@ import { schema } from '@kbn/config-schema'; import type { SavedObjectsUpdateOptions } from '@kbn/core-saved-objects-api-server'; import type { Logger } from '@kbn/logging'; +import { SavedObjectConfig } from '@kbn/core-saved-objects-base-server-internal'; import type { InternalCoreUsageDataSetup } from '@kbn/core-usage-data-base-server-internal'; import type { InternalSavedObjectRouter } from '../internal_types'; import { catchAndReturnBoomErrors, throwIfTypeNotVisibleByAPI } from './utils'; interface RouteDependencies { + config: SavedObjectConfig; coreUsageData: InternalCoreUsageDataSetup; logger: Logger; } export const registerUpdateRoute = ( router: InternalSavedObjectRouter, - { coreUsageData, logger }: RouteDependencies + { config, coreUsageData, logger }: RouteDependencies ) => { + const { allowHttpApiAccess } = config; router.put( { path: '/{type}/{id}', @@ -55,9 +58,9 @@ export const registerUpdateRoute = ( const usageStatsClient = coreUsageData.getClient(); usageStatsClient.incrementSavedObjectsUpdate({ request: req }).catch(() => {}); const { savedObjects } = await context.core; - - throwIfTypeNotVisibleByAPI(type, savedObjects.typeRegistry); - + if (!allowHttpApiAccess) { + throwIfTypeNotVisibleByAPI(type, savedObjects.typeRegistry); + } const result = await savedObjects.client.update(type, id, attributes, options); return res.ok({ body: result }); }) diff --git a/packages/core/saved-objects/core-saved-objects-server-internal/src/saved_objects_service.ts b/packages/core/saved-objects/core-saved-objects-server-internal/src/saved_objects_service.ts index d6a451a105f7c..dbb04577d3f7e 100644 --- a/packages/core/saved-objects/core-saved-objects-server-internal/src/saved_objects_service.ts +++ b/packages/core/saved-objects/core-saved-objects-server-internal/src/saved_objects_service.ts @@ -123,7 +123,6 @@ export class SavedObjectsService this.coreContext.configService.atPath('migrations') ); this.config = new SavedObjectConfig(savedObjectsConfig, savedObjectsMigrationConfig); - deprecations.getRegistry('savedObjects').registerDeprecations( getSavedObjectsDeprecationsProvider({ kibanaIndex, diff --git a/packages/core/versioning/core-version-http-server/README.md b/packages/core/versioning/core-version-http-server/README.md new file mode 100644 index 0000000000000..b419f083b0d7e --- /dev/null +++ b/packages/core/versioning/core-version-http-server/README.md @@ -0,0 +1,13 @@ +# @kbn/core-version-http-server + +This package contains types for sever-side HTTP versioning. + +## Experimental + +The types in this package are all experimental and may be subject to extensive changes. +Use this package as a reference for current thinking and as a starting point to +raise questions and discussion. + +## Versioning specification + +Currently the versioning spec is being designed. \ No newline at end of file diff --git a/packages/core/versioning/core-version-http-server/index.ts b/packages/core/versioning/core-version-http-server/index.ts new file mode 100644 index 0000000000000..2ed8fca6a33f4 --- /dev/null +++ b/packages/core/versioning/core-version-http-server/index.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +// TODO: export once types are ready +export {}; diff --git a/packages/core/versioning/core-version-http-server/jest.config.js b/packages/core/versioning/core-version-http-server/jest.config.js new file mode 100644 index 0000000000000..7f87846044ae9 --- /dev/null +++ b/packages/core/versioning/core-version-http-server/jest.config.js @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +module.exports = { + preset: '@kbn/test/jest_node', + rootDir: '../../../..', + roots: ['/packages/core/versioning/core-version-http-server'], +}; diff --git a/packages/core/versioning/core-version-http-server/kibana.jsonc b/packages/core/versioning/core-version-http-server/kibana.jsonc new file mode 100644 index 0000000000000..38c17bf30d2a5 --- /dev/null +++ b/packages/core/versioning/core-version-http-server/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/core-version-http-server", + "owner": "@elastic/kibana-core" +} diff --git a/packages/core/versioning/core-version-http-server/package.json b/packages/core/versioning/core-version-http-server/package.json new file mode 100644 index 0000000000000..160267c76a449 --- /dev/null +++ b/packages/core/versioning/core-version-http-server/package.json @@ -0,0 +1,7 @@ +{ + "name": "@kbn/core-version-http-server", + "private": true, + "version": "1.0.0", + "author": "Kibana Core", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/packages/core/versioning/core-version-http-server/src/example.ts b/packages/core/versioning/core-version-http-server/src/example.ts new file mode 100644 index 0000000000000..de529ccb07d9d --- /dev/null +++ b/packages/core/versioning/core-version-http-server/src/example.ts @@ -0,0 +1,82 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { schema } from '@kbn/config-schema'; +import type { IRouter, RequestHandlerContextBase } from '@kbn/core-http-server'; +import type { VersionHTTPToolkit } from './version_http_toolkit'; + +interface MyCustomContext extends RequestHandlerContextBase { + fooService: { create: (value: string, id: undefined | string, name?: string) => Promise }; +} +const vtk = {} as unknown as VersionHTTPToolkit; +const router = {} as unknown as IRouter; + +const versionedRouter = vtk.createVersionedRouter({ router }); + +// @ts-ignore unused variable +const versionedRoute = versionedRouter + .post({ + path: '/api/my-app/foo/{id?}', + options: { timeout: { payload: 60000 } }, + }) + .addVersion( + { + version: '1', + validate: { + query: schema.object({ + name: schema.maybe(schema.string({ minLength: 2, maxLength: 50 })), + }), + params: schema.object({ + id: schema.maybe(schema.string({ minLength: 10, maxLength: 13 })), + }), + body: schema.object({ foo: schema.string() }), + }, + }, + async (ctx, req, res) => { + await ctx.fooService.create(req.body.foo, req.params.id, req.query.name); + return res.ok({ body: { foo: req.body.foo } }); + } + ) + // BREAKING CHANGE: { foo: string } => { fooString: string } in body + .addVersion( + { + version: '2', + validate: { + query: schema.object({ + name: schema.maybe(schema.string({ minLength: 2, maxLength: 50 })), + }), + params: schema.object({ + id: schema.maybe(schema.string({ minLength: 10, maxLength: 13 })), + }), + body: schema.object({ fooString: schema.string() }), + }, + }, + async (ctx, req, res) => { + await ctx.fooService.create(req.body.fooString, req.params.id, req.query.name); + return res.ok({ body: { fooName: req.body.fooString } }); + } + ) + // BREAKING CHANGES: Enforce min/max length on fooString + .addVersion( + { + version: '3', + validate: { + query: schema.object({ + name: schema.maybe(schema.string({ minLength: 2, maxLength: 50 })), + }), + params: schema.object({ + id: schema.maybe(schema.string({ minLength: 10, maxLength: 13 })), + }), + body: schema.object({ fooString: schema.string({ minLength: 0, maxLength: 1000 }) }), + }, + }, + async (ctx, req, res) => { + await ctx.fooService.create(req.body.fooString, req.params.id, req.query.name); + return res.ok({ body: { fooName: req.body.fooString } }); + } + ); diff --git a/packages/core/versioning/core-version-http-server/src/version_http_toolkit.ts b/packages/core/versioning/core-version-http-server/src/version_http_toolkit.ts new file mode 100644 index 0000000000000..719e0075c0070 --- /dev/null +++ b/packages/core/versioning/core-version-http-server/src/version_http_toolkit.ts @@ -0,0 +1,179 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { + IRouter, + RouteConfig, + RouteMethod, + RequestHandler, + RouteValidatorFullConfig, + RequestHandlerContextBase, +} from '@kbn/core-http-server'; + +type RqCtx = RequestHandlerContextBase; + +/** + * Assuming that version will be a monotonically increasing number where: version > 0. + * @experimental + */ +export type Version = `${number}`; + +/** + * Arguments to create a {@link VersionedRouter | versioned router}. + * @experimental + */ +export interface CreateVersionedRouterArgs { + /** + * A router instance + * @experimental + */ + router: IRouter; +} + +/** + * This interface is the starting point for creating versioned routers and routes + * + * @example + * const versionedRouter = vtk.createVersionedRouter({ router }); + * + * ```ts + * const versionedRoute = versionedRouter + * .post({ + * path: '/api/my-app/foo/{id?}', + * options: { timeout: { payload: 60000 } }, + * }) + * .addVersion( + * { + * version: '1', + * validate: { + * query: schema.object({ + * name: schema.maybe(schema.string({ minLength: 2, maxLength: 50 })), + * }), + * params: schema.object({ + * id: schema.maybe(schema.string({ minLength: 10, maxLength: 13 })), + * }), + * body: schema.object({ foo: schema.string() }), + * }, + * }, + * async (ctx, req, res) => { + * await ctx.fooService.create(req.body.foo, req.params.id, req.query.name); + * return res.ok({ body: { foo: req.body.foo } }); + * } + * ) + * // BREAKING CHANGE: { foo: string } => { fooString: string } in body + * .addVersion( + * { + * version: '2', + * validate: { + * query: schema.object({ + * name: schema.maybe(schema.string({ minLength: 2, maxLength: 50 })), + * }), + * params: schema.object({ + * id: schema.maybe(schema.string({ minLength: 10, maxLength: 13 })), + * }), + * body: schema.object({ fooString: schema.string() }), + * }, + * }, + * async (ctx, req, res) => { + * await ctx.fooService.create(req.body.fooString, req.params.id, req.query.name); + * return res.ok({ body: { fooName: req.body.fooString } }); + * } + * ) + * ``` + * @experimental + */ +export interface VersionHTTPToolkit { + /** + * Create a versioned router + * @param args - The arguments to create a versioned router + * @returns A versioned router + * @experimental + */ + createVersionedRouter( + args: CreateVersionedRouterArgs + ): VersionedRouter; +} + +/** + * Configuration for a versioned route + * @experimental + */ +export type VersionedRouteConfig = Omit< + RouteConfig, + 'validate' +>; + +/** + * Create an {@link VersionedRoute | versioned route}. + * + * @param config - The route configuration + * @returns A versioned route + * @experimental + */ +export type VersionedRouteRegistrar = ( + config: VersionedRouteConfig +) => VersionedRoute; + +/** + * A router, very similar to {@link IRouter} that will return an {@link VersionedRoute} + * instead. + * @experimental + */ +export interface VersionedRouter { + /** @experimental */ + get: VersionedRouteRegistrar<'get', Ctx>; + /** @experimental */ + put: VersionedRouteRegistrar<'put', Ctx>; + /** @experimental */ + post: VersionedRouteRegistrar<'post', Ctx>; + /** @experimental */ + patch: VersionedRouteRegistrar<'patch', Ctx>; + /** @experimental */ + delete: VersionedRouteRegistrar<'delete', Ctx>; + /** @experimental */ + options: VersionedRouteRegistrar<'options', Ctx>; +} + +/** + * Options for a versioned route. Probably needs a lot more options like sunsetting + * of an endpoint etc. + * @experimental + */ +export interface AddVersionOpts { + /** + * Version to assign to this route + * @experimental + */ + version: Version; + /** + * Validation for this version of a route + * @experimental + */ + validate: false | RouteValidatorFullConfig; +} + +/** + * A versioned route + * @experimental + */ +export interface VersionedRoute< + Method extends RouteMethod = RouteMethod, + Ctx extends RqCtx = RqCtx +> { + /** + * Add a new version of this route + * @param opts {@link AddVersionOpts | Options} for this version of a route + * @param handler The request handler for this version of a route + * @returns A versioned route, allows for fluent chaining of version declarations + * @experimental + */ + addVersion( + opts: AddVersionOpts, + handler: RequestHandler + ): VersionedRoute; +} diff --git a/packages/core/versioning/core-version-http-server/tsconfig.json b/packages/core/versioning/core-version-http-server/tsconfig.json new file mode 100644 index 0000000000000..fa73dc9c397bf --- /dev/null +++ b/packages/core/versioning/core-version-http-server/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts" + ], + "kbn_references": [ + "@kbn/config-schema", + "@kbn/core-http-server", + ], + "exclude": [ + "target/**/*", + ] +} 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 2e0d814bf93c5..baa36d97682ba 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 @@ -5,6 +5,7 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ +import { NonEmptyString } from '@kbn/securitysolution-io-ts-types'; import * as t from 'io-ts'; import { saved_object_attributes } from '../saved_object_attributes'; @@ -18,6 +19,9 @@ export const RuleActionId = t.string; export type RuleActionTypeId = t.TypeOf; export const RuleActionTypeId = t.string; +export type RuleActionUuid = t.TypeOf; +export const RuleActionUuid = NonEmptyString; + /** * Params is an "object", since it is a type of RuleActionParams which is action templates. * @see x-pack/plugins/alerting/common/rule.ts @@ -27,12 +31,15 @@ export const RuleActionParams = saved_object_attributes; export type RuleAction = t.TypeOf; export const RuleAction = t.exact( - t.type({ - group: RuleActionGroup, - id: RuleActionId, - action_type_id: RuleActionTypeId, - params: RuleActionParams, - }) + t.intersection([ + t.type({ + group: RuleActionGroup, + id: RuleActionId, + action_type_id: RuleActionTypeId, + params: RuleActionParams, + }), + t.partial({ uuid: RuleActionUuid }), + ]) ); export type RuleActionArray = t.TypeOf; @@ -40,12 +47,15 @@ export const RuleActionArray = t.array(RuleAction); export type RuleActionCamel = t.TypeOf; export const RuleActionCamel = t.exact( - t.type({ - group: RuleActionGroup, - id: RuleActionId, - actionTypeId: RuleActionTypeId, - params: RuleActionParams, - }) + t.intersection([ + t.type({ + group: RuleActionGroup, + id: RuleActionId, + actionTypeId: RuleActionTypeId, + params: RuleActionParams, + }), + t.partial({ uuid: RuleActionUuid }), + ]) ); export type RuleActionArrayCamel = t.TypeOf; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts index 571c2fe18fd6a..7d9e4bae782e2 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts @@ -57,7 +57,7 @@ describe('checking migration metadata changes on all registered SO types', () => Object { "action": "6cfc277ed3211639e37546ac625f4a68f2494215", "action_task_params": "db2afea7d78e00e725486b791554d0d4e81956ef", - "alert": "f81ad957a7936522482e4539c7a96a963ebdbc3e", + "alert": "2568bf6d8ba0876441c61c9e58e08016c1dc1617", "api_key_pending_invalidation": "16e7bcf8e78764102d7f525542d5b616809a21ee", "apm-indices": "d19dd7fb51f2d2cbc1f8769481721e0953f9a6d2", "apm-server-schema": "1d42f17eff9ec6c16d3a9324d9539e2d123d0a9a", diff --git a/src/core/server/integration_tests/saved_objects/routes/allow_api_access/bulk_create.test.ts b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/bulk_create.test.ts new file mode 100644 index 0000000000000..cefe42b8f3e7f --- /dev/null +++ b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/bulk_create.test.ts @@ -0,0 +1,100 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import supertest from 'supertest'; +import { savedObjectsClientMock } from '@kbn/core-saved-objects-api-server-mocks'; +import type { ICoreUsageStatsClient } from '@kbn/core-usage-data-base-server-internal'; +import { + coreUsageStatsClientMock, + coreUsageDataServiceMock, +} from '@kbn/core-usage-data-server-mocks'; + +import { + registerBulkCreateRoute, + type InternalSavedObjectsRequestHandlerContext, +} from '@kbn/core-saved-objects-server-internal'; +import { createHiddenTypeVariants, setupServer } from '@kbn/core-test-helpers-test-utils'; +import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from '../routes_test_utils'; + +type SetupServerReturn = Awaited>; + +const testTypes = [ + { name: 'index-pattern', hide: false }, + { name: 'hidden-from-http', hide: false, hideFromHttpApis: true }, +]; + +describe('POST /api/saved_objects/_bulk_create with allowApiAccess true', () => { + let server: SetupServerReturn['server']; + let httpSetup: SetupServerReturn['httpSetup']; + let handlerContext: SetupServerReturn['handlerContext']; + let savedObjectsClient: ReturnType; + let coreUsageStatsClient: jest.Mocked; + + beforeEach(async () => { + ({ server, httpSetup, handlerContext } = await setupServer()); + savedObjectsClient = handlerContext.savedObjects.client; + savedObjectsClient.bulkCreate.mockResolvedValue({ saved_objects: [] }); + + handlerContext.savedObjects.typeRegistry.getType.mockImplementation((typename: string) => { + return testTypes + .map((typeDesc) => createHiddenTypeVariants(typeDesc)) + .find((fullTest) => fullTest.name === typename); + }); + + const router = + httpSetup.createRouter('/api/saved_objects/'); + coreUsageStatsClient = coreUsageStatsClientMock.create(); + coreUsageStatsClient.incrementSavedObjectsBulkCreate.mockRejectedValue(new Error('Oh no!')); // intentionally throw this error, which is swallowed, so we can assert that the operation does not fail + const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); + const logger = loggerMock.create(); + const config = setupConfig(true); + registerBulkCreateRoute(router, { config, coreUsageData, logger }); + + await server.start(); + }); + + afterEach(async () => { + await server.stop(); + }); + + it('returns with status 200 when a type is hidden from the HTTP APIs', async () => { + await supertest(httpSetup.server.listener) + .post('/api/saved_objects/_bulk_create?overwrite=true') + .send([ + { + id: 'abc1234', + type: 'index-pattern', + attributes: { + title: 'foo', + }, + references: [], + }, + ]) + .expect(200); + + expect(savedObjectsClient.bulkCreate).toHaveBeenCalledTimes(1); + + const args = savedObjectsClient.bulkCreate.mock.calls[0]; + expect(args[1]).toEqual({ overwrite: true }); + const result = await supertest(httpSetup.server.listener) + .post('/api/saved_objects/_bulk_create') + .send([ + { + id: 'hiddenID', + type: 'hidden-from-http', + attributes: { + title: 'bar', + }, + references: [], + }, + ]) + .expect(200); + expect(result.body.saved_objects).toEqual([]); + }); +}); diff --git a/src/core/server/integration_tests/saved_objects/routes/allow_api_access/bulk_delete.test.ts b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/bulk_delete.test.ts new file mode 100644 index 0000000000000..5189e70e26521 --- /dev/null +++ b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/bulk_delete.test.ts @@ -0,0 +1,83 @@ +/* + * Copyright 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 supertest from 'supertest'; +import { savedObjectsClientMock } from '../../../../mocks'; +import type { ICoreUsageStatsClient } from '@kbn/core-usage-data-base-server-internal'; +import { + coreUsageStatsClientMock, + coreUsageDataServiceMock, +} from '@kbn/core-usage-data-server-mocks'; +import { createHiddenTypeVariants, setupServer } from '@kbn/core-test-helpers-test-utils'; +import { + registerBulkDeleteRoute, + type InternalSavedObjectsRequestHandlerContext, +} from '@kbn/core-saved-objects-server-internal'; +import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from '../routes_test_utils'; + +type SetupServerReturn = Awaited>; + +const testTypes = [ + { name: 'index-pattern', hide: false }, + { name: 'hidden-from-http', hide: false, hideFromHttpApis: true }, +]; + +describe('POST /api/saved_objects/_bulk_delete with allowApiAccess as true', () => { + let server: SetupServerReturn['server']; + let httpSetup: SetupServerReturn['httpSetup']; + let handlerContext: SetupServerReturn['handlerContext']; + let savedObjectsClient: ReturnType; + let coreUsageStatsClient: jest.Mocked; + + beforeEach(async () => { + ({ server, httpSetup, handlerContext } = await setupServer()); + savedObjectsClient = handlerContext.savedObjects.client; + + savedObjectsClient.bulkDelete.mockResolvedValue({ + statuses: [], + }); + + handlerContext.savedObjects.typeRegistry.getType.mockImplementation((typename: string) => { + return testTypes + .map((typeDesc) => createHiddenTypeVariants(typeDesc)) + .find((fullTest) => fullTest.name === typename); + }); + + const router = + httpSetup.createRouter('/api/saved_objects/'); + coreUsageStatsClient = coreUsageStatsClientMock.create(); + coreUsageStatsClient.incrementSavedObjectsBulkDelete.mockRejectedValue(new Error('Oh no!')); // intentionally throw this error, which is swallowed, so we can assert that the operation does not fail + const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); + + const logger = loggerMock.create(); + + const config = setupConfig(true); + + registerBulkDeleteRoute(router, { config, coreUsageData, logger }); + + await server.start(); + }); + + afterEach(async () => { + await server.stop(); + }); + + it('returns with status 200 when a type is hidden from the HTTP APIs', async () => { + const result = await supertest(httpSetup.server.listener) + .post('/api/saved_objects/_bulk_delete') + .send([ + { + id: 'hiddenID', + type: 'hidden-from-http', + }, + ]) + .expect(200); + expect(result.body.statuses).toEqual([]); + }); +}); diff --git a/src/core/server/integration_tests/saved_objects/routes/allow_api_access/bulk_get.test.ts b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/bulk_get.test.ts new file mode 100644 index 0000000000000..2ec6342d601ec --- /dev/null +++ b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/bulk_get.test.ts @@ -0,0 +1,81 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import supertest from 'supertest'; +import { savedObjectsClientMock } from '@kbn/core-saved-objects-api-server-mocks'; +import type { ICoreUsageStatsClient } from '@kbn/core-usage-data-base-server-internal'; +import { + coreUsageStatsClientMock, + coreUsageDataServiceMock, +} from '@kbn/core-usage-data-server-mocks'; +import { createHiddenTypeVariants, setupServer } from '@kbn/core-test-helpers-test-utils'; +import { + registerBulkGetRoute, + type InternalSavedObjectsRequestHandlerContext, +} from '@kbn/core-saved-objects-server-internal'; +import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from '../routes_test_utils'; + +type SetupServerReturn = Awaited>; + +const testTypes = [ + { name: 'index-pattern', hide: false }, + { name: 'hidden-from-http', hide: false, hideFromHttpApis: true }, +]; + +describe('POST /api/saved_objects/_bulk_get with allowApiAccess true', () => { + let server: SetupServerReturn['server']; + let httpSetup: SetupServerReturn['httpSetup']; + let handlerContext: SetupServerReturn['handlerContext']; + let savedObjectsClient: ReturnType; + let coreUsageStatsClient: jest.Mocked; + + beforeEach(async () => { + ({ server, httpSetup, handlerContext } = await setupServer()); + savedObjectsClient = handlerContext.savedObjects.client; + + savedObjectsClient.bulkGet.mockResolvedValue({ + saved_objects: [], + }); + + handlerContext.savedObjects.typeRegistry.getType.mockImplementation((typename: string) => { + return testTypes + .map((typeDesc) => createHiddenTypeVariants(typeDesc)) + .find((fullTest) => fullTest.name === typename); + }); + const router = + httpSetup.createRouter('/api/saved_objects/'); + coreUsageStatsClient = coreUsageStatsClientMock.create(); + coreUsageStatsClient.incrementSavedObjectsBulkGet.mockRejectedValue(new Error('Oh no!')); // intentionally throw this error, which is swallowed, so we can assert that the operation does not fail + const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); + const logger = loggerMock.create(); + + const config = setupConfig(true); + registerBulkGetRoute(router, { config, coreUsageData, logger }); + + await server.start(); + }); + + afterEach(async () => { + await server.stop(); + }); + + it('returns with status 200 when a type is hidden from the HTTP APIs', async () => { + const result = await supertest(httpSetup.server.listener) + .post('/api/saved_objects/_bulk_get') + .send([ + { + id: 'hiddenID', + type: 'hidden-from-http', + }, + ]) + .expect(200); + expect(savedObjectsClient.bulkGet).toHaveBeenCalledTimes(1); + expect(result.body.saved_objects).toEqual([]); + }); +}); diff --git a/src/core/server/integration_tests/saved_objects/routes/allow_api_access/bulk_resolve.test.ts b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/bulk_resolve.test.ts new file mode 100644 index 0000000000000..33dd5ca478a18 --- /dev/null +++ b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/bulk_resolve.test.ts @@ -0,0 +1,81 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import supertest from 'supertest'; +import { savedObjectsClientMock } from '@kbn/core-saved-objects-api-server-mocks'; +import type { ICoreUsageStatsClient } from '@kbn/core-usage-data-base-server-internal'; +import { + coreUsageStatsClientMock, + coreUsageDataServiceMock, +} from '@kbn/core-usage-data-server-mocks'; +import { createHiddenTypeVariants, setupServer } from '@kbn/core-test-helpers-test-utils'; +import { + registerBulkResolveRoute, + type InternalSavedObjectsRequestHandlerContext, +} from '@kbn/core-saved-objects-server-internal'; +import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from '../routes_test_utils'; + +type SetupServerReturn = Awaited>; + +const testTypes = [ + { name: 'index-pattern', hide: false }, + { name: 'hidden-from-http', hide: false, hideFromHttpApis: true }, +]; + +describe('POST /api/saved_objects/_bulk_resolve with allowApiAccess true', () => { + let server: SetupServerReturn['server']; + let httpSetup: SetupServerReturn['httpSetup']; + let handlerContext: SetupServerReturn['handlerContext']; + let savedObjectsClient: ReturnType; + let coreUsageStatsClient: jest.Mocked; + + beforeEach(async () => { + ({ server, httpSetup, handlerContext } = await setupServer()); + savedObjectsClient = handlerContext.savedObjects.client; + + savedObjectsClient.bulkResolve.mockResolvedValue({ + resolved_objects: [], + }); + + handlerContext.savedObjects.typeRegistry.getType.mockImplementation((typename: string) => { + return testTypes + .map((typeDesc) => createHiddenTypeVariants(typeDesc)) + .find((fullTest) => fullTest.name === typename); + }); + + const router = + httpSetup.createRouter('/api/saved_objects/'); + coreUsageStatsClient = coreUsageStatsClientMock.create(); + coreUsageStatsClient.incrementSavedObjectsBulkResolve.mockRejectedValue(new Error('Oh no!')); // intentionally throw this error, which is swallowed, so we can assert that the operation does not fail + const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); + const logger = loggerMock.create(); + + const config = setupConfig(true); + registerBulkResolveRoute(router, { config, coreUsageData, logger }); + + await server.start(); + }); + + afterEach(async () => { + await server.stop(); + }); + + it('returns with status 200 when a type is hidden from the HTTP APIs', async () => { + await supertest(httpSetup.server.listener) + .post('/api/saved_objects/_bulk_resolve') + .send([ + { + id: 'hiddenID', + type: 'hidden-from-http', + }, + ]) + .expect(200); + expect(savedObjectsClient.bulkResolve).toHaveBeenCalledTimes(1); + }); +}); diff --git a/src/core/server/integration_tests/saved_objects/routes/allow_api_access/bulk_update.test.ts b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/bulk_update.test.ts new file mode 100644 index 0000000000000..3feea1a471fdd --- /dev/null +++ b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/bulk_update.test.ts @@ -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 supertest from 'supertest'; +import type { ICoreUsageStatsClient } from '@kbn/core-usage-data-base-server-internal'; +import { + coreUsageStatsClientMock, + coreUsageDataServiceMock, +} from '@kbn/core-usage-data-server-mocks'; +import { createHiddenTypeVariants, setupServer } from '@kbn/core-test-helpers-test-utils'; +import { + registerBulkUpdateRoute, + type InternalSavedObjectsRequestHandlerContext, +} from '@kbn/core-saved-objects-server-internal'; +import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from '../routes_test_utils'; + +type SetupServerReturn = Awaited>; +const testTypes = [ + { name: 'visualization', hide: false }, + { name: 'dashboard', hide: false }, + { name: 'index-pattern', hide: false }, + { name: 'hidden-from-http', hide: false, hideFromHttpApis: true }, +]; + +describe('PUT /api/saved_objects/_bulk_update with allowApiAccess true', () => { + let server: SetupServerReturn['server']; + let httpSetup: SetupServerReturn['httpSetup']; + let handlerContext: SetupServerReturn['handlerContext']; + let coreUsageStatsClient: jest.Mocked; + + beforeEach(async () => { + ({ server, httpSetup, handlerContext } = await setupServer()); + handlerContext.savedObjects.typeRegistry.getType.mockImplementation((typename: string) => { + return testTypes + .map((typeDesc) => createHiddenTypeVariants(typeDesc)) + .find((fullTest) => fullTest.name === typename); + }); + + const router = + httpSetup.createRouter('/api/saved_objects/'); + coreUsageStatsClient = coreUsageStatsClientMock.create(); + coreUsageStatsClient.incrementSavedObjectsBulkUpdate.mockRejectedValue(new Error('Oh no!')); // intentionally throw this error, which is swallowed, so we can assert that the operation does not fail + const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); + const logger = loggerMock.create(); + + const config = setupConfig(true); + registerBulkUpdateRoute(router, { config, coreUsageData, logger }); + + await server.start(); + }); + + afterEach(async () => { + await server.stop(); + }); + + it('uses config option allowHttpApiAccess to grant hiddenFromHttpApis type access', async () => { + const result = await supertest(httpSetup.server.listener) + .put('/api/saved_objects/_bulk_update') + .send([ + { + type: 'hidden-from-http', + id: 'hiddenID', + attributes: { + title: 'bar', + }, + }, + ]) + .expect(200); + expect(result.body).toEqual({}); + }); +}); diff --git a/src/core/server/integration_tests/saved_objects/routes/allow_api_access/create.test.ts b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/create.test.ts new file mode 100644 index 0000000000000..02ffcdf2baaeb --- /dev/null +++ b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/create.test.ts @@ -0,0 +1,87 @@ +/* + * Copyright 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 supertest from 'supertest'; +import { savedObjectsClientMock } from '@kbn/core-saved-objects-api-server-mocks'; +import type { ICoreUsageStatsClient } from '@kbn/core-usage-data-base-server-internal'; +import { + coreUsageStatsClientMock, + coreUsageDataServiceMock, +} from '@kbn/core-usage-data-server-mocks'; +import { setupServer, createHiddenTypeVariants } from '@kbn/core-test-helpers-test-utils'; +import { + registerCreateRoute, + type InternalSavedObjectsRequestHandlerContext, +} from '@kbn/core-saved-objects-server-internal'; +import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from '../routes_test_utils'; + +type SetupServerReturn = Awaited>; + +const testTypes = [ + { name: 'index-pattern', hide: false }, + { name: 'hidden-type', hide: true }, + { name: 'hidden-from-http', hide: false, hideFromHttpApis: true }, +]; +describe('POST /api/saved_objects/{type} with allowApiAccess true', () => { + let server: SetupServerReturn['server']; + let httpSetup: SetupServerReturn['httpSetup']; + let handlerContext: SetupServerReturn['handlerContext']; + let savedObjectsClient: ReturnType; + let coreUsageStatsClient: jest.Mocked; + + const clientResponse = { + id: 'logstash-*', + type: 'index-pattern', + title: 'logstash-*', + version: 'foo', + references: [], + attributes: {}, + }; + + beforeEach(async () => { + ({ server, httpSetup, handlerContext } = await setupServer()); + savedObjectsClient = handlerContext.savedObjects.client; + savedObjectsClient.create.mockImplementation(() => Promise.resolve(clientResponse)); + + const router = + httpSetup.createRouter('/api/saved_objects/'); + coreUsageStatsClient = coreUsageStatsClientMock.create(); + coreUsageStatsClient.incrementSavedObjectsCreate.mockRejectedValue(new Error('Oh no!')); // intentionally throw this error, which is swallowed, so we can assert that the operation does not fail + const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); + const logger = loggerMock.create(); + const config = setupConfig(true); + + registerCreateRoute(router, { config, coreUsageData, logger }); + + handlerContext.savedObjects.typeRegistry.getType.mockImplementation((typename: string) => { + return testTypes + .map((typeDesc) => createHiddenTypeVariants(typeDesc)) + .find((fullTest) => fullTest.name === typename); + }); + + await server.start(); + }); + + afterEach(async () => { + await server.stop(); + }); + + it('returns with status 200 when a type is hidden from the HTTP APIs', async () => { + const result = await supertest(httpSetup.server.listener) + .post('/api/saved_objects/hidden-from-http') + .send({ + attributes: { + properties: {}, + }, + }) + .expect(200); + + expect(result.body).toEqual(clientResponse); + }); +}); diff --git a/src/core/server/integration_tests/saved_objects/routes/allow_api_access/delete.test.ts b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/delete.test.ts new file mode 100644 index 0000000000000..0cffad1bf2a7c --- /dev/null +++ b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/delete.test.ts @@ -0,0 +1,79 @@ +/* + * Copyright 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 supertest from 'supertest'; +import { savedObjectsClientMock } from '@kbn/core-saved-objects-api-server-mocks'; +import type { ICoreUsageStatsClient } from '@kbn/core-usage-data-base-server-internal'; +import { + coreUsageStatsClientMock, + coreUsageDataServiceMock, +} from '@kbn/core-usage-data-server-mocks'; +import { createHiddenTypeVariants, setupServer } from '@kbn/core-test-helpers-test-utils'; +import { + registerDeleteRoute, + type InternalSavedObjectsRequestHandlerContext, +} from '@kbn/core-saved-objects-server-internal'; +import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from '../routes_test_utils'; + +type SetupServerReturn = Awaited>; + +const testTypes = [ + { name: 'index-pattern', hide: false }, + { name: 'hidden-type', hide: true }, + { name: 'hidden-from-http', hide: false, hideFromHttpApis: true }, +]; + +describe('DELETE /api/saved_objects/{type}/{id} with allowApiAccess true', () => { + let server: SetupServerReturn['server']; + let httpSetup: SetupServerReturn['httpSetup']; + let handlerContext: SetupServerReturn['handlerContext']; + let savedObjectsClient: ReturnType; + let coreUsageStatsClient: jest.Mocked; + + beforeEach(async () => { + ({ server, httpSetup, handlerContext } = await setupServer()); + savedObjectsClient = handlerContext.savedObjects.getClient(); + handlerContext.savedObjects.getClient = jest.fn().mockImplementation(() => savedObjectsClient); + handlerContext.savedObjects.typeRegistry.getType.mockImplementation((typename: string) => { + return testTypes + .map((typeDesc) => createHiddenTypeVariants(typeDesc)) + .find((fullTest) => fullTest.name === typename); + }); + + const router = + httpSetup.createRouter('/api/saved_objects/'); + coreUsageStatsClient = coreUsageStatsClientMock.create(); + coreUsageStatsClient.incrementSavedObjectsDelete.mockRejectedValue(new Error('Oh no!')); // intentionally throw this error, which is swallowed, so we can assert that the operation does not fail + const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); + const logger = loggerMock.create(); + const config = setupConfig(true); + registerDeleteRoute(router, { config, coreUsageData, logger }); + + await server.start(); + }); + + afterEach(async () => { + await server.stop(); + }); + + it('returns with status 400 if a type is hidden from the HTTP APIs', async () => { + const result = await supertest(httpSetup.server.listener) + .delete('/api/saved_objects/hidden-from-http/hiddenId') + .expect(200); + expect(result.body).toEqual({}); + }); + + it('returns with status 400 if a type is hidden from the HTTP APIs with `force` option', async () => { + const result = await supertest(httpSetup.server.listener) + .delete('/api/saved_objects/hidden-from-http/hiddenId') + .query({ force: true }) + .expect(200); + expect(result.body).toEqual({}); + }); +}); diff --git a/src/core/server/integration_tests/saved_objects/routes/allow_api_access/find.test.ts b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/find.test.ts new file mode 100644 index 0000000000000..0487f6a519130 --- /dev/null +++ b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/find.test.ts @@ -0,0 +1,109 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 supertest from 'supertest'; + +import { savedObjectsClientMock } from '@kbn/core-saved-objects-api-server-mocks'; +import type { ICoreUsageStatsClient } from '@kbn/core-usage-data-base-server-internal'; +import { + coreUsageStatsClientMock, + coreUsageDataServiceMock, +} from '@kbn/core-usage-data-server-mocks'; +import { createHiddenTypeVariants, setupServer } from '@kbn/core-test-helpers-test-utils'; +import { loggerMock } from '@kbn/logging-mocks'; +import { + registerFindRoute, + type InternalSavedObjectsRequestHandlerContext, +} from '@kbn/core-saved-objects-server-internal'; +import { setupConfig } from '../routes_test_utils'; + +type SetupServerReturn = Awaited>; + +const testTypes = [ + { name: 'index-pattern', hide: false }, + { name: 'visualization', hide: false }, + { name: 'dashboard', hide: false }, + { name: 'foo', hide: false }, + { name: 'bar', hide: false }, + { name: 'hidden-type', hide: true }, + { name: 'hidden-from-http', hide: false, hideFromHttpApis: true }, +]; +describe('GET /api/saved_objects/_find with allowApiAccess true', () => { + let server: SetupServerReturn['server']; + let httpSetup: SetupServerReturn['httpSetup']; + let handlerContext: SetupServerReturn['handlerContext']; + let savedObjectsClient: ReturnType; + let coreUsageStatsClient: jest.Mocked; + + const clientResponse = { + total: 0, + saved_objects: [], + per_page: 0, + page: 0, + }; + + beforeEach(async () => { + ({ server, httpSetup, handlerContext } = await setupServer()); + + handlerContext.savedObjects.typeRegistry.getType.mockImplementation((typename: string) => { + return testTypes + .map((typeDesc) => createHiddenTypeVariants(typeDesc)) + .find((fullTest) => fullTest.name === typename); + }); + + savedObjectsClient = handlerContext.savedObjects.client; + + savedObjectsClient.find.mockResolvedValue(clientResponse); + + const router = + httpSetup.createRouter('/api/saved_objects/'); + coreUsageStatsClient = coreUsageStatsClientMock.create(); + coreUsageStatsClient.incrementSavedObjectsFind.mockRejectedValue(new Error('Oh no!')); // intentionally throw this error, which is swallowed, so we can assert that the operation does not fail + const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); + + const logger = loggerMock.create(); + + const config = setupConfig(true); + + registerFindRoute(router, { config, coreUsageData, logger }); + + await server.start(); + }); + + afterEach(async () => { + await server.stop(); + }); + + it('returns with status 400 when type is hidden from the HTTP APIs', async () => { + const findResponse = { + total: 0, + per_page: 0, + page: 0, + saved_objects: [], + }; + const result = await supertest(httpSetup.server.listener) + .get('/api/saved_objects/_find?type=hidden-from-http') + .expect(200); + + expect(result.body).toEqual(findResponse); + }); + + it('returns with status 200 when type is hidden', async () => { + const findResponse = { + total: 0, + per_page: 0, + page: 0, + saved_objects: [], + }; + const result = await supertest(httpSetup.server.listener) + .get('/api/saved_objects/_find?type=hidden-type') + .expect(200); + + expect(result.body).toEqual(findResponse); + }); +}); diff --git a/src/core/server/integration_tests/saved_objects/routes/allow_api_access/get.test.ts b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/get.test.ts new file mode 100644 index 0000000000000..bc23f404e928d --- /dev/null +++ b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/get.test.ts @@ -0,0 +1,97 @@ +/* + * Copyright 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 supertest from 'supertest'; +import { ContextService } from '@kbn/core-http-context-server-internal'; +import type { HttpService, InternalHttpServiceSetup } from '@kbn/core-http-server-internal'; +import { createHttpServer, createCoreContext } from '@kbn/core-http-server-mocks'; +import { savedObjectsClientMock } from '@kbn/core-saved-objects-api-server-mocks'; +import { executionContextServiceMock } from '@kbn/core-execution-context-server-mocks'; +import type { ICoreUsageStatsClient } from '@kbn/core-usage-data-base-server-internal'; +import { + coreUsageStatsClientMock, + coreUsageDataServiceMock, +} from '@kbn/core-usage-data-server-mocks'; +import { contextServiceMock, coreMock } from '../../../../mocks'; +import { + registerGetRoute, + type InternalSavedObjectsRequestHandlerContext, +} from '@kbn/core-saved-objects-server-internal'; +import { createHiddenTypeVariants } from '@kbn/core-test-helpers-test-utils'; +import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from '../routes_test_utils'; + +const coreId = Symbol('core'); +const testTypes = [ + { name: 'index-pattern', hide: false }, + { name: 'hidden-type', hide: true }, + { name: 'hidden-from-http', hide: false, hideFromHttpApis: true }, +]; + +describe('GET /api/saved_objects/{type}/{id} with allowApiAccess true', () => { + let server: HttpService; + let httpSetup: InternalHttpServiceSetup; + let handlerContext: ReturnType; + let savedObjectsClient: ReturnType; + let coreUsageStatsClient: jest.Mocked; + + beforeEach(async () => { + const coreContext = createCoreContext({ coreId }); + server = createHttpServer(coreContext); + await server.preboot({ context: contextServiceMock.createPrebootContract() }); + + const contextService = new ContextService(coreContext); + httpSetup = await server.setup({ + context: contextService.setup({ pluginDependencies: new Map() }), + executionContext: executionContextServiceMock.createInternalSetupContract(), + }); + + handlerContext = coreMock.createRequestHandlerContext(); + handlerContext.savedObjects.typeRegistry.getType.mockImplementation((typename: string) => { + return testTypes + .map((typeDesc) => createHiddenTypeVariants(typeDesc)) + .find((fullTest) => fullTest.name === typename); + }); + + savedObjectsClient = handlerContext.savedObjects.client; + + httpSetup.registerRouteHandlerContext( + coreId, + 'core', + (ctx, req, res) => { + return handlerContext; + } + ); + + const router = + httpSetup.createRouter('/api/saved_objects/'); + + coreUsageStatsClient = coreUsageStatsClientMock.create(); + coreUsageStatsClient.incrementSavedObjectsGet.mockRejectedValue(new Error('Oh no!')); // intentionally throw this error, which is swallowed, so we can assert that the operation does not fail + const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); + + const logger = loggerMock.create(); + + const config = setupConfig(true); + registerGetRoute(router, { config, coreUsageData, logger }); + + await server.start(); + }); + + afterEach(async () => { + await server.stop(); + }); + + it('returns with status 200 when a type is hidden from the http APIs', async () => { + const result = await supertest(httpSetup.server.listener) + .get('/api/saved_objects/hidden-from-http/hiddenId') + .expect(200); + expect(savedObjectsClient.get).toHaveBeenCalled(); + expect(result.body).toEqual({}); + }); +}); diff --git a/src/core/server/integration_tests/saved_objects/routes/allow_api_access/resolve.test.ts b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/resolve.test.ts new file mode 100644 index 0000000000000..88814cb658608 --- /dev/null +++ b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/resolve.test.ts @@ -0,0 +1,97 @@ +/* + * Copyright 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 supertest from 'supertest'; +import { ContextService } from '@kbn/core-http-context-server-internal'; +import type { HttpService, InternalHttpServiceSetup } from '@kbn/core-http-server-internal'; +import { createHttpServer, createCoreContext } from '@kbn/core-http-server-mocks'; +import { savedObjectsClientMock } from '@kbn/core-saved-objects-api-server-mocks'; +import type { ICoreUsageStatsClient } from '@kbn/core-usage-data-base-server-internal'; +import { + coreUsageStatsClientMock, + coreUsageDataServiceMock, +} from '@kbn/core-usage-data-server-mocks'; +import { executionContextServiceMock } from '@kbn/core-execution-context-server-mocks'; +import { contextServiceMock, coreMock } from '../../../../mocks'; +import { + registerResolveRoute, + type InternalSavedObjectsRequestHandlerContext, +} from '@kbn/core-saved-objects-server-internal'; +import { createHiddenTypeVariants } from '@kbn/core-test-helpers-test-utils'; +import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from '../routes_test_utils'; + +const coreId = Symbol('core'); + +const testTypes = [ + { name: 'index-pattern', hide: false }, + { name: 'hidden-type', hide: true }, + { name: 'hidden-from-http', hide: false, hideFromHttpApis: true }, +]; + +describe('GET /api/saved_objects/resolve/{type}/{id} with allowApiAccess true', () => { + let server: HttpService; + let httpSetup: InternalHttpServiceSetup; + let handlerContext: ReturnType; + let savedObjectsClient: ReturnType; + let coreUsageStatsClient: jest.Mocked; + + beforeEach(async () => { + const coreContext = createCoreContext({ coreId }); + server = createHttpServer(coreContext); + await server.preboot({ context: contextServiceMock.createPrebootContract() }); + + const contextService = new ContextService(coreContext); + httpSetup = await server.setup({ + context: contextService.setup({ pluginDependencies: new Map() }), + executionContext: executionContextServiceMock.createInternalSetupContract(), + }); + + handlerContext = coreMock.createRequestHandlerContext(); + + handlerContext.savedObjects.typeRegistry.getType.mockImplementation((typename: string) => { + return testTypes + .map((typeDesc) => createHiddenTypeVariants(typeDesc)) + .find((fullTest) => fullTest.name === typename); + }); + + savedObjectsClient = handlerContext.savedObjects.client; + + httpSetup.registerRouteHandlerContext( + coreId, + 'core', + (ctx, req, res) => { + return handlerContext; + } + ); + + const router = + httpSetup.createRouter('/api/saved_objects/'); + coreUsageStatsClient = coreUsageStatsClientMock.create(); + coreUsageStatsClient.incrementSavedObjectsResolve.mockRejectedValue(new Error('Oh no!')); // intentionally throw this error, which is swallowed, so we can assert that the operation does not fail + const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); + const logger = loggerMock.create(); + + const config = setupConfig(true); + + registerResolveRoute(router, { config, coreUsageData, logger }); + + await server.start(); + }); + + afterEach(async () => { + await server.stop(); + }); + + it('returns with status 200 is a type is hidden from the HTTP APIs', async () => { + await supertest(httpSetup.server.listener) + .get('/api/saved_objects/resolve/hidden-from-http/hiddenId') + .expect(200); + expect(savedObjectsClient.resolve).toHaveBeenCalled(); + }); +}); diff --git a/src/core/server/integration_tests/saved_objects/routes/allow_api_access/update.test.ts b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/update.test.ts new file mode 100644 index 0000000000000..41365962800d3 --- /dev/null +++ b/src/core/server/integration_tests/saved_objects/routes/allow_api_access/update.test.ts @@ -0,0 +1,75 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 supertest from 'supertest'; +import { savedObjectsClientMock } from '@kbn/core-saved-objects-api-server-mocks'; +import type { ICoreUsageStatsClient } from '@kbn/core-usage-data-base-server-internal'; +import { + coreUsageStatsClientMock, + coreUsageDataServiceMock, +} from '@kbn/core-usage-data-server-mocks'; +import { createHiddenTypeVariants, setupServer } from '@kbn/core-test-helpers-test-utils'; +import { + registerUpdateRoute, + type InternalSavedObjectsRequestHandlerContext, +} from '@kbn/core-saved-objects-server-internal'; +import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from '../routes_test_utils'; + +type SetupServerReturn = Awaited>; + +const testTypes = [ + { name: 'index-pattern', hide: false }, + { name: 'hidden-type', hide: true }, + { name: 'hidden-from-http', hide: false, hideFromHttpApis: true }, +]; + +describe('PUT /api/saved_objects/{type}/{id?} with allowApiAccess true', () => { + let server: SetupServerReturn['server']; + let httpSetup: SetupServerReturn['httpSetup']; + let handlerContext: SetupServerReturn['handlerContext']; + let savedObjectsClient: ReturnType; + let coreUsageStatsClient: jest.Mocked; + + beforeEach(async () => { + ({ server, httpSetup, handlerContext } = await setupServer()); + savedObjectsClient = handlerContext.savedObjects.client; + + handlerContext.savedObjects.typeRegistry.getType.mockImplementation((typename: string) => { + return testTypes + .map((typeDesc) => createHiddenTypeVariants(typeDesc)) + .find((fullTest) => fullTest.name === typename); + }); + + const router = + httpSetup.createRouter('/api/saved_objects/'); + coreUsageStatsClient = coreUsageStatsClientMock.create(); + coreUsageStatsClient.incrementSavedObjectsUpdate.mockRejectedValue(new Error('Oh no!')); // intentionally throw this error, which is swallowed, so we can assert that the operation does not fail + const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); + const logger = loggerMock.create(); + + const config = setupConfig(true); + registerUpdateRoute(router, { config, coreUsageData, logger }); + + await server.start(); + }); + + afterEach(async () => { + await server.stop(); + }); + + it('returns with status 200 for types hidden from the HTTP APIs', async () => { + await supertest(httpSetup.server.listener) + .put('/api/saved_objects/hidden-from-http/hiddenId') + .send({ + attributes: { title: 'does not matter' }, + }) + .expect(200); + expect(savedObjectsClient.update).toHaveBeenCalledTimes(1); + }); +}); diff --git a/src/core/server/integration_tests/saved_objects/routes/bulk_create.test.ts b/src/core/server/integration_tests/saved_objects/routes/bulk_create.test.ts index 096d7f330abca..be0c91733ffbc 100644 --- a/src/core/server/integration_tests/saved_objects/routes/bulk_create.test.ts +++ b/src/core/server/integration_tests/saved_objects/routes/bulk_create.test.ts @@ -20,6 +20,7 @@ import { } from '@kbn/core-saved-objects-server-internal'; import { createHiddenTypeVariants, setupServer } from '@kbn/core-test-helpers-test-utils'; import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from './routes_test_utils'; type SetupServerReturn = Awaited>; @@ -52,9 +53,13 @@ describe('POST /api/saved_objects/_bulk_create', () => { coreUsageStatsClient = coreUsageStatsClientMock.create(); coreUsageStatsClient.incrementSavedObjectsBulkCreate.mockRejectedValue(new Error('Oh no!')); // intentionally throw this error, which is swallowed, so we can assert that the operation does not fail const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); + const logger = loggerMock.create(); loggerWarnSpy = jest.spyOn(logger, 'warn').mockImplementation(); - registerBulkCreateRoute(router, { coreUsageData, logger }); + + const config = setupConfig(); + + registerBulkCreateRoute(router, { config, coreUsageData, logger }); await server.start(); }); diff --git a/src/core/server/integration_tests/saved_objects/routes/bulk_delete.test.ts b/src/core/server/integration_tests/saved_objects/routes/bulk_delete.test.ts index 47559aecf9769..893c406e2f272 100644 --- a/src/core/server/integration_tests/saved_objects/routes/bulk_delete.test.ts +++ b/src/core/server/integration_tests/saved_objects/routes/bulk_delete.test.ts @@ -19,6 +19,7 @@ import { type InternalSavedObjectsRequestHandlerContext, } from '@kbn/core-saved-objects-server-internal'; import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from './routes_test_utils'; type SetupServerReturn = Awaited>; @@ -54,9 +55,13 @@ describe('POST /api/saved_objects/_bulk_delete', () => { coreUsageStatsClient = coreUsageStatsClientMock.create(); coreUsageStatsClient.incrementSavedObjectsBulkDelete.mockRejectedValue(new Error('Oh no!')); // intentionally throw this error, which is swallowed, so we can assert that the operation does not fail const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); + const logger = loggerMock.create(); loggerWarnSpy = jest.spyOn(logger, 'warn').mockImplementation(); - registerBulkDeleteRoute(router, { coreUsageData, logger }); + + const config = setupConfig(); + + registerBulkDeleteRoute(router, { config, coreUsageData, logger }); await server.start(); }); diff --git a/src/core/server/integration_tests/saved_objects/routes/bulk_get.test.ts b/src/core/server/integration_tests/saved_objects/routes/bulk_get.test.ts index 7c894c250dceb..01a988bac4d9d 100644 --- a/src/core/server/integration_tests/saved_objects/routes/bulk_get.test.ts +++ b/src/core/server/integration_tests/saved_objects/routes/bulk_get.test.ts @@ -19,6 +19,7 @@ import { type InternalSavedObjectsRequestHandlerContext, } from '@kbn/core-saved-objects-server-internal'; import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from './routes_test_utils'; type SetupServerReturn = Awaited>; @@ -55,7 +56,9 @@ describe('POST /api/saved_objects/_bulk_get', () => { const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); const logger = loggerMock.create(); loggerWarnSpy = jest.spyOn(logger, 'warn').mockImplementation(); - registerBulkGetRoute(router, { coreUsageData, logger }); + + const config = setupConfig(); + registerBulkGetRoute(router, { config, coreUsageData, logger }); await server.start(); }); diff --git a/src/core/server/integration_tests/saved_objects/routes/bulk_resolve.test.ts b/src/core/server/integration_tests/saved_objects/routes/bulk_resolve.test.ts index 98253fabb2fa4..1a8e81d07e77a 100644 --- a/src/core/server/integration_tests/saved_objects/routes/bulk_resolve.test.ts +++ b/src/core/server/integration_tests/saved_objects/routes/bulk_resolve.test.ts @@ -19,6 +19,7 @@ import { type InternalSavedObjectsRequestHandlerContext, } from '@kbn/core-saved-objects-server-internal'; import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from './routes_test_utils'; type SetupServerReturn = Awaited>; @@ -56,7 +57,9 @@ describe('POST /api/saved_objects/_bulk_resolve', () => { const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); const logger = loggerMock.create(); loggerWarnSpy = jest.spyOn(logger, 'warn').mockImplementation(); - registerBulkResolveRoute(router, { coreUsageData, logger }); + + const config = setupConfig(); + registerBulkResolveRoute(router, { config, coreUsageData, logger }); await server.start(); }); diff --git a/src/core/server/integration_tests/saved_objects/routes/bulk_update.test.ts b/src/core/server/integration_tests/saved_objects/routes/bulk_update.test.ts index eb50fd141e2af..797885e2b2aca 100644 --- a/src/core/server/integration_tests/saved_objects/routes/bulk_update.test.ts +++ b/src/core/server/integration_tests/saved_objects/routes/bulk_update.test.ts @@ -19,9 +19,9 @@ import { type InternalSavedObjectsRequestHandlerContext, } from '@kbn/core-saved-objects-server-internal'; import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from './routes_test_utils'; type SetupServerReturn = Awaited>; - const testTypes = [ { name: 'visualization', hide: false }, { name: 'dashboard', hide: false }, @@ -55,7 +55,9 @@ describe('PUT /api/saved_objects/_bulk_update', () => { const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); const logger = loggerMock.create(); loggerWarnSpy = jest.spyOn(logger, 'warn').mockImplementation(); - registerBulkUpdateRoute(router, { coreUsageData, logger }); + + const config = setupConfig(); + registerBulkUpdateRoute(router, { config, coreUsageData, logger }); await server.start(); }); diff --git a/src/core/server/integration_tests/saved_objects/routes/create.test.ts b/src/core/server/integration_tests/saved_objects/routes/create.test.ts index bf67325a8e756..b4496dec915c0 100644 --- a/src/core/server/integration_tests/saved_objects/routes/create.test.ts +++ b/src/core/server/integration_tests/saved_objects/routes/create.test.ts @@ -19,6 +19,7 @@ import { type InternalSavedObjectsRequestHandlerContext, } from '@kbn/core-saved-objects-server-internal'; import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from './routes_test_utils'; type SetupServerReturn = Awaited>; @@ -56,7 +57,8 @@ describe('POST /api/saved_objects/{type}', () => { const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); const logger = loggerMock.create(); loggerWarnSpy = jest.spyOn(logger, 'warn').mockImplementation(); - registerCreateRoute(router, { coreUsageData, logger }); + const config = setupConfig(); + registerCreateRoute(router, { config, coreUsageData, logger }); handlerContext.savedObjects.typeRegistry.getType.mockImplementation((typename: string) => { return testTypes diff --git a/src/core/server/integration_tests/saved_objects/routes/delete.test.ts b/src/core/server/integration_tests/saved_objects/routes/delete.test.ts index 538cc2d721485..7ed9de92ab69a 100644 --- a/src/core/server/integration_tests/saved_objects/routes/delete.test.ts +++ b/src/core/server/integration_tests/saved_objects/routes/delete.test.ts @@ -19,6 +19,7 @@ import { type InternalSavedObjectsRequestHandlerContext, } from '@kbn/core-saved-objects-server-internal'; import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from './routes_test_utils'; type SetupServerReturn = Awaited>; @@ -53,7 +54,8 @@ describe('DELETE /api/saved_objects/{type}/{id}', () => { const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); const logger = loggerMock.create(); loggerWarnSpy = jest.spyOn(logger, 'warn').mockImplementation(); - registerDeleteRoute(router, { coreUsageData, logger }); + const config = setupConfig(); + registerDeleteRoute(router, { config, coreUsageData, logger }); await server.start(); }); diff --git a/src/core/server/integration_tests/saved_objects/routes/find.test.ts b/src/core/server/integration_tests/saved_objects/routes/find.test.ts index 25fd8a32fc9ef..7611e33171e4b 100644 --- a/src/core/server/integration_tests/saved_objects/routes/find.test.ts +++ b/src/core/server/integration_tests/saved_objects/routes/find.test.ts @@ -21,6 +21,7 @@ import { registerFindRoute, type InternalSavedObjectsRequestHandlerContext, } from '@kbn/core-saved-objects-server-internal'; +import { setupConfig } from './routes_test_utils'; type SetupServerReturn = Awaited>; @@ -66,9 +67,13 @@ describe('GET /api/saved_objects/_find', () => { coreUsageStatsClient = coreUsageStatsClientMock.create(); coreUsageStatsClient.incrementSavedObjectsFind.mockRejectedValue(new Error('Oh no!')); // intentionally throw this error, which is swallowed, so we can assert that the operation does not fail const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); + const logger = loggerMock.create(); loggerWarnSpy = jest.spyOn(logger, 'warn').mockImplementation(); - registerFindRoute(router, { coreUsageData, logger }); + + const config = setupConfig(); + + registerFindRoute(router, { config, coreUsageData, logger }); await server.start(); }); diff --git a/src/core/server/integration_tests/saved_objects/routes/get.test.ts b/src/core/server/integration_tests/saved_objects/routes/get.test.ts index 363f0406b2148..8a19aadac8a22 100644 --- a/src/core/server/integration_tests/saved_objects/routes/get.test.ts +++ b/src/core/server/integration_tests/saved_objects/routes/get.test.ts @@ -24,9 +24,9 @@ import { } from '@kbn/core-saved-objects-server-internal'; import { createHiddenTypeVariants } from '@kbn/core-test-helpers-test-utils'; import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from './routes_test_utils'; const coreId = Symbol('core'); - const testTypes = [ { name: 'index-pattern', hide: false }, { name: 'hidden-type', hide: true }, @@ -71,12 +71,16 @@ describe('GET /api/saved_objects/{type}/{id}', () => { const router = httpSetup.createRouter('/api/saved_objects/'); + coreUsageStatsClient = coreUsageStatsClientMock.create(); coreUsageStatsClient.incrementSavedObjectsGet.mockRejectedValue(new Error('Oh no!')); // intentionally throw this error, which is swallowed, so we can assert that the operation does not fail const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); + const logger = loggerMock.create(); loggerWarnSpy = jest.spyOn(logger, 'warn').mockImplementation(); - registerGetRoute(router, { coreUsageData, logger }); + + const config = setupConfig(); + registerGetRoute(router, { config, coreUsageData, logger }); await server.start(); }); diff --git a/src/core/server/integration_tests/saved_objects/routes/resolve.test.ts b/src/core/server/integration_tests/saved_objects/routes/resolve.test.ts index 0ecc6221730ff..b85caa035e928 100644 --- a/src/core/server/integration_tests/saved_objects/routes/resolve.test.ts +++ b/src/core/server/integration_tests/saved_objects/routes/resolve.test.ts @@ -24,6 +24,7 @@ import { } from '@kbn/core-saved-objects-server-internal'; import { createHiddenTypeVariants } from '@kbn/core-test-helpers-test-utils'; import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from './routes_test_utils'; const coreId = Symbol('core'); @@ -77,7 +78,9 @@ describe('GET /api/saved_objects/resolve/{type}/{id}', () => { const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); const logger = loggerMock.create(); loggerWarnSpy = jest.spyOn(logger, 'warn').mockImplementation(); - registerResolveRoute(router, { coreUsageData, logger }); + const config = setupConfig(); + + registerResolveRoute(router, { config, coreUsageData, logger }); await server.start(); }); diff --git a/src/core/server/integration_tests/saved_objects/routes/routes_test_utils.ts b/src/core/server/integration_tests/saved_objects/routes/routes_test_utils.ts new file mode 100644 index 0000000000000..5af72bf16484c --- /dev/null +++ b/src/core/server/integration_tests/saved_objects/routes/routes_test_utils.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { SavedObjectConfig } from '@kbn/core-saved-objects-base-server-internal'; + +export function setupConfig(allowAccess: boolean = false) { + const config = { + allowHttpApiAccess: allowAccess, + } as SavedObjectConfig; + return config; +} diff --git a/src/core/server/integration_tests/saved_objects/routes/update.test.ts b/src/core/server/integration_tests/saved_objects/routes/update.test.ts index 8333159b8e1c6..c261584217a37 100644 --- a/src/core/server/integration_tests/saved_objects/routes/update.test.ts +++ b/src/core/server/integration_tests/saved_objects/routes/update.test.ts @@ -19,6 +19,7 @@ import { type InternalSavedObjectsRequestHandlerContext, } from '@kbn/core-saved-objects-server-internal'; import { loggerMock } from '@kbn/logging-mocks'; +import { setupConfig } from './routes_test_utils'; type SetupServerReturn = Awaited>; @@ -64,7 +65,9 @@ describe('PUT /api/saved_objects/{type}/{id?}', () => { const coreUsageData = coreUsageDataServiceMock.createSetupContract(coreUsageStatsClient); const logger = loggerMock.create(); loggerWarnSpy = jest.spyOn(logger, 'warn').mockImplementation(); - registerUpdateRoute(router, { coreUsageData, logger }); + + const config = setupConfig(); + registerUpdateRoute(router, { config, coreUsageData, logger }); await server.start(); }); diff --git a/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker b/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker index 9c5f2511f1617..f23da578d2921 100755 --- a/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker +++ b/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker @@ -139,6 +139,7 @@ kibana_vars=( regionmap savedObjects.maxImportExportSize savedObjects.maxImportPayloadBytes + savedObjects.allowHttpApiAccess security.showInsecureClusterWarning server.basePath server.compression.enabled diff --git a/src/dev/storybook/aliases.ts b/src/dev/storybook/aliases.ts index d7bafce5fe508..fc80a35a2def8 100644 --- a/src/dev/storybook/aliases.ts +++ b/src/dev/storybook/aliases.ts @@ -18,6 +18,7 @@ export const storybookAliases = { language_documentation_popover: 'packages/kbn-language-documentation-popover/.storybook', chart_icons: 'packages/kbn-chart-icons/.storybook', content_management: 'packages/content-management/.storybook', + content_management_plugin: 'src/plugins/content_management/.storybook', controls: 'src/plugins/controls/storybook', custom_integrations: 'src/plugins/custom_integrations/storybook', dashboard_enhanced: 'x-pack/plugins/dashboard_enhanced/.storybook', diff --git a/src/plugins/chart_expressions/expression_partition_vis/public/utils/get_legend_actions.tsx b/src/plugins/chart_expressions/expression_partition_vis/public/utils/get_legend_actions.tsx index 9ef6fbb13d50d..9852040060e7c 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/public/utils/get_legend_actions.tsx +++ b/src/plugins/chart_expressions/expression_partition_vis/public/utils/get_legend_actions.tsx @@ -130,6 +130,9 @@ export const getLegendActions = ( data-test-subj={`legend-${title}`} onKeyPress={() => setPopoverOpen(!popoverOpen)} onClick={() => setPopoverOpen(!popoverOpen)} + aria-label={i18n.translate('expressionPartitionVis.legend.legendActionsAria', { + defaultMessage: 'Legend actions', + })} > diff --git a/src/plugins/chart_expressions/expression_xy/public/components/legend_action_popover.tsx b/src/plugins/chart_expressions/expression_xy/public/components/legend_action_popover.tsx index e01ed18b106ce..1a6fae2feb153 100644 --- a/src/plugins/chart_expressions/expression_xy/public/components/legend_action_popover.tsx +++ b/src/plugins/chart_expressions/expression_xy/public/components/legend_action_popover.tsx @@ -98,6 +98,9 @@ export const LegendActionPopover: React.FunctionComponent setPopoverOpen(!popoverOpen)} onClick={() => setPopoverOpen(!popoverOpen)} + aria-label={i18n.translate('expressionXY.legend.legendActionsAria', { + defaultMessage: 'Legend actions', + })} > diff --git a/src/plugins/content_management/.storybook/main.js b/src/plugins/content_management/.storybook/main.js new file mode 100644 index 0000000000000..8dc3c5d1518f4 --- /dev/null +++ b/src/plugins/content_management/.storybook/main.js @@ -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. + */ + +module.exports = require('@kbn/storybook').defaultConfig; diff --git a/src/plugins/content_management/demo/todo/todo.stories.test.tsx b/src/plugins/content_management/demo/todo/todo.stories.test.tsx new file mode 100644 index 0000000000000..e2f0a21643445 --- /dev/null +++ b/src/plugins/content_management/demo/todo/todo.stories.test.tsx @@ -0,0 +1,90 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { render, screen, within, waitForElementToBeRemoved } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { SimpleTodoApp } from './todo.stories'; + +test('SimpleTodoApp works', async () => { + render(); + + // check initial todos + let todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(2); + let [firstTodo, secondTodo] = todos; + expect(firstTodo).toHaveTextContent('Learn Elasticsearch'); + expect(secondTodo).toHaveTextContent('Learn Kibana'); + + const [firstTodoCheckbox, secondTodoCheckbox] = await screen.findAllByRole('checkbox'); + expect(firstTodoCheckbox).toBeChecked(); + expect(secondTodoCheckbox).not.toBeChecked(); + + // apply "completed" filter + let todoFilters = screen.getByRole('group', { name: 'Todo filters' }); + let completedFilter = within(todoFilters).getByTestId('completed'); + userEvent.click(completedFilter); + + // check only completed todos are shown + todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(1); + [firstTodo] = todos; + expect(firstTodo).toHaveTextContent('Learn Elasticsearch'); + + // apply "todo" filter + todoFilters = screen.getByRole('group', { name: 'Todo filters' }); + const todoFilter = within(todoFilters).getByTestId('todo'); + userEvent.click(todoFilter); + + // check only todo todos are shown + todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(1); + [firstTodo] = todos; + expect(firstTodo).toHaveTextContent('Learn Kibana'); + + // apply "all" filter + todoFilters = screen.getByRole('group', { name: 'Todo filters' }); + const allFilter = within(todoFilters).getByTestId('all'); + userEvent.click(allFilter); + + // check all todos are shown + todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(2); + [firstTodo, secondTodo] = todos; + + // add new todo + const newTodoInput = screen.getByTestId('newTodo'); + userEvent.type(newTodoInput, 'Learn React{enter}'); + + // wait for new todo to be added + await screen.findByText('Learn React'); + todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(3); + let newTodo = todos[2]; + + // mark new todo as completed + userEvent.click(within(newTodo).getByRole('checkbox')); + + // apply "completed" filter again + todoFilters = screen.getByRole('group', { name: 'Todo filters' }); + completedFilter = within(todoFilters).getByTestId('completed'); + userEvent.click(completedFilter); + + // check only completed todos are shown and a new todo is there + await screen.findByText('Learn React'); // wait for new todo to be there + todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(2); + [firstTodo, newTodo] = todos; + expect(newTodo).toHaveTextContent('Learn React'); + + // remove new todo + userEvent.click(within(newTodo).getByLabelText('Delete')); + + // wait for new todo to be removed + await waitForElementToBeRemoved(() => screen.getByText('Learn React')); +}); diff --git a/src/plugins/content_management/demo/todo/todo.stories.tsx b/src/plugins/content_management/demo/todo/todo.stories.tsx new file mode 100644 index 0000000000000..23cd2a194cf6d --- /dev/null +++ b/src/plugins/content_management/demo/todo/todo.stories.tsx @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { Todos } from './todos'; +import { ContentClientProvider, ContentClient } from '../../public/content_client'; +import { TodosClient } from './todos_client'; + +export default { + title: 'Content Management/Demo/Todo', + description: 'A demo todo app that uses content management', + parameters: {}, +}; + +const todosClient = new TodosClient(); +const contentClient = new ContentClient((contentType: string) => { + switch (contentType) { + case 'todos': + return todosClient; + + default: + throw new Error(`Unknown content type: ${contentType}`); + } +}); + +export const SimpleTodoApp = () => ( + + + +); diff --git a/src/plugins/content_management/demo/todo/todos.tsx b/src/plugins/content_management/demo/todo/todos.tsx new file mode 100644 index 0000000000000..667e455029ab4 --- /dev/null +++ b/src/plugins/content_management/demo/todo/todos.tsx @@ -0,0 +1,133 @@ +/* + * Copyright 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 { EuiButtonGroup, EuiButtonIcon, EuiCheckbox, EuiFieldText, EuiSpacer } from '@elastic/eui'; + +import { + useCreateContentMutation, + useDeleteContentMutation, + useSearchContentQuery, + useUpdateContentMutation, + // eslint-disable-next-line @kbn/imports/no_boundary_crossing +} from '../../public/content_client'; +import type { Todo, TodoCreateIn, TodoDeleteIn, TodoSearchIn, TodoUpdateIn } from './todos_client'; + +const useCreateTodoMutation = () => useCreateContentMutation(); +const useDeleteTodoMutation = () => useDeleteContentMutation(); +const useUpdateTodoMutation = () => useUpdateContentMutation(); +const useSearchTodosQuery = ({ filter }: { filter: TodoSearchIn['query']['filter'] }) => + useSearchContentQuery({ + contentTypeId: 'todos', + query: { filter }, + }); + +type TodoFilter = 'all' | 'completed' | 'todo'; +const filters = [ + { + id: `all`, + label: 'All', + }, + { + id: `completed`, + label: 'Completed', + }, + { + id: `todo`, + label: 'Todo', + }, +]; + +export const Todos = () => { + const [filterIdSelected, setFilterIdSelected] = React.useState('all'); + + const { data, isLoading, isError, error } = useSearchTodosQuery({ + filter: filterIdSelected === 'all' ? undefined : filterIdSelected, + }); + + const createTodoMutation = useCreateTodoMutation(); + const deleteTodoMutation = useDeleteTodoMutation(); + const updateTodoMutation = useUpdateTodoMutation(); + + if (isLoading) return

Loading...

; + if (isError) return

Error: {error}

; + + return ( + <> + { + setFilterIdSelected(id as TodoFilter); + }} + /> + +
    + {data.hits.map((todo: Todo) => ( + +
  • + { + updateTodoMutation.mutate({ + contentTypeId: 'todos', + id: todo.id, + data: { + completed: e.target.checked, + }, + }); + }} + label={todo.title} + data-test-subj={`todoCheckbox-${todo.id}`} + /> + + { + deleteTodoMutation.mutate({ contentTypeId: 'todos', id: todo.id }); + }} + /> +
  • + +
    + ))} +
+ +
{ + const inputRef = (e.target as HTMLFormElement).elements.namedItem( + 'newTodo' + ) as HTMLInputElement; + if (!inputRef || !inputRef.value) return; + + createTodoMutation.mutate({ + contentTypeId: 'todos', + data: { + title: inputRef.value, + }, + }); + + inputRef.value = ''; + e.preventDefault(); + }} + > + + + + ); +}; diff --git a/src/plugins/content_management/demo/todo/todos_client.ts b/src/plugins/content_management/demo/todo/todos_client.ts new file mode 100644 index 0000000000000..c6f5fe4bf5f36 --- /dev/null +++ b/src/plugins/content_management/demo/todo/todos_client.ts @@ -0,0 +1,64 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { v4 as uuidv4 } from 'uuid'; +import type { CrudClient } from '../../public/crud_client'; +import type { CreateIn, DeleteIn, GetIn, SearchIn, UpdateIn } from '../../common'; + +export interface Todo { + id: string; + title: string; + completed: boolean; +} + +export type TodoCreateIn = CreateIn<'todos', { title: string }>; +export type TodoUpdateIn = UpdateIn<'todos', Partial>>; +export type TodoDeleteIn = DeleteIn<'todos', { id: string }>; +export type TodoGetIn = GetIn<'todos'>; +export type TodoSearchIn = SearchIn<'todos', { filter?: 'todo' | 'completed' }>; + +export class TodosClient implements CrudClient { + private todos: Todo[] = [ + { id: uuidv4(), title: 'Learn Elasticsearch', completed: true }, + { id: uuidv4(), title: 'Learn Kibana', completed: false }, + ]; + + async create(input: TodoCreateIn): Promise { + const todo = { + id: uuidv4(), + title: input.data.title, + completed: false, + }; + this.todos.push(todo); + return todo; + } + + async delete(input: TodoDeleteIn): Promise { + this.todos = this.todos.filter((todo) => todo.id !== input.id); + } + + async get(input: TodoGetIn): Promise { + return this.todos.find((todo) => todo.id === input.id)!; + } + + async search(input: TodoSearchIn): Promise<{ hits: Todo[] }> { + const filter = input.query.filter; + if (filter === 'todo') return { hits: this.todos.filter((t) => !t.completed) }; + if (filter === 'completed') return { hits: this.todos.filter((t) => t.completed) }; + return { hits: [...this.todos] }; + } + + async update(input: TodoUpdateIn): Promise { + const idToUpdate = input.id; + const todoToUpdate = this.todos.find((todo) => todo.id === idToUpdate)!; + if (todoToUpdate) { + Object.assign(todoToUpdate, input.data); + } + return { ...todoToUpdate }; + } +} diff --git a/src/plugins/content_management/public/content_client/content_client.tsx b/src/plugins/content_management/public/content_client/content_client.tsx index 149e509ae9510..8dfb13223735e 100644 --- a/src/plugins/content_management/public/content_client/content_client.tsx +++ b/src/plugins/content_management/public/content_client/content_client.tsx @@ -11,13 +11,13 @@ import { createQueryObservable } from './query_observable'; import type { CrudClient } from '../crud_client'; import type { CreateIn, GetIn, UpdateIn, DeleteIn, SearchIn } from '../../common'; -const queryKeyBuilder = { +export const queryKeyBuilder = { all: (type: string) => [type] as const, item: (type: string, id: string) => { return [...queryKeyBuilder.all(type), id] as const; }, - search: (type: string, params: unknown) => { - return [...queryKeyBuilder.all(type), 'search', params] as const; + search: (type: string, query: unknown) => { + return [...queryKeyBuilder.all(type), 'search', query] as const; }, }; @@ -30,13 +30,13 @@ const createQueryOptionBuilder = ({ get: (input: I) => { return { queryKey: queryKeyBuilder.item(input.contentTypeId, input.id), - queryFn: () => crudClientProvider(input.contentTypeId).get(input), + queryFn: () => crudClientProvider(input.contentTypeId).get(input) as Promise, }; }, search: (input: I) => { return { queryKey: queryKeyBuilder.search(input.contentTypeId, input.query), - queryFn: () => crudClientProvider(input.contentTypeId).search(input), + queryFn: () => crudClientProvider(input.contentTypeId).search(input) as Promise, }; }, }; @@ -62,19 +62,19 @@ export class ContentClient { } create(input: I): Promise { - return this.crudClientProvider(input.contentTypeId).create(input); + return this.crudClientProvider(input.contentTypeId).create(input) as Promise; } update(input: I): Promise { - return this.crudClientProvider(input.contentTypeId).update(input); + return this.crudClientProvider(input.contentTypeId).update(input) as Promise; } delete(input: I): Promise { - return this.crudClientProvider(input.contentTypeId).delete(input); + return this.crudClientProvider(input.contentTypeId).delete(input) as Promise; } search(input: I): Promise { - return this.crudClientProvider(input.contentTypeId).search(input); + return this.crudClientProvider(input.contentTypeId).search(input) as Promise; } search$(input: I) { diff --git a/src/plugins/content_management/public/content_client/content_client_mutation_hooks.tsx b/src/plugins/content_management/public/content_client/content_client_mutation_hooks.tsx index dcde9ae1c8fe4..f41449fe7e8f3 100644 --- a/src/plugins/content_management/public/content_client/content_client_mutation_hooks.tsx +++ b/src/plugins/content_management/public/content_client/content_client_mutation_hooks.tsx @@ -9,12 +9,18 @@ import { useMutation } from '@tanstack/react-query'; import { useContentClient } from './content_client_context'; import type { CreateIn, UpdateIn, DeleteIn } from '../../common'; +import { queryKeyBuilder } from './content_client'; export const useCreateContentMutation = () => { const contentClient = useContentClient(); return useMutation({ mutationFn: (input: I) => { - return contentClient.create(input); + return contentClient.create(input); + }, + onSuccess: (data, variables) => { + contentClient.queryClient.invalidateQueries({ + queryKey: queryKeyBuilder.all(variables.contentTypeId), + }); }, }); }; @@ -23,7 +29,12 @@ export const useUpdateContentMutation = { - return contentClient.update(input); + return contentClient.update(input); + }, + onSuccess: (data, variables) => { + contentClient.queryClient.invalidateQueries({ + queryKey: queryKeyBuilder.all(variables.contentTypeId), + }); }, }); }; @@ -32,7 +43,12 @@ export const useDeleteContentMutation = { - return contentClient.delete(input); + return contentClient.delete(input); + }, + onSuccess: (data, variables) => { + contentClient.queryClient.invalidateQueries({ + queryKey: queryKeyBuilder.all(variables.contentTypeId), + }); }, }); }; diff --git a/src/plugins/content_management/public/crud_client/crud_client.ts b/src/plugins/content_management/public/crud_client/crud_client.ts index 094703a97d0c0..4976c7937dc4d 100644 --- a/src/plugins/content_management/public/crud_client/crud_client.ts +++ b/src/plugins/content_management/public/crud_client/crud_client.ts @@ -9,9 +9,9 @@ import type { GetIn, CreateIn, UpdateIn, DeleteIn, SearchIn } from '../../common'; export interface CrudClient { - get(input: I): Promise; - create(input: I): Promise; - update(input: I): Promise; - delete(input: I): Promise; - search(input: I): Promise; + get(input: GetIn): Promise; + create(input: CreateIn): Promise; + update(input: UpdateIn): Promise; + delete(input: DeleteIn): Promise; + search(input: SearchIn): Promise; } diff --git a/src/plugins/content_management/tsconfig.json b/src/plugins/content_management/tsconfig.json index f2cd5ce1b5e59..dfdb4b0f93f2a 100644 --- a/src/plugins/content_management/tsconfig.json +++ b/src/plugins/content_management/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "outDir": "target/types", }, - "include": ["common/**/*", "public/**/*", "server/**/*", ".storybook/**/*"], + "include": ["common/**/*", "public/**/*", "server/**/*", "demo/**/*"], "kbn_references": [ "@kbn/core", "@kbn/config-schema", diff --git a/src/plugins/discover/public/application/main/components/top_nav/__snapshots__/open_search_panel.test.tsx.snap b/src/plugins/discover/public/application/main/components/top_nav/__snapshots__/open_search_panel.test.tsx.snap index 6ff7006c1b9b4..368d53ac29ce6 100644 --- a/src/plugins/discover/public/application/main/components/top_nav/__snapshots__/open_search_panel.test.tsx.snap +++ b/src/plugins/discover/public/application/main/components/top_nav/__snapshots__/open_search_panel.test.tsx.snap @@ -42,7 +42,7 @@ exports[`OpenSearchPanel render 1`] = ` } services={ Object { - "savedObjects": undefined, + "http": undefined, "savedObjectsManagement": undefined, "savedObjectsTagging": undefined, "uiSettings": undefined, diff --git a/src/plugins/discover/public/application/main/components/top_nav/open_search_panel.tsx b/src/plugins/discover/public/application/main/components/top_nav/open_search_panel.tsx index 665ed87323188..af61b615fdc57 100644 --- a/src/plugins/discover/public/application/main/components/top_nav/open_search_panel.tsx +++ b/src/plugins/discover/public/application/main/components/top_nav/open_search_panel.tsx @@ -57,7 +57,7 @@ export function OpenSearchPanel(props: OpenSearchPanelProps) { = SavedObject; + +export interface FindQueryHTTP { + perPage?: number; + page?: number; + type: string | string[]; + search?: string; + searchFields?: string[]; + defaultSearchOperator?: 'AND' | 'OR'; + sortField?: string; + sortOrder?: 'asc' | 'desc'; + fields?: string | string[]; + hasReference?: string; +} + +export interface FinderAttributes { + title?: string; + name?: string; + type: string; +} + +export interface FindResponseHTTP { + saved_objects: Array>; + total: number; + page: number; + per_page: number; +} diff --git a/src/plugins/saved_objects_finder/kibana.jsonc b/src/plugins/saved_objects_finder/kibana.jsonc index 5e19fc5ab469d..bfe35d688b9cf 100644 --- a/src/plugins/saved_objects_finder/kibana.jsonc +++ b/src/plugins/saved_objects_finder/kibana.jsonc @@ -4,7 +4,7 @@ "owner": "@elastic/kibana-data-discovery", "plugin": { "id": "savedObjectsFinder", - "server": false, + "server": true, "browser": true, "requiredBundles": [ "savedObjects" diff --git a/src/plugins/saved_objects_finder/public/finder/saved_object_finder.test.tsx b/src/plugins/saved_objects_finder/public/finder/saved_object_finder.test.tsx index cde6ce1ac0aee..7e560906b8ae9 100644 --- a/src/plugins/saved_objects_finder/public/finder/saved_object_finder.test.tsx +++ b/src/plugins/saved_objects_finder/public/finder/saved_object_finder.test.tsx @@ -98,17 +98,17 @@ describe('SavedObjectsFinder', () => { }, } as any as SavedObjectsTaggingApi; - it('should call saved object client on startup', async () => { + it('should call API on startup', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = shallow( { wrapper.instance().componentDidMount!(); await nextTick(); - expect(core.savedObjects.client.find).toHaveBeenCalledWith({ - type: ['search'], - fields: ['title', 'name'], - search: undefined, - hasReference: undefined, - page: 1, - perPage: 10, - searchFields: ['title^3', 'description', 'name'], - defaultSearchOperator: 'AND', + expect(core.http.get).toHaveBeenCalledWith('/internal/saved-objects-finder/find', { + query: { + type: ['search'], + fields: ['title', 'name'], + search: undefined, + hasReference: undefined, + page: 1, + perPage: 10, + searchFields: ['title^3', 'description', 'name'], + defaultSearchOperator: 'AND', + }, }); }); it('should list initial items', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = shallow( { it('should call onChoose on item click', async () => { const chooseStub = sinon.stub(); const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { describe('sorting', () => { it('should list items by type ascending', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc, doc3, doc2] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc, doc3, doc2] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { it('should list items by type descending', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc, doc3, doc2] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc, doc3, doc2] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { it('should list items by title ascending', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc, doc2] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc, doc2] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { it('should list items by title descending', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc, doc2] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc, doc2] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { it('should list items by tag ascending', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc, doc3, doc2] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc, doc3, doc2] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { it('should list items by tag descending', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc, doc3, doc2] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc, doc3, doc2] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { it('should not show the saved objects which get filtered by showSavedObject', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc, doc2] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc, doc2] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = shallow( { describe('search', () => { it('should request filtered list on search input', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc, doc2] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc, doc2] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { wrapper .find('[data-test-subj="savedObjectFinderSearchInput"] input') .simulate('keyup', { key: 'Enter', target: { value: 'abc' } }); - expect(core.savedObjects.client.find).toHaveBeenCalledWith({ - type: ['search'], - fields: ['title', 'name'], - search: 'abc*', - hasReference: undefined, - page: 1, - perPage: 10, - searchFields: ['title^3', 'description', 'name'], - defaultSearchOperator: 'AND', + expect(core.http.get).toHaveBeenCalledWith('/internal/saved-objects-finder/find', { + query: { + type: ['search'], + fields: ['title', 'name'], + search: 'abc*', + hasReference: undefined, + page: 1, + perPage: 10, + searchFields: ['title^3', 'description', 'name'], + defaultSearchOperator: 'AND', + }, }); }); it('should include additional fields in search if listed in meta data', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as jest.Mock).mockResolvedValue({ savedObjects: [] }); + (core.http.get as jest.Mock).mockResolvedValue({ saved_objects: [] }); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { wrapper .find('[data-test-subj="savedObjectFinderSearchInput"] input') .simulate('keyup', { key: 'Enter', target: { value: 'abc' } }); - expect(core.savedObjects.client.find).toHaveBeenCalledWith({ - type: ['type1', 'type2'], - fields: ['title', 'name', 'field1', 'field2', 'field3'], - search: 'abc*', - hasReference: undefined, - page: 1, - perPage: 10, - searchFields: ['title^3', 'description'], - defaultSearchOperator: 'AND', + expect(core.http.get).toHaveBeenCalledWith('/internal/saved-objects-finder/find', { + query: { + type: ['type1', 'type2'], + fields: ['title', 'name', 'field1', 'field2', 'field3'], + search: 'abc*', + hasReference: undefined, + page: 1, + perPage: 10, + searchFields: ['title^3', 'description'], + defaultSearchOperator: 'AND', + }, }); }); it('should respect response order on search input', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc, doc2] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc, doc2] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { it('should request multiple saved object types at once', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc, doc2] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc, doc2] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = shallow( { wrapper.instance().componentDidMount!(); - expect(core.savedObjects.client.find).toHaveBeenCalledWith({ - type: ['search', 'vis'], - fields: ['title', 'name'], - search: undefined, - page: 1, - perPage: 10, - searchFields: ['title^3', 'description'], - defaultSearchOperator: 'AND', + expect(core.http.get).toHaveBeenCalledWith('/internal/saved-objects-finder/find', { + query: { + type: ['search', 'vis'], + fields: ['title', 'name'], + search: undefined, + page: 1, + perPage: 10, + searchFields: ['title^3', 'description'], + defaultSearchOperator: 'AND', + }, }); }); describe('filter', () => { it('should render filter buttons if enabled', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => + (core.http.get as any as jest.SpyInstance).mockImplementation(() => Promise.resolve({ - savedObjects: [doc, doc2, doc3], + saved_objects: [doc, doc2, doc3], }) ); core.uiSettings.get.mockImplementation(() => 10); @@ -584,7 +592,7 @@ describe('SavedObjectsFinder', () => { const wrapper = mount( { it('should not render filter buttons if disabled', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => + (core.http.get as any as jest.SpyInstance).mockImplementation(() => Promise.resolve({ - savedObjects: [doc, doc2, doc3], + saved_objects: [doc, doc2, doc3], }) ); core.uiSettings.get.mockImplementation(() => 10); @@ -613,7 +621,7 @@ describe('SavedObjectsFinder', () => { const wrapper = mount( { it('should not render types filter button if there is only one type in the metadata list', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => + (core.http.get as any as jest.SpyInstance).mockImplementation(() => Promise.resolve({ - savedObjects: [doc, doc2], + saved_objects: [doc, doc2], }) ); core.uiSettings.get.mockImplementation(() => 10); @@ -640,7 +648,7 @@ describe('SavedObjectsFinder', () => { const wrapper = mount( { it('should not render tags filter button if savedObjectsTagging is undefined', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => + (core.http.get as any as jest.SpyInstance).mockImplementation(() => Promise.resolve({ - savedObjects: [doc, doc2, doc3], + saved_objects: [doc, doc2, doc3], }) ); core.uiSettings.get.mockImplementation(() => 10); @@ -668,7 +676,7 @@ describe('SavedObjectsFinder', () => { const wrapper = mount( { it('should apply types filter if selected', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => + (core.http.get as any as jest.SpyInstance).mockImplementation(() => Promise.resolve({ - savedObjects: [doc, doc2, doc3], + saved_objects: [doc, doc2, doc3], }) ); core.uiSettings.get.mockImplementation(() => 10); @@ -696,7 +704,7 @@ describe('SavedObjectsFinder', () => { const wrapper = mount( { const table = wrapper.find>(EuiInMemoryTable); const search = table.prop('search') as EuiSearchBarProps; search.onChange?.({ query: Query.parse('type:(vis)'), queryText: '', error: null }); - expect(core.savedObjects.client.find).toHaveBeenLastCalledWith({ - type: ['vis'], - fields: ['title', 'name'], - search: undefined, - hasReference: undefined, - page: 1, - perPage: 10, - searchFields: ['title^3', 'description'], - defaultSearchOperator: 'AND', + expect(core.http.get).toHaveBeenLastCalledWith('/internal/saved-objects-finder/find', { + query: { + type: ['vis'], + fields: ['title', 'name'], + search: undefined, + hasReference: undefined, + page: 1, + perPage: 10, + searchFields: ['title^3', 'description'], + defaultSearchOperator: 'AND', + }, }); search.onChange?.({ query: Query.parse('type:(search or vis)'), queryText: '', error: null }); - expect(core.savedObjects.client.find).toHaveBeenLastCalledWith({ - type: ['search', 'vis'], - fields: ['title', 'name'], - search: undefined, - hasReference: undefined, - page: 1, - perPage: 10, - searchFields: ['title^3', 'description'], - defaultSearchOperator: 'AND', + expect(core.http.get).toHaveBeenLastCalledWith('/internal/saved-objects-finder/find', { + query: { + type: ['search', 'vis'], + fields: ['title', 'name'], + search: undefined, + hasReference: undefined, + page: 1, + perPage: 10, + searchFields: ['title^3', 'description'], + defaultSearchOperator: 'AND', + }, }); }); it('should apply tags filter if selected', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => + (core.http.get as any as jest.SpyInstance).mockImplementation(() => Promise.resolve({ - savedObjects: [doc, doc2, doc3], + saved_objects: [doc, doc2, doc3], }) ); core.uiSettings.get.mockImplementation(() => 10); @@ -746,7 +758,7 @@ describe('SavedObjectsFinder', () => { const wrapper = mount( { const table = wrapper.find>(EuiInMemoryTable); const search = table.prop('search') as EuiSearchBarProps; search.onChange?.({ query: Query.parse('tag:(tag1)'), queryText: '', error: null }); - expect(core.savedObjects.client.find).toHaveBeenLastCalledWith({ - type: ['search', 'vis'], - fields: ['title', 'name'], - search: undefined, - hasReference: ['tag1'], - page: 1, - perPage: 10, - searchFields: ['title^3', 'description'], - defaultSearchOperator: 'AND', + expect(core.http.get).toHaveBeenLastCalledWith('/internal/saved-objects-finder/find', { + query: { + type: ['search', 'vis'], + fields: ['title', 'name'], + search: undefined, + hasReference: JSON.stringify(['tag1']), + page: 1, + perPage: 10, + searchFields: ['title^3', 'description'], + defaultSearchOperator: 'AND', + }, }); search.onChange?.({ query: Query.parse('tag:(tag1 or tag2)'), queryText: '', error: null }); - expect(core.savedObjects.client.find).toHaveBeenLastCalledWith({ - type: ['search', 'vis'], - fields: ['title', 'name'], - search: undefined, - hasReference: ['tag1', 'tag2'], - page: 1, - perPage: 10, - searchFields: ['title^3', 'description'], - defaultSearchOperator: 'AND', + expect(core.http.get).toHaveBeenLastCalledWith('/internal/saved-objects-finder/find', { + query: { + type: ['search', 'vis'], + fields: ['title', 'name'], + search: undefined, + hasReference: JSON.stringify(['tag1', 'tag2']), + page: 1, + perPage: 10, + searchFields: ['title^3', 'description'], + defaultSearchOperator: 'AND', + }, }); }); }); it('should display no items message if there are no items', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [] }) ); core.uiSettings.get.mockImplementation(() => 10); @@ -796,7 +812,7 @@ describe('SavedObjectsFinder', () => { const wrapper = mount( { it('should show a table pagination with initial per page', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: longItemList }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: longItemList }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { it('should allow switching the page size', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: longItemList }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: longItemList }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { it('should switch page correctly', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: longItemList }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: longItemList }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { it('should show an ordinary pagination for fixed page sizes', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: longItemList }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: longItemList }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { it('should switch page correctly for fixed page sizes', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: longItemList }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: longItemList }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { describe('loading state', () => { it('should display a loading indicator during initial loading', () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as jest.Mock).mockResolvedValue({ savedObjects: [] }); + (core.http.get as jest.Mock).mockResolvedValue({ saved_objects: [] }); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { it('should hide the loading indicator if data is shown', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { it('should show the loading indicator if there are already items and the search is updated', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { it('should render with children', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc, doc2] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc, doc2] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { describe('columns', () => { it('should show all columns', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc, doc2, doc3] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc, doc2, doc3] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { it('should hide the type column if there is only one type in the metadata list', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc, doc2] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc, doc2] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { it('should hide the tags column if savedObjectsTagging is undefined', async () => { const core = coreMock.createStart(); - (core.savedObjects.client.find as any as jest.SpyInstance).mockImplementation(() => - Promise.resolve({ savedObjects: [doc, doc2, doc3] }) + (core.http.get as any as jest.SpyInstance).mockImplementation(() => + Promise.resolve({ saved_objects: [doc, doc2, doc3] }) ); core.uiSettings.get.mockImplementation(() => 10); const wrapper = mount( { type: string; name: string; - getIconForSavedObject(savedObject: SimpleSavedObject): IconType; - getTooltipForSavedObject?(savedObject: SimpleSavedObject): string; - showSavedObject?(savedObject: SimpleSavedObject): boolean; - getSavedObjectSubType?(savedObject: SimpleSavedObject): string; + getIconForSavedObject(savedObject: SavedObjectCommon): IconType; + getTooltipForSavedObject?(savedObject: SavedObjectCommon): string; + showSavedObject?(savedObject: SavedObjectCommon): boolean; + getSavedObjectSubType?(savedObject: SavedObjectCommon): string; includeFields?: string[]; defaultSearchField?: string; } @@ -51,10 +47,10 @@ interface FinderAttributes { type: string; } -interface SavedObjectFinderItem extends SavedObject { +interface SavedObjectFinderItem extends SavedObjectCommon { title: string | null; name: string | null; - simple: SimpleSavedObject; + simple: SavedObjectCommon; } interface SavedObjectFinderState { @@ -65,7 +61,7 @@ interface SavedObjectFinderState { } interface SavedObjectFinderServices { - savedObjects: SavedObjectsStart; + http: HttpStart; uiSettings: IUiSettingsClient; savedObjectsManagement: SavedObjectsManagementPluginStart; savedObjectsTagging: SavedObjectsTaggingApi | undefined; @@ -74,10 +70,10 @@ interface SavedObjectFinderServices { interface BaseSavedObjectFinder { services: SavedObjectFinderServices; onChoose?: ( - id: SimpleSavedObject['id'], - type: SimpleSavedObject['type'], + id: SavedObjectCommon['id'], + type: SavedObjectCommon['type'], name: string, - savedObject: SimpleSavedObject + savedObject: SavedObjectCommon ) => void; noItemsMessage?: React.ReactNode; savedObjectMetaData: Array>; @@ -136,7 +132,11 @@ export class SavedObjectFinderUi extends React.Component< }, []); const perPage = this.props.services.uiSettings.get(LISTING_LIMIT_SETTING); - const response = await this.props.services.savedObjects.client.find({ + const hasReference = this.props.services.savedObjectsManagement.getTagFindReferences({ + selectedTags, + taggingApi: this.props.services.savedObjectsTagging, + }); + const params: FindQueryHTTP = { type: visibleTypes ?? Object.keys(metaDataMap), fields: [...new Set(fields)], search: queryText ? `${queryText}*` : undefined, @@ -144,13 +144,13 @@ export class SavedObjectFinderUi extends React.Component< perPage, searchFields: ['title^3', 'description', ...additionalSearchFields], defaultSearchOperator: 'AND', - hasReference: this.props.services.savedObjectsManagement.getTagFindReferences({ - selectedTags, - taggingApi: this.props.services.savedObjectsTagging, - }), - }); + hasReference: hasReference ? JSON.stringify(hasReference) : undefined, + }; + const response = (await this.props.services.http.get('/internal/saved-objects-finder/find', { + query: params as Record, + })) as FindResponseHTTP; - const savedObjects = response.savedObjects + const savedObjects = response.saved_objects .map((savedObject) => { const { attributes: { name, title }, @@ -159,7 +159,7 @@ export class SavedObjectFinderUi extends React.Component< const nameToUse = name && typeof name === 'string' ? name : titleToUse; return { ...savedObject, - version: savedObject._version, + version: savedObject.version, title: titleToUse, name: nameToUse, simple: savedObject, @@ -228,7 +228,7 @@ export class SavedObjectFinderUi extends React.Component< const { onChoose, savedObjectMetaData } = this.props; const taggingApi = this.props.services.savedObjectsTagging; const originalTagColumn = taggingApi?.ui.getTableColumnDefinition(); - const tagColumn: EuiTableFieldDataColumnType | undefined = originalTagColumn + const tagColumn: EuiTableFieldDataColumnType | undefined = originalTagColumn ? { ...originalTagColumn, sortable: (item) => diff --git a/src/plugins/saved_objects/server/index.ts b/src/plugins/saved_objects_finder/server/index.ts similarity index 100% rename from src/plugins/saved_objects/server/index.ts rename to src/plugins/saved_objects_finder/server/index.ts diff --git a/src/plugins/saved_objects/server/plugin.test.mocks.ts b/src/plugins/saved_objects_finder/server/plugin.test.mocks.ts similarity index 100% rename from src/plugins/saved_objects/server/plugin.test.mocks.ts rename to src/plugins/saved_objects_finder/server/plugin.test.mocks.ts diff --git a/src/plugins/saved_objects/server/plugin.test.ts b/src/plugins/saved_objects_finder/server/plugin.test.ts similarity index 100% rename from src/plugins/saved_objects/server/plugin.test.ts rename to src/plugins/saved_objects_finder/server/plugin.test.ts diff --git a/src/plugins/saved_objects/server/plugin.ts b/src/plugins/saved_objects_finder/server/plugin.ts similarity index 100% rename from src/plugins/saved_objects/server/plugin.ts rename to src/plugins/saved_objects_finder/server/plugin.ts diff --git a/src/plugins/saved_objects/server/routes/find.ts b/src/plugins/saved_objects_finder/server/routes/find.ts similarity index 94% rename from src/plugins/saved_objects/server/routes/find.ts rename to src/plugins/saved_objects_finder/server/routes/find.ts index 37439429451ed..ce9377ce25333 100644 --- a/src/plugins/saved_objects/server/routes/find.ts +++ b/src/plugins/saved_objects_finder/server/routes/find.ts @@ -27,6 +27,7 @@ export const registerFindRoute = (router: SavedObjectsRouter) => { defaultValue: [], }), searchFields: schema.maybe(schema.arrayOf(schema.string())), + hasReference: schema.maybe(schema.string()), }), }, options: { @@ -44,6 +45,7 @@ export const registerFindRoute = (router: SavedObjectsRouter) => { ...query, type: searchTypes, fields: includedFields, + hasReference: query.hasReference ? JSON.parse(query.hasReference) : undefined, }); const savedObjects = findResponse.saved_objects; diff --git a/src/plugins/saved_objects/server/routes/index.ts b/src/plugins/saved_objects_finder/server/routes/index.ts similarity index 100% rename from src/plugins/saved_objects/server/routes/index.ts rename to src/plugins/saved_objects_finder/server/routes/index.ts diff --git a/src/plugins/saved_objects/server/types.ts b/src/plugins/saved_objects_finder/server/types.ts similarity index 100% rename from src/plugins/saved_objects/server/types.ts rename to src/plugins/saved_objects_finder/server/types.ts diff --git a/src/plugins/saved_objects/server/ui_settings.ts b/src/plugins/saved_objects_finder/server/ui_settings.ts similarity index 76% rename from src/plugins/saved_objects/server/ui_settings.ts rename to src/plugins/saved_objects_finder/server/ui_settings.ts index 6028a1a57f83c..793b76e7e3cf6 100644 --- a/src/plugins/saved_objects/server/ui_settings.ts +++ b/src/plugins/saved_objects_finder/server/ui_settings.ts @@ -14,23 +14,23 @@ import { PER_PAGE_SETTING, LISTING_LIMIT_SETTING } from '../common'; export const uiSettings: Record = { [PER_PAGE_SETTING]: { - name: i18n.translate('savedObjects.advancedSettings.perPageTitle', { + name: i18n.translate('savedObjectsFinder.advancedSettings.perPageTitle', { defaultMessage: 'Objects per page', }), value: 20, type: 'number', - description: i18n.translate('savedObjects.advancedSettings.perPageText', { + description: i18n.translate('savedObjectsFinder.advancedSettings.perPageText', { defaultMessage: 'Number of objects to show per page in the load dialog', }), schema: schema.number(), }, [LISTING_LIMIT_SETTING]: { - name: i18n.translate('savedObjects.advancedSettings.listingLimitTitle', { + name: i18n.translate('savedObjectsFinder.advancedSettings.listingLimitTitle', { defaultMessage: 'Objects listing limit', }), type: 'number', value: 1000, - description: i18n.translate('savedObjects.advancedSettings.listingLimitText', { + description: i18n.translate('savedObjectsFinder.advancedSettings.listingLimitText', { defaultMessage: 'Number of objects to fetch for the listing pages', }), schema: schema.number(), diff --git a/src/plugins/saved_objects_finder/tsconfig.json b/src/plugins/saved_objects_finder/tsconfig.json index 6d3b7ebaa6900..02aa4bf8208ea 100644 --- a/src/plugins/saved_objects_finder/tsconfig.json +++ b/src/plugins/saved_objects_finder/tsconfig.json @@ -11,6 +11,8 @@ "@kbn/saved-objects-tagging-oss-plugin", "@kbn/i18n", "@kbn/saved-objects-plugin", + "@kbn/core-saved-objects-server", + "@kbn/config-schema", ], "exclude": [ "target/**/*", diff --git a/test/functional/config.base.js b/test/functional/config.base.js index 5e4d89d6c195b..c4f1e3695f474 100644 --- a/test/functional/config.base.js +++ b/test/functional/config.base.js @@ -29,6 +29,8 @@ export default async function ({ readConfigFile }) { ...commonConfig.get('kbnTestServer.serverArgs'), '--telemetry.optIn=false', '--savedObjects.maxImportPayloadBytes=10485760', + // override default to not allow hiddenFromHttpApis saved object types access to the HTTP Apis. see https://github.com/elastic/dev/issues/2200 + '--savedObjects.allowHttpApiAccess=false', // to be re-enabled once kibana/issues/102552 is completed '--xpack.reporting.enabled=false', diff --git a/tsconfig.base.json b/tsconfig.base.json index ffcd4798fe881..6a11e26dda7ac 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -558,6 +558,8 @@ "@kbn/core-usage-data-server-internal/*": ["packages/core/usage-data/core-usage-data-server-internal/*"], "@kbn/core-usage-data-server-mocks": ["packages/core/usage-data/core-usage-data-server-mocks"], "@kbn/core-usage-data-server-mocks/*": ["packages/core/usage-data/core-usage-data-server-mocks/*"], + "@kbn/core-version-http-server": ["packages/core/versioning/core-version-http-server"], + "@kbn/core-version-http-server/*": ["packages/core/versioning/core-version-http-server/*"], "@kbn/cross-cluster-replication-plugin": ["x-pack/plugins/cross_cluster_replication"], "@kbn/cross-cluster-replication-plugin/*": ["x-pack/plugins/cross_cluster_replication/*"], "@kbn/crypto": ["packages/kbn-crypto"], diff --git a/x-pack/plugins/alerting/common/rule.ts b/x-pack/plugins/alerting/common/rule.ts index 833d514df1f86..cc5d7fda4a8b6 100644 --- a/x-pack/plugins/alerting/common/rule.ts +++ b/x-pack/plugins/alerting/common/rule.ts @@ -77,6 +77,7 @@ export type RuleActionParams = SavedObjectAttributes; export type RuleActionParam = SavedObjectAttribute; export interface RuleAction { + uuid?: string; group: string; id: string; actionTypeId: string; diff --git a/x-pack/plugins/alerting/public/alert_api.test.ts b/x-pack/plugins/alerting/public/alert_api.test.ts index 2f09643e499e3..abbaa6a5049eb 100644 --- a/x-pack/plugins/alerting/public/alert_api.test.ts +++ b/x-pack/plugins/alerting/public/alert_api.test.ts @@ -109,6 +109,7 @@ describe('loadRule', () => { "params": Object { "message": "alert 37: {{context.message}}", }, + "uuid": "123-456", }, ], "alertTypeId": ".index-threshold", @@ -278,6 +279,7 @@ function getApiRule() { }, group: 'threshold met', id: '3619a0d0-582b-11ec-8995-2b1578a3bc5d', + uuid: '123-456', }, ], params: { x: 42 }, @@ -319,6 +321,7 @@ function getRule(): Rule<{ x: number }> { }, group: 'threshold met', id: '3619a0d0-582b-11ec-8995-2b1578a3bc5d', + uuid: '123-456', }, ], params: { x: 42 }, 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 cef3cf8804f40..ac57340f109b2 100644 --- a/x-pack/plugins/alerting/public/lib/common_transformations.test.ts +++ b/x-pack/plugins/alerting/public/lib/common_transformations.test.ts @@ -31,6 +31,7 @@ describe('common_transformations', () => { group: 'some group', id: 'some-connector-id', params: { foo: 'car', bar: [1, 2, 3] }, + uuid: '123-456', }, ], params: { bar: 'foo', numbers: { 1: [2, 3] } } as never, @@ -108,6 +109,7 @@ describe('common_transformations', () => { ], "foo": "car", }, + "uuid": "123-456", }, ], "alertTypeId": "some-rule-type", @@ -213,6 +215,7 @@ describe('common_transformations', () => { group: 'some group', id: 'some-connector-id', params: {}, + uuid: '123-456', }, ], params: {} as never, @@ -277,6 +280,7 @@ describe('common_transformations', () => { "group": "some group", "id": "some-connector-id", "params": Object {}, + "uuid": "123-456", }, ], "alertTypeId": "some-rule-type", diff --git a/x-pack/plugins/alerting/server/routes/bulk_edit_rules.test.ts b/x-pack/plugins/alerting/server/routes/bulk_edit_rules.test.ts index 0ff709c252f56..944b2db172c91 100644 --- a/x-pack/plugins/alerting/server/routes/bulk_edit_rules.test.ts +++ b/x-pack/plugins/alerting/server/routes/bulk_edit_rules.test.ts @@ -41,6 +41,7 @@ describe('bulkEditInternalRulesRoute', () => { params: { foo: true, }, + uuid: '123-456', }, ], consumer: 'bar', @@ -111,6 +112,7 @@ describe('bulkEditInternalRulesRoute', () => { params: { foo: true, }, + uuid: '123-456', }, ], }), diff --git a/x-pack/plugins/alerting/server/routes/bulk_edit_rules.ts b/x-pack/plugins/alerting/server/routes/bulk_edit_rules.ts index 6c3aba9f5ef43..fa30b0ff8d2ed 100644 --- a/x-pack/plugins/alerting/server/routes/bulk_edit_rules.ts +++ b/x-pack/plugins/alerting/server/routes/bulk_edit_rules.ts @@ -18,6 +18,7 @@ const ruleActionSchema = schema.object({ group: schema.string(), id: schema.string(), params: schema.recordOf(schema.string(), schema.any(), { defaultValue: {} }), + uuid: schema.maybe(schema.string()), }); const operationsSchema = schema.arrayOf( diff --git a/x-pack/plugins/alerting/server/routes/clone_rule.test.ts b/x-pack/plugins/alerting/server/routes/clone_rule.test.ts index 7b89f217f9c8f..6c79ca7680940 100644 --- a/x-pack/plugins/alerting/server/routes/clone_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/clone_rule.test.ts @@ -48,6 +48,7 @@ describe('cloneRuleRoute', () => { params: { foo: true, }, + uuid: '123-456', }, ], enabled: true, @@ -97,6 +98,7 @@ describe('cloneRuleRoute', () => { { ...ruleToClone.actions[0], connector_type_id: 'test', + uuid: '123-456', }, ], }; 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 cbb7965cab081..0d8caff92202a 100644 --- a/x-pack/plugins/alerting/server/routes/create_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/create_rule.test.ts @@ -51,6 +51,7 @@ describe('createRuleRoute', () => { params: { foo: true, }, + uuid: '123-456', }, ], enabled: true, @@ -100,6 +101,7 @@ describe('createRuleRoute', () => { { ...ruleToCreate.actions[0], connector_type_id: 'test', + uuid: '123-456', }, ], }; 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 065cd567f1f69..81b0ed5a6032a 100644 --- a/x-pack/plugins/alerting/server/routes/get_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/get_rule.test.ts @@ -44,6 +44,7 @@ describe('getRuleRoute', () => { params: { foo: true, }, + uuid: '123-456', }, ], consumer: 'bar', @@ -85,6 +86,7 @@ describe('getRuleRoute', () => { id: mockedAlert.actions[0].id, params: mockedAlert.actions[0].params, connector_type_id: mockedAlert.actions[0].actionTypeId, + uuid: mockedAlert.actions[0].uuid, }, ], }; diff --git a/x-pack/plugins/alerting/server/routes/get_rule.ts b/x-pack/plugins/alerting/server/routes/get_rule.ts index 6e7faac3131ab..06bb7716f7f66 100644 --- a/x-pack/plugins/alerting/server/routes/get_rule.ts +++ b/x-pack/plugins/alerting/server/routes/get_rule.ts @@ -60,7 +60,7 @@ const rewriteBodyRes: RewriteResponseCase> = ({ last_execution_date: executionStatus.lastExecutionDate, last_duration: executionStatus.lastDuration, }, - actions: actions.map(({ group, id, actionTypeId, params, frequency }) => ({ + actions: actions.map(({ group, id, actionTypeId, params, frequency, uuid }) => ({ group, id, params, @@ -72,6 +72,7 @@ const rewriteBodyRes: RewriteResponseCase> = ({ throttle: frequency.throttle, } : undefined, + ...(uuid && { uuid }), })), ...(lastRun ? { last_run: rewriteRuleLastRun(lastRun) } : {}), ...(nextRun ? { next_run: nextRun } : {}), diff --git a/x-pack/plugins/alerting/server/routes/lib/actions_schema.ts b/x-pack/plugins/alerting/server/routes/lib/actions_schema.ts index d89873a48c2ea..76c09e093543f 100644 --- a/x-pack/plugins/alerting/server/routes/lib/actions_schema.ts +++ b/x-pack/plugins/alerting/server/routes/lib/actions_schema.ts @@ -24,6 +24,7 @@ export const actionsSchema = schema.arrayOf( throttle: schema.nullable(schema.string({ validate: validateDurationSchema })), }) ), + uuid: schema.maybe(schema.string()), }), { defaultValue: [] } ); diff --git a/x-pack/plugins/alerting/server/routes/lib/rewrite_rule.ts b/x-pack/plugins/alerting/server/routes/lib/rewrite_rule.ts index bbcb489a9597e..eef33bb793d4a 100644 --- a/x-pack/plugins/alerting/server/routes/lib/rewrite_rule.ts +++ b/x-pack/plugins/alerting/server/routes/lib/rewrite_rule.ts @@ -57,7 +57,7 @@ export const rewriteRule = ({ last_execution_date: executionStatus.lastExecutionDate, last_duration: executionStatus.lastDuration, }, - actions: actions.map(({ group, id, actionTypeId, params, frequency }) => ({ + actions: actions.map(({ group, id, actionTypeId, params, frequency, uuid }) => ({ group, id, params, @@ -71,6 +71,7 @@ export const rewriteRule = ({ }, } : {}), + ...(uuid && { uuid }), })), ...(lastRun ? { last_run: rewriteRuleLastRun(lastRun) } : {}), ...(nextRun ? { next_run: nextRun } : {}), diff --git a/x-pack/plugins/alerting/server/routes/resolve_rule.test.ts b/x-pack/plugins/alerting/server/routes/resolve_rule.test.ts index 656874b5cf332..dfac49fc04a67 100644 --- a/x-pack/plugins/alerting/server/routes/resolve_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/resolve_rule.test.ts @@ -44,6 +44,7 @@ describe('resolveRuleRoute', () => { params: { foo: true, }, + uuid: '123-456', }, ], consumer: 'bar', @@ -97,6 +98,7 @@ describe('resolveRuleRoute', () => { id: mockedRule.actions[0].id, params: mockedRule.actions[0].params, connector_type_id: mockedRule.actions[0].actionTypeId, + uuid: mockedRule.actions[0].uuid, }, ], outcome: 'aliasMatch', 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 8c335a9bf9864..617ea3d8fe6e0 100644 --- a/x-pack/plugins/alerting/server/routes/update_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/update_rule.test.ts @@ -42,6 +42,7 @@ describe('updateRuleRoute', () => { updatedAt: new Date(), actions: [ { + uuid: '1234-5678', group: 'default', id: '2', actionTypeId: 'test', @@ -58,6 +59,7 @@ describe('updateRuleRoute', () => { notify_when: mockedAlert.notifyWhen, actions: [ { + uuid: '1234-5678', group: mockedAlert.actions[0].group, id: mockedAlert.actions[0].id, params: mockedAlert.actions[0].params, @@ -114,6 +116,7 @@ describe('updateRuleRoute', () => { "params": Object { "baz": true, }, + "uuid": "1234-5678", }, ], "name": "abc", diff --git a/x-pack/plugins/alerting/server/rules_client/lib/add_uuid.ts b/x-pack/plugins/alerting/server/rules_client/lib/add_uuid.ts new file mode 100644 index 0000000000000..be377467acbec --- /dev/null +++ b/x-pack/plugins/alerting/server/rules_client/lib/add_uuid.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { v4 } from 'uuid'; +import { NormalizedAlertAction, NormalizedAlertActionWithUuid } from '..'; + +export function addUuid(actions: NormalizedAlertAction[] = []): NormalizedAlertActionWithUuid[] { + return actions.map((action) => ({ + ...action, + uuid: action.uuid || v4(), + })); +} diff --git a/x-pack/plugins/alerting/server/rules_client/lib/denormalize_actions.ts b/x-pack/plugins/alerting/server/rules_client/lib/denormalize_actions.ts index 0f7a164d2a741..045053b5d7524 100644 --- a/x-pack/plugins/alerting/server/rules_client/lib/denormalize_actions.ts +++ b/x-pack/plugins/alerting/server/rules_client/lib/denormalize_actions.ts @@ -8,12 +8,11 @@ import { SavedObjectReference } from '@kbn/core/server'; import { RawRule } from '../../types'; import { preconfiguredConnectorActionRefPrefix } from '../common/constants'; -import { RulesClientContext } from '../types'; -import { NormalizedAlertAction } from '../types'; +import { NormalizedAlertActionWithUuid, RulesClientContext } from '../types'; export async function denormalizeActions( context: RulesClientContext, - alertActions: NormalizedAlertAction[] + alertActions: NormalizedAlertActionWithUuid[] ): Promise<{ actions: RawRule['actions']; references: SavedObjectReference[] }> { const references: SavedObjectReference[] = []; const actions: RawRule['actions'] = []; diff --git a/x-pack/plugins/alerting/server/rules_client/lib/extract_references.ts b/x-pack/plugins/alerting/server/rules_client/lib/extract_references.ts index 58f6f6ab20dbc..a374d7957e392 100644 --- a/x-pack/plugins/alerting/server/rules_client/lib/extract_references.ts +++ b/x-pack/plugins/alerting/server/rules_client/lib/extract_references.ts @@ -8,7 +8,7 @@ import { SavedObjectReference } from '@kbn/core/server'; import { RawRule, RuleTypeParams } from '../../types'; import { UntypedNormalizedRuleType } from '../../rule_type_registry'; -import { NormalizedAlertAction } from '../types'; +import { NormalizedAlertActionWithUuid } from '../types'; import { extractedSavedObjectParamReferenceNamePrefix } from '../common/constants'; import { RulesClientContext } from '../types'; import { denormalizeActions } from './denormalize_actions'; @@ -19,7 +19,7 @@ export async function extractReferences< >( context: RulesClientContext, ruleType: UntypedNormalizedRuleType, - ruleActions: NormalizedAlertAction[], + ruleActions: NormalizedAlertActionWithUuid[], ruleParams: Params ): Promise<{ actions: RawRule['actions']; diff --git a/x-pack/plugins/alerting/server/rules_client/lib/index.ts b/x-pack/plugins/alerting/server/rules_client/lib/index.ts index 1f9534a5c6da2..26cf359d14f15 100644 --- a/x-pack/plugins/alerting/server/rules_client/lib/index.ts +++ b/x-pack/plugins/alerting/server/rules_client/lib/index.ts @@ -15,3 +15,4 @@ export { checkAuthorizationAndGetTotal } from './check_authorization_and_get_tot export { scheduleTask } from './schedule_task'; export { createNewAPIKeySet } from './create_new_api_key_set'; export { recoverRuleAlerts } from './recover_rule_alerts'; +export { addUuid } from './add_uuid'; diff --git a/x-pack/plugins/alerting/server/rules_client/lib/validate_actions.ts b/x-pack/plugins/alerting/server/rules_client/lib/validate_actions.ts index ea6145b8f6e99..0f039d0d95f9b 100644 --- a/x-pack/plugins/alerting/server/rules_client/lib/validate_actions.ts +++ b/x-pack/plugins/alerting/server/rules_client/lib/validate_actions.ts @@ -31,6 +31,15 @@ export async function validateActions( const errors = []; + const uniqueActions = new Set(actions.map((action) => action.uuid)); + if (uniqueActions.size < actions.length) { + errors.push( + i18n.translate('xpack.alerting.rulesClient.validateActions.hasDuplicatedUuid', { + defaultMessage: 'Actions have duplicated UUIDs', + }) + ); + } + // check for actions using connectors with missing secrets const actionsClient = await context.getActionsClient(); const actionIds = [...new Set(actions.map((action) => action.id))]; diff --git a/x-pack/plugins/alerting/server/rules_client/methods/bulk_edit.ts b/x-pack/plugins/alerting/server/rules_client/methods/bulk_edit.ts index 6f3c28437a48e..9bf0280e4314b 100644 --- a/x-pack/plugins/alerting/server/rules_client/methods/bulk_edit.ts +++ b/x-pack/plugins/alerting/server/rules_client/methods/bulk_edit.ts @@ -54,13 +54,14 @@ import { API_KEY_GENERATE_CONCURRENCY, } from '../common/constants'; import { getMappedParams } from '../common/mapped_params_utils'; -import { getAlertFromRaw, extractReferences, validateActions, updateMeta } from '../lib'; +import { getAlertFromRaw, extractReferences, validateActions, updateMeta, addUuid } from '../lib'; import { NormalizedAlertAction, BulkOperationError, RuleBulkOperationAggregation, RulesClientContext, CreateAPIKeyResult, + NormalizedAlertActionWithUuid, } from '../types'; export type BulkEditFields = keyof Pick< @@ -452,7 +453,7 @@ async function updateRuleAttributesAndParamsInMemory omit(action, 'frequency')); if (!attributes.notifyWhen) { diff --git a/x-pack/plugins/alerting/server/rules_client/methods/create.ts b/x-pack/plugins/alerting/server/rules_client/methods/create.ts index 09dc8f62494b8..48735c0327d04 100644 --- a/x-pack/plugins/alerting/server/rules_client/methods/create.ts +++ b/x-pack/plugins/alerting/server/rules_client/methods/create.ts @@ -11,16 +11,15 @@ import { AlertConsumers } from '@kbn/rule-data-utils'; import { SavedObjectsUtils } from '@kbn/core/server'; import { withSpan } from '@kbn/apm-utils'; import { parseDuration } from '../../../common/parse_duration'; -import { RawRule, SanitizedRule, RuleTypeParams, RuleAction, Rule } from '../../types'; +import { RawRule, SanitizedRule, RuleTypeParams, Rule } from '../../types'; import { WriteOperations, AlertingAuthorizationEntity } from '../../authorization'; import { validateRuleTypeParams, getRuleNotifyWhenType, getDefaultMonitoring } from '../../lib'; import { getRuleExecutionStatusPending } from '../../lib/rule_execution_status'; -import { createRuleSavedObject, extractReferences, validateActions } from '../lib'; +import { createRuleSavedObject, extractReferences, validateActions, addUuid } from '../lib'; import { generateAPIKeyName, getMappedParams, apiKeyAsAlertAttributes } from '../common'; import { ruleAuditEvent, RuleAuditAction } from '../common/audit_events'; -import { RulesClientContext } from '../types'; +import { NormalizedAlertAction, RulesClientContext } from '../types'; -type NormalizedAlertAction = Omit; interface SavedObjectOptions { id?: string; migrationVersion?: Record; @@ -51,8 +50,10 @@ export interface CreateOptions { export async function create( context: RulesClientContext, - { data, options, allowMissingConnectorSecrets }: CreateOptions + { data: initialData, options, allowMissingConnectorSecrets }: CreateOptions ): Promise> { + const data = { ...initialData, actions: addUuid(initialData.actions) }; + const id = options?.id || SavedObjectsUtils.generateId(); try { @@ -105,7 +106,6 @@ export async function create( } } - await validateActions(context, ruleType, data, allowMissingConnectorSecrets); await withSpan({ name: 'validateActions', type: 'rules' }, () => validateActions(context, ruleType, data, allowMissingConnectorSecrets) ); diff --git a/x-pack/plugins/alerting/server/rules_client/methods/update.ts b/x-pack/plugins/alerting/server/rules_client/methods/update.ts index 5e116f9f21b28..673f300a722c6 100644 --- a/x-pack/plugins/alerting/server/rules_client/methods/update.ts +++ b/x-pack/plugins/alerting/server/rules_client/methods/update.ts @@ -24,7 +24,13 @@ import { bulkMarkApiKeysForInvalidation } from '../../invalidate_pending_api_key import { ruleAuditEvent, RuleAuditAction } from '../common/audit_events'; import { getMappedParams } from '../common/mapped_params_utils'; import { NormalizedAlertAction, RulesClientContext } from '../types'; -import { validateActions, extractReferences, updateMeta, getPartialRuleFromRaw } from '../lib'; +import { + validateActions, + extractReferences, + updateMeta, + getPartialRuleFromRaw, + addUuid, +} from '../lib'; import { generateAPIKeyName, apiKeyAsAlertAttributes } from '../common'; export interface UpdateOptions { @@ -143,9 +149,11 @@ async function updateWithOCC( async function updateAlert( context: RulesClientContext, - { id, data, allowMissingConnectorSecrets }: UpdateOptions, + { id, data: initialData, allowMissingConnectorSecrets }: UpdateOptions, { attributes, version }: SavedObject ): Promise> { + const data = { ...initialData, actions: addUuid(initialData.actions) }; + const ruleType = context.ruleTypeRegistry.get(attributes.alertTypeId); // TODO https://github.com/elastic/kibana/issues/148414 diff --git a/x-pack/plugins/alerting/server/rules_client/tests/bulk_edit.test.ts b/x-pack/plugins/alerting/server/rules_client/tests/bulk_edit.test.ts index 9f302d178b394..9bcf957a467a6 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/bulk_edit.test.ts +++ b/x-pack/plugins/alerting/server/rules_client/tests/bulk_edit.test.ts @@ -20,6 +20,7 @@ import { ActionsAuthorization, ActionsClient } from '@kbn/actions-plugin/server' import { auditLoggerMock } from '@kbn/security-plugin/server/audit/mocks'; import { getBeforeSetup, setGlobalDate } from './lib'; import { bulkMarkApiKeysForInvalidation } from '../../invalidate_pending_api_keys/bulk_mark_api_keys_for_invalidation'; +import { NormalizedAlertAction } from '../types'; jest.mock('../../invalidate_pending_api_keys/bulk_mark_api_keys_for_invalidation', () => ({ bulkMarkApiKeysForInvalidation: jest.fn(), @@ -29,6 +30,11 @@ jest.mock('../../lib/snooze/is_snooze_active', () => ({ isSnoozeActive: jest.fn(), })); +jest.mock('uuid', () => { + let uuid = 100; + return { v4: () => `${uuid++}` }; +}); + const { isSnoozeActive } = jest.requireMock('../../lib/snooze/is_snooze_active'); const taskManager = taskManagerMock.createStart(); @@ -115,7 +121,29 @@ describe('bulkEdit()', () => { beforeEach(async () => { rulesClient = new RulesClient(rulesClientParams); + + actionsClient = (await rulesClientParams.getActionsClient()) as jest.Mocked; + actionsClient.getBulk.mockReset(); + actionsClient.getBulk.mockResolvedValue([ + { + id: '1', + actionTypeId: 'test', + config: { + from: 'me@me.com', + hasAuth: false, + host: 'hello', + port: 22, + secure: null, + service: null, + }, + isMissingSecrets: false, + name: 'email connector', + isPreconfigured: false, + isDeprecated: false, + }, + ]); rulesClientParams.getActionsClient.mockResolvedValue(actionsClient); + authorization.getFindAuthorizationFilter.mockResolvedValue({ ensureRuleTypeIsAuthorized() {}, }); @@ -426,6 +454,146 @@ describe('bulkEdit()', () => { }); }); + describe('actions operations', () => { + beforeEach(() => { + mockCreatePointInTimeFinderAsInternalUser({ + saved_objects: [existingDecryptedRule], + }); + }); + + test('should add uuid to new actions', async () => { + const existingAction = { + frequency: { + notifyWhen: 'onActiveAlert', + summary: false, + throttle: null, + }, + group: 'default', + id: '1', + params: {}, + uuid: '111', + }; + const newAction = { + frequency: { + notifyWhen: 'onActiveAlert', + summary: false, + throttle: null, + }, + group: 'default', + id: '2', + params: {}, + }; + const newAction2 = { + frequency: { + notifyWhen: 'onActiveAlert', + summary: false, + throttle: null, + }, + group: 'default', + id: '3', + params: {}, + }; + + unsecuredSavedObjectsClient.bulkCreate.mockResolvedValue({ + saved_objects: [ + { + ...existingRule, + attributes: { + ...existingRule.attributes, + actions: [ + { + ...existingAction, + actionRef: 'action_0', + }, + { + ...newAction, + actionRef: 'action_1', + uuid: '222', + }, + ], + }, + references: [ + { + name: 'action_0', + type: 'action', + id: '1', + }, + { + name: 'action_1', + type: 'action', + id: '2', + }, + ], + }, + ], + }); + + const result = await rulesClient.bulkEdit({ + filter: '', + operations: [ + { + field: 'actions', + operation: 'add', + value: [existingAction, newAction, newAction2] as NormalizedAlertAction[], + }, + ], + }); + + expect(unsecuredSavedObjectsClient.bulkCreate).toHaveBeenCalledWith( + [ + { + ...existingRule, + attributes: { + ...existingRule.attributes, + actions: [ + { + actionRef: 'action_0', + actionTypeId: 'test', + frequency: { notifyWhen: 'onActiveAlert', summary: false, throttle: null }, + group: 'default', + params: {}, + uuid: '111', + }, + { + actionRef: '', + actionTypeId: '', + frequency: { notifyWhen: 'onActiveAlert', summary: false, throttle: null }, + group: 'default', + params: {}, + uuid: '100', + }, + { + actionRef: '', + actionTypeId: '', + frequency: { notifyWhen: 'onActiveAlert', summary: false, throttle: null }, + group: 'default', + params: {}, + uuid: '101', + }, + ], + apiKey: null, + apiKeyOwner: null, + meta: { versionApiKeyLastmodified: 'v8.2.0' }, + name: 'my rule name', + enabled: false, + updatedAt: '2019-02-12T21:01:22.479Z', + updatedBy: 'elastic', + tags: ['foo'], + }, + references: [{ id: '1', name: 'action_0', type: 'action' }], + }, + ], + { overwrite: true } + ); + expect(result.rules[0]).toEqual({ + ...existingRule.attributes, + actions: [existingAction, { ...newAction, uuid: '222' }], + id: existingRule.id, + snoozeSchedule: [], + }); + }); + }); + describe('index pattern operations', () => { beforeEach(() => { mockCreatePointInTimeFinderAsInternalUser({ diff --git a/x-pack/plugins/alerting/server/rules_client/tests/create.test.ts b/x-pack/plugins/alerting/server/rules_client/tests/create.test.ts index dddfbe85f9ee3..84226a318f9c3 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/create.test.ts +++ b/x-pack/plugins/alerting/server/rules_client/tests/create.test.ts @@ -38,6 +38,11 @@ jest.mock('@kbn/core-saved-objects-utils-server', () => { }; }); +jest.mock('uuid', () => { + let uuid = 100; + return { v4: () => `${uuid++}` }; +}); + const taskManager = taskManagerMock.createStart(); const ruleTypeRegistry = ruleTypeRegistryMock.create(); const unsecuredSavedObjectsClient = savedObjectsClientMock.create(); @@ -406,6 +411,7 @@ describe('create()', () => { "params": Object { "foo": true, }, + "uuid": "102", }, ], "alertTypeId": "123", @@ -624,6 +630,7 @@ describe('create()', () => { "params": Object { "foo": true, }, + "uuid": "104", }, ], "alertTypeId": "123", @@ -1053,6 +1060,7 @@ describe('create()', () => { params: { foo: true, }, + uuid: '108', }, { group: 'default', @@ -1061,6 +1069,7 @@ describe('create()', () => { params: { foo: true, }, + uuid: '109', }, { group: 'default', @@ -1069,6 +1078,7 @@ describe('create()', () => { params: { foo: true, }, + uuid: '110', }, ], alertTypeId: '123', @@ -1272,7 +1282,13 @@ describe('create()', () => { 'alert', { actions: [ - { actionRef: 'action_0', actionTypeId: 'test', group: 'default', params: { foo: true } }, + { + actionRef: 'action_0', + actionTypeId: 'test', + group: 'default', + params: { foo: true }, + uuid: '112', + }, ], alertTypeId: '123', apiKey: null, @@ -1445,7 +1461,13 @@ describe('create()', () => { 'alert', { actions: [ - { actionRef: 'action_0', actionTypeId: 'test', group: 'default', params: { foo: true } }, + { + actionRef: 'action_0', + actionTypeId: 'test', + group: 'default', + params: { foo: true }, + uuid: '113', + }, ], alertTypeId: '123', apiKey: null, @@ -1612,6 +1634,7 @@ describe('create()', () => { group: 'default', actionTypeId: 'test', params: { foo: true }, + uuid: '115', }, ], alertTypeId: '123', @@ -1747,6 +1770,7 @@ describe('create()', () => { group: 'default', actionTypeId: 'test', params: { foo: true }, + uuid: '116', }, ], legacyId: null, @@ -1882,6 +1906,7 @@ describe('create()', () => { group: 'default', actionTypeId: 'test', params: { foo: true }, + uuid: '117', }, ], legacyId: null, @@ -2044,6 +2069,7 @@ describe('create()', () => { }, actionRef: 'action_0', actionTypeId: 'test', + uuid: '118', }, ], apiKeyOwner: null, @@ -2409,6 +2435,7 @@ describe('create()', () => { group: 'default', actionTypeId: 'test', params: { foo: true }, + uuid: '126', }, ], alertTypeId: '123', @@ -2513,6 +2540,7 @@ describe('create()', () => { group: 'default', actionTypeId: 'test', params: { foo: true }, + uuid: '127', }, ], legacyId: null, diff --git a/x-pack/plugins/alerting/server/rules_client/tests/update.test.ts b/x-pack/plugins/alerting/server/rules_client/tests/update.test.ts index 4d16f3e5d66a0..2e1be7076004a 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/update.test.ts +++ b/x-pack/plugins/alerting/server/rules_client/tests/update.test.ts @@ -37,6 +37,11 @@ jest.mock('../../invalidate_pending_api_keys/bulk_mark_api_keys_for_invalidation bulkMarkApiKeysForInvalidation: jest.fn(), })); +jest.mock('uuid', () => { + let uuid = 100; + return { v4: () => `${uuid++}` }; +}); + const bulkMarkApiKeysForInvalidationMock = bulkMarkApiKeysForInvalidation as jest.Mock; const taskManager = taskManagerMock.createStart(); const ruleTypeRegistry = ruleTypeRegistryMock.create(); @@ -350,6 +355,7 @@ describe('update()', () => { "params": Object { "foo": true, }, + "uuid": "100", }, Object { "actionRef": "action_1", @@ -358,6 +364,7 @@ describe('update()', () => { "params": Object { "foo": true, }, + "uuid": "101", }, Object { "actionRef": "action_2", @@ -366,6 +373,7 @@ describe('update()', () => { "params": Object { "foo": true, }, + "uuid": "102", }, ], "alertTypeId": "myType", @@ -585,6 +593,7 @@ describe('update()', () => { params: { foo: true, }, + uuid: '103', }, { group: 'default', @@ -593,6 +602,7 @@ describe('update()', () => { params: { foo: true, }, + uuid: '104', }, { group: 'custom', @@ -601,6 +611,7 @@ describe('update()', () => { params: { foo: true, }, + uuid: '105', }, ], alertTypeId: 'myType', @@ -779,7 +790,13 @@ describe('update()', () => { 'alert', { actions: [ - { actionRef: 'action_0', actionTypeId: 'test', group: 'default', params: { foo: true } }, + { + actionRef: 'action_0', + actionTypeId: 'test', + group: 'default', + params: { foo: true }, + uuid: '106', + }, ], alertTypeId: 'myType', apiKey: null, @@ -953,6 +970,7 @@ describe('update()', () => { "params": Object { "foo": true, }, + "uuid": "107", }, ], "alertTypeId": "myType", @@ -1101,6 +1119,7 @@ describe('update()', () => { "params": Object { "foo": true, }, + "uuid": "108", }, ], "alertTypeId": "myType", @@ -2113,6 +2132,7 @@ describe('update()', () => { params: { foo: true, }, + uuid: '144', }, ], alertTypeId: 'myType', @@ -2522,4 +2542,166 @@ describe('update()', () => { ); }); }); + + test('updates an action with uuid and adds uuid to an action without it', async () => { + actionsClient.getBulk.mockReset(); + actionsClient.getBulk.mockResolvedValue([ + { + id: '1', + actionTypeId: 'test', + config: { + from: 'me@me.com', + hasAuth: false, + host: 'hello', + port: 22, + secure: null, + service: null, + }, + isMissingSecrets: false, + name: 'email connector', + isPreconfigured: false, + isDeprecated: false, + }, + ]); + unsecuredSavedObjectsClient.create.mockResolvedValueOnce({ + id: '1', + type: 'alert', + attributes: { + enabled: true, + schedule: { interval: '1m' }, + params: { + bar: true, + }, + actions: [ + { + group: 'default', + actionRef: 'action_0', + actionTypeId: 'test', + params: { + foo: true, + }, + frequency: { + notifyWhen: 'onActiveAlert', + throttle: null, + summary: false, + }, + uuid: '123-456', + }, + { + group: 'default', + actionRef: 'action_1', + actionTypeId: 'test', + params: { + foo: true, + }, + frequency: { + notifyWhen: 'onActiveAlert', + throttle: null, + summary: false, + }, + uuid: '111-111', + }, + ], + scheduledTaskId: 'task-123', + createdAt: new Date().toISOString(), + updatedAt: new Date().toISOString(), + }, + references: [ + { + name: 'action_0', + type: 'action', + id: '1', + }, + { + name: 'action_1', + type: 'action', + id: '2', + }, + ], + }); + await rulesClient.update({ + id: '1', + data: { + schedule: { interval: '1m' }, + name: 'abc', + tags: ['foo'], + params: { + bar: true, + risk_score: 40, + severity: 'low', + }, + actions: [ + { + group: 'default', + id: '1', + params: { + foo: true, + }, + frequency: { + notifyWhen: 'onActiveAlert', + throttle: null, + summary: false, + }, + uuid: '123-456', + }, + { + group: 'default', + id: '2', + params: { + foo: true, + }, + frequency: { + notifyWhen: 'onActiveAlert', + throttle: null, + summary: false, + }, + }, + ], + }, + }); + expect(unsecuredSavedObjectsClient.create).toHaveBeenCalledWith( + 'alert', + { + actions: [ + { + actionRef: 'action_0', + actionTypeId: 'test', + frequency: { notifyWhen: 'onActiveAlert', summary: false, throttle: null }, + group: 'default', + params: { foo: true }, + uuid: '123-456', + }, + { + actionRef: '', + actionTypeId: '', + frequency: { notifyWhen: 'onActiveAlert', summary: false, throttle: null }, + group: 'default', + params: { foo: true }, + uuid: '151', + }, + ], + alertTypeId: 'myType', + apiKey: null, + apiKeyOwner: null, + consumer: 'myApp', + enabled: true, + mapped_params: { risk_score: 40, severity: '20-low' }, + meta: { versionApiKeyLastmodified: 'v7.10.0' }, + name: 'abc', + notifyWhen: null, + params: { bar: true, risk_score: 40, severity: 'low' }, + schedule: { interval: '1m' }, + scheduledTaskId: 'task-123', + tags: ['foo'], + updatedAt: '2019-02-12T21:01:22.479Z', + updatedBy: 'elastic', + }, + { + id: '1', + overwrite: true, + references: [{ id: '1', name: 'action_0', type: 'action' }], + version: '123', + } + ); + }); }); diff --git a/x-pack/plugins/alerting/server/rules_client/types.ts b/x-pack/plugins/alerting/server/rules_client/types.ts index ff59b5527f902..c6243d6fad5e2 100644 --- a/x-pack/plugins/alerting/server/rules_client/types.ts +++ b/x-pack/plugins/alerting/server/rules_client/types.ts @@ -73,6 +73,10 @@ export interface RulesClientContext { export type NormalizedAlertAction = Omit; +export type NormalizedAlertActionWithUuid = Omit & { + uuid: string; +}; + export interface RegistryAlertTypeWithAuth extends RegistryRuleType { authorizedConsumers: string[]; } diff --git a/x-pack/plugins/alerting/server/saved_objects/mappings.ts b/x-pack/plugins/alerting/server/saved_objects/mappings.ts index be70255f18840..f065c5e069ce1 100644 --- a/x-pack/plugins/alerting/server/saved_objects/mappings.ts +++ b/x-pack/plugins/alerting/server/saved_objects/mappings.ts @@ -41,6 +41,7 @@ export const alertMappings: SavedObjectsTypeMappingDefinition = { type: 'keyword', }, actions: { + dynamic: false, type: 'nested', properties: { group: { diff --git a/x-pack/plugins/alerting/server/saved_objects/migrations/8.7/index.ts b/x-pack/plugins/alerting/server/saved_objects/migrations/8.7/index.ts index 1b49f606cb6b5..831e4eff10d43 100644 --- a/x-pack/plugins/alerting/server/saved_objects/migrations/8.7/index.ts +++ b/x-pack/plugins/alerting/server/saved_objects/migrations/8.7/index.ts @@ -7,6 +7,7 @@ import { SavedObjectUnsanitizedDoc } from '@kbn/core-saved-objects-server'; import { EncryptedSavedObjectsPluginSetup } from '@kbn/encrypted-saved-objects-plugin/server'; +import { v4 as uuidv4 } from 'uuid'; import { extractedSavedObjectParamReferenceNamePrefix } from '../../../rules_client/common/constants'; import { createEsoMigration, @@ -37,6 +38,27 @@ function addGroupByToEsQueryRule( return doc; } +function addActionUuid( + doc: SavedObjectUnsanitizedDoc +): SavedObjectUnsanitizedDoc { + const { + attributes: { actions }, + } = doc; + + return { + ...doc, + attributes: { + ...doc.attributes, + actions: actions + ? actions.map((action) => ({ + ...action, + uuid: uuidv4(), + })) + : [], + }, + }; +} + function addLogViewRefToLogThresholdRule( doc: SavedObjectUnsanitizedDoc ): SavedObjectUnsanitizedDoc { @@ -94,5 +116,10 @@ export const getMigrations870 = (encryptedSavedObjects: EncryptedSavedObjectsPlu createEsoMigration( encryptedSavedObjects, (doc: SavedObjectUnsanitizedDoc): doc is SavedObjectUnsanitizedDoc => true, - pipeMigrations(addGroupByToEsQueryRule, addLogViewRefToLogThresholdRule, addOutcomeOrder) + pipeMigrations( + addGroupByToEsQueryRule, + addLogViewRefToLogThresholdRule, + addOutcomeOrder, + addActionUuid + ) ); diff --git a/x-pack/plugins/alerting/server/saved_objects/migrations/index.test.ts b/x-pack/plugins/alerting/server/saved_objects/migrations/index.test.ts index 7ecf7596259fa..940b926f5e326 100644 --- a/x-pack/plugins/alerting/server/saved_objects/migrations/index.test.ts +++ b/x-pack/plugins/alerting/server/saved_objects/migrations/index.test.ts @@ -8,7 +8,7 @@ import sinon from 'sinon'; import { v4 as uuidv4 } from 'uuid'; import { getMigrations } from '.'; -import { RawRule } from '../../types'; +import { RawRule, RawRuleAction } from '../../types'; import { SavedObjectMigrationContext, SavedObjectUnsanitizedDoc } from '@kbn/core/server'; import { encryptedSavedObjectsMock } from '@kbn/encrypted-saved-objects-plugin/server/mocks'; import { migrationMocks } from '@kbn/core/server/mocks'; @@ -2628,6 +2628,28 @@ describe('successful migrations', () => { outcomeOrder: 0, }); }); + + test('adds uuid to rule actions', () => { + const migration870 = getMigrations(encryptedSavedObjectsSetup, {}, isPreconfigured)['8.7.0']; + const rule = getMockData( + { + params: { foo: true }, + alertTypeId: '.not-es-query', + }, + true + ); + const migratedAlert870 = migration870(rule, migrationContext); + + expect(migratedAlert870.attributes.actions).toEqual([ + { + group: 'default', + actionRef: '1', + actionTypeId: '1', + params: { foo: true }, + uuid: expect.stringMatching(/.*\S.*/), // non-empty string + }, + ]); + }); }); describe('Metrics Inventory Threshold rule', () => { @@ -2974,7 +2996,7 @@ function getMockData( params: { foo: true, }, - }, + } as unknown as RawRuleAction, ], ...overwrites, }, diff --git a/x-pack/plugins/alerting/server/task_runner/fixtures.ts b/x-pack/plugins/alerting/server/task_runner/fixtures.ts index 7acb36c34bd9c..920afcfbe3035 100644 --- a/x-pack/plugins/alerting/server/task_runner/fixtures.ts +++ b/x-pack/plugins/alerting/server/task_runner/fixtures.ts @@ -50,6 +50,7 @@ export const RULE_ACTIONS = [ params: { foo: true, }, + uuid: '111-111', }, { actionTypeId: 'action', @@ -58,6 +59,7 @@ export const RULE_ACTIONS = [ params: { isResolved: true, }, + uuid: '222-222', }, ]; @@ -190,6 +192,7 @@ export const mockedRuleTypeSavedObject: Rule = { params: { foo: true, }, + uuid: '111-111', }, { group: RecoveredActionGroup.id, @@ -198,6 +201,7 @@ export const mockedRuleTypeSavedObject: Rule = { params: { isResolved: true, }, + uuid: '222-222', }, ], executionStatus: { diff --git a/x-pack/plugins/alerting/server/task_runner/rule_action_helper.test.ts b/x-pack/plugins/alerting/server/task_runner/rule_action_helper.test.ts index a2488b6a6cd01..c69d394d258ec 100644 --- a/x-pack/plugins/alerting/server/task_runner/rule_action_helper.test.ts +++ b/x-pack/plugins/alerting/server/task_runner/rule_action_helper.test.ts @@ -20,6 +20,7 @@ const mockOldAction: RuleAction = { group: 'default', actionTypeId: 'slack', params: {}, + uuid: '123-456', }; const mockAction: RuleAction = { @@ -32,6 +33,7 @@ const mockAction: RuleAction = { notifyWhen: 'onActiveAlert', throttle: null, }, + uuid: '123-456', }; const mockSummaryAction: RuleAction = { 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 8b7284bb8ffd4..779b467160b2d 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 @@ -1284,6 +1284,7 @@ describe('Task Runner', () => { params: { foo: true, }, + uuid: '111-111', }, { group: recoveryActionGroup.id, @@ -1292,6 +1293,7 @@ describe('Task Runner', () => { params: { isResolved: true, }, + uuid: '222-222', }, ], }); @@ -1388,6 +1390,7 @@ describe('Task Runner', () => { params: { foo: true, }, + uuid: '111-111', }, ], }); @@ -1464,6 +1467,7 @@ describe('Task Runner', () => { params: { foo: true, }, + uuid: '111-111', }, ], }); diff --git a/x-pack/plugins/alerting/server/types.ts b/x-pack/plugins/alerting/server/types.ts index 713c000df3beb..4997d9563d59e 100644 --- a/x-pack/plugins/alerting/server/types.ts +++ b/x-pack/plugins/alerting/server/types.ts @@ -237,6 +237,7 @@ export type UntypedRuleType = RuleType< >; export interface RawRuleAction extends SavedObjectAttributes { + uuid: string; group: string; actionRef: string; actionTypeId: string; diff --git a/x-pack/plugins/cloud_security_posture/common/runtime_mappings/get_belongs_to_runtime_mapping.ts b/x-pack/plugins/cloud_security_posture/common/runtime_mappings/get_belongs_to_runtime_mapping.ts index 3ad655738e24e..ac978f3b220e4 100644 --- a/x-pack/plugins/cloud_security_posture/common/runtime_mappings/get_belongs_to_runtime_mapping.ts +++ b/x-pack/plugins/cloud_security_posture/common/runtime_mappings/get_belongs_to_runtime_mapping.ts @@ -18,8 +18,8 @@ export const getBelongsToRuntimeMapping = (): MappingRuntimeFields => ({ source: ` if (!doc.containsKey('rule.benchmark.posture_type')) { - def identifier = doc["cluster_id"].value; - emit(identifier); + def belongs_to = doc["cluster_id"].value; + emit(belongs_to); return } else @@ -29,21 +29,21 @@ export const getBelongsToRuntimeMapping = (): MappingRuntimeFields => ({ def policy_template_type = doc["rule.benchmark.posture_type"].value; if (policy_template_type == "cspm") { - def identifier = doc["cloud.account.name"].value; - emit(identifier); + def belongs_to = doc["cloud.account.name"].value; + emit(belongs_to); return } if (policy_template_type == "kspm") { - def identifier = doc["cluster_id"].value; - emit(identifier); + def belongs_to = doc["cluster_id"].value; + emit(belongs_to); return } } - def identifier = doc["cluster_id"].value; - emit(identifier); + def belongs_to = doc["cluster_id"].value; + emit(belongs_to); return } `, diff --git a/x-pack/plugins/cloud_security_posture/common/runtime_mappings/get_safe_posture_type_runtime_mapping.ts b/x-pack/plugins/cloud_security_posture/common/runtime_mappings/get_safe_posture_type_runtime_mapping.ts new file mode 100644 index 0000000000000..2fb06e6ea550c --- /dev/null +++ b/x-pack/plugins/cloud_security_posture/common/runtime_mappings/get_safe_posture_type_runtime_mapping.ts @@ -0,0 +1,34 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/types'; + +/** + * Creates the `safe_posture_type` runtime field with the value of either + * `kspm` or `cspm` based on the value of `rule.benchmark.posture_type` + */ +export const getSafePostureTypeRuntimeMapping = (): MappingRuntimeFields => ({ + safe_posture_type: { + type: 'keyword', + script: { + source: ` + if (!doc.containsKey('rule.benchmark.posture_type')) + { + def safe_posture_type = 'kspm'; + emit(safe_posture_type); + return + } + else + { + def safe_posture_type = doc["rule.benchmark.posture_type"].value; + emit(safe_posture_type); + return + } + `, + }, + }, +}); diff --git a/x-pack/plugins/cloud_security_posture/public/common/hooks/use_navigate_findings.test.ts b/x-pack/plugins/cloud_security_posture/public/common/hooks/use_navigate_findings.test.ts index 616fa533e7c52..b18a5833a093f 100644 --- a/x-pack/plugins/cloud_security_posture/public/common/hooks/use_navigate_findings.test.ts +++ b/x-pack/plugins/cloud_security_posture/public/common/hooks/use_navigate_findings.test.ts @@ -35,37 +35,52 @@ describe('useNavigateFindings', () => { const push = jest.fn(); (useHistory as jest.Mock).mockReturnValueOnce({ push }); - const filter = { foo: 1 }; + const { result } = renderHook(() => useNavigateFindings()); + + act(() => { + result.current({ foo: 1 }); + }); + + expect(push).toHaveBeenCalledWith({ + pathname: '/cloud_security_posture/findings/default', + search: + "cspq=(filters:!((meta:(alias:!n,disabled:!f,key:foo,negate:!f,type:phrase),query:(match_phrase:(foo:1)))),query:(language:kuery,query:''))", + }); + expect(push).toHaveBeenCalledTimes(1); + }); + + it('creates a URL to findings page with correct path and negated filter', () => { + const push = jest.fn(); + (useHistory as jest.Mock).mockReturnValueOnce({ push }); const { result } = renderHook(() => useNavigateFindings()); act(() => { - result.current({ filter }); + result.current({ foo: { value: 1, negate: true } }); }); expect(push).toHaveBeenCalledWith({ pathname: '/cloud_security_posture/findings/default', search: - "cspq=(filters:!((meta:(alias:!n,disabled:!f,key:filter,negate:!f,params:(query:(foo:1)),type:phrase),query:(match_phrase:(filter:(foo:1))))),query:(language:kuery,query:''))", + "cspq=(filters:!((meta:(alias:!n,disabled:!f,key:foo,negate:!t,type:phrase),query:(match_phrase:(foo:1)))),query:(language:kuery,query:''))", }); expect(push).toHaveBeenCalledTimes(1); }); + it('creates a URL to findings resource page with correct path and filter', () => { const push = jest.fn(); (useHistory as jest.Mock).mockReturnValueOnce({ push }); - const filter = { foo: 1 }; - const { result } = renderHook(() => useNavigateFindingsByResource()); act(() => { - result.current({ filter }); + result.current({ foo: 1 }); }); expect(push).toHaveBeenCalledWith({ pathname: '/cloud_security_posture/findings/resource', search: - "cspq=(filters:!((meta:(alias:!n,disabled:!f,key:filter,negate:!f,params:(query:(foo:1)),type:phrase),query:(match_phrase:(filter:(foo:1))))),query:(language:kuery,query:''))", + "cspq=(filters:!((meta:(alias:!n,disabled:!f,key:foo,negate:!f,type:phrase),query:(match_phrase:(foo:1)))),query:(language:kuery,query:''))", }); expect(push).toHaveBeenCalledTimes(1); }); diff --git a/x-pack/plugins/cloud_security_posture/public/common/hooks/use_navigate_findings.ts b/x-pack/plugins/cloud_security_posture/public/common/hooks/use_navigate_findings.ts index 946941b181292..08d4a169c6aba 100644 --- a/x-pack/plugins/cloud_security_posture/public/common/hooks/use_navigate_findings.ts +++ b/x-pack/plugins/cloud_security_posture/public/common/hooks/use_navigate_findings.ts @@ -12,25 +12,45 @@ import { findingsNavigation } from '../navigation/constants'; import { encodeQuery } from '../navigation/query_utils'; import { useKibana } from './use_kibana'; -const createFilter = (key: string, value: string, negate = false): Filter => ({ - meta: { - alias: null, - negate, - disabled: false, - type: 'phrase', - key, - params: { query: value }, - }, - query: { match_phrase: { [key]: value } }, -}); +interface NegatedValue { + value: string | number; + negate: boolean; +} + +type FilterValue = string | number | NegatedValue; + +export type NavFilter = Record; + +const createFilter = (key: string, filterValue: FilterValue): Filter => { + let negate = false; + let value = filterValue; + if (typeof filterValue === 'object') { + negate = filterValue.negate; + value = filterValue.value; + } + + return { + meta: { + alias: null, + negate, + disabled: false, + type: 'phrase', + key, + }, + query: { match_phrase: { [key]: value } }, + }; +}; const useNavigate = (pathname: string) => { const history = useHistory(); const { services } = useKibana(); return useCallback( - (filterParams: Record = {}) => { - const filters = Object.entries(filterParams).map(([key, value]) => createFilter(key, value)); + (filterParams: NavFilter = {}) => { + const filters = Object.entries(filterParams).map(([key, filterValue]) => + createFilter(key, filterValue) + ); + history.push({ pathname, search: encodeQuery({ diff --git a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.tsx b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.tsx index 44d2795337bf4..036bf86003d2e 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.tsx @@ -26,7 +26,7 @@ import { KSPM_POLICY_TEMPLATE, RULE_FAILED, } from '../../../../common/constants'; -import { useNavigateFindings } from '../../../common/hooks/use_navigate_findings'; +import { NavFilter, useNavigateFindings } from '../../../common/hooks/use_navigate_findings'; import { ClusterDetailsBox } from './cluster_details_box'; import { dashboardColumnsGrow, getPolicyTemplateQuery } from './summary_section'; import { @@ -36,15 +36,12 @@ import { const CLUSTER_DEFAULT_SORT_ORDER = 'asc'; -export const getClusterIdQuery = (cluster: Cluster) => { +export const getClusterIdQuery = (cluster: Cluster): NavFilter => { if (cluster.meta.benchmark.posture_type === CSPM_POLICY_TEMPLATE) { - return { 'cloud.account.name': cluster.meta.cloud?.account.name }; + // TODO: remove assertion after typing CspFinding as discriminating union + return { 'cloud.account.name': cluster.meta.cloud!.account.name }; } - if (cluster.meta.benchmark.posture_type === 'kspm') { - return { cluster_id: cluster.meta.assetIdentifierId }; - } - - return {}; + return { cluster_id: cluster.meta.assetIdentifierId }; }; export const BenchmarksSection = ({ diff --git a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/cluster_details_box.tsx b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/cluster_details_box.tsx index 39fb171fbb64a..7b42445d26b99 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/cluster_details_box.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/cluster_details_box.tsx @@ -20,7 +20,7 @@ import moment from 'moment'; import React from 'react'; import { i18n } from '@kbn/i18n'; import { getClusterIdQuery } from './benchmarks_section'; -import { INTERNAL_FEATURE_FLAGS } from '../../../../common/constants'; +import { CSPM_POLICY_TEMPLATE, INTERNAL_FEATURE_FLAGS } from '../../../../common/constants'; import { Cluster } from '../../../../common/types'; import { useNavigateFindings } from '../../../common/hooks/use_navigate_findings'; import { CISBenchmarkIcon } from '../../../components/cis_benchmark_icon'; @@ -31,13 +31,16 @@ const defaultClusterTitle = i18n.translate( ); const getClusterTitle = (cluster: Cluster) => { - if (cluster.meta.benchmark.posture_type === 'cspm') return cluster.meta.cloud?.account.name; + if (cluster.meta.benchmark.posture_type === CSPM_POLICY_TEMPLATE) { + return cluster.meta.cloud?.account.name; + } + return cluster.meta.cluster?.name; }; const getClusterId = (cluster: Cluster) => { const assetIdentifierId = cluster.meta.assetIdentifierId; - if (cluster.meta.benchmark.posture_type === 'cspm') return assetIdentifierId; + if (cluster.meta.benchmark.posture_type === CSPM_POLICY_TEMPLATE) return assetIdentifierId; return assetIdentifierId.slice(0, 6); }; diff --git a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/summary_section.tsx b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/summary_section.tsx index c5e71e0090668..647b022036676 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/summary_section.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/summary_section.tsx @@ -8,6 +8,7 @@ import React, { useMemo } from 'react'; import { EuiFlexGroup, EuiFlexItem, EuiFlexItemProps } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; +import { css } from '@emotion/react'; import { statusColors } from '../../../common/constants'; import { DASHBOARD_COUNTER_CARDS } from '../test_subjects'; import { CspCounterCard, CspCounterCardProps } from '../../../components/csp_counter_card'; @@ -21,6 +22,7 @@ import type { } from '../../../../common/types'; import { RisksTable } from '../compliance_charts/risks_table'; import { + NavFilter, useNavigateFindings, useNavigateFindingsByResource, } from '../../../common/hooks/use_navigate_findings'; @@ -36,12 +38,12 @@ export const dashboardColumnsGrow: Record = { third: 8, }; -export const getPolicyTemplateQuery = (policyTemplate: PosturePolicyTemplate) => { - if (policyTemplate === CSPM_POLICY_TEMPLATE) +export const getPolicyTemplateQuery = (policyTemplate: PosturePolicyTemplate): NavFilter => { + if (policyTemplate === CSPM_POLICY_TEMPLATE) { return { 'rule.benchmark.posture_type': CSPM_POLICY_TEMPLATE }; - if (policyTemplate === KSPM_POLICY_TEMPLATE) - return { 'rule.benchmark.posture_type': KSPM_POLICY_TEMPLATE }; - return {}; + } + + return { 'rule.benchmark.posture_type': { value: CSPM_POLICY_TEMPLATE, negate: true } }; }; export const SummarySection = ({ @@ -131,7 +133,13 @@ export const SummarySection = ({ }); return ( - + {counters.map((counter) => ( diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/findings_flyout.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/findings_flyout.tsx index 8229084c10dd9..0c1f9dd288e8d 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/findings_flyout.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/findings_flyout.tsx @@ -33,6 +33,7 @@ import { RuleTab } from './rule_tab'; import type { BenchmarkId } from '../../../../common/types'; import { CISBenchmarkIcon } from '../../../components/cis_benchmark_icon'; import { BenchmarkName } from '../../../../common/types'; +import { FINDINGS_FLYOUT } from '../test_subjects'; const tabs = [ { @@ -112,7 +113,7 @@ export const FindingsRuleFlyout = ({ onClose, findings }: FindingFlyoutProps) => const [tab, setTab] = useState(tabs[0]); return ( - + diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.test.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.test.tsx index 968db8feb53b2..443f7c9d51de3 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.test.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.test.tsx @@ -19,14 +19,15 @@ const chance = new Chance(); type TableProps = PropsOf; describe('', () => { - it('renders the zero state when status success and data has a length of zero ', async () => { + const renderWrapper = (opts?: Partial) => { const props: TableProps = { loading: false, - items: [], + items: opts?.items || [], sorting: { sort: { field: '@timestamp', direction: 'desc' } }, - pagination: { pageSize: 10, pageIndex: 1, totalItemCount: 0 }, + pagination: { pageSize: 10, pageIndex: 1, totalItemCount: opts?.items?.length || 0 }, setTableOptions: jest.fn(), onAddFilter: jest.fn(), + ...opts, }; render( @@ -34,6 +35,24 @@ describe('', () => { ); + return props; + }; + + it('opens/closes the flyout when clicked on expand/close buttons ', () => { + renderWrapper({ items: [getFindingsFixture()] }); + + expect(screen.queryByTestId(TEST_SUBJECTS.FINDINGS_FLYOUT)).not.toBeInTheDocument(); + expect(screen.queryByTestId(TEST_SUBJECTS.FINDINGS_TABLE_EXPAND_COLUMN)).toBeInTheDocument(); + + userEvent.click(screen.getByTestId(TEST_SUBJECTS.FINDINGS_TABLE_EXPAND_COLUMN)); + expect(screen.getByTestId(TEST_SUBJECTS.FINDINGS_FLYOUT)).toBeInTheDocument(); + + userEvent.click(screen.getByTestId('euiFlyoutCloseButton')); + expect(screen.queryByTestId(TEST_SUBJECTS.FINDINGS_FLYOUT)).not.toBeInTheDocument(); + }); + + it('renders the zero state when status success and data has a length of zero ', async () => { + renderWrapper({ items: [] }); expect( screen.getByTestId(TEST_SUBJECTS.LATEST_FINDINGS_TABLE_NO_FINDINGS_EMPTY_STATE) @@ -42,22 +61,12 @@ describe('', () => { it('renders the table with provided items', () => { const names = chance.unique(chance.sentence, 10); - const data = names.map(getFindingsFixture); + const data = names.map((name) => { + const fixture = getFindingsFixture(); + return { ...fixture, rule: { ...fixture.rule, name } }; + }); - const props: TableProps = { - loading: false, - items: data, - sorting: { sort: { field: '@timestamp', direction: 'desc' } }, - pagination: { pageSize: 10, pageIndex: 1, totalItemCount: 0 }, - setTableOptions: jest.fn(), - onAddFilter: jest.fn(), - }; - - render( - - - - ); + renderWrapper({ items: data }); data.forEach((item) => { expect(screen.getByText(item.rule.name)).toBeInTheDocument(); @@ -66,23 +75,12 @@ describe('', () => { it('adds filter with a cell button click', () => { const names = chance.unique(chance.sentence, 10); - const data = names.map(getFindingsFixture); - - const filterProps = { onAddFilter: jest.fn() }; - const props: TableProps = { - loading: false, - items: data, - sorting: { sort: { field: '@timestamp', direction: 'desc' } }, - pagination: { pageSize: 10, pageIndex: 1, totalItemCount: 0 }, - setTableOptions: jest.fn(), - ...filterProps, - }; + const data = names.map((name) => { + const fixture = getFindingsFixture(); + return { ...fixture, rule: { ...fixture.rule, name } }; + }); - render( - - - - ); + const props = renderWrapper({ items: data }); const row = data[0]; diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_layout.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_layout.tsx index 5a37f67333f60..6b46eba1a87bc 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_layout.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_layout.tsx @@ -28,6 +28,7 @@ import { CspEvaluationBadge } from '../../../components/csp_evaluation_badge'; import { FINDINGS_TABLE_CELL_ADD_FILTER, FINDINGS_TABLE_CELL_ADD_NEGATED_FILTER, + FINDINGS_TABLE_EXPAND_COLUMN, } from '../test_subjects'; export type OnAddFilter = (key: T, value: Serializable, negate: boolean) => void; @@ -51,6 +52,7 @@ export const getExpandColumn = ({ width: '40px', actions: [ { + 'data-test-subj': FINDINGS_TABLE_EXPAND_COLUMN, name: i18n.translate('xpack.csp.expandColumnNameLabel', { defaultMessage: 'Expand' }), description: i18n.translate('xpack.csp.expandColumnDescriptionLabel', { defaultMessage: 'Expand', diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/test_subjects.ts b/x-pack/plugins/cloud_security_posture/public/pages/findings/test_subjects.ts index d7a2e89fad9fb..daf1edd4f8550 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/test_subjects.ts +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/test_subjects.ts @@ -5,6 +5,8 @@ * 2.0. */ +export const FINDINGS_FLYOUT = 'findings_flyout'; +export const FINDINGS_TABLE_EXPAND_COLUMN = 'findings_table_expand_column'; export const FINDINGS_TABLE = 'findings_table'; export const FINDINGS_BY_RESOURCE_TABLE_NO_FINDINGS_EMPTY_STATE = 'findings-by-resource-table-no-findings-empty-state'; diff --git a/x-pack/plugins/cloud_security_posture/server/create_indices/create_indices.ts b/x-pack/plugins/cloud_security_posture/server/create_indices/create_indices.ts index 93ea23a4e5b1e..ea93ae458eb2b 100644 --- a/x-pack/plugins/cloud_security_posture/server/create_indices/create_indices.ts +++ b/x-pack/plugins/cloud_security_posture/server/create_indices/create_indices.ts @@ -65,7 +65,16 @@ const createBenchmarkScoreIndex = async (esClient: ElasticsearchClient, logger: priority: 500, }); - await createIndexSafe(esClient, logger, BENCHMARK_SCORE_INDEX_DEFAULT_NS); + const result = await createIndexSafe(esClient, logger, BENCHMARK_SCORE_INDEX_DEFAULT_NS); + + if (result === 'already-exists') { + await updateIndexSafe( + esClient, + logger, + BENCHMARK_SCORE_INDEX_DEFAULT_NS, + benchmarkScoreMapping + ); + } } catch (e) { logger.error( `Failed to upsert index template [Template: ${BENCHMARK_SCORE_INDEX_TEMPLATE_NAME}]` diff --git a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/compliance_dashboard.ts b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/compliance_dashboard.ts index 6789b8674499a..d242c7a587dda 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/compliance_dashboard.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/compliance_dashboard.ts @@ -8,6 +8,8 @@ import { transformError } from '@kbn/securitysolution-es-utils'; import type { QueryDslQueryContainer } from '@elastic/elasticsearch/lib/api/types'; import { schema } from '@kbn/config-schema'; +import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/types'; +import { getSafePostureTypeRuntimeMapping } from '../../../common/runtime_mappings/get_safe_posture_type_runtime_mapping'; import type { PosturePolicyTemplate, ComplianceDashboardData } from '../../../common/types'; import { CSPM_POLICY_TEMPLATE, @@ -69,17 +71,20 @@ export const defineGetComplianceDashboardRoute = (router: CspRouter): void => const policyTemplate = request.params.policy_template as PosturePolicyTemplate; + // runtime mappings create the `safe_posture_type` field, which equals to `kspm` or `cspm` based on the value and existence of the `posture_type` field which was introduced at 8.7 + // the `query` is then being passed to our getter functions to filter per posture type even for older findings before 8.7 + const runtimeMappings: MappingRuntimeFields = getSafePostureTypeRuntimeMapping(); const query: QueryDslQueryContainer = { bool: { - filter: [{ term: { 'rule.benchmark.posture_type': policyTemplate } }], + filter: [{ term: { safe_posture_type: policyTemplate } }], }, }; const [stats, groupedFindingsEvaluation, clustersWithoutTrends, trends] = await Promise.all( [ - getStats(esClient, query, pitId), - getGroupedFindingsEvaluation(esClient, query, pitId), - getClusters(esClient, query, pitId), + getStats(esClient, query, pitId, runtimeMappings), + getGroupedFindingsEvaluation(esClient, query, pitId, runtimeMappings), + getClusters(esClient, query, pitId, runtimeMappings), getTrends(esClient, policyTemplate), ] ); diff --git a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_clusters.ts b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_clusters.ts index 736ba66a25508..750c035dc9e08 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_clusters.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_clusters.ts @@ -13,6 +13,7 @@ import type { AggregationsTopHitsAggregate, SearchHit, } from '@elastic/elasticsearch/lib/api/types'; +import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/types'; import { CspFinding } from '../../../common/schemas/csp_finding'; import type { Cluster } from '../../../common/types'; import { @@ -40,9 +41,15 @@ interface ClustersQueryResult { export type ClusterWithoutTrend = Omit; -export const getClustersQuery = (query: QueryDslQueryContainer, pitId: string): SearchRequest => ({ +export const getClustersQuery = ( + query: QueryDslQueryContainer, + pitId: string, + runtimeMappings: MappingRuntimeFields +): SearchRequest => ({ size: 0, - runtime_mappings: getIdentifierRuntimeMapping(), + // creates the `asset_identifier` and `safe_posture_type` runtime fields, + // `safe_posture_type` is used by the `query` to filter by posture type for older findings without this field + runtime_mappings: { ...runtimeMappings, ...getIdentifierRuntimeMapping() }, query, aggs: { aggs_by_asset_identifier: { @@ -101,10 +108,11 @@ export const getClustersFromAggs = (clusters: ClusterBucket[]): ClusterWithoutTr export const getClusters = async ( esClient: ElasticsearchClient, query: QueryDslQueryContainer, - pitId: string + pitId: string, + runtimeMappings: MappingRuntimeFields ): Promise => { const queryResult = await esClient.search( - getClustersQuery(query, pitId) + getClustersQuery(query, pitId, runtimeMappings) ); const clusters = queryResult.aggregations?.aggs_by_asset_identifier.buckets; diff --git a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_grouped_findings_evaluation.ts b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_grouped_findings_evaluation.ts index f20b43619e914..239801350c7af 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_grouped_findings_evaluation.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_grouped_findings_evaluation.ts @@ -11,6 +11,7 @@ import type { QueryDslQueryContainer, SearchRequest, } from '@elastic/elasticsearch/lib/api/types'; +import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/types'; import { calculatePostureScore } from '../../../common/utils/helpers'; import type { ComplianceDashboardData } from '../../../common/types'; import { KeyDocCount } from './compliance_dashboard'; @@ -62,8 +63,15 @@ export const failedFindingsAggQuery = { }, }; -export const getRisksEsQuery = (query: QueryDslQueryContainer, pitId: string): SearchRequest => ({ +export const getRisksEsQuery = ( + query: QueryDslQueryContainer, + pitId: string, + runtimeMappings: MappingRuntimeFields +): SearchRequest => ({ size: 0, + // creates the `safe_posture_type` runtime fields, + // `safe_posture_type` is used by the `query` to filter by posture type for older findings without this field + runtime_mappings: runtimeMappings, query, aggs: failedFindingsAggQuery, pit: { @@ -90,10 +98,11 @@ export const getFailedFindingsFromAggs = ( export const getGroupedFindingsEvaluation = async ( esClient: ElasticsearchClient, query: QueryDslQueryContainer, - pitId: string + pitId: string, + runtimeMappings: MappingRuntimeFields ): Promise => { const resourceTypesQueryResult = await esClient.search( - getRisksEsQuery(query, pitId) + getRisksEsQuery(query, pitId, runtimeMappings) ); const ruleSections = resourceTypesQueryResult.aggregations?.aggs_by_resource_type.buckets; diff --git a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_stats.ts b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_stats.ts index a59d7487488e0..2f0e1c1b17102 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_stats.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_stats.ts @@ -7,6 +7,7 @@ import { ElasticsearchClient } from '@kbn/core/server'; import type { QueryDslQueryContainer, SearchRequest } from '@elastic/elasticsearch/lib/api/types'; +import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/types'; import { calculatePostureScore } from '../../../common/utils/helpers'; import type { ComplianceDashboardData } from '../../../common/types'; @@ -41,10 +42,14 @@ const uniqueResourcesCountQuery = { export const getEvaluationsQuery = ( query: QueryDslQueryContainer, - pitId: string + pitId: string, + runtimeMappings: MappingRuntimeFields ): SearchRequest => ({ - query, size: 0, + // creates the `safe_posture_type` runtime fields, + // `safe_posture_type` is used by the `query` to filter by posture type for older findings without this field + runtime_mappings: runtimeMappings, + query, aggs: { ...findingsEvaluationAggsQuery, ...uniqueResourcesCountQuery, @@ -75,10 +80,11 @@ export const getStatsFromFindingsEvaluationsAggs = ( export const getStats = async ( esClient: ElasticsearchClient, query: QueryDslQueryContainer, - pitId: string + pitId: string, + runtimeMappings: MappingRuntimeFields ): Promise => { const evaluationsQueryResult = await esClient.search( - getEvaluationsQuery(query, pitId) + getEvaluationsQuery(query, pitId, runtimeMappings) ); const findingsEvaluations = evaluationsQueryResult.aggregations; diff --git a/x-pack/plugins/cloud_security_posture/server/tasks/findings_stats_task.ts b/x-pack/plugins/cloud_security_posture/server/tasks/findings_stats_task.ts index 2e8401cebd932..6f21112efcb90 100644 --- a/x-pack/plugins/cloud_security_posture/server/tasks/findings_stats_task.ts +++ b/x-pack/plugins/cloud_security_posture/server/tasks/findings_stats_task.ts @@ -14,6 +14,7 @@ import { import { SearchRequest } from '@kbn/data-plugin/common'; import { ElasticsearchClient } from '@kbn/core/server'; import type { Logger } from '@kbn/core/server'; +import { getSafePostureTypeRuntimeMapping } from '../../common/runtime_mappings/get_safe_posture_type_runtime_mapping'; import { getIdentifierRuntimeMapping } from '../../common/runtime_mappings/get_identifier_runtime_mapping'; import { FindingsStatsTaskResult, TaskHealthStatus, ScoreByPolicyTemplateBucket } from './types'; import { @@ -108,14 +109,15 @@ export function taskRunner(coreStartServices: CspServerPluginStartServices, logg const getScoreQuery = (): SearchRequest => ({ index: LATEST_FINDINGS_INDEX_DEFAULT_NS, size: 0, - runtime_mappings: getIdentifierRuntimeMapping(), + // creates the safe_posture_type and asset_identifier runtime fields + runtime_mappings: { ...getIdentifierRuntimeMapping(), ...getSafePostureTypeRuntimeMapping() }, query: { match_all: {}, }, aggs: { score_by_policy_template: { terms: { - field: 'rule.benchmark.posture_type', + field: 'safe_posture_type', }, aggs: { total_findings: { diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/api_total_stats.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/api_total_stats.tsx index 38f963d6fa1ce..4e9061ba9e3d7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/api_total_stats.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/api_total_stats.tsx @@ -53,7 +53,7 @@ export const ApiTotalStats: React.FC = () => { {stats.map((item, index) => ( - + ))} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_overview_panels.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_overview_panels.tsx index 78152d64d248b..c3afcbc46494d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_overview_panels.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_overview_panels.tsx @@ -31,6 +31,7 @@ import { SearchIndexTabId } from '../search_index'; const StatusPanel: React.FC<{ ingestionStatus: IngestionStatus }> = ({ ingestionStatus }) => ( { { {stats.map((item, index) => ( - + ))} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler_total_stats.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler_total_stats.tsx index 99687662419bd..7825e93328dc8 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler_total_stats.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler_total_stats.tsx @@ -75,7 +75,7 @@ export const CrawlerTotalStats: React.FC = () => { {stats.map((item, index) => ( - + ))} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/documents_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/documents_logic.test.ts index 28037f346c1ad..3dd9c0f41533c 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/documents_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/documents_logic.test.ts @@ -41,12 +41,11 @@ describe('DocumentsLogic', () => { beforeEach(() => { jest.clearAllMocks(); - // due to connect, need to pass props down to each logic - const indexNameProps = { indexName: 'indexName' }; - mountIndexNameLogic(undefined, indexNameProps); - mountMappingsApiLogic(undefined, indexNameProps); - mountSearchDocumentsApiLogic(undefined, indexNameProps); - mount(undefined, indexNameProps); + const indexNameLogic = mountIndexNameLogic(); + mountMappingsApiLogic(); + mountSearchDocumentsApiLogic(); + mount(); + indexNameLogic.actions.setIndexName('indexName'); }); it('has expected default values', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_name_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_name_logic.ts index b18f1dc6a15b3..c2a94b21f47b2 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_name_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_name_logic.ts @@ -17,20 +17,18 @@ export interface IndexNameActions { setIndexName: (indexName: string) => { indexName: string }; } -export const IndexNameLogic = kea>( - { - actions: { - setIndexName: (indexName) => ({ indexName }), - }, - path: ['enterprise_search', 'content', 'index_name'], - reducers: ({ props }) => ({ - indexName: [ - // Short-circuiting this to empty string is necessary to enable testing logics relying on this - props.indexName ?? '', - { - setIndexName: (_, { indexName }) => indexName, - }, - ], - }), - } -); +export const IndexNameLogic = kea>({ + actions: { + setIndexName: (indexName) => ({ indexName }), + }, + path: ['enterprise_search', 'content', 'index_name'], + reducers: () => ({ + indexName: [ + // Short-circuiting this to empty string is necessary to enable testing logics relying on this + '', + { + setIndexName: (_, { indexName }) => indexName, + }, + ], + }), +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.test.ts index 3ff4355636f89..5e4256f92a97b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.test.ts @@ -31,21 +31,27 @@ import { IndexViewLogic } from './index_view_logic'; // And the timeoutId is non-deterministic. We use expect.object.containing throughout this test file const DEFAULT_VALUES = { connector: undefined, + connectorError: undefined, connectorId: null, error: null, - fetchIndexApiData: undefined, - fetchIndexApiStatus: Status.IDLE, + fetchIndexApiData: {}, + fetchIndexApiStatus: Status.SUCCESS, hasAdvancedFilteringFeature: false, hasBasicFilteringFeature: false, hasFilteringFeature: false, - index: undefined, - indexData: null, + htmlExtraction: undefined, + index: { + ingestionMethod: IngestionMethod.API, + ingestionStatus: IngestionStatus.CONNECTED, + lastUpdated: null, + }, + indexData: {}, indexName: 'index-name', ingestionMethod: IngestionMethod.API, ingestionStatus: IngestionStatus.CONNECTED, isCanceling: false, isConnectorIndex: false, - isInitialLoading: true, + isInitialLoading: false, isSyncing: false, isWaitingForSync: false, lastUpdated: null, @@ -68,7 +74,7 @@ const CONNECTOR_VALUES = { describe('IndexViewLogic', () => { const { mount: apiLogicMount } = new LogicMounter(StartSyncApiLogic); const { mount: fetchIndexMount } = new LogicMounter(CachedFetchIndexApiLogic); - const indexNameLogic = new LogicMounter(IndexNameLogic); + const { mount: indexNameMount } = new LogicMounter(IndexNameLogic); const { mount } = new LogicMounter(IndexViewLogic); const { flashSuccessToast } = mockFlashMessageHelpers; const { http } = mockHttpValues; @@ -76,16 +82,15 @@ describe('IndexViewLogic', () => { beforeEach(() => { jest.clearAllMocks(); jest.useRealTimers(); - indexNameLogic.mount({ indexName: 'index-name' }, { indexName: 'index-name' }); + http.get.mockReturnValueOnce(Promise.resolve({})); + const indexNameLogic = indexNameMount(); apiLogicMount(); - fetchIndexMount({ indexName: 'index-name' }, { indexName: 'index-name' }); - mount({ indexName: 'index-name' }, { indexName: 'index-name' }); + fetchIndexMount(); + mount(); + indexNameLogic.actions.setIndexName('index-name'); }); it('has expected default values', () => { - http.get.mockReturnValueOnce(Promise.resolve(() => ({}))); - mount({ indexName: 'index-name' }, { indexName: 'index-name' }); - expect(IndexViewLogic.values).toEqual(DEFAULT_VALUES); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/name_and_description_stats.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/name_and_description_stats.tsx index 236a731b43069..53d15f1431195 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/name_and_description_stats.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/name_and_description_stats.tsx @@ -72,7 +72,7 @@ export const NameAndDescriptionStats: React.FC = () => { {stats.map((item, index) => ( - + ))} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines_json_configurations_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines_json_configurations_logic.test.ts index 2359cf6e67390..6fbeffd30b714 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines_json_configurations_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines_json_configurations_logic.test.ts @@ -10,6 +10,8 @@ import { nextTick } from '@kbn/test-jest-helpers'; import { FetchCustomPipelineApiLogic } from '../../../api/index/fetch_custom_pipeline_api_logic'; +import { IndexNameLogic } from '../index_name_logic'; + import { IndexPipelinesConfigurationsLogic, IndexPipelinesConfigurationsValues, @@ -28,13 +30,15 @@ const DEFAULT_VALUES: IndexPipelinesConfigurationsValues = { describe('IndexPipelinesConfigurationsLogic', () => { const { mount } = new LogicMounter(IndexPipelinesConfigurationsLogic); + const { mount: indexNameMount } = new LogicMounter(IndexNameLogic); const { mount: mountFetchCustomPipelineApiLogic } = new LogicMounter(FetchCustomPipelineApiLogic); beforeEach(async () => { jest.clearAllMocks(); - const indexNameProps = { indexName }; + const indexNameLogic = indexNameMount(); mountFetchCustomPipelineApiLogic(); - mount(undefined, indexNameProps); + mount(); + indexNameLogic.actions.setIndexName(indexName); }); it('has expected default values', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx index b09a0a9d8a96a..0643cce0f8173 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx @@ -97,6 +97,7 @@ export const SearchIndex: React.FC = () => { useEffect(() => { if ( isConnectorIndex(index) && + index.name === indexName && index.connector.is_native && index.connector.service_type === null ) { diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index_router.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index_router.tsx index 1e85b3b3e2ba9..128fb3ea8fc6e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index_router.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index_router.tsx @@ -27,12 +27,10 @@ import { SearchIndex } from './search_index'; export const SearchIndexRouter: React.FC = () => { const indexName = decodeURIComponent(useParams<{ indexName: string }>().indexName); - - const indexNameLogic = IndexNameLogic({ indexName }); - const { setIndexName } = useActions(indexNameLogic); + const { setIndexName } = useActions(IndexNameLogic); const { stopFetchIndexPoll } = useActions(IndexViewLogic); useEffect(() => { - const unmountName = indexNameLogic.mount(); + const unmountName = IndexNameLogic.mount(); const unmountView = IndexViewLogic.mount(); return () => { stopFetchIndexPoll(); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_stats.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_stats.tsx index d4c4fd4f6633e..1d5ca88112f4e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_stats.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_stats.tsx @@ -42,6 +42,7 @@ export const IndicesStats: React.FC = () => { paddingSize="l" > { paddingSize="l" > { { { paddingSize="l" > { - You should use inputs as an object and not use the deprecated inputs @@ -2124,6 +2245,8 @@ paths: $ref: '#/components/schemas/package_policy' required: - items + '400': + $ref: '#/components/responses/error' operationId: bulk-get-package-policies security: [] parameters: [] @@ -2164,6 +2287,8 @@ paths: required: - id - success + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' /package_policies/upgrade: @@ -2201,6 +2326,8 @@ paths: required: - id - success + '400': + $ref: '#/components/responses/error' /package_policies/upgrade/dryrun: post: summary: Package policy - Upgrade Dry run @@ -2237,6 +2364,8 @@ paths: $ref: '#/components/schemas/upgrade_agent_diff' required: - hasErrors + '400': + $ref: '#/components/responses/error' /package_policies/{packagePolicyId}: get: summary: Package policy - Info @@ -2253,6 +2382,8 @@ paths: $ref: '#/components/schemas/package_policy' required: - item + '400': + $ref: '#/components/responses/error' operationId: get-package-policy parameters: - schema: @@ -2283,6 +2414,8 @@ paths: required: - item - sucess + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' delete: @@ -2301,6 +2434,8 @@ paths: type: string required: - id + '400': + $ref: '#/components/responses/error' parameters: - schema: type: boolean @@ -2328,6 +2463,8 @@ paths: type: integer perPage: type: integer + '400': + $ref: '#/components/responses/error' operationId: get-outputs post: summary: Outputs @@ -2343,6 +2480,8 @@ paths: properties: item: $ref: '#/components/schemas/output' + '400': + $ref: '#/components/responses/error' requestBody: content: application/json: @@ -2389,6 +2528,8 @@ paths: $ref: '#/components/schemas/output' required: - item + '400': + $ref: '#/components/responses/error' operationId: get-output parameters: - schema: @@ -2411,6 +2552,8 @@ paths: type: string required: - id + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' put: @@ -2457,6 +2600,8 @@ paths: $ref: '#/components/schemas/output' required: - item + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' /agent_download_sources: @@ -2481,6 +2626,8 @@ paths: type: integer perPage: type: integer + '400': + $ref: '#/components/responses/error' operationId: get-download-sources post: summary: Agent Download Sources @@ -2496,6 +2643,8 @@ paths: properties: item: $ref: '#/components/schemas/download_sources' + '400': + $ref: '#/components/responses/error' requestBody: content: application/json: @@ -2531,6 +2680,8 @@ paths: $ref: '#/components/schemas/download_sources' required: - item + '400': + $ref: '#/components/responses/error' operationId: get-one-download-source parameters: - schema: @@ -2553,6 +2704,8 @@ paths: type: string required: - id + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' put: @@ -2586,6 +2739,8 @@ paths: $ref: '#/components/schemas/download_sources' required: - item + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' /logstash_api_keys: @@ -2602,6 +2757,8 @@ paths: properties: api_key: type: string + '400': + $ref: '#/components/responses/error' operationId: generate-logstash-api-key parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -2628,6 +2785,8 @@ paths: type: integer perPage: type: integer + '400': + $ref: '#/components/responses/error' operationId: get-fleet-server-hosts post: summary: Fleet Server Hosts - Create @@ -2643,6 +2802,8 @@ paths: properties: item: $ref: '#/components/schemas/fleet_server_host' + '400': + $ref: '#/components/responses/error' requestBody: content: application/json: @@ -2679,6 +2840,8 @@ paths: $ref: '#/components/schemas/fleet_server_host' required: - item + '400': + $ref: '#/components/responses/error' operationId: get-one-fleet-server-hosts parameters: - schema: @@ -2701,6 +2864,8 @@ paths: type: string required: - id + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' put: @@ -2732,6 +2897,8 @@ paths: $ref: '#/components/schemas/fleet_server_host' required: - item + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' /proxies: @@ -2757,6 +2924,8 @@ paths: type: integer perPage: type: integer + '400': + $ref: '#/components/responses/error' operationId: get-fleet-proxies post: summary: Fleet Proxies - Create @@ -2772,6 +2941,8 @@ paths: properties: item: $ref: '#/components/schemas/proxies' + '400': + $ref: '#/components/responses/error' requestBody: content: application/json: @@ -2812,6 +2983,8 @@ paths: $ref: '#/components/schemas/proxies' required: - item + '400': + $ref: '#/components/responses/error' operationId: get-one-fleet-proxies parameters: - schema: @@ -2834,6 +3007,8 @@ paths: type: string required: - id + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' put: @@ -2869,6 +3044,8 @@ paths: $ref: '#/components/schemas/proxies' required: - item + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' /kubernetes: @@ -2885,6 +3062,8 @@ paths: properties: item: type: string + '400': + $ref: '#/components/responses/error' operationId: get-full-k8s-manifest parameters: - schema: @@ -3543,19 +3722,6 @@ components: required: - agents - version - upgrade_agent: - title: Upgrade agent - type: object - properties: - version: - type: string - source_uri: - type: string - force: - type: boolean - description: Force upgrade, skipping validation (should be used with caution) - required: - - version agent_action: title: Agent action oneOf: @@ -3583,6 +3749,19 @@ components: - info - warning - error + upgrade_agent: + title: Upgrade agent + type: object + properties: + version: + type: string + source_uri: + type: string + force: + type: boolean + description: Force upgrade, skipping validation (should be used with caution) + required: + - version agent_diagnostics: title: Agent diagnostics type: object @@ -4286,5 +4465,19 @@ components: required: - name - url + responses: + error: + description: Generic Error + content: + application/json: + schema: + type: object + properties: + statusCode: + type: number + error: + type: string + message: + type: string security: - basicAuth: [] diff --git a/x-pack/plugins/fleet/common/openapi/components/responses/error.yaml b/x-pack/plugins/fleet/common/openapi/components/responses/error.yaml new file mode 100644 index 0000000000000..8199a81cb6b5a --- /dev/null +++ b/x-pack/plugins/fleet/common/openapi/components/responses/error.yaml @@ -0,0 +1,12 @@ +description: Generic Error +content: + application/json: + schema: + type: object + properties: + statusCode: + type: number + error: + type: string + message: + type: string \ No newline at end of file diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_download_sources.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_download_sources.yaml index a76eef05cae73..619b3c626ac66 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_download_sources.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_download_sources.yaml @@ -19,6 +19,8 @@ get: type: integer perPage: type: integer + '400': + $ref: ../components/responses/error.yaml operationId: get-download-sources post: summary: Agent Download Sources @@ -34,6 +36,8 @@ post: properties: item: $ref: ../components/schemas/download_sources.yaml + '400': + $ref: ../components/responses/error.yaml requestBody: content: application/json: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_download_sources@{source_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_download_sources@{source_id}.yaml index c9b97018aa523..364d292082c8b 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_download_sources@{source_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_download_sources@{source_id}.yaml @@ -13,6 +13,8 @@ get: $ref: ../components/schemas/download_sources.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: get-one-download-source parameters: - schema: @@ -35,6 +37,8 @@ delete: type: string required: - id + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml put: @@ -68,5 +72,7 @@ put: $ref: ../components/schemas/download_sources.yaml required: - item + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_policies.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_policies.yaml index eb701057c2953..dfe49938c208a 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_policies.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_policies.yaml @@ -24,6 +24,8 @@ get: - total - page - perPage + '400': + $ref: ../components/responses/error.yaml operationId: agent-policy-list parameters: - $ref: ../components/parameters/page_size.yaml @@ -54,6 +56,8 @@ post: properties: item: $ref: ../components/schemas/agent_policy.yaml + '400': + $ref: ../components/responses/error.yaml operationId: create-agent-policy requestBody: content: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@_bulk_get.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@_bulk_get.yaml index 0ac58fffba167..75267e2a262a9 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@_bulk_get.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@_bulk_get.yaml @@ -33,6 +33,8 @@ post: $ref: ../components/schemas/agent_policy.yaml required: - items + '400': + $ref: ../components/responses/error.yaml operationId: bulk-get-agent-policies security: [] parameters: [] diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@delete.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@delete.yaml index f136afb559603..51967a697cf0e 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@delete.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@delete.yaml @@ -16,6 +16,8 @@ post: required: - id - success + '400': + $ref: ../components/responses/error.yaml requestBody: content: application/json: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}.yaml index 9a60d197ed24a..0bdcbf38a70fa 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}.yaml @@ -19,6 +19,8 @@ get: $ref: ../components/schemas/agent_policy.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: agent-policy-info description: Get one agent policy parameters: [] @@ -37,6 +39,8 @@ put: $ref: ../components/schemas/agent_policy.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: update-agent-policy requestBody: content: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@copy.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@copy.yaml index 487f6e95f8669..21d4a1d493b01 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@copy.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@copy.yaml @@ -21,6 +21,8 @@ post: $ref: ../components/schemas/agent_policy.yaml required: - item + '400': + $ref: ../components/responses/error.yaml requestBody: content: application/json: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@download.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@download.yaml index f5d5c1aa797f6..5c7887d6f1bb2 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@download.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@download.yaml @@ -12,6 +12,8 @@ get: properties: item: type: string + '400': + $ref: ../components/responses/error.yaml parameters: - schema: type: string diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@full.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@full.yaml index 462ced1f9b5b9..1a79266e27732 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@full.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@full.yaml @@ -14,6 +14,8 @@ get: oneOf: - type: string - $ref: ../components/schemas/agent_policy_full.yaml + '400': + $ref: ../components/responses/error.yaml parameters: - schema: type: string diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_status.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_status.yaml index 872aca9eb2758..46d8ac2f32ff9 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_status.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_status.yaml @@ -25,9 +25,16 @@ get: type: integer total: type: integer + deprecated: true updating: type: integer + all: + type: integer + active: + type: integer required: + - active + - all - error - events - inactive @@ -36,6 +43,8 @@ get: - other - total - updating + '400': + $ref: ../components/responses/error.yaml operationId: get-agent-status parameters: - schema: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_status@data.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_status@data.yaml index e1a758d55dce2..a16fa2f71f8a8 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_status@data.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_status@data.yaml @@ -18,6 +18,8 @@ get: properties: data: type: boolean + '400': + $ref: ../components/responses/error.yaml operationId: get-agent-data parameters: - schema: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_status_deprecated.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_status_deprecated.yaml index e5e5a478dc6e5..874cd38632ed3 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_status_deprecated.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_status_deprecated.yaml @@ -34,6 +34,8 @@ get: - other - total - updating + '400': + $ref: ../components/responses/error.yaml operationId: get-agent-status-deprecated parameters: - schema: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_tags.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_tags.yaml index 9cf53a67e84d8..f01584ef4665a 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_tags.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_tags.yaml @@ -8,4 +8,6 @@ get: application/json: schema: $ref: ../components/schemas/get_agent_tags_response.yaml + '400': + $ref: ../components/responses/error.yaml operationId: get-agent-tags diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents.yaml index 44d5e1c8a9738..b9b62f23552e1 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents.yaml @@ -8,6 +8,8 @@ get: application/json: schema: $ref: ../components/schemas/get_agents_response.yaml + '400': + $ref: ../components/responses/error.yaml operationId: get-agents parameters: - $ref: ../components/parameters/page_size.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@action_status.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@action_status.yaml index 9586ec75398b6..50494a29f4096 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@action_status.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@action_status.yaml @@ -61,4 +61,6 @@ get: - creationTime required: - items + '400': + $ref: ../components/responses/error.yaml operationId: agents-action-status \ No newline at end of file diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_reassign.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_reassign.yaml index 17c4365f01e32..625aee38eafc4 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_reassign.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_reassign.yaml @@ -11,6 +11,8 @@ post: properties: actionId: type: string + '400': + $ref: ../components/responses/error.yaml operationId: bulk-reassign-agents parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_request_diagnostics.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_request_diagnostics.yaml index ea76360c892f9..e2952e7ae51e0 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_request_diagnostics.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_request_diagnostics.yaml @@ -11,6 +11,8 @@ post: properties: actionId: type: string + '400': + $ref: ../components/responses/error.yaml operationId: bulk-request-diagnostics parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_unenroll.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_unenroll.yaml index f5e244f86f74b..7527558a4cc10 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_unenroll.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_unenroll.yaml @@ -11,6 +11,8 @@ post: properties: actionId: type: string + '400': + $ref: ../components/responses/error.yaml operationId: bulk-unenroll-agents parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_update_tags.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_update_tags.yaml index 2eb129e802179..77c0c0d4cfa7c 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_update_tags.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_update_tags.yaml @@ -11,6 +11,8 @@ post: properties: actionId: type: string + '400': + $ref: ../components/responses/error.yaml operationId: bulk-update-agent-tags parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_upgrade.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_upgrade.yaml index 9a74054f492a7..b8863eaf271fd 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_upgrade.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_upgrade.yaml @@ -12,11 +12,7 @@ post: actionId: type: string '400': - description: BAD REQUEST - content: - application/json: - schema: - $ref: ../components/schemas/upgrade_agent.yaml + $ref: ../components/responses/error.yaml operationId: bulk-upgrade-agents parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@current_upgrades.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@current_upgrades.yaml index 14dac631e8adb..162c9e4cb5bc3 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@current_upgrades.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@current_upgrades.yaml @@ -35,4 +35,6 @@ get: - startTime required: - items + '400': + $ref: ../components/responses/error.yaml operationId: agents-current-upgrades diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@files@{file_id}@{file_name}.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@files@{file_id}@{file_name}.yaml index 0f189527cf896..82192ade7856b 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@files@{file_id}@{file_name}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@files@{file_id}@{file_name}.yaml @@ -28,4 +28,6 @@ get: properties: body: {} headers: {} + '400': + $ref: ../components/responses/error.yaml operationId: get-agent-upload-file diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@setup.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@setup.yaml index 7d7f9561b2190..104ae1ba084da 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@setup.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@setup.yaml @@ -8,6 +8,8 @@ get: application/json: schema: $ref: ../components/schemas/fleet_status_response.yaml + '400': + $ref: ../components/responses/error.yaml operationId: get-agents-setup-status security: - basicAuth: [] @@ -21,6 +23,8 @@ post: application/json: schema: $ref: ../components/schemas/fleet_setup_response.yaml + '400': + $ref: ../components/responses/error.yaml requestBody: content: application/json: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}.yaml index bc6dbac798926..7bf3a7d73f31b 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}.yaml @@ -19,6 +19,8 @@ get: $ref: ../components/schemas/agent.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: get-agent parameters: - $ref: ../components/parameters/with_metrics.yaml @@ -37,6 +39,8 @@ put: $ref: ../components/schemas/agent.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: update-agent parameters: - $ref: ../components/headers/kbn_xsrf.yaml @@ -70,6 +74,8 @@ delete: - deleted required: - action + '400': + $ref: ../components/responses/error.yaml operationId: delete-agent parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions.yaml index 2477db775a91b..38cce1ea54db3 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions.yaml @@ -23,6 +23,8 @@ post: type: number headers: type: string + '400': + $ref: ../components/responses/error.yaml operationId: new-agent-action parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions@{action_id}@cancel.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions@{action_id}@cancel.yaml index f17d6e4b25cf3..c9bf661d88a85 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions@{action_id}@cancel.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions@{action_id}@cancel.yaml @@ -22,7 +22,8 @@ post: properties: item: $ref: ../components/schemas/agent_action.yaml - + '400': + $ref: ../components/responses/error.yaml operationId: agent-action-cancel parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@reassign.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@reassign.yaml index 6d2253be3bbc2..4827cc77fc634 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@reassign.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@reassign.yaml @@ -14,6 +14,8 @@ put: application/json: schema: type: object + '400': + $ref: ../components/responses/error.yaml operationId: reassign-agent parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@request_diagnostics.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@request_diagnostics.yaml index 574ca0bbf918c..13b335ffe2300 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@request_diagnostics.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@request_diagnostics.yaml @@ -17,6 +17,8 @@ post: properties: actionId: type: string + '400': + $ref: ../components/responses/error.yaml operationId: request-diagnostics-agent parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@upgrade.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@upgrade.yaml index 9b12a23706925..c6d66f6f52386 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@upgrade.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@upgrade.yaml @@ -15,11 +15,7 @@ post: schema: $ref: ../components/schemas/upgrade_agent.yaml '400': - description: BAD REQUEST - content: - application/json: - schema: - $ref: ../components/schemas/upgrade_agent.yaml + $ref: ../components/responses/error.yaml operationId: upgrade-agent parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@uploads.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@uploads.yaml index 50b4f065bf147..de812b0e363e3 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@uploads.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@uploads.yaml @@ -22,4 +22,6 @@ get: type: array items: $ref: ../components/schemas/agent_diagnostics.yaml + '400': + $ref: ../components/responses/error.yaml operationId: list-agent-uploads diff --git a/x-pack/plugins/fleet/common/openapi/paths/data_streams.yaml b/x-pack/plugins/fleet/common/openapi/paths/data_streams.yaml index 9fec3d8225b0d..c9e9f1be897aa 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/data_streams.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/data_streams.yaml @@ -13,5 +13,7 @@ get: type: array items: $ref: ../components/schemas/data_stream.yaml + '400': + $ref: ../components/responses/error.yaml operationId: data-streams-list parameters: [] diff --git a/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys.yaml b/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys.yaml index 9f6ac6de0ebd6..5bc257606087f 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys.yaml @@ -29,6 +29,8 @@ get: - page - perPage - total + '400': + $ref: ../components/responses/error.yaml operationId: get-enrollment-api-keys parameters: [] post: @@ -48,6 +50,8 @@ post: type: string enum: - created + '400': + $ref: ../components/responses/error.yaml operationId: create-enrollment-api-keys parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys@{key_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys@{key_id}.yaml index 37c390897ef67..bdff9a7152e45 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys@{key_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys@{key_id}.yaml @@ -19,6 +19,8 @@ get: $ref: ../components/schemas/enrollment_api_key.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: get-enrollment-api-key delete: summary: Enrollment API Key - Delete @@ -37,6 +39,8 @@ delete: - deleted required: - action + '400': + $ref: ../components/responses/error.yaml operationId: delete-enrollment-api-key parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys@{key_id}_deprecated.yaml b/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys@{key_id}_deprecated.yaml index 75907bee8766a..36c0f7f3ef01f 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys@{key_id}_deprecated.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys@{key_id}_deprecated.yaml @@ -19,6 +19,8 @@ get: $ref: ../components/schemas/enrollment_api_key.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: get-enrollment-api-key-deprecated deprecated: true delete: @@ -38,6 +40,8 @@ delete: - deleted required: - action + '400': + $ref: ../components/responses/error.yaml operationId: delete-enrollment-api-key-deprecated parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys_deprecated.yaml b/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys_deprecated.yaml index 22d05ed7aaa82..c5e378c563afc 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys_deprecated.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys_deprecated.yaml @@ -29,6 +29,8 @@ get: - page - perPage - total + '400': + $ref: ../components/responses/error.yaml operationId: get-enrollment-api-keys-deprecated parameters: [] deprecated: true @@ -49,6 +51,8 @@ post: type: string enum: - created + '400': + $ref: ../components/responses/error.yaml operationId: create-enrollment-api-keys-deprecated parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@categories.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@categories.yaml index 9a69a930fa988..a97c06f66c629 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@categories.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@categories.yaml @@ -8,6 +8,8 @@ get: application/json: schema: $ref: ../components/schemas/get_categories_response.yaml + '400': + $ref: ../components/responses/error.yaml operationId: get-package-categories parameters: - in: query diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@get_file.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@get_file.yaml index ab7dc4cc946d9..9c194ea6a8e97 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@get_file.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@get_file.yaml @@ -15,6 +15,8 @@ get: type: number headers: type: object + '400': + $ref: ../components/responses/error.yaml operationId: packages-get-file parameters: - schema: diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@limited_list.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@limited_list.yaml index 61988b5a072de..ec44a20b61307 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@limited_list.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@limited_list.yaml @@ -13,5 +13,7 @@ get: type: array items: type: string + '400': + $ref: ../components/responses/error.yaml operationId: list-limited-packages parameters: [] diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@packages.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@packages.yaml index b44ab7e9b8168..43819dff6d10e 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@packages.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@packages.yaml @@ -8,6 +8,8 @@ get: application/json: schema: $ref: ../components/schemas/get_packages_response.yaml + '400': + $ref: ../components/responses/error.yaml operationId: list-all-packages parameters: - in: query @@ -73,6 +75,8 @@ post: - bundled required: - items + '400': + $ref: ../components/responses/error.yaml operationId: install-package-by-upload description: '' parameters: diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@stats.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@stats.yaml index 9e9a4a57516dc..b27b4ef6729dc 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@stats.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@stats.yaml @@ -13,6 +13,8 @@ get: $ref: ../components/schemas/package_usage_stats.yaml required: - response + '400': + $ref: ../components/responses/error.yaml operationId: get-package-stats security: - basicAuth: [] diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@{pkg_version}.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@{pkg_version}.yaml index 8fe228f91bbd0..4cc2e55e9d29e 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@{pkg_version}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@{pkg_version}.yaml @@ -33,6 +33,8 @@ get: required: - status - savedObject + '400': + $ref: ../components/responses/error.yaml operationId: get-package security: - basicAuth: [] @@ -100,6 +102,8 @@ post: - bundled required: - items + '400': + $ref: ../components/responses/error.yaml operationId: install-package description: '' parameters: @@ -141,6 +145,8 @@ put: - type required: - items + '400': + $ref: ../components/responses/error.yaml operationId: update-package description: '' requestBody: @@ -178,6 +184,8 @@ delete: - type required: - items + '400': + $ref: ../components/responses/error.yaml operationId: delete-package parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkgkey}_deprecated.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkgkey}_deprecated.yaml index 8704a09f54473..2967238a467a2 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkgkey}_deprecated.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkgkey}_deprecated.yaml @@ -25,6 +25,8 @@ get: required: - status - savedObject + '400': + $ref: ../components/responses/error.yaml operationId: get-package-deprecated security: - basicAuth: [] @@ -69,6 +71,8 @@ post: - type required: - response + '400': + $ref: ../components/responses/error.yaml operationId: install-package-deprecated description: '' parameters: @@ -114,6 +118,8 @@ delete: - type required: - response + '400': + $ref: ../components/responses/error.yaml operationId: delete-package-deprecated parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@packages_bulk.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@packages_bulk.yaml index b954c2475915c..7ede68f6b545f 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@packages_bulk.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@packages_bulk.yaml @@ -8,6 +8,8 @@ post: application/json: schema: $ref: ../components/schemas/bulk_install_packages_response.yaml + '400': + $ref: ../components/responses/error.yaml operationId: bulk-install-packages parameters: - in: query diff --git a/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts.yaml b/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts.yaml index 4ad7d867edc97..da599dddca1e3 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts.yaml @@ -20,6 +20,8 @@ get: type: integer perPage: type: integer + '400': + $ref: ../components/responses/error.yaml operationId: get-fleet-server-hosts post: summary: Fleet Server Hosts - Create @@ -35,6 +37,8 @@ post: properties: item: $ref: ../components/schemas/fleet_server_host.yaml + '400': + $ref: ../components/responses/error.yaml requestBody: content: application/json: diff --git a/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts@{item_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts@{item_id}.yaml index 141274274b840..968f81d8c6181 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts@{item_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts@{item_id}.yaml @@ -13,6 +13,8 @@ get: $ref: ../components/schemas/fleet_server_host.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: get-one-fleet-server-hosts parameters: - schema: @@ -35,6 +37,8 @@ delete: type: string required: - id + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml put: @@ -66,5 +70,7 @@ put: $ref: ../components/schemas/fleet_server_host.yaml required: - item + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/health_check.yaml b/x-pack/plugins/fleet/common/openapi/paths/health_check.yaml index 7723a1c225cdc..84283ca80dbf0 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/health_check.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/health_check.yaml @@ -15,6 +15,8 @@ post: type: string host: type: string + '400': + $ref: ../components/responses/error.yaml operationId: fleet-server-health-check parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/kubernetes.yaml b/x-pack/plugins/fleet/common/openapi/paths/kubernetes.yaml index 1e4b1e8687fd4..d7852db70fccd 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/kubernetes.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/kubernetes.yaml @@ -11,6 +11,8 @@ get: properties: item: type: string + '400': + $ref: ../components/responses/error.yaml operationId: get-full-k8s-manifest parameters: - schema: diff --git a/x-pack/plugins/fleet/common/openapi/paths/logstash_api_keys.yaml b/x-pack/plugins/fleet/common/openapi/paths/logstash_api_keys.yaml index e8a22be9d8afe..495d792191798 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/logstash_api_keys.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/logstash_api_keys.yaml @@ -11,6 +11,8 @@ post: properties: api_key: type: string + '400': + $ref: ../components/responses/error.yaml operationId: generate-logstash-api-key parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/outputs.yaml b/x-pack/plugins/fleet/common/openapi/paths/outputs.yaml index 93117d8ec63ac..335d8ec570ca1 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/outputs.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/outputs.yaml @@ -19,6 +19,8 @@ get: type: integer perPage: type: integer + '400': + $ref: ../components/responses/error.yaml operationId: get-outputs post: summary: Outputs @@ -34,6 +36,8 @@ post: properties: item: $ref: ../components/schemas/output.yaml + '400': + $ref: ../components/responses/error.yaml requestBody: content: application/json: diff --git a/x-pack/plugins/fleet/common/openapi/paths/outputs@{output_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/outputs@{output_id}.yaml index d70c78dd7de56..ca01024288b95 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/outputs@{output_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/outputs@{output_id}.yaml @@ -13,6 +13,8 @@ get: $ref: ../components/schemas/output.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: get-output parameters: - schema: @@ -35,6 +37,8 @@ delete: type: string required: - id + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml put: @@ -80,5 +84,7 @@ put: $ref: ../components/schemas/output.yaml required: - item + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies.yaml index ac609d2118fa4..8959339426d05 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/package_policies.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies.yaml @@ -21,6 +21,8 @@ get: type: number required: - items + '400': + $ref: ../components/responses/error.yaml operationId: get-package-policies security: [] parameters: [] @@ -40,6 +42,8 @@ post: $ref: ../components/schemas/package_policy.yaml required: - item + '400': + $ref: ../components/responses/error.yaml requestBody: description: You should use inputs as an object and not use the deprecated inputs array. content: diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies@_bulk_get.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies@_bulk_get.yaml index 70d54b12e47eb..1ff515dc2de6a 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/package_policies@_bulk_get.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies@_bulk_get.yaml @@ -30,6 +30,8 @@ post: $ref: ../components/schemas/package_policy.yaml required: - items + '400': + $ref: ../components/responses/error.yaml operationId: bulk-get-package-policies security: [] parameters: [] diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies@delete.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies@delete.yaml index 3c4dc19734141..6061267b4b2b8 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/package_policies@delete.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies@delete.yaml @@ -34,5 +34,7 @@ post: required: - id - success + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade.yaml index 92c316a498905..09f2727ad678c 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade.yaml @@ -32,3 +32,5 @@ post: required: - id - success + '400': + $ref: ../components/responses/error.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade_dryrun.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade_dryrun.yaml index d2a847d119ddc..6f51bd6812d97 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade_dryrun.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade_dryrun.yaml @@ -33,3 +33,5 @@ post: $ref: ../components/schemas/upgrade_agent_diff.yaml required: - hasErrors + '400': + $ref: ../components/responses/error.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies@{package_policy_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies@{package_policy_id}.yaml index 72773f43483be..9e05e9516d603 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/package_policies@{package_policy_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies@{package_policy_id}.yaml @@ -13,6 +13,8 @@ get: $ref: ../components/schemas/package_policy.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: get-package-policy parameters: - schema: @@ -43,6 +45,8 @@ put: required: - item - sucess + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml delete: @@ -61,6 +65,8 @@ delete: type: string required: - id + '400': + $ref: ../components/responses/error.yaml parameters: - schema: type: boolean diff --git a/x-pack/plugins/fleet/common/openapi/paths/proxies.yaml b/x-pack/plugins/fleet/common/openapi/paths/proxies.yaml index 29805490d2f92..a5f59ec0e7cb5 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/proxies.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/proxies.yaml @@ -20,6 +20,8 @@ get: type: integer perPage: type: integer + '400': + $ref: ../components/responses/error.yaml operationId: get-fleet-proxies post: summary: Fleet Proxies - Create @@ -35,6 +37,8 @@ post: properties: item: $ref: ../components/schemas/proxies.yaml + '400': + $ref: ../components/responses/error.yaml requestBody: content: application/json: diff --git a/x-pack/plugins/fleet/common/openapi/paths/proxies@{item_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/proxies@{item_id}.yaml index 882ddd5bf3f07..96a3665718753 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/proxies@{item_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/proxies@{item_id}.yaml @@ -13,6 +13,8 @@ get: $ref: ../components/schemas/proxies.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: get-one-fleet-proxies parameters: - schema: @@ -35,6 +37,8 @@ delete: type: string required: - id + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml put: @@ -70,5 +74,7 @@ put: $ref: ../components/schemas/proxies.yaml required: - item + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/service_tokens.yaml b/x-pack/plugins/fleet/common/openapi/paths/service_tokens.yaml index 5e88a57a3fc57..c57614c6c5def 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/service_tokens.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/service_tokens.yaml @@ -13,6 +13,8 @@ post: type: string value: type: string + '400': + $ref: ../components/responses/error.yaml operationId: generate-service-token parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/service_tokens_deprecated.yaml b/x-pack/plugins/fleet/common/openapi/paths/service_tokens_deprecated.yaml index 8f4f882a98321..f081f207b4d1e 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/service_tokens_deprecated.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/service_tokens_deprecated.yaml @@ -13,6 +13,8 @@ post: type: string value: type: string + '400': + $ref: ../components/responses/error.yaml operationId: generate-service-token-deprecated parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/settings.yaml b/x-pack/plugins/fleet/common/openapi/paths/settings.yaml index c9a420cdbb599..dc711bcefbfae 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/settings.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/settings.yaml @@ -8,6 +8,8 @@ get: application/json: schema: $ref: ../components/schemas/fleet_settings_response.yaml + '400': + $ref: ../components/responses/error.yaml operationId: get-settings put: summary: Settings - Update @@ -34,4 +36,6 @@ put: application/json: schema: $ref: ../components/schemas/fleet_settings_response.yaml + '400': + $ref: ../components/responses/error.yaml operationId: update-settings diff --git a/x-pack/plugins/fleet/common/openapi/paths/setup.yaml b/x-pack/plugins/fleet/common/openapi/paths/setup.yaml index abc17c0c9f6df..048e5cc51faf9 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/setup.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/setup.yaml @@ -17,6 +17,8 @@ post: properties: message: type: string + '400': + $ref: ../components/responses/error.yaml operationId: setup parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/types/rest_spec/agent.ts b/x-pack/plugins/fleet/common/types/rest_spec/agent.ts index 10866da70d93e..7a73829838d55 100644 --- a/x-pack/plugins/fleet/common/types/rest_spec/agent.ts +++ b/x-pack/plugins/fleet/common/types/rest_spec/agent.ts @@ -185,6 +185,7 @@ export interface GetAgentStatusRequest { export interface GetAgentStatusResponse { results: { events: number; + // deprecated total: number; online: number; error: number; @@ -193,6 +194,8 @@ export interface GetAgentStatusResponse { updating: number; inactive: number; unenrolled: number; + all: number; + active: number; }; } diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/multi_page_layout/components/add_first_integration_splash.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/multi_page_layout/components/add_first_integration_splash.tsx index e1e53efa16985..d09178f499717 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/multi_page_layout/components/add_first_integration_splash.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/multi_page_layout/components/add_first_integration_splash.tsx @@ -277,10 +277,12 @@ export const AddFirstIntegrationSplashScreen: React.FC<{ + + + } cancelClickHandler={cancelClickHandler} isLoading={isLoading} diff --git a/x-pack/plugins/fleet/server/services/agents/status.ts b/x-pack/plugins/fleet/server/services/agents/status.ts index 88761c53ee473..041298d57b4eb 100644 --- a/x-pack/plugins/fleet/server/services/agents/status.ts +++ b/x-pack/plugins/fleet/server/services/agents/status.ts @@ -126,16 +126,18 @@ export async function getAgentStatusForAgentPolicy( const { healthy: online, unhealthy: error, ...otherStatuses } = agentStatusesToSummary(statuses); const combinedStatuses = { online, error, ...otherStatuses }; + const allStatuses = Object.values(statuses).reduce((acc, val) => acc + val, 0); + const allActive = allStatuses - combinedStatuses.unenrolled - combinedStatuses.inactive; return { ...combinedStatuses, /* @deprecated no agents will have other status */ other: 0, /* @deprecated Agent events do not exists anymore */ events: 0, - total: - Object.values(statuses).reduce((acc, val) => acc + val, 0) - - combinedStatuses.unenrolled - - combinedStatuses.inactive, + /* @deprecated use active instead */ + total: allActive, + all: allStatuses, + active: allActive, }; } export async function getIncomingDataByAgentsId( diff --git a/x-pack/plugins/fleet/server/services/package_policies/experimental_datastream_features.test.ts b/x-pack/plugins/fleet/server/services/package_policies/experimental_datastream_features.test.ts index 500cf141fed26..af62a34d73bc2 100644 --- a/x-pack/plugins/fleet/server/services/package_policies/experimental_datastream_features.test.ts +++ b/x-pack/plugins/fleet/server/services/package_policies/experimental_datastream_features.test.ts @@ -239,6 +239,7 @@ describe('experimental_datastream_features', () => { mappings: expect.objectContaining({ _source: { mode: 'synthetic' } }), }), }), + _meta: { has_experimental_data_stream_indexing_features: true }, }) ); }); @@ -268,6 +269,7 @@ describe('experimental_datastream_features', () => { }), }), }), + _meta: { has_experimental_data_stream_indexing_features: true }, }) ); }); @@ -297,6 +299,7 @@ describe('experimental_datastream_features', () => { }), }), }), + _meta: { has_experimental_data_stream_indexing_features: true }, }) ); }); @@ -325,6 +328,7 @@ describe('experimental_datastream_features', () => { }), }), }), + _meta: { has_experimental_data_stream_indexing_features: true }, }) ); }); @@ -349,6 +353,7 @@ describe('experimental_datastream_features', () => { }), }), }), + _meta: { has_experimental_data_stream_indexing_features: true }, }) ); }); @@ -446,6 +451,7 @@ describe('experimental_datastream_features', () => { mappings: expect.objectContaining({ _source: { mode: 'synthetic' } }), }), }), + _meta: { has_experimental_data_stream_indexing_features: true }, }) ); }); @@ -475,6 +481,7 @@ describe('experimental_datastream_features', () => { }), }), }), + _meta: { has_experimental_data_stream_indexing_features: true }, }) ); }); @@ -504,6 +511,7 @@ describe('experimental_datastream_features', () => { }), }), }), + _meta: { has_experimental_data_stream_indexing_features: false }, }) ); }); @@ -544,6 +552,7 @@ describe('experimental_datastream_features', () => { }), }), }), + _meta: { has_experimental_data_stream_indexing_features: true }, }) ); }); diff --git a/x-pack/plugins/fleet/server/services/package_policies/experimental_datastream_features.ts b/x-pack/plugins/fleet/server/services/package_policies/experimental_datastream_features.ts index e98f45a5671c0..b700618f44762 100644 --- a/x-pack/plugins/fleet/server/services/package_policies/experimental_datastream_features.ts +++ b/x-pack/plugins/fleet/server/services/package_policies/experimental_datastream_features.ts @@ -159,9 +159,17 @@ export async function handleExperimentalDatastreamFeatureOptIn({ }, }; + const hasExperimentalDataStreamIndexingFeatures = + featureMapEntry.features.synthetic_source || + featureMapEntry.features.doc_value_only_numeric || + featureMapEntry.features.doc_value_only_other; + await esClient.cluster.putComponentTemplate({ name: componentTemplateName, body, + _meta: { + has_experimental_data_stream_indexing_features: hasExperimentalDataStreamIndexingFeatures, + }, }); } @@ -188,6 +196,9 @@ export async function handleExperimentalDatastreamFeatureOptIn({ name: featureMapEntry.data_stream, // @ts-expect-error body: indexTemplateBody, + _meta: { + has_experimental_data_stream_indexing_features: featureMapEntry.features.tsdb, + }, }); } diff --git a/x-pack/plugins/infra/kibana.jsonc b/x-pack/plugins/infra/kibana.jsonc index bb0e19db45e97..88b8384c7eb18 100644 --- a/x-pack/plugins/infra/kibana.jsonc +++ b/x-pack/plugins/infra/kibana.jsonc @@ -12,19 +12,23 @@ "infra" ], "requiredPlugins": [ - "share", - "features", - "usageCollection", - "embeddable", + "alerting", + "cases", + "charts", "data", "dataViews", - "visTypeTimeseries", - "alerting", + "embeddable", + "features", "lens", - "triggersActionsUi", "observability", "ruleRegistry", - "unifiedSearch" + "security", + "share", + "spaces", + "triggersActionsUi", + "unifiedSearch", + "usageCollection", + "visTypeTimeseries", ], "optionalPlugins": [ "spaces", diff --git a/x-pack/plugins/infra/public/components/height_retainer.tsx b/x-pack/plugins/infra/public/components/height_retainer.tsx new file mode 100644 index 0000000000000..d4e20bb36f4dc --- /dev/null +++ b/x-pack/plugins/infra/public/components/height_retainer.tsx @@ -0,0 +1,26 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useLayoutEffect, useRef } from 'react'; + +export function HeightRetainer( + props: React.DetailedHTMLProps, HTMLDivElement> +) { + const containerElement = useRef(null); + const minHeight = useRef(0); + + useLayoutEffect(() => { + if (containerElement.current) { + const currentHeight = containerElement.current.clientHeight; + if (minHeight.current < currentHeight) { + minHeight.current = currentHeight; + } + } + }); + + return
; +} diff --git a/x-pack/plugins/infra/public/hooks/use_alerts_count.test.ts b/x-pack/plugins/infra/public/hooks/use_alerts_count.test.ts new file mode 100644 index 0000000000000..2b2dc755c94c1 --- /dev/null +++ b/x-pack/plugins/infra/public/hooks/use_alerts_count.test.ts @@ -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 { renderHook } from '@testing-library/react-hooks'; +import { ALERT_STATUS, ValidFeatureId } from '@kbn/rule-data-utils'; + +import { useAlertsCount } from './use_alerts_count'; +import { KibanaReactContextValue, useKibana } from '@kbn/kibana-react-plugin/public'; +import { InfraClientStartDeps } from '../types'; +import { coreMock } from '@kbn/core/public/mocks'; +import { CoreStart } from '@kbn/core/public'; + +const mockedAlertsCountResponse = { + aggregations: { + count: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'active', + doc_count: 2, + }, + { + key: 'recovered', + doc_count: 20, + }, + ], + }, + }, +}; + +const expectedResult = { + activeAlertCount: 2, + recoveredAlertCount: 20, +}; + +jest.mock('@kbn/kibana-react-plugin/public'); +const useKibanaMock = useKibana as jest.MockedFunction; + +const mockedPostAPI = jest.fn(); + +const mockUseKibana = () => { + useKibanaMock.mockReturnValue({ + services: { + ...coreMock.createStart(), + http: { post: mockedPostAPI }, + }, + } as unknown as KibanaReactContextValue & Partial>); +}; + +describe('useAlertsCount', () => { + const featureIds: ValidFeatureId[] = ['infrastructure']; + + beforeAll(() => { + mockUseKibana(); + }); + + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('should return the mocked data from API', async () => { + mockedPostAPI.mockResolvedValue(mockedAlertsCountResponse); + + const { result, waitForNextUpdate } = renderHook(() => useAlertsCount({ featureIds })); + + expect(result.current.loading).toBe(true); + expect(result.current.alertsCount).toEqual(undefined); + + await waitForNextUpdate(); + + const { alertsCount, loading, error } = result.current; + expect(alertsCount).toEqual(expectedResult); + expect(loading).toBeFalsy(); + expect(error).toBeFalsy(); + }); + + it('should call API with correct input', async () => { + const ruleId = 'c95bc120-1d56-11ed-9cc7-e7214ada1128'; + const query = { + term: { + 'kibana.alert.rule.uuid': ruleId, + }, + }; + mockedPostAPI.mockResolvedValue(mockedAlertsCountResponse); + + const { waitForNextUpdate } = renderHook(() => + useAlertsCount({ + featureIds, + query, + }) + ); + + await waitForNextUpdate(); + + const body = JSON.stringify({ + aggs: { + count: { + terms: { field: ALERT_STATUS }, + }, + }, + feature_ids: featureIds, + query, + size: 0, + }); + + expect(mockedPostAPI).toHaveBeenCalledWith( + '/internal/rac/alerts/find', + expect.objectContaining({ body }) + ); + }); + + it('should return error if API call fails', async () => { + const error = new Error('Fetch Alerts Count Failed'); + mockedPostAPI.mockRejectedValueOnce(error); + + const { result, waitForNextUpdate } = renderHook(() => useAlertsCount({ featureIds })); + + await waitForNextUpdate(); + + expect(result.current.error?.message).toMatch(error.message); + }); +}); diff --git a/x-pack/plugins/infra/public/hooks/use_alerts_count.ts b/x-pack/plugins/infra/public/hooks/use_alerts_count.ts new file mode 100644 index 0000000000000..7d05a275d6eae --- /dev/null +++ b/x-pack/plugins/infra/public/hooks/use_alerts_count.ts @@ -0,0 +1,112 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useEffect, useRef } from 'react'; +import useAsyncFn from 'react-use/lib/useAsyncFn'; + +import { BASE_RAC_ALERTS_API_PATH } from '@kbn/rule-registry-plugin/common/constants'; +import { estypes } from '@elastic/elasticsearch'; +import { useKibana } from '@kbn/kibana-react-plugin/public'; +import type { HttpSetup } from '@kbn/core/public'; +import { ALERT_STATUS_ACTIVE, ALERT_STATUS_RECOVERED, ValidFeatureId } from '@kbn/rule-data-utils'; + +import { InfraClientCoreStart } from '../types'; + +interface UseAlertsCountProps { + featureIds: ValidFeatureId[]; + query?: estypes.QueryDslQueryContainer; +} + +interface FetchAlertsCountParams { + featureIds: ValidFeatureId[]; + query?: estypes.QueryDslQueryContainer; + http: HttpSetup; + signal: AbortSignal; +} + +interface AlertsCount { + activeAlertCount: number; + recoveredAlertCount: number; +} + +const ALERT_STATUS = 'kibana.alert.status'; + +export function useAlertsCount({ featureIds, query }: UseAlertsCountProps) { + const { http } = useKibana().services; + + const abortCtrlRef = useRef(new AbortController()); + + const [state, refetch] = useAsyncFn( + () => { + abortCtrlRef.current.abort(); + abortCtrlRef.current = new AbortController(); + return fetchAlertsCount({ + featureIds, + query, + http, + signal: abortCtrlRef.current.signal, + }); + }, + [featureIds, query, http], + { loading: true } + ); + + useEffect(() => { + refetch(); + }, [refetch]); + + const { value: alertsCount, error, loading } = state; + + return { + alertsCount, + error, + loading, + refetch, + }; +} + +async function fetchAlertsCount({ + featureIds, + http, + query, + signal, +}: FetchAlertsCountParams): Promise { + return http + .post>>(`${BASE_RAC_ALERTS_API_PATH}/find`, { + signal, + body: JSON.stringify({ + aggs: { + count: { + terms: { field: ALERT_STATUS }, + }, + }, + feature_ids: featureIds, + query, + size: 0, + }), + }) + .then(extractAlertsCount); +} + +const extractAlertsCount = (response: estypes.SearchResponse>) => { + const countAggs = response.aggregations?.count as estypes.AggregationsMultiBucketAggregateBase; + + const countBuckets = (countAggs?.buckets as estypes.AggregationsStringTermsBucketKeys[]) ?? []; + + return countBuckets.reduce( + (counts, bucket) => { + if (bucket.key === ALERT_STATUS_ACTIVE) { + counts.activeAlertCount = bucket.doc_count; + } else if (bucket.key === ALERT_STATUS_RECOVERED) { + counts.recoveredAlertCount = bucket.doc_count; + } + + return counts; + }, + { activeAlertCount: 0, recoveredAlertCount: 0 } + ); +}; diff --git a/x-pack/plugins/infra/public/pages/logs/stream/page_content.tsx b/x-pack/plugins/infra/public/pages/logs/stream/page_content.tsx index 6fb2475d3d1e8..b011931adbd85 100644 --- a/x-pack/plugins/infra/public/pages/logs/stream/page_content.tsx +++ b/x-pack/plugins/infra/public/pages/logs/stream/page_content.tsx @@ -18,6 +18,7 @@ import { } from '../../../observability_logs/log_stream_page/state'; import { InvalidStateCallout } from '../../../observability_logs/xstate_helpers'; import { ConnectedLogViewErrorPage } from '../shared/page_log_view_error'; +import { LogStreamPageTemplate } from './components/stream_page_template'; import { StreamPageLogsContentForState } from './page_logs_content'; import { StreamPageMissingIndicesContent } from './page_missing_indices_content'; import { LogStreamPageContentProviders } from './page_providers'; @@ -79,15 +80,17 @@ export const StreamPageContentForState: React.FC<{ return ; } else if (logStreamPageState.matches({ hasLogViewIndices: 'initialized' })) { return ( - - + - + > + + + ); } else { return ; diff --git a/x-pack/plugins/infra/public/pages/logs/stream/page_logs_content.tsx b/x-pack/plugins/infra/public/pages/logs/stream/page_logs_content.tsx index 43f692cf9af8c..4cfd284ec4530 100644 --- a/x-pack/plugins/infra/public/pages/logs/stream/page_logs_content.tsx +++ b/x-pack/plugins/infra/public/pages/logs/stream/page_logs_content.tsx @@ -38,7 +38,6 @@ import { import { type ParsedQuery } from '../../../observability_logs/log_stream_query_state'; import { MatchedStateFromActor } from '../../../observability_logs/xstate_helpers'; import { datemathToEpochMillis, isValidDatemath } from '../../../utils/datemath'; -import { LogStreamPageTemplate } from './components/stream_page_template'; import { LogsToolbar } from './page_toolbar'; import { PageViewLogInContext } from './page_view_log_in_context'; @@ -218,7 +217,7 @@ export const StreamPageLogsContent = React.memo<{ ); return ( - + <> @@ -284,7 +283,7 @@ export const StreamPageLogsContent = React.memo<{ }} - + ); }); diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_container.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_container.tsx index beacf9f032619..145de0edede12 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_container.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_container.tsx @@ -15,6 +15,7 @@ import { HostsTable } from './hosts_table'; import { HostsViewProvider } from '../hooks/use_hosts_view'; import { KPICharts } from './kpi_charts/kpi_charts'; import { Tabs } from './tabs/tabs'; +import { AlertsQueryProvider } from '../hooks/use_alerts_query'; export const HostContainer = () => { const { metricsDataView, isDataViewLoading, hasFailedLoadingDataView } = @@ -38,14 +39,16 @@ export const HostContainer = () => { - + - + - - + + + + diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_table.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_table.tsx index 7c3441809b9ea..00b86550a2adc 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_table.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_table.tsx @@ -5,59 +5,23 @@ * 2.0. */ -import React, { useCallback, useEffect } from 'react'; +import React, { useCallback } from 'react'; import { EuiInMemoryTable } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { isEqual } from 'lodash'; import { NoData } from '../../../../components/empty_states'; import { InfraLoadingPanel } from '../../../../components/loading'; import { useHostsTable } from '../hooks/use_hosts_table'; -import { useSnapshot } from '../../inventory_view/hooks/use_snaphot'; -import type { SnapshotMetricType } from '../../../../../common/inventory_models/types'; import { useTableProperties } from '../hooks/use_table_properties_url_state'; import { useHostsViewContext } from '../hooks/use_hosts_view'; import { useUnifiedSearchContext } from '../hooks/use_unified_search'; -const HOST_TABLE_METRICS: Array<{ type: SnapshotMetricType }> = [ - { type: 'rx' }, - { type: 'tx' }, - { type: 'memory' }, - { type: 'cpu' }, - { type: 'diskLatency' }, - { type: 'memoryTotal' }, -]; - export const HostsTable = () => { - const { baseRequest, setHostViewState, hostViewState } = useHostsViewContext(); + const { hostNodes, loading } = useHostsViewContext(); const { onSubmit, unifiedSearchDateRange } = useUnifiedSearchContext(); const [properties, setProperties] = useTableProperties(); - // Snapshot endpoint internally uses the indices stored in source.configuration.metricAlias. - // For the Unified Search, we create a data view, which for now will be built off of source.configuration.metricAlias too - // if we introduce data view selection, we'll have to change this hook and the endpoint to accept a new parameter for the indices - const { loading, nodes, error } = useSnapshot({ - ...baseRequest, - metrics: HOST_TABLE_METRICS, - }); - - const { columns, items } = useHostsTable(nodes, { time: unifiedSearchDateRange }); - - useEffect(() => { - if (hostViewState.loading !== loading || nodes.length !== hostViewState.totalHits) { - setHostViewState({ - loading, - totalHits: nodes.length, - error, - }); - } - }, [ - error, - hostViewState.loading, - hostViewState.totalHits, - loading, - nodes.length, - setHostViewState, - ]); + const { columns, items } = useHostsTable(hostNodes, { time: unifiedSearchDateRange }); const noData = items.length === 0; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpi_charts/hosts_tile.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpi_charts/hosts_tile.tsx index 8322f7ba00b75..b6973327101f0 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpi_charts/hosts_tile.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpi_charts/hosts_tile.tsx @@ -10,15 +10,15 @@ import { useHostsViewContext } from '../../hooks/use_hosts_view'; import { type ChartBaseProps, KPIChart } from './kpi_chart'; export const HostsTile = ({ type, ...props }: ChartBaseProps) => { - const { hostViewState } = useHostsViewContext(); + const { hostNodes, loading } = useHostsViewContext(); return ( ); diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/alerts_status_filter.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/alerts_status_filter.tsx new file mode 100644 index 0000000000000..9fb294cdde864 --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/alerts_status_filter.tsx @@ -0,0 +1,54 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiButtonGroup, EuiButtonGroupOptionProps } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import React from 'react'; +import { ACTIVE_ALERTS, ALL_ALERTS, RECOVERED_ALERTS } from '../../../constants'; +import { AlertStatus } from '../../../types'; +export interface AlertStatusFilterProps { + status: AlertStatus; + onChange: (id: AlertStatus) => void; +} + +const options: EuiButtonGroupOptionProps[] = [ + { + id: ALL_ALERTS.status, + label: ALL_ALERTS.label, + value: ALL_ALERTS.query, + 'data-test-subj': 'hostsView-alert-status-filter-show-all-button', + }, + { + id: ACTIVE_ALERTS.status, + label: ACTIVE_ALERTS.label, + value: ACTIVE_ALERTS.query, + 'data-test-subj': 'hostsView-alert-status-filter-active-button', + }, + { + id: RECOVERED_ALERTS.status, + label: RECOVERED_ALERTS.label, + value: RECOVERED_ALERTS.query, + 'data-test-subj': 'hostsView-alert-status-filter-recovered-button', + }, +]; + +export function AlertsStatusFilter({ status, onChange }: AlertStatusFilterProps) { + return ( + onChange(id as AlertStatus)} + /> + ); +} + +// eslint-disable-next-line import/no-default-export +export default AlertsStatusFilter; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/alerts_tab_content.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/alerts_tab_content.tsx new file mode 100644 index 0000000000000..1974782c0ba42 --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/alerts_tab_content.tsx @@ -0,0 +1,115 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React, { useMemo } from 'react'; +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { useKibana } from '@kbn/kibana-react-plugin/public'; +import { + calculateTimeRangeBucketSize, + getAlertSummaryTimeRange, + useTimeBuckets, +} from '@kbn/observability-plugin/public'; +import { AlertConsumers } from '@kbn/rule-data-utils'; +import { TimeRange } from '@kbn/es-query'; +import { HeightRetainer } from '../../../../../../components/height_retainer'; +import type { InfraClientCoreStart, InfraClientStartDeps } from '../../../../../../types'; +import { useUnifiedSearchContext } from '../../../hooks/use_unified_search'; + +import { + ALERTS_PER_PAGE, + ALERTS_TABLE_ID, + casesFeatures, + casesOwner, + DEFAULT_DATE_FORMAT, + DEFAULT_INTERVAL, + infraAlertFeatureIds, +} from '../config'; +import { useAlertsQuery } from '../../../hooks/use_alerts_query'; +import AlertsStatusFilter from './alerts_status_filter'; + +export const AlertsTabContent = React.memo(() => { + const { services } = useKibana(); + + const { alertStatus, setAlertStatus, alertsEsQueryByStatus } = useAlertsQuery(); + + const { unifiedSearchDateRange } = useUnifiedSearchContext(); + + const summaryTimeRange = useSummaryTimeRange(unifiedSearchDateRange); + + const { application, cases, charts, triggersActionsUi } = services; + + const { + alertsTableConfigurationRegistry, + getAlertsStateTable: AlertsStateTable, + getAlertSummaryWidget: AlertSummaryWidget, + } = triggersActionsUi; + + const CasesContext = cases.ui.getCasesContext(); + const uiCapabilities = application?.capabilities; + const casesCapabilities = cases.helpers.getUICapabilities(uiCapabilities.observabilityCases); + + const chartThemes = { + theme: charts.theme.useChartsTheme(), + baseTheme: charts.theme.useChartsBaseTheme(), + }; + + return ( + + + + + + + + + + + {alertsEsQueryByStatus && ( + + + + + + )} + + + ); +}); + +const useSummaryTimeRange = (unifiedSearchDateRange: TimeRange) => { + const timeBuckets = useTimeBuckets(); + + const bucketSize = useMemo( + () => calculateTimeRangeBucketSize(unifiedSearchDateRange, timeBuckets), + [unifiedSearchDateRange, timeBuckets] + ); + + return getAlertSummaryTimeRange( + unifiedSearchDateRange, + bucketSize?.intervalString || DEFAULT_INTERVAL, + bucketSize?.dateFormat || DEFAULT_DATE_FORMAT + ); +}; diff --git a/x-pack/plugins/security_solution/cypress/screens/pagination.ts b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/index.ts similarity index 53% rename from x-pack/plugins/security_solution/cypress/screens/pagination.ts rename to x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/index.ts index ee99477319258..a249221b8b159 100644 --- a/x-pack/plugins/security_solution/cypress/screens/pagination.ts +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/index.ts @@ -5,6 +5,4 @@ * 2.0. */ -export const FIRST_PAGE_SELECTOR = '[data-test-subj="pagination-button-0"]'; -export const SECOND_PAGE_SELECTOR = '[data-test-subj="pagination-button-1"]'; -export const SORT_BTN = '[data-test-subj="tableHeaderSortButton"]'; +export * from './alerts_tab_content'; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts_tab_badge.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts_tab_badge.tsx new file mode 100644 index 0000000000000..2e28e358e29ab --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts_tab_badge.tsx @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React from 'react'; +import { EuiIcon, EuiLoadingSpinner, EuiNotificationBadge, EuiToolTip } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { useAlertsCount } from '../../../../../hooks/use_alerts_count'; +import { infraAlertFeatureIds } from './config'; +import { useAlertsQuery } from '../../hooks/use_alerts_query'; + +export const AlertsTabBadge = () => { + const { alertsEsQuery } = useAlertsQuery(); + + const { alertsCount, loading, error } = useAlertsCount({ + featureIds: infraAlertFeatureIds, + query: alertsEsQuery, + }); + + if (loading) { + return ; + } + + if (error) { + return ( + + + + ); + } + + return ( + + {alertsCount?.activeAlertCount} + + ); +}; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/config.ts b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/config.ts new file mode 100644 index 0000000000000..2c8af4fa4c76b --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/config.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { AlertConsumers } from '@kbn/rule-data-utils'; +import type { ValidFeatureId } from '@kbn/rule-data-utils'; + +export const ALERTS_PER_PAGE = 10; +export const ALERTS_TABLE_ID = 'xpack.infra.hosts.alerts.table'; + +export const INFRA_ALERT_FEATURE_ID = 'infrastructure'; +export const infraAlertFeatureIds: ValidFeatureId[] = [AlertConsumers.INFRASTRUCTURE]; +export const casesFeatures = { alerts: { sync: false } }; +export const casesOwner = [INFRA_ALERT_FEATURE_ID]; + +export const DEFAULT_INTERVAL = '60s'; +export const DEFAULT_DATE_FORMAT = 'YYYY-MM-DD HH:mm'; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/metrics/metrics_grid.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/metrics/metrics_grid.tsx index fe9ef7711bb17..619dee233aea1 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/metrics/metrics_grid.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/metrics/metrics_grid.tsx @@ -57,7 +57,7 @@ const CHARTS_IN_ORDER: Array & { fullRo }, ]; -export const MetricsGrid = () => { +export const MetricsGrid = React.memo(() => { return ( @@ -79,7 +79,7 @@ export const MetricsGrid = () => { {CHARTS_IN_ORDER.map(({ fullRow, ...chartProp }) => ( - + ))} @@ -87,4 +87,4 @@ export const MetricsGrid = () => { ); -}; +}); diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/tabs.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/tabs.tsx index dc449327a21de..7b999175e79fa 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/tabs.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/tabs.tsx @@ -5,37 +5,71 @@ * 2.0. */ -import React from 'react'; -import { EuiTabbedContent, EuiSpacer, type EuiTabbedContentTab } from '@elastic/eui'; +import React, { useRef, useState } from 'react'; +import { EuiTabs, EuiTab, EuiSpacer } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { MetricsGrid } from './metrics/metrics_grid'; +import { AlertsTabContent } from './alerts'; + +import { AlertsTabBadge } from './alerts_tab_badge'; +import { TabIds } from '../../types'; + +const tabs = [ + { + id: TabIds.METRICS, + name: i18n.translate('xpack.infra.hostsViewPage.tabs.metricsCharts.title', { + defaultMessage: 'Metrics', + }), + 'data-test-subj': 'hostsView-tabs-metrics', + }, + { + id: TabIds.ALERTS, + name: i18n.translate('xpack.infra.hostsViewPage.tabs.alerts.title', { + defaultMessage: 'Alerts', + }), + append: , + 'data-test-subj': 'hostsView-tabs-alerts', + }, +]; + +const initialRenderedTabsSet = new Set([tabs[0].id]); + +export const Tabs = () => { + // This map allow to keep track of which tabs content have been rendered the first time. + // We need it in order to load a tab content only if it gets clicked, and then keep it in the DOM for performance improvement. + const renderedTabsSet = useRef(initialRenderedTabsSet); + + const [selectedTabId, setSelectedTabId] = useState(tabs[0].id); + + const tabEntries = tabs.map((tab, index) => ( + { + renderedTabsSet.current.add(tab.id); // On a tab click, mark the tab content as allowed to be rendered + setSelectedTabId(tab.id); + }} + isSelected={tab.id === selectedTabId} + append={tab.append} + > + {tab.name} + + )); -interface WrapperProps { - children: React.ReactElement; -} -const Wrapper = ({ children }: WrapperProps) => { return ( <> - - {children} + {tabEntries} + + {renderedTabsSet.current.has(TabIds.METRICS) && ( + + )} + {renderedTabsSet.current.has(TabIds.ALERTS) && ( + + )} ); }; -export const Tabs = () => { - const tabs: EuiTabbedContentTab[] = [ - { - id: 'metrics', - name: i18n.translate('xpack.infra.hostsViewPage.tabs.metricsCharts.title', { - defaultMessage: 'Metrics', - }), - 'data-test-subj': 'hostsView-tabs-metrics', - content: ( - - - - ), - }, - ]; - - return ; -}; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/constants.ts b/x-pack/plugins/infra/public/pages/metrics/hosts/constants.ts new file mode 100644 index 0000000000000..3363a307061f2 --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/constants.ts @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { ALERT_STATUS, ALERT_STATUS_ACTIVE, ALERT_STATUS_RECOVERED } from '@kbn/rule-data-utils'; +import { AlertStatusFilter } from './types'; + +export const ALERT_STATUS_ALL = 'all'; + +export const ALL_ALERTS: AlertStatusFilter = { + status: ALERT_STATUS_ALL, + query: '', + label: i18n.translate('xpack.infra.hostsViewPage.tabs.alerts.alertStatusFilter.showAll', { + defaultMessage: 'Show all', + }), +}; + +export const ACTIVE_ALERTS: AlertStatusFilter = { + status: ALERT_STATUS_ACTIVE, + query: `${ALERT_STATUS}: "${ALERT_STATUS_ACTIVE}"`, + label: i18n.translate('xpack.infra.hostsViewPage.tabs.alerts.alertStatusFilter.active', { + defaultMessage: 'Active', + }), +}; + +export const RECOVERED_ALERTS: AlertStatusFilter = { + status: ALERT_STATUS_RECOVERED, + query: `${ALERT_STATUS}: "${ALERT_STATUS_RECOVERED}"`, + label: i18n.translate('xpack.infra.hostsViewPage.tabs.alerts.alertStatusFilter.recovered', { + defaultMessage: 'Recovered', + }), +}; + +export const ALERT_STATUS_QUERY = { + [ACTIVE_ALERTS.status]: ACTIVE_ALERTS.query, + [RECOVERED_ALERTS.status]: RECOVERED_ALERTS.query, +}; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_alerts_query.ts b/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_alerts_query.ts new file mode 100644 index 0000000000000..947cfe28d4d0c --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_alerts_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 { useCallback, useMemo, useState } from 'react'; +import createContainer from 'constate'; +import { getTime } from '@kbn/data-plugin/common'; +import { TIMESTAMP } from '@kbn/rule-data-utils'; +import { buildEsQuery, Filter, Query } from '@kbn/es-query'; +import { SnapshotNode } from '../../../../../common/http_api'; +import { useUnifiedSearchContext } from './use_unified_search'; +import { HostsState } from './use_unified_search_url_state'; +import { useHostsView } from './use_hosts_view'; +import { AlertStatus } from '../types'; +import { ALERT_STATUS_QUERY } from '../constants'; + +export const useAlertsQueryImpl = () => { + const { hostNodes } = useHostsView(); + + const { unifiedSearchDateRange } = useUnifiedSearchContext(); + + const [alertStatus, setAlertStatus] = useState('all'); + + const getAlertsEsQuery = useCallback( + (status?: AlertStatus) => + createAlertsEsQuery({ dateRange: unifiedSearchDateRange, hostNodes, status }), + [hostNodes, unifiedSearchDateRange] + ); + + // Regenerate the query when status change even if is not used. + // eslint-disable-next-line react-hooks/exhaustive-deps + const alertsEsQuery = useMemo(() => getAlertsEsQuery(), [getAlertsEsQuery, alertStatus]); + + const alertsEsQueryByStatus = useMemo( + () => getAlertsEsQuery(alertStatus), + [getAlertsEsQuery, alertStatus] + ); + + return { + alertStatus, + setAlertStatus, + alertsEsQuery, + alertsEsQueryByStatus, + }; +}; + +export const AlertsQueryContainer = createContainer(useAlertsQueryImpl); +export const [AlertsQueryProvider, useAlertsQuery] = AlertsQueryContainer; + +/** + * Helpers + */ +const createAlertsEsQuery = ({ + dateRange, + hostNodes, + status, +}: { + dateRange: HostsState['dateRange']; + hostNodes: SnapshotNode[]; + status?: AlertStatus; +}) => { + const alertStatusQuery = createAlertStatusQuery(status); + + const dateFilter = createDateFilter(dateRange); + const hostsFilter = createHostsFilter(hostNodes); + + const queries = alertStatusQuery ? [alertStatusQuery] : []; + const filters = [hostsFilter, dateFilter].filter(Boolean) as Filter[]; + + return buildEsQuery(undefined, queries, filters); +}; + +const createDateFilter = (date: HostsState['dateRange']) => + getTime(undefined, date, { fieldName: TIMESTAMP }); + +const createAlertStatusQuery = (status: AlertStatus = 'all'): Query | null => + ALERT_STATUS_QUERY[status] ? { query: ALERT_STATUS_QUERY[status], language: 'kuery' } : null; + +const createHostsFilter = (hosts: SnapshotNode[]): Filter => ({ + query: { + terms: { + 'host.name': hosts.map((p) => p.name), + }, + }, + meta: {}, +}); diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_view.ts b/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_view.ts index fa259784a3d72..012dcd42fe556 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_view.ts +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_view.ts @@ -12,61 +12,85 @@ * 2.0. */ -import { useMemo, useState } from 'react'; +import { useMemo } from 'react'; import createContainer from 'constate'; +import { BoolQuery } from '@kbn/es-query'; +import { SnapshotMetricType } from '../../../../../common/inventory_models/types'; import { useSourceContext } from '../../../../containers/metrics_source'; -import type { UseSnapshotRequest } from '../../inventory_view/hooks/use_snaphot'; +import { useSnapshot, type UseSnapshotRequest } from '../../inventory_view/hooks/use_snaphot'; import { useUnifiedSearchContext } from './use_unified_search'; +import { StringDateRangeTimestamp } from './use_unified_search_url_state'; -export interface HostViewState { - totalHits: number; - loading: boolean; - error: string | null; -} - -export const INITAL_VALUE = { - error: null, - loading: true, - totalHits: 0, -}; +const HOST_TABLE_METRICS: Array<{ type: SnapshotMetricType }> = [ + { type: 'rx' }, + { type: 'tx' }, + { type: 'memory' }, + { type: 'cpu' }, + { type: 'diskLatency' }, + { type: 'memoryTotal' }, +]; export const useHostsView = () => { const { sourceId } = useSourceContext(); const { buildQuery, getDateRangeAsTimestamp } = useUnifiedSearchContext(); - const [hostViewState, setHostViewState] = useState(INITAL_VALUE); - const baseRequest = useMemo(() => { - const esQuery = buildQuery(); - const { from, to } = getDateRangeAsTimestamp(); + const baseRequest = useMemo( + () => + createSnapshotRequest({ + dateRange: getDateRangeAsTimestamp(), + esQuery: buildQuery(), + sourceId, + }), + [buildQuery, getDateRangeAsTimestamp, sourceId] + ); - const snapshotRequest: UseSnapshotRequest = { - filterQuery: esQuery ? JSON.stringify(esQuery) : null, - metrics: [], - groupBy: [], - nodeType: 'host', - sourceId, - currentTime: to, - includeTimeseries: false, - sendRequestImmediately: true, - timerange: { - interval: '1m', - from, - to, - ignoreLookback: true, - }, - // The user might want to click on the submit button without changing the filters - // This makes sure all child components will re-render. - requestTs: Date.now(), - }; - return snapshotRequest; - }, [buildQuery, getDateRangeAsTimestamp, sourceId]); + // Snapshot endpoint internally uses the indices stored in source.configuration.metricAlias. + // For the Unified Search, we create a data view, which for now will be built off of source.configuration.metricAlias too + // if we introduce data view selection, we'll have to change this hook and the endpoint to accept a new parameter for the indices + const { + loading, + error, + nodes: hostNodes, + } = useSnapshot({ ...baseRequest, metrics: HOST_TABLE_METRICS }); return { baseRequest, - hostViewState, - setHostViewState, + loading, + error, + hostNodes, }; }; export const HostsView = createContainer(useHostsView); export const [HostsViewProvider, useHostsViewContext] = HostsView; + +/** + * Helpers + */ +const createSnapshotRequest = ({ + esQuery, + sourceId, + dateRange, +}: { + esQuery: { bool: BoolQuery } | null; + sourceId: string; + dateRange: StringDateRangeTimestamp; +}): UseSnapshotRequest => ({ + filterQuery: esQuery ? JSON.stringify(esQuery) : null, + metrics: [], + groupBy: [], + nodeType: 'host', + sourceId, + currentTime: dateRange.to, + includeTimeseries: false, + sendRequestImmediately: true, + timerange: { + interval: '1m', + from: dateRange.from, + to: dateRange.to, + ignoreLookback: true, + }, + // The user might want to click on the submit button without changing the filters + // This makes sure all child components will re-render. + requestTs: Date.now(), +}); diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/types.ts b/x-pack/plugins/infra/public/pages/metrics/hosts/types.ts new file mode 100644 index 0000000000000..08cd6ea3a56bf --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/types.ts @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ALERT_STATUS_ACTIVE, ALERT_STATUS_RECOVERED } from '@kbn/rule-data-utils'; +import { ALERT_STATUS_ALL } from './constants'; + +export enum TabIds { + ALERTS = 'alerts', + METRICS = 'metrics', +} + +export type AlertStatus = + | typeof ALERT_STATUS_ACTIVE + | typeof ALERT_STATUS_RECOVERED + | typeof ALERT_STATUS_ALL; + +export interface AlertStatusFilter { + status: AlertStatus; + query: string; + label: string; +} diff --git a/x-pack/plugins/infra/public/types.ts b/x-pack/plugins/infra/public/types.ts index 97bf31d102558..449d993ce809a 100644 --- a/x-pack/plugins/infra/public/types.ts +++ b/x-pack/plugins/infra/public/types.ts @@ -30,6 +30,8 @@ import type { import type { SpacesPluginStart } from '@kbn/spaces-plugin/public'; import type { IStorageWrapper } from '@kbn/kibana-utils-plugin/public'; import { type TypedLensByValueInput, LensPublicStart } from '@kbn/lens-plugin/public'; +import type { ChartsPluginStart } from '@kbn/charts-plugin/public'; +import { CasesUiStart } from '@kbn/cases-plugin/public'; import type { UnwrapPromise } from '../common/utility_types'; import type { SourceProviderProps, @@ -67,19 +69,21 @@ export interface InfraClientSetupDeps { } export interface InfraClientStartDeps { + cases: CasesUiStart; + charts: ChartsPluginStart; data: DataPublicPluginStart; - unifiedSearch: UnifiedSearchPublicPluginStart; dataViews: DataViewsPublicPluginStart; - observability: ObservabilityPublicStart; - spaces?: SpacesPluginStart; - triggersActionsUi: TriggersAndActionsUIPublicPluginStart; - usageCollection: UsageCollectionStart; - ml: MlPluginStart; embeddable?: EmbeddableStart; + lens: LensPublicStart; + ml: MlPluginStart; + observability: ObservabilityPublicStart; osquery?: unknown; // OsqueryPluginStart; share: SharePluginStart; + spaces: SpacesPluginStart; storage: IStorageWrapper; - lens: LensPublicStart; + triggersActionsUi: TriggersAndActionsUIPublicPluginStart; + unifiedSearch: UnifiedSearchPublicPluginStart; + usageCollection: UsageCollectionStart; telemetry: ITelemetryClient; } diff --git a/x-pack/plugins/infra/tsconfig.json b/x-pack/plugins/infra/tsconfig.json index ac7aba61f8b8d..07586b6a25e1c 100644 --- a/x-pack/plugins/infra/tsconfig.json +++ b/x-pack/plugins/infra/tsconfig.json @@ -53,7 +53,8 @@ "@kbn/core-saved-objects-common", "@kbn/core-analytics-server", "@kbn/analytics-client", - "@kbn/shared-ux-router", + "@kbn/cases-plugin", + "@kbn/shared-ux-router" ], "exclude": ["target/**/*"] } diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts index 02410b6994c34..cea4597be577a 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts @@ -239,8 +239,10 @@ export function initializeVisualization({ }) { if (visualizationState?.activeId) { return ( - visualizationMap[visualizationState.activeId]?.fromPersistableState?.( + visualizationMap[visualizationState.activeId]?.initialize( + () => '', visualizationState.state, + undefined, references, initialContext ) ?? visualizationState.state diff --git a/x-pack/plugins/lens/public/embeddable/embeddable.tsx b/x-pack/plugins/lens/public/embeddable/embeddable.tsx index a430f8ab66e1e..39bc64adef207 100644 --- a/x-pack/plugins/lens/public/embeddable/embeddable.tsx +++ b/x-pack/plugins/lens/public/embeddable/embeddable.tsx @@ -538,11 +538,11 @@ export class Embeddable private get activeVisualizationState() { if (!this.activeVisualization) return; - return ( - this.activeVisualization.fromPersistableState?.( - this.savedVis?.state.visualization, - this.savedVis?.references - ) || this.activeVisualization.initialize(() => '', this.savedVis?.state.visualization) + return this.activeVisualization.initialize( + () => '', + this.savedVis?.state.visualization, + undefined, + this.savedVis?.references ); } diff --git a/x-pack/plugins/lens/public/state_management/__snapshots__/load_initial.test.tsx.snap b/x-pack/plugins/lens/public/state_management/__snapshots__/load_initial.test.tsx.snap index d30a68e5e52b0..8b7050304fb80 100644 --- a/x-pack/plugins/lens/public/state_management/__snapshots__/load_initial.test.tsx.snap +++ b/x-pack/plugins/lens/public/state_management/__snapshots__/load_initial.test.tsx.snap @@ -98,7 +98,9 @@ Object { }, "visualization": Object { "activeId": "testVis", - "state": Object {}, + "state": Object { + "newState": "newState", + }, }, }, } diff --git a/x-pack/plugins/lens/public/types.ts b/x-pack/plugins/lens/public/types.ts index 0ab04eac70f90..d48b956c0c383 100644 --- a/x-pack/plugins/lens/public/types.ts +++ b/x-pack/plugins/lens/public/types.ts @@ -1018,7 +1018,7 @@ interface VisualizationStateFromContextChangeProps { context: VisualizeEditorContext; } -export interface Visualization { +export interface Visualization { /** Plugin ID, such as "lnsXY" */ id: string; @@ -1028,7 +1028,13 @@ export interface Visualization { * - Loading from a saved visualization * - When using suggestions, the suggested state is passed in */ - initialize: (addNewLayer: () => string, state?: T, mainPalette?: PaletteOutput) => T; + initialize: ( + addNewLayer: () => string, + state?: T | P, + mainPalette?: PaletteOutput, + references?: SavedObjectReference[], + initialContext?: VisualizeFieldContext | VisualizeEditorContext + ) => T; getUsedDataView?: (state: T, layerId: string) => string | undefined; /** @@ -1060,12 +1066,6 @@ export interface Visualization { getDescription: (state: T) => { icon?: IconType; label: string }; /** Visualizations can have references as well */ getPersistableState?: (state: T) => { state: P; savedObjectReferences: SavedObjectReference[] }; - /** Hydrate from persistable state and references to final state */ - fromPersistableState?: ( - state: P, - references?: SavedObjectReference[], - initialContext?: VisualizeFieldContext | VisualizeEditorContext - ) => T; /** Frame needs to know which layers the visualization is currently using */ getLayerIds: (state: T) => string[]; /** Reset button on each layer triggers this */ diff --git a/x-pack/plugins/lens/public/visualizations/xy/state_helpers.ts b/x-pack/plugins/lens/public/visualizations/xy/state_helpers.ts index 236cd25dd2e2d..ab20281a81d53 100644 --- a/x-pack/plugins/lens/public/visualizations/xy/state_helpers.ts +++ b/x-pack/plugins/lens/public/visualizations/xy/state_helpers.ts @@ -136,6 +136,11 @@ export function extractReferences(state: XYState) { return { savedObjectReferences, state: { ...state, layers: persistableLayers } }; } +export function isPersistedState(state: XYPersistedState | XYState): state is XYPersistedState { + const annotationLayers = state.layers.filter((l) => isAnnotationsLayer(l)); + return annotationLayers.some((l) => !('indexPatternId' in l)); +} + export function injectReferences( state: XYPersistedState, references?: SavedObjectReference[], diff --git a/x-pack/plugins/lens/public/visualizations/xy/visualization.test.ts b/x-pack/plugins/lens/public/visualizations/xy/visualization.test.ts index 8dd7d9b1f2dbe..9e7f5fcdb2bc2 100644 --- a/x-pack/plugins/lens/public/visualizations/xy/visualization.test.ts +++ b/x-pack/plugins/lens/public/visualizations/xy/visualization.test.ts @@ -219,6 +219,88 @@ describe('xy_visualization', () => { it('loads from persisted state', () => { expect(xyVisualization.initialize(() => 'first', exampleState())).toEqual(exampleState()); }); + + it('should inject references on annotation layers', () => { + const baseState = exampleState(); + expect( + xyVisualization.initialize!( + () => 'first', + { + ...baseState, + layers: [ + ...baseState.layers, + { + layerId: 'annotation', + layerType: layerTypes.ANNOTATIONS, + annotations: [exampleAnnotation2], + ignoreGlobalFilters: true, + }, + ], + }, + undefined, + [ + { + type: 'index-pattern', + name: `xy-visualization-layer-annotation`, + id: 'indexPattern1', + }, + ] + ) + ).toEqual({ + ...baseState, + layers: [ + ...baseState.layers, + { + layerId: 'annotation', + layerType: layerTypes.ANNOTATIONS, + indexPatternId: 'indexPattern1', + annotations: [exampleAnnotation2], + ignoreGlobalFilters: true, + }, + ], + }); + }); + + it('should fallback to the first dataView reference in case there are missing annotation references', () => { + const baseState = exampleState(); + expect( + xyVisualization.initialize!( + () => 'first', + { + ...baseState, + layers: [ + ...baseState.layers, + { + layerId: 'annotation', + layerType: layerTypes.ANNOTATIONS, + annotations: [exampleAnnotation2], + ignoreGlobalFilters: true, + }, + ], + }, + undefined, + [ + { + type: 'index-pattern', + name: 'something-else', + id: 'indexPattern1', + }, + ] + ) + ).toEqual({ + ...baseState, + layers: [ + ...baseState.layers, + { + layerId: 'annotation', + layerType: layerTypes.ANNOTATIONS, + indexPatternId: 'indexPattern1', + annotations: [exampleAnnotation2], + ignoreGlobalFilters: true, + }, + ], + }); + }); }); describe('#removeLayer', () => { @@ -2883,86 +2965,6 @@ describe('xy_visualization', () => { }); }); - describe('#fromPersistableState', () => { - it('should inject references on annotation layers', () => { - const baseState = exampleState(); - expect( - xyVisualization.fromPersistableState!( - { - ...baseState, - layers: [ - ...baseState.layers, - { - layerId: 'annotation', - layerType: layerTypes.ANNOTATIONS, - annotations: [exampleAnnotation2], - ignoreGlobalFilters: true, - }, - ], - }, - [ - { - type: 'index-pattern', - name: `xy-visualization-layer-annotation`, - id: 'indexPattern1', - }, - ] - ) - ).toEqual({ - ...baseState, - layers: [ - ...baseState.layers, - { - layerId: 'annotation', - layerType: layerTypes.ANNOTATIONS, - indexPatternId: 'indexPattern1', - annotations: [exampleAnnotation2], - ignoreGlobalFilters: true, - }, - ], - }); - }); - - it('should fallback to the first dataView reference in case there are missing annotation references', () => { - const baseState = exampleState(); - expect( - xyVisualization.fromPersistableState!( - { - ...baseState, - layers: [ - ...baseState.layers, - { - layerId: 'annotation', - layerType: layerTypes.ANNOTATIONS, - annotations: [exampleAnnotation2], - ignoreGlobalFilters: true, - }, - ], - }, - [ - { - type: 'index-pattern', - name: 'something-else', - id: 'indexPattern1', - }, - ] - ) - ).toEqual({ - ...baseState, - layers: [ - ...baseState.layers, - { - layerId: 'annotation', - layerType: layerTypes.ANNOTATIONS, - indexPatternId: 'indexPattern1', - annotations: [exampleAnnotation2], - ignoreGlobalFilters: true, - }, - ], - }); - }); - }); - describe('layer actions', () => { it('should return no actions for a data layer', () => { expect(xyVisualization.getSupportedActionsForLayer?.('first', exampleState())).toHaveLength( diff --git a/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx b/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx index a019f9c6b1988..44c19e5cd4467 100644 --- a/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx +++ b/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx @@ -57,6 +57,7 @@ import { getAnnotationLayerErrors, injectReferences, isHorizontalChart, + isPersistedState, } from './state_helpers'; import { toExpression, toPreviewExpression, getSortedAccessors } from './to_expression'; import { getAccessorColorConfigs, getColorAssignments } from './color_assignment'; @@ -210,10 +211,6 @@ export const getXyVisualization = ({ return extractReferences(state); }, - fromPersistableState(state, references, initialContext) { - return injectReferences(state, references, initialContext); - }, - getDescription, switchVisualizationType(seriesType: string, state: State) { @@ -228,9 +225,13 @@ export const getXyVisualization = ({ triggers: [VIS_EVENT_TO_TRIGGER.filter, VIS_EVENT_TO_TRIGGER.brush], - initialize(addNewLayer, state) { + initialize(addNewLayer, state, _, references, initialContext) { + const finalState = + state && isPersistedState(state) + ? injectReferences(state, references, initialContext) + : state; return ( - state || { + finalState || { title: 'Empty XY chart', legend: { isVisible: true, position: Position.Right }, valueLabels: 'hide', diff --git a/x-pack/plugins/observability/public/index.ts b/x-pack/plugins/observability/public/index.ts index fc626e302d419..27522c7b8a8c4 100644 --- a/x-pack/plugins/observability/public/index.ts +++ b/x-pack/plugins/observability/public/index.ts @@ -82,6 +82,7 @@ export { useChartTheme } from './hooks/use_chart_theme'; export { useBreadcrumbs } from './hooks/use_breadcrumbs'; export { useTheme } from './hooks/use_theme'; export { useTimeZone } from './hooks/use_time_zone'; +export { useTimeBuckets } from './hooks/use_time_buckets'; export { createUseRulesLink } from './hooks/create_use_rules_link'; export { useLinkProps, shouldHandleLinkEvent } from './hooks/use_link_props'; export type { LinkDescriptor } from './hooks/use_link_props'; @@ -118,6 +119,8 @@ export { } from './components/shared/exploratory_view/configurations/constants'; export { ExploratoryViewContextProvider } from './components/shared/exploratory_view/contexts/exploratory_view_config'; export { fromQuery, toQuery } from './utils/url'; +export { getAlertSummaryTimeRange } from './utils/alert_summary_widget'; +export { calculateTimeRangeBucketSize } from './pages/overview/containers/overview_page/helpers'; export type { NavigationSection } from './services/navigation_registry'; export { convertTo } from '../common/utils/formatters/duration'; diff --git a/x-pack/plugins/observability/public/pages/alerts/components/render_cell_value/render_cell_value.tsx b/x-pack/plugins/observability/public/pages/alerts/components/render_cell_value/render_cell_value.tsx index ebdd07ae52995..053448fedddaa 100644 --- a/x-pack/plugins/observability/public/pages/alerts/components/render_cell_value/render_cell_value.tsx +++ b/x-pack/plugins/observability/public/pages/alerts/components/render_cell_value/render_cell_value.tsx @@ -53,6 +53,8 @@ const getRenderValue = (mappedNonEcsValue: any) => { return '—'; }; +const displayCss = { display: 'contents' }; + /** * This implementation of `EuiDataGrid`'s `renderCellValue` * accepts `EuiDataGridCellValueElementProps`, plus `data` @@ -94,15 +96,7 @@ export const getRenderCellValue = ({ const alert = parseAlert(observabilityRuleTypeRegistry)(dataFieldEs); return ( - // NOTE: EuiLink automatically renders links using a