diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 9df9f99c02adc1..c4b30081c08a91 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -383,10 +383,10 @@ x-pack/examples/files_example @elastic/kibana-app-services /x-pack/plugins/security_solution/common/search_strategy/timeline @elastic/security-threat-hunting-investigations /x-pack/plugins/security_solution/common/types/timeline @elastic/security-threat-hunting-investigations -/x-pack/plugins/security_solution/cypress/integration/timeline_templates @elastic/security-threat-hunting-investigations -/x-pack/plugins/security_solution/cypress/integration/timeline @elastic/security-threat-hunting-investigations -/x-pack/plugins/security_solution/cypress/integration/detection_alerts @elastic/security-threat-hunting-investigations -/x-pack/plugins/security_solution/cypress/integration/urls @elastic/security-threat-hunting-investigations +/x-pack/plugins/security_solution/cypress/e2e/timeline_templates @elastic/security-threat-hunting-investigations +/x-pack/plugins/security_solution/cypress/e2e/timeline @elastic/security-threat-hunting-investigations +/x-pack/plugins/security_solution/cypress/e2e/detection_alerts @elastic/security-threat-hunting-investigations +/x-pack/plugins/security_solution/cypress/e2e/urls @elastic/security-threat-hunting-investigations /x-pack/plugins/security_solution/public/common/components/alerts_viewer @elastic/security-threat-hunting-investigations /x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_action @elastic/security-threat-hunting-investigations @@ -407,18 +407,18 @@ x-pack/examples/files_example @elastic/kibana-app-services /x-pack/plugins/security_solution/common/search_strategy/security_solution/network @elastic/security-threat-hunting-explore /x-pack/plugins/security_solution/common/search_strategy/security_solution/user @elastic/security-threat-hunting-explore -/x-pack/plugins/security_solution/cypress/integration/cases @elastic/security-threat-hunting-explore -/x-pack/plugins/security_solution/cypress/integration/host_details @elastic/security-threat-hunting-explore -/x-pack/plugins/security_solution/cypress/integration/hosts @elastic/security-threat-hunting-explore -/x-pack/plugins/security_solution/cypress/integration/network @elastic/security-threat-hunting-explore -/x-pack/plugins/security_solution/cypress/integration/overview @elastic/security-threat-hunting-explore -/x-pack/plugins/security_solution/cypress/integration/pagination @elastic/security-threat-hunting-explore -/x-pack/plugins/security_solution/cypress/integration/users @elastic/security-threat-hunting-explore +/x-pack/plugins/security_solution/cypress/e2e/cases @elastic/security-threat-hunting-explore +/x-pack/plugins/security_solution/cypress/e2e/host_details @elastic/security-threat-hunting-explore +/x-pack/plugins/security_solution/cypress/e2e/hosts @elastic/security-threat-hunting-explore +/x-pack/plugins/security_solution/cypress/e2e/network @elastic/security-threat-hunting-explore +/x-pack/plugins/security_solution/cypress/e2e/overview @elastic/security-threat-hunting-explore +/x-pack/plugins/security_solution/cypress/e2e/pagination @elastic/security-threat-hunting-explore +/x-pack/plugins/security_solution/cypress/e2e/users @elastic/security-threat-hunting-explore /x-pack/plugins/security_solution/cypress/screens/hosts @elastic/security-threat-hunting-explore /x-pack/plugins/security_solution/cypress/screens/network @elastic/security-threat-hunting-explore /x-pack/plugins/security_solution/cypress/tasks/hosts @elastic/security-threat-hunting-explore /x-pack/plugins/security_solution/cypress/tasks/network @elastic/security-threat-hunting-explore -/x-pack/plugins/security_solution/cypress/upgrade_integration/threat_hunting/cases @elastic/security-threat-hunting-explore +/x-pack/plugins/security_solution/cypress/upgrade_e2e/threat_hunting/cases @elastic/security-threat-hunting-explore /x-pack/plugins/security_solution/public/common/components/charts @elastic/security-threat-hunting-explore /x-pack/plugins/security_solution/public/common/components/header_page @elastic/security-threat-hunting-explore @@ -463,7 +463,7 @@ x-pack/examples/files_example @elastic/kibana-app-services ## Security Solution sub teams - Detections and Response Rules -/x-pack/plugins/security_solution/cypress/integration/detection_rules @elastic/security-detections-response-rules +/x-pack/plugins/security_solution/cypress/e2e/detection_rules @elastic/security-detections-response-rules /x-pack/plugins/security_solution/public/detections/components/rules @elastic/security-detections-response-rules /x-pack/plugins/security_solution/public/detections/components/severity @elastic/security-detections-response-rules @@ -488,9 +488,9 @@ x-pack/examples/files_example @elastic/kibana-app-services ## Security Solution sub teams - Security Platform /x-pack/plugins/lists @elastic/security-solution-platform -/x-pack/plugins/security_solution/cypress/integration/data_sources @elastic/security-solution-platform -/x-pack/plugins/security_solution/cypress/integration/exceptions @elastic/security-solution-platform -/x-pack/plugins/security_solution/cypress/integration/value_lists @elastic/security-solution-platform +/x-pack/plugins/security_solution/cypress/e2e/data_sources @elastic/security-solution-platform +/x-pack/plugins/security_solution/cypress/e2e/exceptions @elastic/security-solution-platform +/x-pack/plugins/security_solution/cypress/e2e/value_lists @elastic/security-solution-platform /x-pack/plugins/security_solution/public/common/components/exceptions @elastic/security-solution-platform /x-pack/plugins/security_solution/public/exceptions @elastic/security-solution-platform @@ -540,8 +540,8 @@ x-pack/plugins/security_solution/server/usage/ @elastic/security-data-analytics x-pack/plugins/security_solution/server/lib/telemetry/ @elastic/security-data-analytics ## Security Solution sub teams - security-engineering-productivity -x-pack/plugins/security_solution/cypress/ccs_integration @elastic/security-engineering-productivity -x-pack/plugins/security_solution/cypress/upgrade_integration @elastic/security-engineering-productivity +x-pack/plugins/security_solution/cypress/ccs_e2e @elastic/security-engineering-productivity +x-pack/plugins/security_solution/cypress/upgrade_e2e @elastic/security-engineering-productivity x-pack/plugins/security_solution/cypress/README.md @elastic/security-engineering-productivity x-pack/test/security_solution_cypress @elastic/security-engineering-productivity @@ -571,7 +571,7 @@ x-pack/test/threat_intelligence_cypress @elastic/protections-experience # Security Solution onboarding tour /x-pack/plugins/security_solution/public/common/components/guided_onboarding @elastic/platform-onboarding -/x-pack/plugins/security_solution/cypress/integration/guided_onboarding @elastic/platform-onboarding +/x-pack/plugins/security_solution/cypress/e2e/guided_onboarding @elastic/platform-onboarding # Design (at the bottom for specificity of SASS files) **/*.scss @elastic/kibana-design @@ -658,6 +658,8 @@ packages/core/application/core-application-browser @elastic/kibana-core packages/core/application/core-application-browser-internal @elastic/kibana-core packages/core/application/core-application-browser-mocks @elastic/kibana-core packages/core/application/core-application-common @elastic/kibana-core +packages/core/apps/core-apps-browser-internal @elastic/kibana-core +packages/core/apps/core-apps-browser-mocks @elastic/kibana-core packages/core/base/core-base-browser-internal @elastic/kibana-core packages/core/base/core-base-browser-mocks @elastic/kibana-core packages/core/base/core-base-common @elastic/kibana-core @@ -783,6 +785,9 @@ packages/core/ui-settings/core-ui-settings-browser @elastic/kibana-core packages/core/ui-settings/core-ui-settings-browser-internal @elastic/kibana-core packages/core/ui-settings/core-ui-settings-browser-mocks @elastic/kibana-core packages/core/ui-settings/core-ui-settings-common @elastic/kibana-core +packages/core/ui-settings/core-ui-settings-server @elastic/kibana-core +packages/core/ui-settings/core-ui-settings-server-internal @elastic/kibana-core +packages/core/ui-settings/core-ui-settings-server-mocks @elastic/kibana-core packages/core/usage-data/core-usage-data-base-server-internal @elastic/kibana-core packages/core/usage-data/core-usage-data-server @elastic/kibana-core packages/core/usage-data/core-usage-data-server-internal @elastic/kibana-core diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index d68db98936249d..c36b4f01cbb42a 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: 2022-09-13 +date: 2022-09-14 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 a1ca756a109b8c..f40b3a65b671fe 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: 2022-09-13 +date: 2022-09-14 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 9cd9f8e457d68c..c34a07fe1e093c 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops'] --- import aiopsObj from './aiops.devdocs.json'; diff --git a/api_docs/alerting.devdocs.json b/api_docs/alerting.devdocs.json index 21eec3051632eb..77be0a447f31fa 100644 --- a/api_docs/alerting.devdocs.json +++ b/api_docs/alerting.devdocs.json @@ -4149,6 +4149,17 @@ "path": "x-pack/plugins/alerting/common/execution_log_types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.IExecutionLog.rule_name", + "type": "string", + "tags": [], + "label": "rule_name", + "description": [], + "path": "x-pack/plugins/alerting/common/execution_log_types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index c204e11c5f354b..6ebee8e813c9c7 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Response Ops](https://github.com/orgs/elastic/teams/response-ops) for q | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 369 | 0 | 360 | 22 | +| 370 | 0 | 361 | 22 | ## Client diff --git a/api_docs/apm.devdocs.json b/api_docs/apm.devdocs.json index 6c0d9f74ea5804..e7268af447666b 100644 --- a/api_docs/apm.devdocs.json +++ b/api_docs/apm.devdocs.json @@ -3644,13 +3644,17 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: _.Dictionary<{ transactionName: string; latency: ", + ", { currentPeriod: ", + "Dictionary", + "<{ transactionName: string; latency: ", "Coordinate", "[]; throughput: ", "Coordinate", "[]; errorRate: ", "Coordinate", - "[]; impact: number; }>; previousPeriod: _.Dictionary<{ errorRate: { x: number; y: ", + "[]; impact: number; }>; previousPeriod: ", + "Dictionary", + "<{ errorRate: { x: number; y: ", "Maybe", "; }[]; throughput: { x: number; y: ", "Maybe", @@ -4436,7 +4440,9 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: _.Dictionary<{ serviceNodeName: string; errorRate?: ", + ", { currentPeriod: ", + "Dictionary", + "<{ serviceNodeName: string; errorRate?: ", "Coordinate", "[] | undefined; latency?: ", "Coordinate", @@ -4446,7 +4452,9 @@ "Coordinate", "[] | undefined; memoryUsage?: ", "Coordinate", - "[] | undefined; }>; previousPeriod: _.Dictionary<{ cpuUsage: { x: number; y: ", + "[] | undefined; }>; previousPeriod: ", + "Dictionary", + "<{ cpuUsage: { x: number; y: ", "Maybe", "; }[]; errorRate: { x: number; y: ", "Maybe", @@ -4900,7 +4908,11 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: _.Dictionary<{ serviceName: string; latency: { x: number; y: number | null; }[]; transactionErrorRate: { x: number; y: number; }[]; throughput: { x: number; y: number; }[]; }>; previousPeriod: _.Dictionary<{ serviceName: string; latency: { x: number; y: number | null; }[]; transactionErrorRate: { x: number; y: number; }[]; throughput: { x: number; y: number; }[]; }>; }, ", + ", { currentPeriod: ", + "Dictionary", + "<{ serviceName: string; latency: { x: number; y: number | null; }[]; transactionErrorRate: { x: number; y: number; }[]; throughput: { x: number; y: number; }[]; }>; previousPeriod: ", + "Dictionary", + "<{ serviceName: string; latency: { x: number; y: number | null; }[]; transactionErrorRate: { x: number; y: number; }[]; throughput: { x: number; y: number; }[]; }>; }, ", "APMRouteCreateOptions", ">; \"GET /internal/apm/services\": ", "ServerRoute", @@ -5548,9 +5560,13 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { currentPeriod: _.Dictionary<{ groupId: string; timeseries: ", + ", { currentPeriod: ", + "Dictionary", + "<{ groupId: string; timeseries: ", "Coordinate", - "[]; }>; previousPeriod: _.Dictionary<{ timeseries: { x: number; y: ", + "[]; }>; previousPeriod: ", + "Dictionary", + "<{ timeseries: { x: number; y: ", "Maybe", "; }[]; groupId: string; }>; }, ", "APMRouteCreateOptions", diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index c46f1df7d58a0c..44f6502f2d399b 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: 2022-09-13 +date: 2022-09-14 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 058410350bba1e..4f9b84e6fad967 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: 2022-09-13 +date: 2022-09-14 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 45354e97c4a872..3d13ab8ce68c47 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: 2022-09-13 +date: 2022-09-14 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 bdb2bfdfb57f63..fc364ec27df613 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 15ac5bbe960305..23cb33085cf2a3 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 9da2543d3f733a..bf7d2e27f5e864 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: 2022-09-13 +date: 2022-09-14 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 66d95d63ab7c8f..308305653f9138 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx index a4273432acce65..3b6e57d3ba40a9 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: 2022-09-13 +date: 2022-09-14 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 9232c9a652e8b0..eae54f4bf225f4 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/controls.devdocs.json b/api_docs/controls.devdocs.json index 78f856d45261e6..0a54b225251521 100644 --- a/api_docs/controls.devdocs.json +++ b/api_docs/controls.devdocs.json @@ -448,9 +448,7 @@ "section": "def-public.ControlOutput", "text": "ControlOutput" }, - ">, ", - "SavedObjectAttributes", - ">, partial?: Partial) => ", + ">, unknown>, partial?: Partial) => ", { "pluginId": "controls", "scope": "common", @@ -507,9 +505,7 @@ "section": "def-public.ControlOutput", "text": "ControlOutput" }, - ">, ", - "SavedObjectAttributes", - ">" + ">, unknown>" ], "path": "src/plugins/controls/public/control_group/embeddable/control_group_container.tsx", "deprecated": false, @@ -736,9 +732,7 @@ "section": "def-public.EmbeddableOutput", "text": "EmbeddableOutput" }, - ">, ", - "SavedObjectAttributes", - ">" + ">, unknown>" ], "path": "src/plugins/controls/public/control_group/embeddable/control_group_container_factory.ts", "deprecated": false, @@ -1431,9 +1425,7 @@ "section": "def-public.EmbeddableOutput", "text": "EmbeddableOutput" }, - ">, ", - "SavedObjectAttributes", - ">,", + ">, unknown>,", { "pluginId": "controls", "scope": "public", @@ -2341,9 +2333,7 @@ "section": "def-public.EmbeddableOutput", "text": "EmbeddableOutput" }, - ">, ", - "SavedObjectAttributes", - ">,", + ">, unknown>,", { "pluginId": "controls", "scope": "public", @@ -3608,9 +3598,7 @@ "section": "def-public.ControlOutput", "text": "ControlOutput" }, - ">, ", - "SavedObjectAttributes", - ">" + ">, unknown>" ], "path": "src/plugins/controls/public/types.ts", "deprecated": false, diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index f708eefcfcfabf..1af11290292640 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/core.devdocs.json b/api_docs/core.devdocs.json index 44e4755f2f47d4..7000bba27c6fb1 100644 --- a/api_docs/core.devdocs.json +++ b/api_docs/core.devdocs.json @@ -10587,7 +10587,7 @@ "tags": [], "label": "attributes", "description": [ - "{@inheritdoc SavedObjectAttributes}" + "The data for a Saved Object is stored as an object in the `attributes` property." ], "signature": [ "T" @@ -10685,7 +10685,9 @@ "parentPluginId": "core", "id": "def-public.SavedObjectAttributes", "type": "Interface", - "tags": [], + "tags": [ + "deprecated" + ], "label": "SavedObjectAttributes", "description": [ "\nThe data for a Saved Object is stored as an object in the `attributes`\nproperty.\n" @@ -10694,8 +10696,590 @@ "SavedObjectAttributes" ], "path": "node_modules/@types/kbn__core-saved-objects-common/index.d.ts", - "deprecated": false, + "deprecated": true, "trackAdoption": false, + "references": [ + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/common/types.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/common/types.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/common/saved_dashboard_references.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/common/saved_dashboard_references.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/common/saved_dashboard_references.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/common/saved_dashboard_references.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/common/saved_dashboard_references.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/common/saved_dashboard_references.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/common/saved_dashboard_references.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/common/saved_dashboard_references.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts" + }, + { + "plugin": "ml", + "path": "x-pack/plugins/ml/common/types/modules.ts" + }, + { + "plugin": "ml", + "path": "x-pack/plugins/ml/common/types/modules.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/actions_client.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/actions_client.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/actions_client.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/actions_client.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/actions_client.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/actions_client.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/actions_client.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/types.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/types.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/types.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/types.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/types.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/types.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/common/rule.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/common/rule.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/common/rule.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/common/rule.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/common/rule.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/common/rule.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/saved_objects/migrations.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/saved_objects/migrations.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/saved_objects/migrations.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/server/routes/custom_elements/find.ts" + }, + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/server/routes/custom_elements/find.ts" + }, + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/server/routes/workpad/find.ts" + }, + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/server/routes/workpad/find.ts" + }, + { + "plugin": "enterpriseSearch", + "path": "x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts" + }, + { + "plugin": "enterpriseSearch", + "path": "x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts" + }, + { + "plugin": "enterpriseSearch", + "path": "x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_types.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_types.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_migrations.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_migrations.ts" + }, + { + "plugin": "taskManager", + "path": "x-pack/plugins/task_manager/server/task_store.test.ts" + }, + { + "plugin": "taskManager", + "path": "x-pack/plugins/task_manager/server/task_store.test.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/server/usage/dashboard_telemetry_collection_task.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/server/usage/dashboard_telemetry_collection_task.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/server/usage/dashboard_telemetry.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/server/usage/dashboard_telemetry.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/server/usage/find_by_value_embeddables.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/server/usage/find_by_value_embeddables.ts" + }, + { + "plugin": "savedSearch", + "path": "src/plugins/saved_search/server/saved_objects/search_migrations.ts" + }, + { + "plugin": "savedSearch", + "path": "src/plugins/saved_search/server/saved_objects/search_migrations.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/types.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/types.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/types.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/create_source.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/create_source.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts" + }, + { + "plugin": "embeddable", + "path": "src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx" + }, + { + "plugin": "embeddable", + "path": "src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx" + }, + { + "plugin": "embeddable", + "path": "src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx" + }, + { + "plugin": "embeddable", + "path": "src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts" + }, + { + "plugin": "embeddable", + "path": "src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts" + }, + { + "plugin": "embeddable", + "path": "src/plugins/embeddable/public/types.ts" + }, + { + "plugin": "embeddable", + "path": "src/plugins/embeddable/public/types.ts" + }, + { + "plugin": "fleet", + "path": "x-pack/plugins/fleet/common/types/models/epm.ts" + }, + { + "plugin": "fleet", + "path": "x-pack/plugins/fleet/common/types/models/epm.ts" + }, + { + "plugin": "fleet", + "path": "x-pack/plugins/fleet/common/types/models/settings.ts" + }, + { + "plugin": "fleet", + "path": "x-pack/plugins/fleet/common/types/models/settings.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/wizard/search_selection/search_selection.tsx" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/wizard/search_selection/search_selection.tsx" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/containers/saved_view/saved_view.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/containers/saved_view/saved_view.tsx" + }, + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/shareable_runtime/types.ts" + }, + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/shareable_runtime/types.ts" + }, + { + "plugin": "graph", + "path": "x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts" + }, + { + "plugin": "graph", + "path": "x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts" + }, + { + "plugin": "graph", + "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts" + }, + { + "plugin": "graph", + "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" + }, + { + "plugin": "@kbn/core-saved-objects-server-internal", + "path": "packages/core/saved-objects/core-saved-objects-server-internal/src/routes/legacy_import_export/lib/collect_references_deep.test.ts" + }, + { + "plugin": "@kbn/core-saved-objects-server-internal", + "path": "packages/core/saved-objects/core-saved-objects-server-internal/src/routes/legacy_import_export/lib/collect_references_deep.test.ts" + } + ], "children": [ { "parentPluginId": "core", @@ -14948,16 +15532,13 @@ { "parentPluginId": "core", "id": "def-public.URL_MAX_LENGTH", - "type": "CompoundType", + "type": "number", "tags": [], "label": "URL_MAX_LENGTH", "description": [ "\nThe max URL length allowed by the current browser. Should be used to display warnings to users when query parameters\ncause URL to exceed this limit." ], - "signature": [ - "2000 | 25000" - ], - "path": "src/core/public/core_app/errors/url_overflow.tsx", + "path": "node_modules/@types/kbn__core-apps-browser-internal/index.d.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -36072,6 +36653,30 @@ "plugin": "kibanaUsageCollection", "path": "src/plugins/kibana_usage_collection/server/collectors/ops_stats/ops_stats_collector.ts" }, + { + "plugin": "@kbn/core-apps-browser-internal", + "path": "packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts" + }, + { + "plugin": "@kbn/core-apps-browser-internal", + "path": "packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts" + }, + { + "plugin": "@kbn/core-apps-browser-internal", + "path": "packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts" + }, + { + "plugin": "@kbn/core-apps-browser-internal", + "path": "packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts" + }, + { + "plugin": "@kbn/core-apps-browser-internal", + "path": "packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts" + }, + { + "plugin": "@kbn/core-apps-browser-internal", + "path": "packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts" + }, { "plugin": "@kbn/core-metrics-server-internal", "path": "packages/core/metrics/core-metrics-server-internal/src/ops_metrics_collector.ts" @@ -36103,6 +36708,10 @@ { "plugin": "@kbn/core-metrics-server-internal", "path": "packages/core/metrics/core-metrics-server-internal/src/logging/get_ops_metrics_log.test.ts" + }, + { + "plugin": "@kbn/core-apps-browser-internal", + "path": "packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.test.ts" } ] }, @@ -36993,13 +37602,13 @@ "signature": [ "{ legacy: { globalConfig$: ", "Observable", - " moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly requestTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; path: Readonly<{ readonly data: string; }>; savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", + " moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; path: Readonly<{ readonly data: string; }>; savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", "ByteSizeValue", ") => boolean; isLessThan: (other: ", "ByteSizeValue", ") => boolean; isEqualTo: (other: ", "ByteSizeValue", - ") => boolean; getValueInBytes: () => number; toString: (returnUnit?: ByteSizeValueUnit | undefined) => string; }>; }>; }>>; get: () => Readonly<{ elasticsearch: Readonly<{ readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly requestTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; path: Readonly<{ readonly data: string; }>; savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", + ") => boolean; getValueInBytes: () => number; toString: (returnUnit?: ByteSizeValueUnit | undefined) => string; }>; }>; }>>; get: () => Readonly<{ elasticsearch: Readonly<{ readonly requestTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; path: Readonly<{ readonly data: string; }>; savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", "ByteSizeValue", ") => boolean; isLessThan: (other: ", "ByteSizeValue", @@ -39319,7 +39928,7 @@ "tags": [], "label": "attributes", "description": [ - "{@inheritdoc SavedObjectAttributes}" + "The data for a Saved Object is stored as an object in the `attributes` property." ], "signature": [ "T" @@ -39417,7 +40026,9 @@ "parentPluginId": "core", "id": "def-server.SavedObjectAttributes", "type": "Interface", - "tags": [], + "tags": [ + "deprecated" + ], "label": "SavedObjectAttributes", "description": [ "\nThe data for a Saved Object is stored as an object in the `attributes`\nproperty.\n" @@ -39426,8 +40037,590 @@ "SavedObjectAttributes" ], "path": "node_modules/@types/kbn__core-saved-objects-common/index.d.ts", - "deprecated": false, + "deprecated": true, "trackAdoption": false, + "references": [ + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/common/types.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/common/types.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/common/saved_dashboard_references.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/common/saved_dashboard_references.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/common/saved_dashboard_references.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/common/saved_dashboard_references.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/common/saved_dashboard_references.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/common/saved_dashboard_references.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/common/saved_dashboard_references.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/common/saved_dashboard_references.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts" + }, + { + "plugin": "ml", + "path": "x-pack/plugins/ml/common/types/modules.ts" + }, + { + "plugin": "ml", + "path": "x-pack/plugins/ml/common/types/modules.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/actions_client.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/actions_client.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/actions_client.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/actions_client.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/actions_client.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/actions_client.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/actions_client.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/types.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/types.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/types.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/types.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/types.ts" + }, + { + "plugin": "actions", + "path": "x-pack/plugins/actions/server/types.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/common/rule.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/common/rule.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/common/rule.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/common/rule.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/common/rule.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/common/rule.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/saved_objects/migrations.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/saved_objects/migrations.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/saved_objects/migrations.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/server/routes/custom_elements/find.ts" + }, + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/server/routes/custom_elements/find.ts" + }, + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/server/routes/workpad/find.ts" + }, + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/server/routes/workpad/find.ts" + }, + { + "plugin": "enterpriseSearch", + "path": "x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts" + }, + { + "plugin": "enterpriseSearch", + "path": "x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts" + }, + { + "plugin": "enterpriseSearch", + "path": "x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_types.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_types.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_migrations.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_migrations.ts" + }, + { + "plugin": "taskManager", + "path": "x-pack/plugins/task_manager/server/task_store.test.ts" + }, + { + "plugin": "taskManager", + "path": "x-pack/plugins/task_manager/server/task_store.test.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/server/usage/dashboard_telemetry_collection_task.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/server/usage/dashboard_telemetry_collection_task.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/server/usage/dashboard_telemetry.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/server/usage/dashboard_telemetry.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/server/usage/find_by_value_embeddables.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/server/usage/find_by_value_embeddables.ts" + }, + { + "plugin": "savedSearch", + "path": "src/plugins/saved_search/server/saved_objects/search_migrations.ts" + }, + { + "plugin": "savedSearch", + "path": "src/plugins/saved_search/server/saved_objects/search_migrations.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/types.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/types.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/types.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/create_source.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/create_source.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts" + }, + { + "plugin": "embeddable", + "path": "src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx" + }, + { + "plugin": "embeddable", + "path": "src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx" + }, + { + "plugin": "embeddable", + "path": "src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx" + }, + { + "plugin": "embeddable", + "path": "src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts" + }, + { + "plugin": "embeddable", + "path": "src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts" + }, + { + "plugin": "embeddable", + "path": "src/plugins/embeddable/public/types.ts" + }, + { + "plugin": "embeddable", + "path": "src/plugins/embeddable/public/types.ts" + }, + { + "plugin": "fleet", + "path": "x-pack/plugins/fleet/common/types/models/epm.ts" + }, + { + "plugin": "fleet", + "path": "x-pack/plugins/fleet/common/types/models/epm.ts" + }, + { + "plugin": "fleet", + "path": "x-pack/plugins/fleet/common/types/models/settings.ts" + }, + { + "plugin": "fleet", + "path": "x-pack/plugins/fleet/common/types/models/settings.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_visualize_utils.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/wizard/search_selection/search_selection.tsx" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/wizard/search_selection/search_selection.tsx" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/containers/saved_view/saved_view.tsx" + }, + { + "plugin": "infra", + "path": "x-pack/plugins/infra/public/containers/saved_view/saved_view.tsx" + }, + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/shareable_runtime/types.ts" + }, + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/shareable_runtime/types.ts" + }, + { + "plugin": "graph", + "path": "x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts" + }, + { + "plugin": "graph", + "path": "x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts" + }, + { + "plugin": "graph", + "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts" + }, + { + "plugin": "graph", + "path": "x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" + }, + { + "plugin": "savedObjects", + "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" + }, + { + "plugin": "visualizations", + "path": "src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.test.ts" + }, + { + "plugin": "@kbn/core-saved-objects-server-internal", + "path": "packages/core/saved-objects/core-saved-objects-server-internal/src/routes/legacy_import_export/lib/collect_references_deep.test.ts" + }, + { + "plugin": "@kbn/core-saved-objects-server-internal", + "path": "packages/core/saved-objects/core-saved-objects-server-internal/src/routes/legacy_import_export/lib/collect_references_deep.test.ts" + } + ], "children": [ { "parentPluginId": "core", @@ -40274,7 +41467,7 @@ "tags": [], "label": "attributes", "description": [ - "{@inheritdoc SavedObjectAttributes}" + "The data for a Saved Object is stored as an object in the `attributes` property." ], "signature": [ "{ [P in keyof T]?: T[P] | undefined; }" @@ -45210,9 +46403,7 @@ "\nRegister a {@link SavedObjectsType | savedObjects type} definition.\n\nSee the {@link SavedObjectsTypeMappingDefinition | mappings format} and\n{@link SavedObjectMigrationMap | migration format} for more details about these.\n" ], "signature": [ - "(type: ", + "(type: ", "SavedObjectsType", ") => void" ], @@ -48681,7 +49872,7 @@ "label": "EcsEventKind", "description": [], "signature": [ - "\"metric\" | \"alert\" | \"state\" | \"event\" | \"signal\" | \"pipeline_error\"" + "\"metric\" | \"alert\" | \"signal\" | \"state\" | \"event\" | \"pipeline_error\"" ], "path": "node_modules/@types/kbn__logging/index.d.ts", "deprecated": false, @@ -52285,7 +53476,7 @@ "label": "SharedGlobalConfig", "description": [], "signature": [ - "{ readonly elasticsearch: Readonly<{ readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly requestTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; readonly path: Readonly<{ readonly data: string; }>; readonly savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", + "{ readonly elasticsearch: Readonly<{ readonly requestTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: moment.unitOfTime.DurationConstructor | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; readonly path: Readonly<{ readonly data: string; }>; readonly savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", "ByteSizeValue", ") => boolean; isLessThan: (other: ", "ByteSizeValue", diff --git a/api_docs/core.mdx b/api_docs/core.mdx index 43ae9b642053fd..25b08ab39bc4ef 100644 --- a/api_docs/core.mdx +++ b/api_docs/core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/core title: "core" image: https://source.unsplash.com/400x175/?github description: API docs for the core plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'core'] --- import coreObj from './core.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index f209b146be305b..d7499b10179744 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; diff --git a/api_docs/dashboard.devdocs.json b/api_docs/dashboard.devdocs.json index 7af8bf23811e45..50bbfed86e0a82 100644 --- a/api_docs/dashboard.devdocs.json +++ b/api_docs/dashboard.devdocs.json @@ -348,9 +348,7 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - ", partial?: Partial) => ", + ", partial?: Partial) => ", "DashboardPanelState", "" ], @@ -373,9 +371,7 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - "" + "" ], "path": "src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx", "deprecated": false, @@ -829,9 +825,7 @@ "section": "def-public.DashboardContainer", "text": "DashboardContainer" }, - ", ", - "SavedObjectAttributes", - ">" + ", unknown>" ], "path": "src/plugins/dashboard/public/application/embeddable/dashboard_container_factory.tsx", "deprecated": false, diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index 1d1919aa011f37..bbeb81fe63e2ab 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: 2022-09-13 +date: 2022-09-14 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 325517a508ef27..6bb136c589eb9a 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] --- import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json'; diff --git a/api_docs/data.devdocs.json b/api_docs/data.devdocs.json index 08e02ccff050f9..fee7fb3cd9e2be 100644 --- a/api_docs/data.devdocs.json +++ b/api_docs/data.devdocs.json @@ -7334,181 +7334,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "data", - "id": "def-public.IDataPluginServices", - "type": "Interface", - "tags": [], - "label": "IDataPluginServices", - "description": [], - "signature": [ - { - "pluginId": "data", - "scope": "public", - "docId": "kibDataPluginApi", - "section": "def-public.IDataPluginServices", - "text": "IDataPluginServices" - }, - " extends Partial<", - { - "pluginId": "core", - "scope": "public", - "docId": "kibCorePluginApi", - "section": "def-public.CoreStart", - "text": "CoreStart" - }, - ">" - ], - "path": "src/plugins/data/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-public.IDataPluginServices.appName", - "type": "string", - "tags": [], - "label": "appName", - "description": [], - "path": "src/plugins/data/public/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "data", - "id": "def-public.IDataPluginServices.uiSettings", - "type": "Object", - "tags": [], - "label": "uiSettings", - "description": [], - "signature": [ - "IUiSettingsClient" - ], - "path": "src/plugins/data/public/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "data", - "id": "def-public.IDataPluginServices.savedObjects", - "type": "Object", - "tags": [], - "label": "savedObjects", - "description": [], - "signature": [ - "SavedObjectsStart" - ], - "path": "src/plugins/data/public/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "data", - "id": "def-public.IDataPluginServices.notifications", - "type": "Object", - "tags": [], - "label": "notifications", - "description": [], - "signature": [ - "NotificationsStart" - ], - "path": "src/plugins/data/public/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "data", - "id": "def-public.IDataPluginServices.application", - "type": "Object", - "tags": [], - "label": "application", - "description": [], - "signature": [ - "ApplicationStart" - ], - "path": "src/plugins/data/public/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "data", - "id": "def-public.IDataPluginServices.http", - "type": "Object", - "tags": [], - "label": "http", - "description": [], - "signature": [ - "HttpSetup" - ], - "path": "src/plugins/data/public/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "data", - "id": "def-public.IDataPluginServices.storage", - "type": "Object", - "tags": [], - "label": "storage", - "description": [], - "signature": [ - { - "pluginId": "kibanaUtils", - "scope": "public", - "docId": "kibKibanaUtilsPluginApi", - "section": "def-public.IStorageWrapper", - "text": "IStorageWrapper" - }, - "" - ], - "path": "src/plugins/data/public/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "data", - "id": "def-public.IDataPluginServices.data", - "type": "Object", - "tags": [], - "label": "data", - "description": [], - "signature": [ - { - "pluginId": "data", - "scope": "public", - "docId": "kibDataPluginApi", - "section": "def-public.DataPublicPluginStart", - "text": "DataPublicPluginStart" - } - ], - "path": "src/plugins/data/public/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "data", - "id": "def-public.IDataPluginServices.usageCollection", - "type": "Object", - "tags": [], - "label": "usageCollection", - "description": [], - "signature": [ - { - "pluginId": "usageCollection", - "scope": "public", - "docId": "kibUsageCollectionPluginApi", - "section": "def-public.UsageCollectionStart", - "text": "UsageCollectionStart" - }, - " | undefined" - ], - "path": "src/plugins/data/public/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, { "parentPluginId": "data", "id": "def-public.IEsSearchRequest", @@ -7915,6 +7740,24 @@ "path": "src/plugins/data/common/search/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "data", + "id": "def-public.ISearchOptions.transport", + "type": "Object", + "tags": [], + "label": "transport", + "description": [ + "\nTransportRequestOptions, other than `signal`, to pass through to the ES client.\nTo pass an abort signal, use {@link ISearchOptions.abortSignal}" + ], + "signature": [ + "Omit<", + "TransportRequestOptions", + ", \"signal\"> | undefined" + ], + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -8234,7 +8077,7 @@ "tags": [], "label": "attributes", "description": [ - "{@inheritdoc SavedObjectAttributes}" + "The data for a Saved Object is stored as an object in the `attributes` property." ], "signature": [ "T" @@ -17173,6 +17016,24 @@ "path": "src/plugins/data/common/search/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "data", + "id": "def-server.ISearchOptions.transport", + "type": "Object", + "tags": [], + "label": "transport", + "description": [ + "\nTransportRequestOptions, other than `signal`, to pass through to the ES client.\nTo pass an abort signal, use {@link ISearchOptions.abortSignal}" + ], + "signature": [ + "Omit<", + "TransportRequestOptions", + ", \"signal\"> | undefined" + ], + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -23303,83 +23164,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "data", - "id": "def-common.FilterValueFormatter", - "type": "Interface", - "tags": [], - "label": "FilterValueFormatter", - "description": [], - "path": "src/plugins/data/common/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.FilterValueFormatter.convert", - "type": "Function", - "tags": [], - "label": "convert", - "description": [], - "signature": [ - "(value: any) => string" - ], - "path": "src/plugins/data/common/types.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "data", - "id": "def-common.FilterValueFormatter.convert.$1", - "type": "Any", - "tags": [], - "label": "value", - "description": [], - "signature": [ - "any" - ], - "path": "src/plugins/data/common/types.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, - { - "parentPluginId": "data", - "id": "def-common.FilterValueFormatter.getConverterFor", - "type": "Function", - "tags": [], - "label": "getConverterFor", - "description": [], - "signature": [ - "(type: string) => FilterFormatterFunction" - ], - "path": "src/plugins/data/common/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "data", - "id": "def-common.FilterValueFormatter.getConverterFor.$1", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/data/common/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, { "parentPluginId": "data", "id": "def-common.GetFieldsOptions", @@ -23826,7 +23610,7 @@ "tags": [], "label": "attributes", "description": [ - "{@inheritdoc SavedObjectAttributes}" + "The data for a Saved Object is stored as an object in the `attributes` property." ], "signature": [ "T" diff --git a/api_docs/data.mdx b/api_docs/data.mdx index 79520620b1eb81..3abcd1715a326e 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; @@ -21,7 +21,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3144 | 34 | 2444 | 23 | +| 3132 | 33 | 2429 | 23 | ## Client diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 5862b9b6a1092e..24769d05ff0d00 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; @@ -21,7 +21,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3144 | 34 | 2444 | 23 | +| 3132 | 33 | 2429 | 23 | ## Client diff --git a/api_docs/data_search.devdocs.json b/api_docs/data_search.devdocs.json index 399c9e5b7f1881..a4b47f09c07b1e 100644 --- a/api_docs/data_search.devdocs.json +++ b/api_docs/data_search.devdocs.json @@ -23757,7 +23757,9 @@ "parentPluginId": "data", "id": "def-common.EqlSearchStrategyRequest.options", "type": "Object", - "tags": [], + "tags": [ + "deprecated" + ], "label": "options", "description": [], "signature": [ @@ -23765,8 +23767,14 @@ " | undefined" ], "path": "src/plugins/data/common/search/strategies/eql_search/types.ts", - "deprecated": false, - "trackAdoption": false + "deprecated": true, + "trackAdoption": false, + "references": [ + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/public/common/hooks/eql/api.ts" + } + ] } ], "initialIsOpen": false @@ -25326,6 +25334,24 @@ "path": "src/plugins/data/common/search/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "data", + "id": "def-common.ISearchOptions.transport", + "type": "Object", + "tags": [], + "label": "transport", + "description": [ + "\nTransportRequestOptions, other than `signal`, to pass through to the ES client.\nTo pass an abort signal, use {@link ISearchOptions.abortSignal}" + ], + "signature": [ + "Omit<", + "TransportRequestOptions", + ", \"signal\"> | undefined" + ], + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index d98fcbe787af6b..f3760e333478ad 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search'] --- import dataSearchObj from './data_search.devdocs.json'; @@ -21,7 +21,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3144 | 34 | 2444 | 23 | +| 3132 | 33 | 2429 | 23 | ## Client diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx index 7670465e813153..d80e42fa102772 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: 2022-09-13 +date: 2022-09-14 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 2232f402be5aaa..c9d493d03d3ead 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: 2022-09-13 +date: 2022-09-14 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 ba449bf7a8e585..91629eeb027f04 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; diff --git a/api_docs/data_views.devdocs.json b/api_docs/data_views.devdocs.json index 9367e3045535b6..8766b1f50d97db 100644 --- a/api_docs/data_views.devdocs.json +++ b/api_docs/data_views.devdocs.json @@ -10731,7 +10731,9 @@ "\nA record of capabilities (aggregations) for an index rollup job" ], "signature": [ - "[index: string]: { aggs?: _.Dictionary<", + "[index: string]: { aggs?: ", + "Dictionary", + "<", { "pluginId": "dataViews", "scope": "common", @@ -19829,7 +19831,7 @@ "tags": [], "label": "attributes", "description": [ - "{@inheritdoc SavedObjectAttributes}" + "The data for a Saved Object is stored as an object in the `attributes` property." ], "signature": [ "T" diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index 959042fc63b916..d51e59aad26652 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: 2022-09-13 +date: 2022-09-14 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 b1520fe7a33e63..7e5604ba906f3c 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: 2022-09-13 +date: 2022-09-14 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 d76f1607ad1885..cbcdfa18d87854 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -29,6 +29,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | stackAlerts, alerting, securitySolution, inputControlVis | - | | | stackAlerts, alerting, securitySolution, inputControlVis | - | | | actions, alerting | - | +| | visualizations, dashboard, ml, actions, alerting, canvas, enterpriseSearch, securitySolution, taskManager, savedSearch, savedObjects, embeddable, fleet, infra, graph, @kbn/core-saved-objects-server-internal | - | +| | visualizations, dashboard, ml, actions, alerting, canvas, enterpriseSearch, securitySolution, taskManager, savedSearch, savedObjects, embeddable, fleet, infra, graph, @kbn/core-saved-objects-server-internal | - | +| | securitySolution | - | | | encryptedSavedObjects, actions, data, cloud, ml, logstash, securitySolution | - | | | dashboard, stackAlerts, expressionPartitionVis | - | | | dashboard | - | @@ -47,7 +50,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | dataViewManagement | - | | | dataViewManagement | - | | | lens, observability, dataVisualizer, fleet, cloudSecurityPosture, discoverEnhanced, osquery, synthetics | - | -| | esUiShared, home, data, spaces, savedObjectsManagement, fleet, observability, ml, apm, indexLifecycleManagement, synthetics, upgradeAssistant, ux, kibanaOverview | - | +| | home, data, esUiShared, spaces, savedObjectsManagement, fleet, observability, ml, apm, indexLifecycleManagement, synthetics, upgradeAssistant, ux, kibanaOverview | - | | | spaces, ml, canvas, osquery | - | | | canvas | - | | | canvas | - | @@ -74,7 +77,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | savedObjectsTaggingOss, dashboard | 8.8.0 | | | dashboard | 8.8.0 | | | maps, dashboard, @kbn/core-saved-objects-migration-server-internal | 8.8.0 | -| | monitoring, kibanaUsageCollection, @kbn/core-metrics-server-internal, @kbn/core-status-server-internal, @kbn/core-usage-data-server-internal | 8.8.0 | +| | monitoring, kibanaUsageCollection, @kbn/core-apps-browser-internal, @kbn/core-metrics-server-internal, @kbn/core-status-server-internal, @kbn/core-usage-data-server-internal | 8.8.0 | | | security, fleet | 8.8.0 | | | security, fleet | 8.8.0 | | | security, fleet | 8.8.0 | @@ -147,6 +150,7 @@ Safe to remove. | | @kbn/core-injected-metadata-browser | | | @kbn/core-injected-metadata-browser | | | @kbn/core-metrics-server | +| | @kbn/core-saved-objects-common | | | @kbn/core-saved-objects-common | | | @kbn/core-saved-objects-server | | | @kbn/core-ui-settings-common | \ No newline at end of file diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 199872dc950416..6d24e5724cf998 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -31,6 +31,14 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] +## @kbn/core-apps-browser-internal + +| Deprecated API | Reference location(s) | Remove By | +| ---------------|-----------|-----------| +| | [load_status.ts](https://github.com/elastic/kibana/tree/main/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts#:~:text=process), [load_status.ts](https://github.com/elastic/kibana/tree/main/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts#:~:text=process), [load_status.ts](https://github.com/elastic/kibana/tree/main/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts#:~:text=process), [load_status.ts](https://github.com/elastic/kibana/tree/main/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts#:~:text=process), [load_status.ts](https://github.com/elastic/kibana/tree/main/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts#:~:text=process), [load_status.ts](https://github.com/elastic/kibana/tree/main/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts#:~:text=process), [load_status.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.test.ts#:~:text=process) | 8.8.0 | + + + ## @kbn/core-elasticsearch-server-internal | Deprecated API | Reference location(s) | Remove By | @@ -70,6 +78,15 @@ so TS and code-reference navigation might not highlight them. | +## @kbn/core-saved-objects-server-internal + +| Deprecated API | Reference location(s) | Remove By | +| ---------------|-----------|-----------| +| | [collect_references_deep.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/legacy_import_export/lib/collect_references_deep.test.ts#:~:text=SavedObjectAttributes), [collect_references_deep.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/legacy_import_export/lib/collect_references_deep.test.ts#:~:text=SavedObjectAttributes) | - | +| | [collect_references_deep.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/legacy_import_export/lib/collect_references_deep.test.ts#:~:text=SavedObjectAttributes), [collect_references_deep.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-server-internal/src/routes/legacy_import_export/lib/collect_references_deep.test.ts#:~:text=SavedObjectAttributes) | - | + + + ## @kbn/core-status-server-internal | Deprecated API | Reference location(s) | Remove By | @@ -94,6 +111,8 @@ so TS and code-reference navigation might not highlight them. | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/plugin.ts#:~:text=authc) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/plugin.ts#:~:text=authz) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/plugin.ts#:~:text=index), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/plugin.ts#:~:text=index) | - | +| | [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/types.ts#:~:text=SavedObjectAttributes)+ 3 more | - | +| | [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [actions_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/actions_client.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions/server/types.ts#:~:text=SavedObjectAttributes)+ 3 more | - | @@ -117,6 +136,8 @@ so TS and code-reference navigation might not highlight them. | | | [plugin.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/plugin.test.ts#:~:text=getKibanaFeatures) | 8.8.0 | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/plugin.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24) | 8.8.0 | | | [task.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/usage/task.ts#:~:text=index) | - | +| | [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts#:~:text=SavedObjectAttributes), [migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts#:~:text=SavedObjectAttributes), [migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/saved_objects/migrations.ts#:~:text=SavedObjectAttributes), [migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/saved_objects/migrations.ts#:~:text=SavedObjectAttributes)+ 10 more | - | +| | [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts#:~:text=SavedObjectAttributes), [migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts#:~:text=SavedObjectAttributes), [migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/saved_objects/migrations.ts#:~:text=SavedObjectAttributes), [migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/saved_objects/migrations.ts#:~:text=SavedObjectAttributes)+ 10 more | - | @@ -147,6 +168,8 @@ so TS and code-reference navigation might not highlight them. | | | [setup_expressions.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/setup_expressions.ts#:~:text=getTypes), [application.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/application.tsx#:~:text=getTypes), [functions.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getTypes) | - | | | [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts#:~:text=context), [embeddable.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts#:~:text=context), [esdocs.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/esdocs.ts#:~:text=context), [escount.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/escount.ts#:~:text=context), [filters.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/common/functions/filters.ts#:~:text=context), [neq.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/common/neq.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/canvas_plugin_src/functions/server/pointseries/index.ts#:~:text=context) | - | | | [home.component.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/home/home.component.tsx#:~:text=KibanaPageTemplate), [home.component.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/home/home.component.tsx#:~:text=KibanaPageTemplate), [home.component.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/public/components/home/home.component.tsx#:~:text=KibanaPageTemplate) | - | +| | [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/custom_elements/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/custom_elements/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/workpad/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/workpad/find.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObjectAttributes) | - | +| | [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/custom_elements/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/custom_elements/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/workpad/find.ts#:~:text=SavedObjectAttributes), [find.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/server/routes/workpad/find.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/canvas/shareable_runtime/types.ts#:~:text=SavedObjectAttributes) | - | @@ -194,6 +217,8 @@ so TS and code-reference navigation might not highlight them. | | | [saved_object_loader.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/saved_object_loader.ts#:~:text=SavedObject), [saved_object_loader.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/saved_object_loader.ts#:~:text=SavedObject), [saved_object_loader.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/saved_object_loader.ts#:~:text=SavedObject), [saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/saved_objects.ts#:~:text=SavedObject), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=SavedObject), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=SavedObject), [dashboard_tagging.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/application/lib/dashboard_tagging.ts#:~:text=SavedObject), [dashboard_tagging.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/application/lib/dashboard_tagging.ts#:~:text=SavedObject), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx#:~:text=SavedObject), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx#:~:text=SavedObject)+ 1 more | 8.8.0 | | | [saved_dashboard.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=SavedObjectClass) | 8.8.0 | | | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/types.ts#:~:text=onAppLeave), [dashboard_router.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/application/dashboard_router.tsx#:~:text=onAppLeave), [plugin.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/plugin.tsx#:~:text=onAppLeave) | 8.8.0 | +| | [saved_dashboard_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/saved_dashboard_references.ts#:~:text=SavedObjectAttributes), [saved_dashboard_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/saved_dashboard_references.ts#:~:text=SavedObjectAttributes), [saved_dashboard_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/saved_dashboard_references.ts#:~:text=SavedObjectAttributes), [saved_dashboard_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/saved_dashboard_references.ts#:~:text=SavedObjectAttributes), [saved_dashboard_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/saved_dashboard_references.ts#:~:text=SavedObjectAttributes), [saved_dashboard_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/saved_dashboard_references.ts#:~:text=SavedObjectAttributes), [saved_dashboard_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/saved_dashboard_references.ts#:~:text=SavedObjectAttributes), [saved_dashboard_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/saved_dashboard_references.ts#:~:text=SavedObjectAttributes), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=SavedObjectAttributes), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=SavedObjectAttributes)+ 8 more | - | +| | [saved_dashboard_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/saved_dashboard_references.ts#:~:text=SavedObjectAttributes), [saved_dashboard_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/saved_dashboard_references.ts#:~:text=SavedObjectAttributes), [saved_dashboard_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/saved_dashboard_references.ts#:~:text=SavedObjectAttributes), [saved_dashboard_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/saved_dashboard_references.ts#:~:text=SavedObjectAttributes), [saved_dashboard_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/saved_dashboard_references.ts#:~:text=SavedObjectAttributes), [saved_dashboard_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/saved_dashboard_references.ts#:~:text=SavedObjectAttributes), [saved_dashboard_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/saved_dashboard_references.ts#:~:text=SavedObjectAttributes), [saved_dashboard_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/saved_dashboard_references.ts#:~:text=SavedObjectAttributes), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=SavedObjectAttributes), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=SavedObjectAttributes)+ 8 more | - | | | [migrations_730.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/saved_objects/migrations_730.ts#:~:text=warning), [migrations_730.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/saved_objects/migrations_730.ts#:~:text=warning) | 8.8.0 | @@ -276,6 +301,8 @@ so TS and code-reference navigation might not highlight them. | | ---------------|-----------|-----------| | | [attribute_service.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/attribute_service/attribute_service.tsx#:~:text=SavedObjectSaveModal), [attribute_service.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/attribute_service/attribute_service.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | | | [container.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/container.test.ts#:~:text=executeTriggerActions), [container.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/container.test.ts#:~:text=executeTriggerActions), [container.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/container.test.ts#:~:text=executeTriggerActions), [container.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/container.test.ts#:~:text=executeTriggerActions), [explicit_input.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/explicit_input.test.ts#:~:text=executeTriggerActions) | - | +| | [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SavedObjectAttributes), [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SavedObjectAttributes), [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SavedObjectAttributes), [default_embeddable_factory_provider.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts#:~:text=SavedObjectAttributes), [default_embeddable_factory_provider.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/types.ts#:~:text=SavedObjectAttributes) | - | +| | [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SavedObjectAttributes), [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SavedObjectAttributes), [add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx#:~:text=SavedObjectAttributes), [default_embeddable_factory_provider.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts#:~:text=SavedObjectAttributes), [default_embeddable_factory_provider.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/types.ts#:~:text=SavedObjectAttributes) | - | @@ -293,6 +320,8 @@ so TS and code-reference navigation might not highlight them. | | ---------------|-----------|-----------| | | [account_settings.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/account_settings/account_settings.tsx#:~:text=uiApi), [account_settings.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/account_settings/account_settings.tsx#:~:text=uiApi), [account_settings.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/account_settings/account_settings.tsx#:~:text=uiApi), [account_settings.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/account_settings/account_settings.tsx#:~:text=uiApi) | - | | | [check_access.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/lib/check_access.ts#:~:text=authz), [check_access.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/lib/check_access.ts#:~:text=authz), [check_access.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/lib/check_access.ts#:~:text=authz) | - | +| | [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes), [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes), [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes) | - | +| | [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes), [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes), [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes) | - | @@ -322,6 +351,8 @@ so TS and code-reference navigation might not highlight them. | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/server/plugin.ts#:~:text=disabled) | 8.8.0 | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/server/plugin.ts#:~:text=disabled) | 8.8.0 | | | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/public/applications/integrations/index.tsx#:~:text=appBasePath) | 8.8.0 | +| | [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObjectAttributes), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObjectAttributes), [settings.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/settings.ts#:~:text=SavedObjectAttributes), [settings.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/settings.ts#:~:text=SavedObjectAttributes) | - | +| | [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObjectAttributes), [epm.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/epm.ts#:~:text=SavedObjectAttributes), [settings.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/settings.ts#:~:text=SavedObjectAttributes), [settings.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/fleet/common/types/models/settings.ts#:~:text=SavedObjectAttributes) | - | @@ -335,6 +366,8 @@ so TS and code-reference navigation might not highlight them. | | | [deserialize.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/deserialize.ts#:~:text=getNonScriptedFields), [datasource.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/state_management/datasource.test.ts#:~:text=getNonScriptedFields), [deserialize.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/deserialize.test.ts#:~:text=getNonScriptedFields), [deserialize.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/deserialize.test.ts#:~:text=getNonScriptedFields) | - | | | [save_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/components/save_modal.tsx#:~:text=SavedObjectSaveModal), [save_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/components/save_modal.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/server/plugin.ts#:~:text=license%24) | 8.8.0 | +| | [saved_workspace_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts#:~:text=SavedObjectAttributes), [saved_workspace_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts#:~:text=SavedObjectAttributes), [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=SavedObjectAttributes), [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=SavedObjectAttributes) | - | +| | [saved_workspace_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts#:~:text=SavedObjectAttributes), [saved_workspace_references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/services/persistence/saved_workspace_references.ts#:~:text=SavedObjectAttributes), [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=SavedObjectAttributes), [saved_workspace_utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/graph/public/helpers/saved_workspace_utils.ts#:~:text=SavedObjectAttributes) | - | @@ -360,6 +393,8 @@ so TS and code-reference navigation might not highlight them. | | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [use_kibana_index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_kibana_index_patterns.ts#:~:text=indexPatterns) | - | +| | [use_find_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx#:~:text=SavedObjectAttributes), [use_find_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx#:~:text=SavedObjectAttributes), [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=SavedObjectAttributes), [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=SavedObjectAttributes), [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=SavedObjectAttributes), [use_get_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx#:~:text=SavedObjectAttributes), [use_get_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx#:~:text=SavedObjectAttributes), [use_update_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx#:~:text=SavedObjectAttributes), [use_update_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx#:~:text=SavedObjectAttributes), [use_update_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx#:~:text=SavedObjectAttributes)+ 2 more | - | +| | [use_find_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx#:~:text=SavedObjectAttributes), [use_find_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_find_saved_object.tsx#:~:text=SavedObjectAttributes), [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=SavedObjectAttributes), [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=SavedObjectAttributes), [use_create_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_create_saved_object.tsx#:~:text=SavedObjectAttributes), [use_get_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx#:~:text=SavedObjectAttributes), [use_get_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_get_saved_object.tsx#:~:text=SavedObjectAttributes), [use_update_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx#:~:text=SavedObjectAttributes), [use_update_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx#:~:text=SavedObjectAttributes), [use_update_saved_object.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_update_saved_object.tsx#:~:text=SavedObjectAttributes)+ 2 more | - | @@ -458,10 +493,12 @@ so TS and code-reference navigation might not highlight them. | | | [annotations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/routes/annotations.ts#:~:text=authc) | - | | | [initialization.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/saved_objects/initialization/initialization.ts#:~:text=authz), [sync_task.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/saved_objects/sync_task.ts#:~:text=authz), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/plugin.ts#:~:text=authz), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/plugin.ts#:~:text=authz) | - | | | [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/app.tsx#:~:text=onAppLeave) | 8.8.0 | +| | [modules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/common/types/modules.ts#:~:text=SavedObjectAttributes), [modules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/common/types/modules.ts#:~:text=SavedObjectAttributes) | - | | | [errors.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/common/util/errors/errors.test.ts#:~:text=req), [errors.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/common/util/errors/errors.test.ts#:~:text=req) | 8.8.0 Note to maintainers: when looking at usages, mind that typical use could be inside a `catch` block, so TS and code-reference navigation might not highlight them. | +| | [modules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/common/types/modules.ts#:~:text=SavedObjectAttributes), [modules.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/common/types/modules.ts#:~:text=SavedObjectAttributes) | - | @@ -530,6 +567,8 @@ so TS and code-reference navigation might not highlight them. | | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=indexPatterns), [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=indexPatterns) | - | +| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectAttributes), [create_source.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/create_source.ts#:~:text=SavedObjectAttributes), [create_source.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/create_source.ts#:~:text=SavedObjectAttributes), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts#:~:text=SavedObjectAttributes), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts#:~:text=SavedObjectAttributes), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts#:~:text=SavedObjectAttributes), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts#:~:text=SavedObjectAttributes), [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=SavedObjectAttributes)+ 13 more | - | +| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/types.ts#:~:text=SavedObjectAttributes), [create_source.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/create_source.ts#:~:text=SavedObjectAttributes), [create_source.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/create_source.ts#:~:text=SavedObjectAttributes), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts#:~:text=SavedObjectAttributes), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.ts#:~:text=SavedObjectAttributes), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts#:~:text=SavedObjectAttributes), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.ts#:~:text=SavedObjectAttributes), [saved_object.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_objects/public/saved_object/saved_object.test.ts#:~:text=SavedObjectAttributes)+ 13 more | - | @@ -559,6 +598,15 @@ so TS and code-reference navigation might not highlight them. | +## savedSearch + +| Deprecated API | Reference location(s) | Remove By | +| ---------------|-----------|-----------| +| | [search_migrations.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/server/saved_objects/search_migrations.ts#:~:text=SavedObjectAttributes), [search_migrations.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/server/saved_objects/search_migrations.ts#:~:text=SavedObjectAttributes) | - | +| | [search_migrations.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/server/saved_objects/search_migrations.ts#:~:text=SavedObjectAttributes), [search_migrations.ts](https://github.com/elastic/kibana/tree/main/src/plugins/saved_search/server/saved_objects/search_migrations.ts#:~:text=SavedObjectAttributes) | - | + + + ## searchprofiler | Deprecated API | Reference location(s) | Remove By | @@ -603,11 +651,14 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | | [middleware.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=indexPatterns), [dependencies_start_mock.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/mock/endpoint/dependencies_start_mock.ts#:~:text=indexPatterns) | - | | | [wrap_search_source_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils/wrap_search_source_client.ts#:~:text=create) | - | | | [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils/wrap_search_source_client.test.ts#:~:text=fetch), [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils/wrap_search_source_client.test.ts#:~:text=fetch), [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils/wrap_search_source_client.test.ts#:~:text=fetch), [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils/wrap_search_source_client.test.ts#:~:text=fetch) | - | +| | [api.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/common/hooks/eql/api.ts#:~:text=options) | - | | | [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [list.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/routes/actions/list.test.ts#:~:text=mode), [response_actions.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/routes/actions/response_actions.test.ts#:~:text=mode)+ 3 more | 8.8.0 | | | [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [list.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/routes/actions/list.test.ts#:~:text=mode), [response_actions.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/routes/actions/response_actions.test.ts#:~:text=mode)+ 3 more | 8.8.0 | | | [request_context_factory.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/request_context_factory.ts#:~:text=authc), [request_context_factory.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/request_context_factory.ts#:~:text=authc), [create_signals_migration_route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/create_signals_migration_route.ts#:~:text=authc), [delete_signals_migration_route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/delete_signals_migration_route.ts#:~:text=authc), [finalize_signals_migration_route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/finalize_signals_migration_route.ts#:~:text=authc), [open_close_signals_route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/open_close_signals_route.ts#:~:text=authc), [preview_rules_route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/preview_rules_route.ts#:~:text=authc), [common.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/timeline/utils/common.ts#:~:text=authc) | - | | | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/app/index.tsx#:~:text=onAppLeave), [plugin.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/plugin.tsx#:~:text=onAppLeave) | 8.8.0 | | | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/timelines/components/flyout/index.tsx#:~:text=AppLeaveHandler), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/timelines/components/flyout/index.tsx#:~:text=AppLeaveHandler), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/types.ts#:~:text=AppLeaveHandler), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/types.ts#:~:text=AppLeaveHandler), [routes.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/app/routes.tsx#:~:text=AppLeaveHandler), [routes.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/app/routes.tsx#:~:text=AppLeaveHandler), [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/app/app.tsx#:~:text=AppLeaveHandler), [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/app/app.tsx#:~:text=AppLeaveHandler), [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/app/app.tsx#:~:text=AppLeaveHandler) | 8.8.0 | +| | [legacy_types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_types.ts#:~:text=SavedObjectAttributes), [legacy_types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_types.ts#:~:text=SavedObjectAttributes), [legacy_migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_migrations.ts#:~:text=SavedObjectAttributes), [legacy_migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_migrations.ts#:~:text=SavedObjectAttributes) | - | +| | [legacy_types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_types.ts#:~:text=SavedObjectAttributes), [legacy_types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_types.ts#:~:text=SavedObjectAttributes), [legacy_migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_migrations.ts#:~:text=SavedObjectAttributes), [legacy_migrations.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions/legacy_migrations.ts#:~:text=SavedObjectAttributes) | - | @@ -652,6 +703,15 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ +## taskManager + +| Deprecated API | Reference location(s) | Remove By | +| ---------------|-----------|-----------| +| | [task_store.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/task_manager/server/task_store.test.ts#:~:text=SavedObjectAttributes), [task_store.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/task_manager/server/task_store.test.ts#:~:text=SavedObjectAttributes) | - | +| | [task_store.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/task_manager/server/task_store.test.ts#:~:text=SavedObjectAttributes), [task_store.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/task_manager/server/task_store.test.ts#:~:text=SavedObjectAttributes) | - | + + + ## transform | Deprecated API | Reference location(s) | Remove By | @@ -719,6 +779,8 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/components/visualize_top_nav.tsx#:~:text=onAppLeave), [visualize_editor_common.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/components/visualize_editor_common.tsx#:~:text=onAppLeave), [app.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/app.tsx#:~:text=onAppLeave), [index.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/index.tsx#:~:text=onAppLeave) | 8.8.0 | +| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/common/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/common/types.ts#:~:text=SavedObjectAttributes), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts#:~:text=SavedObjectAttributes), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts#:~:text=SavedObjectAttributes), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts#:~:text=SavedObjectAttributes), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts#:~:text=SavedObjectAttributes), [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectAttributes), [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectAttributes), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectAttributes), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectAttributes)+ 13 more | - | +| | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/common/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/common/types.ts#:~:text=SavedObjectAttributes), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts#:~:text=SavedObjectAttributes), [save_with_confirmation.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts#:~:text=SavedObjectAttributes), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts#:~:text=SavedObjectAttributes), [find_object_by_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_objects_utils/find_object_by_title.ts#:~:text=SavedObjectAttributes), [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectAttributes), [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectAttributes), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectAttributes), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectAttributes)+ 13 more | - | diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 0848e13dbed6b8..e47e3f9731bd78 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -80,7 +80,7 @@ so TS and code-reference navigation might not highlight them. | Note to maintainers: when looking at usages, mind that typical use could be inside a `catch` block, so TS and code-reference navigation might not highlight them. | | @kbn/core-saved-objects-migration-server-internal | | [document_migrator.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/document_migrator.test.ts#:~:text=warning), [migration_logger.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/migration_logger.ts#:~:text=warning) | 8.8.0 | -| @kbn/core-metrics-server-internal | | [ops_metrics_collector.ts](https://github.com/elastic/kibana/tree/main/packages/core/metrics/core-metrics-server-internal/src/ops_metrics_collector.ts#:~:text=process), [get_ops_metrics_log.ts](https://github.com/elastic/kibana/tree/main/packages/core/metrics/core-metrics-server-internal/src/logging/get_ops_metrics_log.ts#:~:text=process), [get_ops_metrics_log.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/metrics/core-metrics-server-internal/src/logging/get_ops_metrics_log.test.ts#:~:text=process), [status.ts](https://github.com/elastic/kibana/tree/main/packages/core/status/core-status-server-internal/src/routes/status.ts#:~:text=process), [status.ts](https://github.com/elastic/kibana/tree/main/packages/core/status/core-status-server-internal/src/routes/status.ts#:~:text=process), [core_usage_data_service.ts](https://github.com/elastic/kibana/tree/main/packages/core/usage-data/core-usage-data-server-internal/src/core_usage_data_service.ts#:~:text=process), [core_usage_data_service.ts](https://github.com/elastic/kibana/tree/main/packages/core/usage-data/core-usage-data-server-internal/src/core_usage_data_service.ts#:~:text=process), [core_usage_data_service.ts](https://github.com/elastic/kibana/tree/main/packages/core/usage-data/core-usage-data-server-internal/src/core_usage_data_service.ts#:~:text=process) | 8.8.0 | +| @kbn/core-apps-browser-internal | | [load_status.ts](https://github.com/elastic/kibana/tree/main/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts#:~:text=process), [load_status.ts](https://github.com/elastic/kibana/tree/main/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts#:~:text=process), [load_status.ts](https://github.com/elastic/kibana/tree/main/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts#:~:text=process), [load_status.ts](https://github.com/elastic/kibana/tree/main/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts#:~:text=process), [load_status.ts](https://github.com/elastic/kibana/tree/main/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts#:~:text=process), [load_status.ts](https://github.com/elastic/kibana/tree/main/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts#:~:text=process), [load_status.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.test.ts#:~:text=process), [ops_metrics_collector.ts](https://github.com/elastic/kibana/tree/main/packages/core/metrics/core-metrics-server-internal/src/ops_metrics_collector.ts#:~:text=process), [get_ops_metrics_log.ts](https://github.com/elastic/kibana/tree/main/packages/core/metrics/core-metrics-server-internal/src/logging/get_ops_metrics_log.ts#:~:text=process), [get_ops_metrics_log.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/metrics/core-metrics-server-internal/src/logging/get_ops_metrics_log.test.ts#:~:text=process)+ 5 more | 8.8.0 | diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index edd78a33faaa4c..4d5276b0b5bf79 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: 2022-09-13 +date: 2022-09-14 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 5ee6a5d63ba40d..08de43b84168ee 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: 2022-09-13 +date: 2022-09-14 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 3ee8e184d8ddcc..77076d23693400 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/embeddable.devdocs.json b/api_docs/embeddable.devdocs.json index 939fe8507b0954..4f8a65cb51f058 100644 --- a/api_docs/embeddable.devdocs.json +++ b/api_docs/embeddable.devdocs.json @@ -137,9 +137,7 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - " | undefined" + " | undefined" ], "path": "src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_action.ts", "deprecated": false, @@ -202,9 +200,7 @@ "section": "def-public.EmbeddableOutput", "text": "EmbeddableOutput" }, - ">, ", - "SavedObjectAttributes", - ">>" + ">, unknown>>" ], "path": "src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_action.ts", "deprecated": false, @@ -585,9 +581,7 @@ "section": "def-public.EmbeddableOutput", "text": "EmbeddableOutput" }, - ">, ", - "SavedObjectAttributes", - ">) | undefined" + ">, unknown>) | undefined" ], "path": "src/plugins/embeddable/public/lib/attribute_service/attribute_service.tsx", "deprecated": false, @@ -975,9 +969,7 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - " | undefined" + " | undefined" ], "path": "src/plugins/embeddable/public/lib/containers/container.ts", "deprecated": false, @@ -1782,9 +1774,7 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - ", partial?: Partial) => ", + ", partial?: Partial) => ", { "pluginId": "embeddable", "scope": "common", @@ -1813,9 +1803,7 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - "" + "" ], "path": "src/plugins/embeddable/public/lib/containers/container.ts", "deprecated": false, @@ -2093,9 +2081,7 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - " | undefined" + " | undefined" ], "path": "src/plugins/embeddable/public/lib/actions/edit_panel_action.ts", "deprecated": false, @@ -4675,9 +4661,7 @@ "section": "def-public.IEmbeddable", "text": "IEmbeddable" }, - ", T extends ", - "SavedObjectAttributes", - " = ", + ", T = ", "SavedObjectAttributes", ">(def: ", { @@ -5676,9 +5660,7 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - " | undefined; getAllFactories: () => IterableIterator<", + " | undefined; getAllFactories: () => IterableIterator<", { "pluginId": "embeddable", "scope": "public", @@ -5726,9 +5708,7 @@ "section": "def-public.EmbeddableOutput", "text": "EmbeddableOutput" }, - ">, ", - "SavedObjectAttributes", - ">>; overlays: ", + ">, unknown>>; overlays: ", "OverlayStart", "; notifications: ", "NotificationsStart", @@ -5853,9 +5833,7 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - " | undefined" + " | undefined" ], "path": "src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/open_add_panel_flyout.tsx", "deprecated": false, @@ -5931,9 +5909,7 @@ "section": "def-public.EmbeddableOutput", "text": "EmbeddableOutput" }, - ">, ", - "SavedObjectAttributes", - ">>" + ">, unknown>>" ], "path": "src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/open_add_panel_flyout.tsx", "deprecated": false, @@ -10203,9 +10179,7 @@ "section": "def-public.EmbeddableFactoryDefinition", "text": "EmbeddableFactoryDefinition" }, - ") => () => ", + ") => () => ", { "pluginId": "embeddable", "scope": "public", @@ -10213,9 +10187,7 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - "" + "" ], "path": "src/plugins/embeddable/public/plugin.tsx", "deprecated": false, @@ -10251,9 +10223,7 @@ "section": "def-public.EmbeddableFactoryDefinition", "text": "EmbeddableFactoryDefinition" }, - "" + "" ], "path": "src/plugins/embeddable/public/plugin.tsx", "deprecated": false, @@ -10453,9 +10423,7 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - " | undefined" + " | undefined" ], "path": "src/plugins/embeddable/public/plugin.tsx", "deprecated": false, @@ -10535,9 +10503,7 @@ "section": "def-public.EmbeddableOutput", "text": "EmbeddableOutput" }, - ">, ", - "SavedObjectAttributes", - ">>" + ">, unknown>>" ], "path": "src/plugins/embeddable/public/plugin.tsx", "deprecated": false, diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 91f52a2f8c585e..46536b7e4e7457 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: 2022-09-13 +date: 2022-09-14 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 69da5e958b04e2..d9db07c069266d 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: 2022-09-13 +date: 2022-09-14 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 0dbb09172151ca..26dade24fcebe8 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: 2022-09-13 +date: 2022-09-14 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 f743ff7a1df04e..d1463f299812a3 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: 2022-09-13 +date: 2022-09-14 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 c9bad1151010f9..33335ea2334ff5 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: 2022-09-13 +date: 2022-09-14 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 c373e6ced0e247..a81227a1bb1ea9 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: 2022-09-13 +date: 2022-09-14 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 8b17841c88af29..9e511fedb53c35 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: 2022-09-13 +date: 2022-09-14 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 beaaa9c75b73cf..779d9fecd0a5a1 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: 2022-09-13 +date: 2022-09-14 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 98e645c40c3d2c..1314c5829ba025 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: 2022-09-13 +date: 2022-09-14 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 e5c0a4f72c3618..ad99eefe3cef8e 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: 2022-09-13 +date: 2022-09-14 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 6d49bbc381aeff..373c970e79391e 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: 2022-09-13 +date: 2022-09-14 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 7ab985cb8cdbf1..25595c22d66f34 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: 2022-09-13 +date: 2022-09-14 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 8ac69b55c3af17..b87a948a300fd1 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: 2022-09-13 +date: 2022-09-14 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 192fbd7b5696ef..169ad67ac1cb51 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: 2022-09-13 +date: 2022-09-14 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 56c995e98b69af..ba9cd0dd34dff5 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: 2022-09-13 +date: 2022-09-14 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 278c1fa36331a0..cd945202839331 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: 2022-09-13 +date: 2022-09-14 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 7a63d138d0df61..c498eb80733d9a 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: 2022-09-13 +date: 2022-09-14 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 3f3b8bc6370c15..e7b8bed1a17862 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: 2022-09-13 +date: 2022-09-14 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 6c2bca0d28e616..57f903f3914cdb 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: 2022-09-13 +date: 2022-09-14 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 511984dd0fc87b..53e2ea761113db 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY'] --- import expressionXYObj from './expression_x_y.devdocs.json'; diff --git a/api_docs/expressions.devdocs.json b/api_docs/expressions.devdocs.json index 21faf370389c9d..fc3d36b421afbc 100644 --- a/api_docs/expressions.devdocs.json +++ b/api_docs/expressions.devdocs.json @@ -38020,7 +38020,9 @@ "section": "def-common.SerializedDatatable", "text": "SerializedDatatable" }, - ") => { rows: _.Dictionary[]; type: \"datatable\"; columns: ", + ") => { rows: ", + "Dictionary", + "[]; type: \"datatable\"; columns: ", { "pluginId": "expressions", "scope": "common", diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index a202ce1aa6a700..14e2ee54f3dc76 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: 2022-09-13 +date: 2022-09-14 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 235658be3b78da..ed7acfdb8e5a2f 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: 2022-09-13 +date: 2022-09-14 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 6ac6cf2ecdeefa..6d3a4fa2b36cb9 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: 2022-09-13 +date: 2022-09-14 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 da61befcf587aa..28ed55ba062797 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: 2022-09-13 +date: 2022-09-14 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 314f463c007de2..87497a92b7daf2 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files'] --- import filesObj from './files.devdocs.json'; diff --git a/api_docs/fleet.devdocs.json b/api_docs/fleet.devdocs.json index fe9883f2aaf7ff..de2984a6a41763 100644 --- a/api_docs/fleet.devdocs.json +++ b/api_docs/fleet.devdocs.json @@ -979,6 +979,37 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "fleet", + "id": "def-public.PackageGenericErrorsListProps", + "type": "Interface", + "tags": [], + "label": "PackageGenericErrorsListProps", + "description": [], + "path": "x-pack/plugins/fleet/public/types/ui_extensions.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "fleet", + "id": "def-public.PackageGenericErrorsListProps.packageErrors", + "type": "Array", + "tags": [], + "label": "packageErrors", + "description": [ + "A list of errors from a package" + ], + "signature": [ + "FleetServerAgentComponentUnit", + "[]" + ], + "path": "x-pack/plugins/fleet/public/types/ui_extensions.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "fleet", "id": "def-public.PackagePolicyCreateExtension", @@ -1894,10 +1925,10 @@ "id": "def-public.UIExtensionsStorage.Unnamed", "type": "IndexSignature", "tags": [], - "label": "[key: string]: Partial>", + "label": "[key: string]: Partial>", "description": [], "signature": [ - "[key: string]: Partial | React.FunctionComponent<", + { + "pluginId": "fleet", + "scope": "public", + "docId": "kibFleetPluginApi", + "section": "def-public.PackageGenericErrorsListProps", + "text": "PackageGenericErrorsListProps" + }, + ">" + ], + "path": "x-pack/plugins/fleet/public/types/ui_extensions.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "fleet", "id": "def-public.PackagePolicyCreateExtensionComponent", @@ -2197,6 +2261,8 @@ "text": "PackageAssetsExtension" }, " | ", + "PackageGenericErrorsListExtension", + " | ", { "pluginId": "fleet", "scope": "public", @@ -2291,6 +2357,8 @@ "text": "PackageAssetsExtension" }, " | ", + "PackageGenericErrorsListExtension", + " | ", { "pluginId": "fleet", "scope": "public", @@ -3555,6 +3623,8 @@ "text": "PackageAssetsExtension" }, " | ", + "PackageGenericErrorsListExtension", + " | ", { "pluginId": "fleet", "scope": "public", diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index a7c2c9ba6bb5b4..c34e123cc7f1d8 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Fleet](https://github.com/orgs/elastic/teams/fleet) for questions regar | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 976 | 3 | 879 | 13 | +| 979 | 3 | 880 | 15 | ## Client diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index b9698bb6af3ae0..c0573b0ecb7b70 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch'] --- import globalSearchObj from './global_search.devdocs.json'; diff --git a/api_docs/home.mdx b/api_docs/home.mdx index 92d86faa822d1e..bcfa3dfec7958d 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index edccd982c1d6c0..f4708381681255 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: 2022-09-13 +date: 2022-09-14 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 be79bdd4eafdbd..7d85bd1ec01f71 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: 2022-09-13 +date: 2022-09-14 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 9d0b8a547f1320..dce762d8e8ee09 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: 2022-09-13 +date: 2022-09-14 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 370ea6e08bea10..31c4af63a555c5 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: 2022-09-13 +date: 2022-09-14 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 5b08cd3e6a2d5b..ed977814da5d11 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: 2022-09-13 +date: 2022-09-14 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 74a80905f75881..6621697f1c9f63 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: 2022-09-13 +date: 2022-09-14 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 8c6373e6be889c..bf305d28029512 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components'] --- import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json'; diff --git a/api_docs/kbn_aiops_utils.devdocs.json b/api_docs/kbn_aiops_utils.devdocs.json index 3a2e48949a52bc..e2ece6ca9c92cd 100644 --- a/api_docs/kbn_aiops_utils.devdocs.json +++ b/api_docs/kbn_aiops_utils.devdocs.json @@ -186,7 +186,9 @@ "\nOverload to set up a string based response stream with support\nfor gzip compression depending on provided request headers.\n" ], "signature": [ - "(headers: Headers, logger: ", + "(headers: ", + "Headers", + ", logger: ", "Logger", ") => StreamFactoryReturnType" ], @@ -197,7 +199,7 @@ { "parentPluginId": "@kbn/aiops-utils", "id": "def-common.streamFactory.$1", - "type": "Object", + "type": "CompoundType", "tags": [], "label": "headers", "description": [ @@ -242,7 +244,9 @@ "\nSets up a response stream with support for gzip compression depending on provided\nrequest headers. Any non-string data pushed to the stream will be stream as NDJSON.\n" ], "signature": [ - "(headers: Headers, logger: ", + "(headers: ", + "Headers", + ", logger: ", "Logger", ") => StreamFactoryReturnType" ], @@ -253,7 +257,7 @@ { "parentPluginId": "@kbn/aiops-utils", "id": "def-common.streamFactory.$1", - "type": "Object", + "type": "CompoundType", "tags": [], "label": "headers", "description": [ diff --git a/api_docs/kbn_aiops_utils.mdx b/api_docs/kbn_aiops_utils.mdx index 54e66a6a920132..03363d0929e0ec 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: 2022-09-13 +date: 2022-09-14 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 58ed7474aecba3..334c27aa6c8a29 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index ddebfb3149f6ea..9383407fefd72a 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: 2022-09-13 +date: 2022-09-14 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 32a1ecee9b0ce0..e98185590f8c3f 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: 2022-09-13 +date: 2022-09-14 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 878d0e2231d852..be15a3999a2e2f 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: 2022-09-13 +date: 2022-09-14 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 ba54f403fc48f7..8afe51725ee3de 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: 2022-09-13 +date: 2022-09-14 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 e9a21b335ee60f..e51dfc55facb5f 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: 2022-09-13 +date: 2022-09-14 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 4afaf927cfd724..dd9ef3297f3fc9 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index 909e563b78ea9c..3ae58b4c1af9a3 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: 2022-09-13 +date: 2022-09-14 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.devdocs.json b/api_docs/kbn_apm_synthtrace.devdocs.json index 647bcc12376234..3ac0d3855ecb17 100644 --- a/api_docs/kbn_apm_synthtrace.devdocs.json +++ b/api_docs/kbn_apm_synthtrace.devdocs.json @@ -1052,7 +1052,7 @@ "label": "service", "description": [], "signature": [ - "(name: string, environment: string, agentName: string) => ", + "({ name, environment, agentName, }: { name: string; environment: string; agentName: string; }) => ", "Service" ], "path": "packages/kbn-apm-synthtrace/src/lib/apm/index.ts", @@ -1063,32 +1063,13 @@ { "parentPluginId": "@kbn/apm-synthtrace", "id": "def-server.apm.service.$1", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-apm-synthtrace/src/lib/apm/service.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-server.apm.service.$2", - "type": "string", - "tags": [], - "label": "environment", - "description": [], - "path": "packages/kbn-apm-synthtrace/src/lib/apm/service.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-server.apm.service.$3", - "type": "string", + "type": "Object", "tags": [], - "label": "agentName", + "label": "__0", "description": [], + "signature": [ + "{ name: string; environment: string; agentName: string; }" + ], "path": "packages/kbn-apm-synthtrace/src/lib/apm/service.ts", "deprecated": false, "trackAdoption": false @@ -1103,7 +1084,7 @@ "label": "browser", "description": [], "signature": [ - "(serviceName: string, production: string, userAgent: Partial<{ 'user_agent.original': string; 'user_agent.os.name': string; 'user_agent.name': string; 'user_agent.device.name': string; 'user_agent.version': number; }>) => ", + "({ serviceName, environment, userAgent, }: { serviceName: string; environment: string; userAgent: Partial<{ 'user_agent.original': string; 'user_agent.os.name': string; 'user_agent.name': string; 'user_agent.device.name': string; 'user_agent.version': number; }>; }) => ", "Browser" ], "path": "packages/kbn-apm-synthtrace/src/lib/apm/index.ts", @@ -1114,34 +1095,12 @@ { "parentPluginId": "@kbn/apm-synthtrace", "id": "def-server.apm.browser.$1", - "type": "string", - "tags": [], - "label": "serviceName", - "description": [], - "path": "packages/kbn-apm-synthtrace/src/lib/apm/browser.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-server.apm.browser.$2", - "type": "string", - "tags": [], - "label": "production", - "description": [], - "path": "packages/kbn-apm-synthtrace/src/lib/apm/browser.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/apm-synthtrace", - "id": "def-server.apm.browser.$3", "type": "Object", "tags": [], - "label": "userAgent", + "label": "__0", "description": [], "signature": [ - "{ 'user_agent.original'?: string | undefined; 'user_agent.os.name'?: string | undefined; 'user_agent.name'?: string | undefined; 'user_agent.device.name'?: string | undefined; 'user_agent.version'?: number | undefined; }" + "{ serviceName: string; environment: string; userAgent: Partial<{ 'user_agent.original': string; 'user_agent.os.name': string; 'user_agent.name': string; 'user_agent.device.name': string; 'user_agent.version': number; }>; }" ], "path": "packages/kbn-apm-synthtrace/src/lib/apm/browser.ts", "deprecated": false, diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index ecd3bd9e30bcbe..504c9bca4c0fa0 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 76 | 0 | 76 | 12 | +| 72 | 0 | 72 | 12 | ## Server diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index 48806f0bb59bfa..275f7b012bfd94 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: 2022-09-13 +date: 2022-09-14 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 164b274ec16fc5..cf1ad1d13b377a 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] --- import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 3096620dea8127..c7046482625d78 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: 2022-09-13 +date: 2022-09-14 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 7a21ab47808d9b..23ed91d2c66be5 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: 2022-09-13 +date: 2022-09-14 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 3b57ffea662993..5257456208105e 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: 2022-09-13 +date: 2022-09-14 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 07bb1488447532..b15d655b56a536 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: 2022-09-13 +date: 2022-09-14 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 655da00aafaeca..f932ba7c041f17 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index f3829af087d231..8bb8e4dc836a11 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: 2022-09-13 +date: 2022-09-14 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 1e7cf2395ca91b..5018d8bb4eada9 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: 2022-09-13 +date: 2022-09-14 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 a51359f9ea878f..ab5303e61f5035 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: 2022-09-13 +date: 2022-09-14 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 d5c8ea17e57271..900b6d1e3c2600 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx index 3cc06db199db25..dc587f2160061c 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: 2022-09-13 +date: 2022-09-14 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 9f792a77a0b9aa..0b284d23158cd5 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: 2022-09-13 +date: 2022-09-14 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 6e92b8441660a1..58495bfef63630 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: 2022-09-13 +date: 2022-09-14 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 a23c727487684a..bd436d6c38c713 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: 2022-09-13 +date: 2022-09-14 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 fa1fbe6a344835..a184b698d620cb 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: 2022-09-13 +date: 2022-09-14 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 a4ac2bbd587e5a..a22a699e12e6bd 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: 2022-09-13 +date: 2022-09-14 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 87a27d7310d32c..5235b62213653a 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: 2022-09-13 +date: 2022-09-14 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 954700546aaeb4..531cbebfb35ad7 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: 2022-09-13 +date: 2022-09-14 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 918cae2266e65c..c4b574b0450daf 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: 2022-09-13 +date: 2022-09-14 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 740cea27d59aa9..85eef07ed34990 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: 2022-09-13 +date: 2022-09-14 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.devdocs.json b/api_docs/kbn_core_apps_browser_internal.devdocs.json new file mode 100644 index 00000000000000..5cea64788f8991 --- /dev/null +++ b/api_docs/kbn_core_apps_browser_internal.devdocs.json @@ -0,0 +1,355 @@ +{ + "id": "@kbn/core-apps-browser-internal", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [ + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsService", + "type": "Class", + "tags": [], + "label": "CoreAppsService", + "description": [], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsService.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsService.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "coreContext", + "description": [], + "signature": [ + "CoreContext" + ], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsService.setup", + "type": "Function", + "tags": [], + "label": "setup", + "description": [], + "signature": [ + "({ application, http, injectedMetadata, notifications }: ", + { + "pluginId": "@kbn/core-apps-browser-internal", + "scope": "common", + "docId": "kibKbnCoreAppsBrowserInternalPluginApi", + "section": "def-common.CoreAppsServiceSetupDeps", + "text": "CoreAppsServiceSetupDeps" + }, + ") => void" + ], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsService.setup.$1", + "type": "Object", + "tags": [], + "label": "{ application, http, injectedMetadata, notifications }", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-apps-browser-internal", + "scope": "common", + "docId": "kibKbnCoreAppsBrowserInternalPluginApi", + "section": "def-common.CoreAppsServiceSetupDeps", + "text": "CoreAppsServiceSetupDeps" + } + ], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsService.start", + "type": "Function", + "tags": [], + "label": "start", + "description": [], + "signature": [ + "({ application, docLinks, http, notifications, uiSettings, }: ", + { + "pluginId": "@kbn/core-apps-browser-internal", + "scope": "common", + "docId": "kibKbnCoreAppsBrowserInternalPluginApi", + "section": "def-common.CoreAppsServiceStartDeps", + "text": "CoreAppsServiceStartDeps" + }, + ") => void" + ], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsService.start.$1", + "type": "Object", + "tags": [], + "label": "{\n application,\n docLinks,\n http,\n notifications,\n uiSettings,\n }", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-apps-browser-internal", + "scope": "common", + "docId": "kibKbnCoreAppsBrowserInternalPluginApi", + "section": "def-common.CoreAppsServiceStartDeps", + "text": "CoreAppsServiceStartDeps" + } + ], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsService.stop", + "type": "Function", + "tags": [], + "label": "stop", + "description": [], + "signature": [ + "() => void" + ], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "functions": [], + "interfaces": [ + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsServiceSetupDeps", + "type": "Interface", + "tags": [], + "label": "CoreAppsServiceSetupDeps", + "description": [], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsServiceSetupDeps.application", + "type": "Object", + "tags": [], + "label": "application", + "description": [], + "signature": [ + "InternalApplicationSetup" + ], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsServiceSetupDeps.http", + "type": "Object", + "tags": [], + "label": "http", + "description": [], + "signature": [ + "HttpSetup" + ], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsServiceSetupDeps.injectedMetadata", + "type": "Object", + "tags": [], + "label": "injectedMetadata", + "description": [], + "signature": [ + "InternalInjectedMetadataSetup" + ], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsServiceSetupDeps.notifications", + "type": "Object", + "tags": [], + "label": "notifications", + "description": [], + "signature": [ + "NotificationsSetup" + ], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsServiceStartDeps", + "type": "Interface", + "tags": [], + "label": "CoreAppsServiceStartDeps", + "description": [], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsServiceStartDeps.application", + "type": "Object", + "tags": [], + "label": "application", + "description": [], + "signature": [ + "InternalApplicationStart" + ], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsServiceStartDeps.docLinks", + "type": "Object", + "tags": [], + "label": "docLinks", + "description": [], + "signature": [ + "DocLinksStart" + ], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsServiceStartDeps.http", + "type": "Object", + "tags": [], + "label": "http", + "description": [], + "signature": [ + "HttpSetup" + ], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsServiceStartDeps.notifications", + "type": "Object", + "tags": [], + "label": "notifications", + "description": [], + "signature": [ + "NotificationsStart" + ], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.CoreAppsServiceStartDeps.uiSettings", + "type": "Object", + "tags": [], + "label": "uiSettings", + "description": [], + "signature": [ + "IUiSettingsClient" + ], + "path": "packages/core/apps/core-apps-browser-internal/src/core_app.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/core-apps-browser-internal", + "id": "def-common.URL_MAX_LENGTH", + "type": "CompoundType", + "tags": [], + "label": "URL_MAX_LENGTH", + "description": [ + "\nThe max URL length allowed by the current browser. Should be used to display warnings to users when query parameters\ncause URL to exceed this limit." + ], + "signature": [ + "2000 | 25000" + ], + "path": "packages/core/apps/core-apps-browser-internal/src/errors/url_overflow.tsx", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_core_apps_browser_internal.mdx b/api_docs/kbn_core_apps_browser_internal.mdx new file mode 100644 index 00000000000000..c7286945082028 --- /dev/null +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -0,0 +1,36 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnCoreAppsBrowserInternalPluginApi +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: 2022-09-14 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-internal'] +--- +import kbnCoreAppsBrowserInternalObj from './kbn_core_apps_browser_internal.devdocs.json'; + + + +Contact Kibana Core for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 20 | 0 | 19 | 0 | + +## Common + +### Classes + + +### Interfaces + + +### Consts, variables and types + + diff --git a/api_docs/kbn_core_apps_browser_mocks.devdocs.json b/api_docs/kbn_core_apps_browser_mocks.devdocs.json new file mode 100644 index 00000000000000..7e58c029fc73be --- /dev/null +++ b/api_docs/kbn_core_apps_browser_mocks.devdocs.json @@ -0,0 +1,58 @@ +{ + "id": "@kbn/core-apps-browser-mocks", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [ + { + "parentPluginId": "@kbn/core-apps-browser-mocks", + "id": "def-common.coreAppsMock", + "type": "Object", + "tags": [], + "label": "coreAppsMock", + "description": [], + "path": "packages/core/apps/core-apps-browser-mocks/src/core_app.mock.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-apps-browser-mocks", + "id": "def-common.coreAppsMock.create", + "type": "Function", + "tags": [], + "label": "create", + "description": [], + "signature": [ + "() => jest.Mocked" + ], + "path": "packages/core/apps/core-apps-browser-mocks/src/core_app.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + } + ], + "initialIsOpen": false + } + ] + } +} \ No newline at end of file diff --git a/api_docs/kbn_core_apps_browser_mocks.mdx b/api_docs/kbn_core_apps_browser_mocks.mdx new file mode 100644 index 00000000000000..13770a33aabe89 --- /dev/null +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -0,0 +1,30 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnCoreAppsBrowserMocksPluginApi +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: 2022-09-14 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks'] +--- +import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json'; + + + +Contact Kibana Core for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 2 | 0 | 2 | 0 | + +## Common + +### Objects + + diff --git a/api_docs/kbn_core_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx index 12a9ea7a3a6927..f9406ab2fea114 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: 2022-09-13 +date: 2022-09-14 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 2dd30f37d381a1..ca50e0de22338e 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: 2022-09-13 +date: 2022-09-14 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 55cbc90dfb837a..7bdaa5116db81b 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: 2022-09-13 +date: 2022-09-14 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 b38af087085f0a..fd66501cdc4d9e 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: 2022-09-13 +date: 2022-09-14 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 d4733df10ef906..b5f28087bc11c1 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: 2022-09-13 +date: 2022-09-14 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 107cc07cf99959..0c9a5cf8b50821 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: 2022-09-13 +date: 2022-09-14 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 cdb1bc362db1c3..b2337825a380f3 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: 2022-09-13 +date: 2022-09-14 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 aecb098f121234..84acbc21937d55 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: 2022-09-13 +date: 2022-09-14 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 26894b359f0990..7ef24aecb41112 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: 2022-09-13 +date: 2022-09-14 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 64f077cc7b79cf..ae79c6dc60f9e6 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: 2022-09-13 +date: 2022-09-14 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 f53cd8691aa37e..5c81c7ec2e974a 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: 2022-09-13 +date: 2022-09-14 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_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index 767eb3ca817be7..3d91ca307b2b41 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: 2022-09-13 +date: 2022-09-14 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 e1ccca466b84b1..cb965c5aa5a1af 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: 2022-09-13 +date: 2022-09-14 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 5c7e1685f69db1..eb18bbf41caf80 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: 2022-09-13 +date: 2022-09-14 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 14a8dab35c4f56..1b0aebb3766064 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: 2022-09-13 +date: 2022-09-14 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 791f954bd0d9eb..7bb293c4cf2650 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: 2022-09-13 +date: 2022-09-14 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 b9893dd3939e3c..62069be73fa136 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: 2022-09-13 +date: 2022-09-14 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 0243777cdfa7a5..65814bef740118 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: 2022-09-13 +date: 2022-09-14 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 8c67ef4c56946e..f40438ef55a00c 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: 2022-09-13 +date: 2022-09-14 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 e26596517937da..10eb34d7abf42b 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: 2022-09-13 +date: 2022-09-14 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 4e6501e7630e19..5ecd9a97cd0451 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: 2022-09-13 +date: 2022-09-14 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 b7f0d3997c26bc..1d327cc86b8e61 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: 2022-09-13 +date: 2022-09-14 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 71ed7c7c9f4810..99d90f775590e9 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: 2022-09-13 +date: 2022-09-14 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 d92db48509a8f7..e1069ce57741fb 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: 2022-09-13 +date: 2022-09-14 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 f3ea30a1089370..92451f9620ae7a 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: 2022-09-13 +date: 2022-09-14 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.devdocs.json b/api_docs/kbn_core_elasticsearch_server_internal.devdocs.json index 9ddb76f9557d64..a040b2f6fb20c2 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.devdocs.json +++ b/api_docs/kbn_core_elasticsearch_server_internal.devdocs.json @@ -2884,7 +2884,7 @@ "label": "ElasticsearchConfigType", "description": [], "signature": [ - "{ readonly username?: string | undefined; readonly password?: string | undefined; readonly serviceAccountToken?: string | undefined; readonly ssl: Readonly<{ key?: string | undefined; certificateAuthorities?: string | string[] | undefined; certificate?: string | undefined; keyPassphrase?: string | undefined; } & { verificationMode: \"none\" | \"full\" | \"certificate\"; keystore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; alwaysPresentCertificate: boolean; }>; readonly healthCheck: Readonly<{} & { delay: moment.Duration; }>; readonly customHeaders: Record; readonly hosts: string | string[]; readonly sniffOnStart: boolean; readonly sniffInterval: false | moment.Duration; readonly sniffOnConnectionFault: boolean; readonly maxSockets: number; readonly compression: boolean; readonly requestHeadersWhitelist: string | string[]; readonly shardTimeout: moment.Duration; readonly requestTimeout: moment.Duration; readonly pingTimeout: moment.Duration; readonly logQueries: boolean; readonly apiVersion: string; readonly ignoreVersionMismatch: boolean; readonly skipStartupConnectionCheck: boolean; }" + "{ readonly username?: string | undefined; readonly password?: string | undefined; readonly serviceAccountToken?: string | undefined; readonly requestTimeout: moment.Duration; readonly compression: boolean; readonly ssl: Readonly<{ key?: string | undefined; certificateAuthorities?: string | string[] | undefined; certificate?: string | undefined; keyPassphrase?: string | undefined; } & { verificationMode: \"none\" | \"full\" | \"certificate\"; keystore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; alwaysPresentCertificate: boolean; }>; readonly healthCheck: Readonly<{} & { delay: moment.Duration; }>; readonly customHeaders: Record; readonly hosts: string | string[]; readonly sniffOnStart: boolean; readonly sniffInterval: false | moment.Duration; readonly sniffOnConnectionFault: boolean; readonly maxSockets: number; readonly requestHeadersWhitelist: string | string[]; readonly shardTimeout: moment.Duration; readonly pingTimeout: moment.Duration; readonly logQueries: boolean; readonly apiVersion: string; readonly ignoreVersionMismatch: boolean; readonly skipStartupConnectionCheck: boolean; }" ], "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_config.ts", "deprecated": false, diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx index ffa295f6afcc94..3926f6f01a8369 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: 2022-09-13 +date: 2022-09-14 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 143dfc5595ee96..a9cb24bec12318 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: 2022-09-13 +date: 2022-09-14 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 4b710a0c95c231..6af66f8ba0055c 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: 2022-09-13 +date: 2022-09-14 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 6a0168c3caa86c..17ea9c2e1fa3a1 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: 2022-09-13 +date: 2022-09-14 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 a0256fed88e287..c1f928bb433758 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: 2022-09-13 +date: 2022-09-14 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 8d278f7f7350a2..01e9be74bb7f5b 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: 2022-09-13 +date: 2022-09-14 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 a8d558bdddca7d..e08bd89edec118 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: 2022-09-13 +date: 2022-09-14 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 e0cf65fe636630..c2ddb64eae79ff 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: 2022-09-13 +date: 2022-09-14 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 e31cae82fd5e7a..3761d21583a494 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: 2022-09-13 +date: 2022-09-14 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 7389a54ff640a2..c0eb4247d58ec2 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: 2022-09-13 +date: 2022-09-14 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 e7174adca9cc49..f2fc5b80d3d1f1 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: 2022-09-13 +date: 2022-09-14 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 547a80c82224f3..18c81b666a64e1 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: 2022-09-13 +date: 2022-09-14 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 c561bed47f8e7a..16c520b8d62674 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: 2022-09-13 +date: 2022-09-14 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 5aad0c7c3b1568..caa1ff06437175 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: 2022-09-13 +date: 2022-09-14 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 d3f87152a47c83..5151c4e5efad10 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: 2022-09-13 +date: 2022-09-14 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 2cfd6a54f674d8..95dab9567bc984 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: 2022-09-13 +date: 2022-09-14 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 f29660dd8fba21..b2ba2cbbfd7971 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: 2022-09-13 +date: 2022-09-14 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 723f7e1143932c..68d92c262a0bf7 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: 2022-09-13 +date: 2022-09-14 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_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index 3ca19cffc1ccd1..00cdb53d4cbf8a 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: 2022-09-13 +date: 2022-09-14 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 3f08c62fb85743..9ae005377384f0 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: 2022-09-13 +date: 2022-09-14 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 cefe2f3a645f9f..3d72f9991e55d5 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: 2022-09-13 +date: 2022-09-14 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.devdocs.json b/api_docs/kbn_core_http_server_internal.devdocs.json index 03cad7bd46025e..236a7a2f4f797e 100644 --- a/api_docs/kbn_core_http_server_internal.devdocs.json +++ b/api_docs/kbn_core_http_server_internal.devdocs.json @@ -759,7 +759,7 @@ "label": "HttpConfigType", "description": [], "signature": [ - "{ readonly basePath?: string | undefined; readonly uuid?: string | undefined; readonly publicBaseUrl?: string | undefined; readonly host: string; readonly name: string; readonly ssl: Readonly<{ key?: string | undefined; certificateAuthorities?: string | string[] | undefined; certificate?: string | undefined; keyPassphrase?: string | undefined; redirectHttpFromPort?: number | undefined; } & { enabled: boolean; keystore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"optional\" | \"none\" | \"required\"; }>; readonly port: number; readonly compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; }>; readonly cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; readonly autoListen: boolean; readonly shutdownTimeout: moment.Duration; readonly securityResponseHeaders: Readonly<{} & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; disableEmbedding: boolean; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; }>; readonly customResponseHeaders: Record; readonly maxPayload: ", + "{ readonly basePath?: string | undefined; readonly uuid?: string | undefined; readonly publicBaseUrl?: string | undefined; readonly host: string; readonly name: string; readonly compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; }>; readonly ssl: Readonly<{ key?: string | undefined; certificateAuthorities?: string | string[] | undefined; certificate?: string | undefined; keyPassphrase?: string | undefined; redirectHttpFromPort?: number | undefined; } & { enabled: boolean; keystore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"optional\" | \"none\" | \"required\"; }>; readonly port: number; readonly cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; readonly autoListen: boolean; readonly shutdownTimeout: moment.Duration; readonly securityResponseHeaders: Readonly<{} & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; disableEmbedding: boolean; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; }>; readonly customResponseHeaders: Record; readonly maxPayload: ", "ByteSizeValue", "; readonly rewriteBasePath: boolean; readonly keepaliveTimeout: number; readonly socketTimeout: number; readonly xsrf: Readonly<{} & { disableProtection: boolean; allowlist: string[]; }>; readonly requestId: Readonly<{} & { allowFromAnyIp: boolean; ipAllowlist: string[]; }>; }" ], diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx index 226665842a30eb..d28a9fb8663685 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: 2022-09-13 +date: 2022-09-14 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 120508a0ac2a53..ab6ebf2a1d0aea 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: 2022-09-13 +date: 2022-09-14 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 5370ae2dcb6ae5..f4b1fc3af5e3b7 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: 2022-09-13 +date: 2022-09-14 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 f51e8e7f1a3f86..64528c70bb8a2d 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: 2022-09-13 +date: 2022-09-14 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 14f6c84f415b98..66a1608cb08101 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: 2022-09-13 +date: 2022-09-14 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 b88acaf3981418..243745c5a4aa7d 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: 2022-09-13 +date: 2022-09-14 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 860de97e5d96d6..be22af3767c19b 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: 2022-09-13 +date: 2022-09-14 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.mdx b/api_docs/kbn_core_injected_metadata_browser.mdx index c954e9385cc366..53854341a5df01 100644 --- a/api_docs/kbn_core_injected_metadata_browser.mdx +++ b/api_docs/kbn_core_injected_metadata_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser title: "@kbn/core-injected-metadata-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser'] --- import kbnCoreInjectedMetadataBrowserObj from './kbn_core_injected_metadata_browser.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 9a082a798c071f..d06b1e26a74b5c 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: 2022-09-13 +date: 2022-09-14 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 37eda7d25c36fe..a36376c797a837 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: 2022-09-13 +date: 2022-09-14 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 713c2df6ab9fbc..d6561b9f429999 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: 2022-09-13 +date: 2022-09-14 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_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index 6a355709ff7dca..4d90b8f49b04f0 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: 2022-09-13 +date: 2022-09-14 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 c7e39b610a15e3..e3e741327ad66c 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: 2022-09-13 +date: 2022-09-14 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 5ccb082c7f3c1d..ed80c3b83ee3be 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: 2022-09-13 +date: 2022-09-14 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 3731c861c52f91..e6b38a10228c2d 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: 2022-09-13 +date: 2022-09-14 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 d3730fb05f6c14..30610a888ab241 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: 2022-09-13 +date: 2022-09-14 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 47cfdb2ec87dc7..c1849c373ccb92 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: 2022-09-13 +date: 2022-09-14 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 7e01ae47831beb..1ac0d920214c93 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: 2022-09-13 +date: 2022-09-14 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 0a0b87432a4017..ebb4f1cacb5daf 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: 2022-09-13 +date: 2022-09-14 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 6fcfe6a112b46e..9a844086577223 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: 2022-09-13 +date: 2022-09-14 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 e96755a7ebb914..f1751fe5cf10a9 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: 2022-09-13 +date: 2022-09-14 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 c9f8cc4bcd65cd..9fee3f506b138c 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: 2022-09-13 +date: 2022-09-14 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 aa0acec92d6614..fe4faca15de2ae 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: 2022-09-13 +date: 2022-09-14 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 9c1fffaff6c0ec..e8aaa49807c241 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: 2022-09-13 +date: 2022-09-14 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 ef59821d7e6d91..100bb26238b1f9 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: 2022-09-13 +date: 2022-09-14 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 404e9359c8628d..0efca04f67fe87 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: 2022-09-13 +date: 2022-09-14 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 c09ca7102eb4d7..3e82839cdc32c0 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: 2022-09-13 +date: 2022-09-14 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 1937ee65cde704..be5e68dd816ead 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: 2022-09-13 +date: 2022-09-14 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 4028ed834f0307..eca844360edd82 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: 2022-09-13 +date: 2022-09-14 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_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx index 5573bad147e849..83a9a80e5f072e 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: 2022-09-13 +date: 2022-09-14 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 32e1362576a19a..d2177a367dff0e 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: 2022-09-13 +date: 2022-09-14 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 afb1dc9ea18c97..7a8b9300bc12dd 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: 2022-09-13 +date: 2022-09-14 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_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index 3a804488400036..e02802e6bbc193 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser'] --- import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server.devdocs.json b/api_docs/kbn_core_saved_objects_api_server.devdocs.json index 0ff68d0fc7bda8..74d6732ba03ba5 100644 --- a/api_docs/kbn_core_saved_objects_api_server.devdocs.json +++ b/api_docs/kbn_core_saved_objects_api_server.devdocs.json @@ -2391,7 +2391,7 @@ "tags": [], "label": "attributes", "description": [ - "{@inheritdoc SavedObjectAttributes}" + "The data for a Saved Object is stored as an object in the `attributes` property." ], "signature": [ "{ [P in keyof T]?: T[P] | undefined; }" diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index 19c4e687936e56..8cc05ce3867f0c 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: 2022-09-13 +date: 2022-09-14 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 b1e8550dc02734..0aa437b82549c7 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: 2022-09-13 +date: 2022-09-14 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 8f50fcc62296ef..73c2f84f289c0d 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: 2022-09-13 +date: 2022-09-14 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 7ab2b50c548aee..09fd1a2523975e 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: 2022-09-13 +date: 2022-09-14 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 e97f95eff4443c..09e368b16c027d 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: 2022-09-13 +date: 2022-09-14 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 3d69cc729ab818..1225cd66a4a023 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: 2022-09-13 +date: 2022-09-14 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 a0d8731e24f030..9d0b9bd4cb5cdc 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: 2022-09-13 +date: 2022-09-14 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 9469f723448ae2..85c89f18ea0a3a 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: 2022-09-13 +date: 2022-09-14 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.devdocs.json b/api_docs/kbn_core_saved_objects_common.devdocs.json index f6d379e5699ac1..78a36566609fa4 100644 --- a/api_docs/kbn_core_saved_objects_common.devdocs.json +++ b/api_docs/kbn_core_saved_objects_common.devdocs.json @@ -127,7 +127,7 @@ "tags": [], "label": "attributes", "description": [ - "{@inheritdoc SavedObjectAttributes}" + "The data for a Saved Object is stored as an object in the `attributes` property." ], "signature": [ "T" @@ -237,14 +237,17 @@ "parentPluginId": "@kbn/core-saved-objects-common", "id": "def-common.SavedObjectAttributes", "type": "Interface", - "tags": [], + "tags": [ + "deprecated" + ], "label": "SavedObjectAttributes", "description": [ "\nThe data for a Saved Object is stored as an object in the `attributes`\nproperty.\n" ], "path": "packages/core/saved-objects/core-saved-objects-common/src/saved_objects.ts", - "deprecated": false, + "deprecated": true, "trackAdoption": false, + "references": [], "children": [ { "parentPluginId": "@kbn/core-saved-objects-common", diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index e815933ba20516..fa224db4202915 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: 2022-09-13 +date: 2022-09-14 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 40dcd459d6ed5a..ac27e89b306e17 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: 2022-09-13 +date: 2022-09-14 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 9fe6c428e9c27a..211f344e7c14d1 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: 2022-09-13 +date: 2022-09-14 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 bb9f16fa28ea88..a9f5fa3280a152 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: 2022-09-13 +date: 2022-09-14 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 81515bfaabe8cd..a13b7cdb36c5ce 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks'] --- import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server.devdocs.json b/api_docs/kbn_core_saved_objects_server.devdocs.json index 3ab55e6ecc442c..f21f0a648a3910 100644 --- a/api_docs/kbn_core_saved_objects_server.devdocs.json +++ b/api_docs/kbn_core_saved_objects_server.devdocs.json @@ -2754,9 +2754,7 @@ "\nRegister a {@link SavedObjectsType | savedObjects type} definition.\n\nSee the {@link SavedObjectsTypeMappingDefinition | mappings format} and\n{@link SavedObjectMigrationMap | migration format} for more details about these.\n" ], "signature": [ - "(type: ", + "(type: ", { "pluginId": "@kbn/core-saved-objects-server", "scope": "server", diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index cce8299d8de355..2bd86c24020aff 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: 2022-09-13 +date: 2022-09-14 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 2b1b6029e1a0cf..16e2436cf9255a 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: 2022-09-13 +date: 2022-09-14 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 92dc8721b5102c..cd9b3ddac55f14 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: 2022-09-13 +date: 2022-09-14 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 a310bc5e8b66e3..fc9d2ee55ff1bf 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: 2022-09-13 +date: 2022-09-14 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 5c4574ce110c4e..fce1412e287b8c 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: 2022-09-13 +date: 2022-09-14 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 f9001dab533724..d0df3a1490d54c 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: 2022-09-13 +date: 2022-09-14 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 b055ae6ecd4950..fc96a13ec5b799 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: 2022-09-13 +date: 2022-09-14 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 9494f0a7234f70..238921a2c6d7ad 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: 2022-09-13 +date: 2022-09-14 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 9df6cb7a9a3c0b..87ac1a0cefc6b1 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: 2022-09-13 +date: 2022-09-14 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 91fd9f57cde41c..adb74f4d27fbc9 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: 2022-09-13 +date: 2022-09-14 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 e5df69dd076bcb..e8b26d5ebf2244 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: 2022-09-13 +date: 2022-09-14 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_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index ff37347c7b544b..e582cfe791e442 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: 2022-09-13 +date: 2022-09-14 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 02f3ff216b752c..0c0820077ce086 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: 2022-09-13 +date: 2022-09-14 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 9a314c1cbe5c95..4935ac32ef0f15 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: 2022-09-13 +date: 2022-09-14 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 e041ac38d93f57..c70c66ad3d6d6c 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: 2022-09-13 +date: 2022-09-14 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 afc677aa8d2983..a02c0314d4e94f 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: 2022-09-13 +date: 2022-09-14 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 f3d3e21b614c56..01b82612891bcd 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: 2022-09-13 +date: 2022-09-14 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 dcb2d58d071cb1..12fd46c7d0487c 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: 2022-09-13 +date: 2022-09-14 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_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx index 9168266b9fe5b8..93513eca040979 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: 2022-09-13 +date: 2022-09-14 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 06607ed3de800b..7c79d1ef3919ad 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: 2022-09-13 +date: 2022-09-14 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 1bc29e750eebea..241103a0a2151f 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: 2022-09-13 +date: 2022-09-14 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 80a712558dee20..e2e3900bb3f10d 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: 2022-09-13 +date: 2022-09-14 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 05d4b7554d8b93..c807c0dc574e8a 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 0e054dd83877f3..7d471d0ea41179 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: 2022-09-13 +date: 2022-09-14 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 a595d32b8f67a0..597b6b0fb45856 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: 2022-09-13 +date: 2022-09-14 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 ce61385b75eb4d..b71a8189686666 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: 2022-09-13 +date: 2022-09-14 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 72836a1b1acc8d..94b37a203404a5 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: 2022-09-13 +date: 2022-09-14 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 172665b51e32ab..92771deb71a7ba 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: 2022-09-13 +date: 2022-09-14 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 4dcf21464cd010..b8d975b8f58143 100644 --- a/api_docs/kbn_doc_links.devdocs.json +++ b/api_docs/kbn_doc_links.devdocs.json @@ -546,7 +546,7 @@ "label": "securitySolution", "description": [], "signature": [ - "{ readonly trustedApps: string; readonly eventFilters: string; readonly blocklist: string; readonly policyResponseTroubleshooting: { full_disk_access: string; macos_system_ext: string; linux_deadlock: string; }; readonly threatIntelInt: string; readonly responseActions: string; }" + "{ readonly trustedApps: string; readonly eventFilters: string; readonly blocklist: string; readonly policyResponseTroubleshooting: { full_disk_access: string; macos_system_ext: string; linux_deadlock: string; }; readonly packageActionTroubleshooting: { es_connection: string; }; readonly threatIntelInt: string; readonly responseActions: 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 50c07ff3dbab24..e63e20a0dc14f1 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: 2022-09-13 +date: 2022-09-14 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 16c8c03861af52..f255e24cd434b0 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: 2022-09-13 +date: 2022-09-14 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 08efbd7a5dd35c..133112f16c0af1 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index 33c1c7b9453342..3cf38907f8097f 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: 2022-09-13 +date: 2022-09-14 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 26884ff008b493..3775e5e6f429c7 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index f35741e1918dcc..1d58fd3268ebec 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx index 325ab1ce226565..ad0131d2c1f08a 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: 2022-09-13 +date: 2022-09-14 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 5cac179b6f440a..f553ab46433ae9 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: 2022-09-13 +date: 2022-09-14 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 35d5cdb8041f59..9b389dd28589d3 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: 2022-09-13 +date: 2022-09-14 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_generate.mdx b/api_docs/kbn_generate.mdx index f2beb74c017989..0e698a9929064e 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_get_repo_files.mdx b/api_docs/kbn_get_repo_files.mdx index 35e5ab8d63dd06..0d106a0c1c3b77 100644 --- a/api_docs/kbn_get_repo_files.mdx +++ b/api_docs/kbn_get_repo_files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-get-repo-files title: "@kbn/get-repo-files" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/get-repo-files plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/get-repo-files'] --- import kbnGetRepoFilesObj from './kbn_get_repo_files.devdocs.json'; diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index 1cad16a961c6fd..3c989779e0ca3f 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: 2022-09-13 +date: 2022-09-14 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 20aa4591f318d9..3ba78844ac8c61 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks'] --- import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx index c4d4b22dbc1cc1..e57c0bf243775c 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: 2022-09-13 +date: 2022-09-14 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 ca62e86803f782..23c2c13ca7b380 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: 2022-09-13 +date: 2022-09-14 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 5dbcd32ab606bd..006b6904f15a91 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] --- import kbnI18nObj from './kbn_i18n.devdocs.json'; diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx index 2bccca1609123c..144b8c57d2399a 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: 2022-09-13 +date: 2022-09-14 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 2c4d72e5408a2f..bccabbb56ce659 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: 2022-09-13 +date: 2022-09-14 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 f418975a89b389..a6f9d341f54716 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: 2022-09-13 +date: 2022-09-14 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 90afa17190a6d6..241cec88b6b62b 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/jest-serializers'] --- import kbnJestSerializersObj from './kbn_jest_serializers.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 8eadcf4c53c581..90976d0c3f5eab 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_logging.devdocs.json b/api_docs/kbn_logging.devdocs.json index 70e29f10ab2af0..ae5f4c09df969a 100644 --- a/api_docs/kbn_logging.devdocs.json +++ b/api_docs/kbn_logging.devdocs.json @@ -658,7 +658,7 @@ "label": "EcsEventKind", "description": [], "signature": [ - "\"metric\" | \"alert\" | \"state\" | \"event\" | \"signal\" | \"pipeline_error\"" + "\"metric\" | \"alert\" | \"signal\" | \"state\" | \"event\" | \"pipeline_error\"" ], "path": "packages/kbn-logging/src/ecs/event.ts", "deprecated": false, diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index 6dbc0da558923d..730962402d1f56 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: 2022-09-13 +date: 2022-09-14 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 5a7827df403e25..c2ccc1133130b7 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: 2022-09-13 +date: 2022-09-14 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 2fa5edd07842bf..80c74ea2d234a0 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: 2022-09-13 +date: 2022-09-14 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 8c9520301c8dbf..3d5fe87b80b7ac 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: 2022-09-13 +date: 2022-09-14 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 3f2fafd3ccad69..b5ced4db599820 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; @@ -21,7 +21,7 @@ Contact Machine Learning UI for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 53 | 2 | 35 | 4 | +| 53 | 2 | 35 | 3 | ## Server diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index b0f261e4b345a2..ffb5d3a34c4932 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: 2022-09-13 +date: 2022-09-14 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_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 073f49dc213ccd..a0a000693f3b18 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 47d6bc0a2bf357..794db6515de609 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: 2022-09-13 +date: 2022-09-14 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 acf9ec1d78dfcd..f033e284d5137d 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: 2022-09-13 +date: 2022-09-14 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 deb819dcad4839..6ce411e98566fe 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer-webpack-helpers'] --- import kbnOptimizerWebpackHelpersObj from './kbn_optimizer_webpack_helpers.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index 5f5e071a658e21..e575352d1e1840 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: 2022-09-13 +date: 2022-09-14 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 5e16c33e604892..ed3a60fb9e1176 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: 2022-09-13 +date: 2022-09-14 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 5a70951a8377f4..f456dd6779be6b 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: 2022-09-13 +date: 2022-09-14 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 2ba6473bb3e119..685de62ad29bdf 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index 949e3675498764..863ba0bdf49b36 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 0abea591738207..4fee60c5a0cd3b 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: 2022-09-13 +date: 2022-09-14 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 22b48a2129619d..20d8b73b98a8ef 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index 40f2ed946625b5..090573fa18a4ea 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: 2022-09-13 +date: 2022-09-14 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_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index dfe673963d5dc6..951727fd01bab4 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: 2022-09-13 +date: 2022-09-14 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 c56fabd189f08a..3380e7363656be 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: 2022-09-13 +date: 2022-09-14 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 7818d52f7150e8..bc11f64cb82ab1 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: 2022-09-13 +date: 2022-09-14 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 51395791ed9c6d..4377dcc63b14fd 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: 2022-09-13 +date: 2022-09-14 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 1ce3f1bcd172f8..dcc0837fbe70ab 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: 2022-09-13 +date: 2022-09-14 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 e6864509b8e6e4..c08c1eb11886a8 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: 2022-09-13 +date: 2022-09-14 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 65887938bbe94c..5dea66bcc50ca8 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: 2022-09-13 +date: 2022-09-14 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 73a844b9dd2eb4..a91c003fa846cf 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: 2022-09-13 +date: 2022-09-14 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 9b5779b987113d..ab11c5ec014a39 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: 2022-09-13 +date: 2022-09-14 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 3e1d0b8ef67aa9..64693afed8e1e7 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: 2022-09-13 +date: 2022-09-14 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 ade141a8e67ad0..93f2ecdf089ee9 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: 2022-09-13 +date: 2022-09-14 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 281d8e89c4b285..3f4e77e20a1419 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: 2022-09-13 +date: 2022-09-14 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 323cb71fc1ce81..ffe048a24fb69c 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: 2022-09-13 +date: 2022-09-14 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 a7572422eaaeed..37efe76fa4ff19 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: 2022-09-13 +date: 2022-09-14 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 06b5847eeb68d7..32ac4de1779b95 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg'] --- import kbnSharedSvgObj from './kbn_shared_svg.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 6a6093117af849..a96929ff84e0f5 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: 2022-09-13 +date: 2022-09-14 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 9cbd40c50737a1..0ceddd48be4803 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: 2022-09-13 +date: 2022-09-14 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 b6ae546257f68b..b65b34b6610514 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: 2022-09-13 +date: 2022-09-14 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 9a11ebfd2911bd..cac824df68e3bd 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: 2022-09-13 +date: 2022-09-14 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_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx index 802747de697297..c849467b87c390 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: 2022-09-13 +date: 2022-09-14 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_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index a93276c45f99d0..c22dc6579bbbe4 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: 2022-09-13 +date: 2022-09-14 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 a50227b43a5667..cffe0245418138 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: 2022-09-13 +date: 2022-09-14 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 b804e452681afd..bfe07bebc8867b 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: 2022-09-13 +date: 2022-09-14 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 7bead5768073ff..a343b907a7d081 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: 2022-09-13 +date: 2022-09-14 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 fcb0ade735ac7d..a16d453687be76 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: 2022-09-13 +date: 2022-09-14 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 8004bc7d98cfdb..d4ede6a1ac41b0 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: 2022-09-13 +date: 2022-09-14 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 93f5fa48100571..4f0577c8b5cb2e 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: 2022-09-13 +date: 2022-09-14 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 de917d0bf65c26..3abcb1bbbdd0bc 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: 2022-09-13 +date: 2022-09-14 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 13cede26acb542..5dd3cb2c786d66 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: 2022-09-13 +date: 2022-09-14 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 bf2f48c4e38bb4..faa271e5be519f 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: 2022-09-13 +date: 2022-09-14 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 2de8b2ede36277..61ad1685894323 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: 2022-09-13 +date: 2022-09-14 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 ca958cb334346a..c40132ef203036 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: 2022-09-13 +date: 2022-09-14 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 20b052f959e05c..59dc8e8d829e0d 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: 2022-09-13 +date: 2022-09-14 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_router.mdx b/api_docs/kbn_shared_ux_router.mdx index eeb46899ad7a5e..4bca66716fc9d5 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: 2022-09-13 +date: 2022-09-14 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 9f235a661078e5..f2b1cd67a2944d 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: 2022-09-13 +date: 2022-09-14 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 376f2050fb0b5c..02da141518fe96 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: 2022-09-13 +date: 2022-09-14 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 1f900664e39bdd..3e856b3a242a05 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: 2022-09-13 +date: 2022-09-14 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 86aed5cc5727ac..87a43ba20f6564 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index e54ef878191ac7..5aecc33c868ed1 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_sort_package_json.mdx b/api_docs/kbn_sort_package_json.mdx index c95a9ba20dc357..e31bf28072d6d9 100644 --- a/api_docs/kbn_sort_package_json.mdx +++ b/api_docs/kbn_sort_package_json.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sort-package-json title: "@kbn/sort-package-json" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/sort-package-json plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-package-json'] --- import kbnSortPackageJsonObj from './kbn_sort_package_json.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 030465fcf407e1..917e18a2e285c9 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: 2022-09-13 +date: 2022-09-14 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 211cac4ef71476..fb9a9211338b65 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: 2022-09-13 +date: 2022-09-14 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 e9d0d67bf11a7a..8980129eb4a833 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: 2022-09-13 +date: 2022-09-14 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 c0351e06afdc6c..217ffd8731a136 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: 2022-09-13 +date: 2022-09-14 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 97c994093713af..efaa96574b84da 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: 2022-09-13 +date: 2022-09-14 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 d24ee424962fa1..dd6042710cbbd1 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers'] --- import kbnTestJestHelpersObj from './kbn_test_jest_helpers.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index bfccaa5ccd3b3e..24835b96e8ce50 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_type_summarizer.mdx b/api_docs/kbn_type_summarizer.mdx index be43b6e9eb1eee..4ffefbee6021a9 100644 --- a/api_docs/kbn_type_summarizer.mdx +++ b/api_docs/kbn_type_summarizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-type-summarizer title: "@kbn/type-summarizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/type-summarizer plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/type-summarizer'] --- import kbnTypeSummarizerObj from './kbn_type_summarizer.devdocs.json'; diff --git a/api_docs/kbn_type_summarizer_core.mdx b/api_docs/kbn_type_summarizer_core.mdx index 066efa8b1567d3..9b5b53144ed8cc 100644 --- a/api_docs/kbn_type_summarizer_core.mdx +++ b/api_docs/kbn_type_summarizer_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-type-summarizer-core title: "@kbn/type-summarizer-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/type-summarizer-core plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/type-summarizer-core'] --- import kbnTypeSummarizerCoreObj from './kbn_type_summarizer_core.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index 9c8a14a8d3787d..b59952bf2ea5f7 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: 2022-09-13 +date: 2022-09-14 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_theme.mdx b/api_docs/kbn_ui_theme.mdx index 5fb427e1a3e3ff..2b66c71610519e 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: 2022-09-13 +date: 2022-09-14 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 ccf448ad72a099..f782a75c0f46f0 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: 2022-09-13 +date: 2022-09-14 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 4b2be39e796aea..65a98cddda8a23 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: 2022-09-13 +date: 2022-09-14 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 22ed8a073401ed..0b59c7f16b477f 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: 2022-09-13 +date: 2022-09-14 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 6d1b97f05508ee..252afe65df9a45 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: 2022-09-13 +date: 2022-09-14 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 9fc13211a68de9..4dbfb88ad580f3 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: 2022-09-13 +date: 2022-09-14 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 1e146c132b1035..743067ff0b3b51 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; diff --git a/api_docs/kibana_react.devdocs.json b/api_docs/kibana_react.devdocs.json index d125ca647c266d..61f1d1a3e264d0 100644 --- a/api_docs/kibana_react.devdocs.json +++ b/api_docs/kibana_react.devdocs.json @@ -211,7 +211,8 @@ "label": "debouncedFetch", "description": [], "signature": [ - "((filter: string) => Promise) & _.Cancelable" + "((filter: string) => Promise) & ", + "Cancelable" ], "path": "src/plugins/kibana_react/public/table_list_view/table_list_view.tsx", "deprecated": false, @@ -1703,18 +1704,6 @@ "deprecated": true, "trackAdoption": false, "references": [ - { - "plugin": "esUiShared", - "path": "src/plugins/es_ui_shared/public/components/view_api_request_flyout/view_api_request_flyout.tsx" - }, - { - "plugin": "esUiShared", - "path": "src/plugins/es_ui_shared/public/components/view_api_request_flyout/view_api_request_flyout.tsx" - }, - { - "plugin": "esUiShared", - "path": "src/plugins/es_ui_shared/public/components/view_api_request_flyout/view_api_request_flyout.tsx" - }, { "plugin": "home", "path": "src/plugins/home/public/application/application.tsx" @@ -1751,6 +1740,18 @@ "plugin": "data", "path": "src/plugins/data/public/search/session/session_indicator/connected_search_session_indicator/connected_search_session_indicator.tsx" }, + { + "plugin": "esUiShared", + "path": "src/plugins/es_ui_shared/public/components/view_api_request_flyout/view_api_request_flyout.tsx" + }, + { + "plugin": "esUiShared", + "path": "src/plugins/es_ui_shared/public/components/view_api_request_flyout/view_api_request_flyout.tsx" + }, + { + "plugin": "esUiShared", + "path": "src/plugins/es_ui_shared/public/components/view_api_request_flyout/view_api_request_flyout.tsx" + }, { "plugin": "spaces", "path": "x-pack/plugins/spaces/public/management/spaces_management_app.tsx" diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index 6546152741ab24..cb02150bfad799 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: 2022-09-13 +date: 2022-09-14 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 54098ff557a031..8943811efb7f77 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: 2022-09-13 +date: 2022-09-14 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 0498b2db5769f7..42952d40cadafb 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: 2022-09-13 +date: 2022-09-14 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 cb4570fa27620c..3b1878688320a8 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: 2022-09-13 +date: 2022-09-14 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 6e309aabace465..35ff78f6ad4386 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: 2022-09-13 +date: 2022-09-14 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 9789fa7e0829d0..02a9e0395ee418 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: 2022-09-13 +date: 2022-09-14 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 2c4102b3e11a95..1a45755ee8e2b9 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: 2022-09-13 +date: 2022-09-14 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 a7fcc3b7e3d0ef..5883efd9fd6e9f 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: 2022-09-13 +date: 2022-09-14 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 54f3c5582ac843..71270d40d9dc1f 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management'] --- import managementObj from './management.devdocs.json'; diff --git a/api_docs/maps.devdocs.json b/api_docs/maps.devdocs.json index e4f20997296834..83836732b0bfc6 100644 --- a/api_docs/maps.devdocs.json +++ b/api_docs/maps.devdocs.json @@ -1222,7 +1222,8 @@ "label": "_setMapExtentFilter", "description": [], "signature": [ - "(() => void) & _.Cancelable" + "(() => void) & ", + "Cancelable" ], "path": "x-pack/plugins/maps/public/embeddable/map_embeddable.tsx", "deprecated": false, diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx index bd17207c428c52..09038246e80ffd 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: 2022-09-13 +date: 2022-09-14 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 3c5f70e4b5b686..fe001d5704b2c1 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: 2022-09-13 +date: 2022-09-14 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 d1e758c309a44a..5263748ce84a67 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: 2022-09-13 +date: 2022-09-14 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 5040b0aced97f3..43551a9cf62ee3 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring'] --- import monitoringObj from './monitoring.devdocs.json'; diff --git a/api_docs/monitoring_collection.devdocs.json b/api_docs/monitoring_collection.devdocs.json index dd6b8b549fecfc..5d88c99099b569 100644 --- a/api_docs/monitoring_collection.devdocs.json +++ b/api_docs/monitoring_collection.devdocs.json @@ -124,7 +124,7 @@ "label": "MonitoringCollectionConfig", "description": [], "signature": [ - "{ readonly enabled: boolean; readonly opentelemetry: Readonly<{} & { metrics: Readonly<{} & { otlp: Readonly<{ url?: string | undefined; headers?: Record | undefined; } & { exportIntervalMillis: number; logLevel: string; }>; prometheus: Readonly<{} & { enabled: boolean; }>; }>; }>; }" + "{ readonly enabled: boolean; readonly opentelemetry: Readonly<{} & { metrics: Readonly<{} & { otlp: Readonly<{ headers?: Record | undefined; url?: string | undefined; } & { exportIntervalMillis: number; logLevel: string; }>; prometheus: Readonly<{} & { enabled: boolean; }>; }>; }>; }" ], "path": "x-pack/plugins/monitoring_collection/server/config.ts", "deprecated": false, diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx index 6159a05da37771..a55f2c7dfeb120 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: 2022-09-13 +date: 2022-09-14 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 98d97f77364217..6275abb0490258 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: 2022-09-13 +date: 2022-09-14 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 1a117ccbf45c87..8114fa0180f4f8 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 8694f142fc35c3..b638866b67bf16 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index f905ec86ea908b..b483fdcffe8955 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: 2022-09-13 +date: 2022-09-14 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 efafbf4a6f6ea7..e861807fd0aba7 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: 2022-09-13 +date: 2022-09-14 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 | |--------------|----------|------------------------| -| 450 | 375 | 36 | +| 452 | 377 | 36 | ### Public API health stats | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 30750 | 180 | 20550 | 972 | +| 30771 | 179 | 20565 | 973 | ## Plugin Directory @@ -30,7 +30,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 272 | 0 | 267 | 19 | | | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 23 | 0 | 19 | 1 | | | [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) | AIOps plugin maintained by ML team. | 7 | 0 | 0 | 1 | -| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 369 | 0 | 360 | 22 | +| | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 370 | 0 | 361 | 22 | | | [APM UI](https://github.com/orgs/elastic/teams/apm-ui) | The user interface for Elastic APM | 39 | 0 | 39 | 54 | | | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 9 | 0 | 9 | 0 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Considering using bfetch capabilities when fetching large amounts of data. This services supports batching HTTP requests and streaming responses back. | 80 | 1 | 71 | 2 | @@ -46,7 +46,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [Fleet](https://github.com/orgs/elastic/teams/fleet) | Add custom data integrations so they can be displayed in the Fleet integrations app | 102 | 0 | 83 | 1 | | | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds the Dashboard app to Kibana | 147 | 0 | 142 | 12 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 52 | 0 | 51 | 0 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 3144 | 34 | 2444 | 23 | +| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 3132 | 33 | 2429 | 23 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | This plugin provides the ability to create data views via a modal flyout inside Kibana apps | 15 | 0 | 7 | 0 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Reusable data view field editor across Kibana | 60 | 0 | 30 | 0 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Data view management app | 2 | 0 | 2 | 0 | @@ -80,7 +80,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Index pattern fields and ambiguous values formatters | 288 | 5 | 249 | 3 | | | [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) | The file upload plugin contains components and services for uploading a file, analyzing its data, and then importing the data into an Elasticsearch index. Supported file types include CSV, TSV, newline-delimited JSON and GeoJSON. | 62 | 0 | 62 | 2 | | | [@elastic/kibana-app-services](https://github.com/orgs/elastic/teams/team:AppServicesUx) | File upload, download, sharing, and serving over HTTP implementation in Kibana. | 240 | 0 | 6 | 2 | -| | [Fleet](https://github.com/orgs/elastic/teams/fleet) | - | 976 | 3 | 879 | 13 | +| | [Fleet](https://github.com/orgs/elastic/teams/fleet) | - | 979 | 3 | 880 | 15 | | | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 68 | 0 | 14 | 5 | | globalSearchBar | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | | globalSearchProviders | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | @@ -152,7 +152,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Adds UI Actions service to Kibana | 132 | 0 | 91 | 11 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Extends UI Actions plugin with more functionality | 205 | 0 | 142 | 9 | | | [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the field list which can be integrated into apps | 54 | 0 | 52 | 2 | -| | [Unified Search](https://github.com/orgs/elastic/teams/kibana-app-services) | Contains all the key functionality of Kibana's unified search experience.Contains all the key functionality of Kibana's unified search experience. | 111 | 2 | 85 | 16 | +| | [Unified Search](https://github.com/orgs/elastic/teams/kibana-app-services) | Contains all the key functionality of Kibana's unified search experience.Contains all the key functionality of Kibana's unified search experience. | 122 | 2 | 96 | 16 | | upgradeAssistant | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 0 | 0 | 0 | 0 | | urlDrilldown | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Adds drilldown implementations to Kibana | 0 | 0 | 0 | 0 | | | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | - | 12 | 0 | 12 | 0 | @@ -189,7 +189,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | Kibana Core | - | 18 | 0 | 0 | 0 | | | Kibana Core | - | 20 | 0 | 0 | 0 | | | [Owner missing] | - | 16 | 0 | 16 | 0 | -| | [Owner missing] | Elastic APM trace data generator | 76 | 0 | 76 | 12 | +| | [Owner missing] | Elastic APM trace data generator | 72 | 0 | 72 | 12 | | | [Owner missing] | - | 11 | 0 | 11 | 0 | | | [Owner missing] | - | 10 | 0 | 10 | 0 | | | [Owner missing] | - | 76 | 0 | 76 | 0 | @@ -211,6 +211,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | Kibana Core | - | 18 | 0 | 15 | 1 | | | Kibana Core | - | 12 | 0 | 12 | 0 | | | Kibana Core | - | 8 | 0 | 1 | 0 | +| | Kibana Core | - | 20 | 0 | 19 | 0 | +| | Kibana Core | - | 2 | 0 | 2 | 0 | | | Kibana Core | - | 3 | 0 | 3 | 0 | | | Kibana Core | - | 12 | 0 | 3 | 0 | | | Kibana Core | - | 7 | 0 | 7 | 0 | @@ -356,7 +358,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | Kibana Core | - | 8 | 0 | 8 | 0 | | | [Owner missing] | - | 6 | 0 | 1 | 1 | | | [Owner missing] | - | 534 | 1 | 1 | 0 | -| | Machine Learning UI | This package includes utility functions related to creating elasticsearch aggregation queries, data manipulation and verification. | 53 | 2 | 35 | 4 | +| | Machine Learning UI | This package includes utility functions related to creating elasticsearch aggregation queries, data manipulation and verification. | 53 | 2 | 35 | 3 | | | Machine Learning UI | A type guard to check record like object structures. | 3 | 0 | 2 | 0 | | | Machine Learning UI | Creates a deterministic number based hash out of a string. | 2 | 0 | 1 | 0 | | | [Owner missing] | - | 55 | 0 | 55 | 2 | diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index 0edc689af574fd..85cb946befa84e 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil'] --- import presentationUtilObj from './presentation_util.devdocs.json'; diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx index 78ddad2eb86f28..03e74d03d9550f 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: 2022-09-13 +date: 2022-09-14 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 6f458120aba1b7..16b9d7d579f940 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: 2022-09-13 +date: 2022-09-14 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 dd24570ed202c4..91f2f9238565ff 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index 5f6fc879c4139a..417fd4d363b98a 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry'] --- import ruleRegistryObj from './rule_registry.devdocs.json'; diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx index 171c76855d8e0d..5f4dc7a882058a 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields'] --- import runtimeFieldsObj from './runtime_fields.devdocs.json'; diff --git a/api_docs/saved_objects.devdocs.json b/api_docs/saved_objects.devdocs.json index 31a0d6adba0d91..ea2a636da67388 100644 --- a/api_docs/saved_objects.devdocs.json +++ b/api_docs/saved_objects.devdocs.json @@ -789,7 +789,7 @@ }, ", \"id\" | \"title\" | \"getDisplayName\" | \"lastSavedTitle\" | \"copyOnSave\" | \"getEsType\">, isTitleDuplicateConfirmed: boolean, onTitleDuplicate: (() => void) | undefined, services: Pick<", "SavedObjectKibanaServices", - ", \"overlays\" | \"savedObjectsClient\">) => Promise" + ", \"savedObjectsClient\" | \"overlays\">) => Promise" ], "path": "src/plugins/saved_objects/public/saved_object/helpers/check_for_duplicate_title.ts", "deprecated": false, @@ -858,7 +858,7 @@ "signature": [ "Pick<", "SavedObjectKibanaServices", - ", \"overlays\" | \"savedObjectsClient\">" + ", \"savedObjectsClient\" | \"overlays\">" ], "path": "src/plugins/saved_objects/public/saved_object/helpers/check_for_duplicate_title.ts", "deprecated": false, diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx index 78f2c22a48ff32..8df5077867d98b 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects'] --- import savedObjectsObj from './saved_objects.devdocs.json'; diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx index 2da7af5edaa258..611cf2a98de70a 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder'] --- import savedObjectsFinderObj from './saved_objects_finder.devdocs.json'; diff --git a/api_docs/saved_objects_management.devdocs.json b/api_docs/saved_objects_management.devdocs.json index f148fcdfe865fd..2cd75f6e2bb2fd 100644 --- a/api_docs/saved_objects_management.devdocs.json +++ b/api_docs/saved_objects_management.devdocs.json @@ -310,7 +310,7 @@ "section": "def-public.SavedObjectsManagementRecord", "text": "SavedObjectsManagementRecord" }, - "; defaultValue?: string | number | readonly string[] | undefined; lang?: string | undefined; defaultChecked?: boolean | undefined; suppressContentEditableWarning?: boolean | undefined; suppressHydrationWarning?: boolean | undefined; accessKey?: string | undefined; contentEditable?: \"inherit\" | Booleanish | undefined; contextMenu?: string | undefined; dir?: string | undefined; draggable?: Booleanish | undefined; placeholder?: string | undefined; slot?: string | undefined; spellCheck?: Booleanish | undefined; style?: React.CSSProperties | undefined; tabIndex?: number | undefined; translate?: \"no\" | \"yes\" | undefined; radioGroup?: string | undefined; role?: React.AriaRole | undefined; about?: string | undefined; datatype?: string | undefined; inlist?: any; prefix?: string | undefined; property?: string | undefined; resource?: string | undefined; typeof?: string | undefined; vocab?: string | undefined; autoCapitalize?: string | undefined; autoCorrect?: string | undefined; autoSave?: string | undefined; itemProp?: string | undefined; itemScope?: boolean | undefined; itemType?: string | undefined; itemID?: string | undefined; itemRef?: string | undefined; results?: number | undefined; unselectable?: \"on\" | \"off\" | undefined; inputMode?: \"none\" | \"email\" | \"search\" | \"text\" | \"tel\" | \"url\" | \"numeric\" | \"decimal\" | undefined; is?: string | undefined; 'aria-activedescendant'?: string | undefined; 'aria-atomic'?: Booleanish | undefined; 'aria-autocomplete'?: \"none\" | \"list\" | \"inline\" | \"both\" | undefined; 'aria-busy'?: Booleanish | undefined; 'aria-checked'?: boolean | \"mixed\" | \"false\" | \"true\" | undefined; 'aria-colcount'?: number | undefined; 'aria-colindex'?: number | undefined; 'aria-colspan'?: number | undefined; 'aria-controls'?: string | undefined; 'aria-current'?: boolean | \"date\" | \"location\" | \"time\" | \"page\" | \"false\" | \"true\" | \"step\" | undefined; 'aria-describedby'?: string | undefined; 'aria-details'?: string | undefined; 'aria-disabled'?: Booleanish | undefined; 'aria-dropeffect'?: \"none\" | \"copy\" | \"link\" | \"execute\" | \"move\" | \"popup\" | undefined; 'aria-errormessage'?: string | undefined; 'aria-expanded'?: Booleanish | undefined; 'aria-flowto'?: string | undefined; 'aria-grabbed'?: Booleanish | undefined; 'aria-haspopup'?: boolean | \"grid\" | \"menu\" | \"false\" | \"true\" | \"dialog\" | \"listbox\" | \"tree\" | undefined; 'aria-hidden'?: Booleanish | undefined; 'aria-invalid'?: boolean | \"false\" | \"true\" | \"grammar\" | \"spelling\" | undefined; 'aria-keyshortcuts'?: string | undefined; 'aria-label'?: string | undefined; 'aria-labelledby'?: string | undefined; 'aria-level'?: number | undefined; 'aria-live'?: \"off\" | \"assertive\" | \"polite\" | undefined; 'aria-modal'?: Booleanish | undefined; 'aria-multiline'?: Booleanish | undefined; 'aria-multiselectable'?: Booleanish | undefined; 'aria-orientation'?: \"horizontal\" | \"vertical\" | undefined; 'aria-owns'?: string | undefined; 'aria-placeholder'?: string | undefined; 'aria-posinset'?: number | undefined; 'aria-pressed'?: boolean | \"mixed\" | \"false\" | \"true\" | undefined; 'aria-readonly'?: Booleanish | undefined; 'aria-relevant'?: \"all\" | \"text\" | \"additions\" | \"additions removals\" | \"additions text\" | \"removals\" | \"removals additions\" | \"removals text\" | \"text additions\" | \"text removals\" | undefined; 'aria-required'?: Booleanish | undefined; 'aria-roledescription'?: string | undefined; 'aria-rowcount'?: number | undefined; 'aria-rowindex'?: number | undefined; 'aria-rowspan'?: number | undefined; 'aria-selected'?: Booleanish | undefined; 'aria-setsize'?: number | undefined; 'aria-sort'?: \"none\" | \"other\" | \"ascending\" | \"descending\" | undefined; 'aria-valuemax'?: number | undefined; 'aria-valuemin'?: number | undefined; 'aria-valuenow'?: number | undefined; 'aria-valuetext'?: string | undefined; dangerouslySetInnerHTML?: { __html: string; } | undefined; onCopy?: React.ClipboardEventHandler | undefined; onCopyCapture?: React.ClipboardEventHandler | undefined; onCut?: React.ClipboardEventHandler | undefined; onCutCapture?: React.ClipboardEventHandler | undefined; onPaste?: React.ClipboardEventHandler | undefined; onPasteCapture?: React.ClipboardEventHandler | undefined; onCompositionEnd?: React.CompositionEventHandler | undefined; onCompositionEndCapture?: React.CompositionEventHandler | undefined; onCompositionStart?: React.CompositionEventHandler | undefined; onCompositionStartCapture?: React.CompositionEventHandler | undefined; onCompositionUpdate?: React.CompositionEventHandler | undefined; onCompositionUpdateCapture?: React.CompositionEventHandler | undefined; onFocus?: React.FocusEventHandler | undefined; onFocusCapture?: React.FocusEventHandler | undefined; onBlur?: React.FocusEventHandler | undefined; onBlurCapture?: React.FocusEventHandler | undefined; onChangeCapture?: React.FormEventHandler | undefined; onBeforeInput?: React.FormEventHandler | undefined; onBeforeInputCapture?: React.FormEventHandler | undefined; onInput?: React.FormEventHandler | undefined; onInputCapture?: React.FormEventHandler | undefined; onReset?: React.FormEventHandler | undefined; onResetCapture?: React.FormEventHandler | undefined; onSubmit?: React.FormEventHandler | undefined; onSubmitCapture?: React.FormEventHandler | undefined; onInvalid?: React.FormEventHandler | undefined; onInvalidCapture?: React.FormEventHandler | undefined; onLoad?: React.ReactEventHandler | undefined; onLoadCapture?: React.ReactEventHandler | undefined; onErrorCapture?: React.ReactEventHandler | undefined; onKeyDownCapture?: React.KeyboardEventHandler | undefined; onKeyPress?: React.KeyboardEventHandler | undefined; onKeyPressCapture?: React.KeyboardEventHandler | undefined; onKeyUp?: React.KeyboardEventHandler | undefined; onKeyUpCapture?: React.KeyboardEventHandler | undefined; onAbort?: React.ReactEventHandler | undefined; onAbortCapture?: React.ReactEventHandler | undefined; onCanPlay?: React.ReactEventHandler | undefined; onCanPlayCapture?: React.ReactEventHandler | undefined; onCanPlayThrough?: React.ReactEventHandler | undefined; onCanPlayThroughCapture?: React.ReactEventHandler | undefined; onDurationChange?: React.ReactEventHandler | undefined; onDurationChangeCapture?: React.ReactEventHandler | undefined; onEmptied?: React.ReactEventHandler | undefined; onEmptiedCapture?: React.ReactEventHandler | undefined; onEncrypted?: React.ReactEventHandler | undefined; onEncryptedCapture?: React.ReactEventHandler | undefined; onEnded?: React.ReactEventHandler | undefined; onEndedCapture?: React.ReactEventHandler | undefined; onLoadedData?: React.ReactEventHandler | undefined; onLoadedDataCapture?: React.ReactEventHandler | undefined; onLoadedMetadata?: React.ReactEventHandler | undefined; onLoadedMetadataCapture?: React.ReactEventHandler | undefined; onLoadStart?: React.ReactEventHandler | undefined; onLoadStartCapture?: React.ReactEventHandler | undefined; onPause?: React.ReactEventHandler | undefined; onPauseCapture?: React.ReactEventHandler | undefined; onPlay?: React.ReactEventHandler | undefined; onPlayCapture?: React.ReactEventHandler | undefined; onPlaying?: React.ReactEventHandler | undefined; onPlayingCapture?: React.ReactEventHandler | undefined; onProgress?: React.ReactEventHandler | undefined; onProgressCapture?: React.ReactEventHandler | undefined; onRateChange?: React.ReactEventHandler | undefined; onRateChangeCapture?: React.ReactEventHandler | undefined; onSeeked?: React.ReactEventHandler | undefined; onSeekedCapture?: React.ReactEventHandler | undefined; onSeeking?: React.ReactEventHandler | undefined; onSeekingCapture?: React.ReactEventHandler | undefined; onStalled?: React.ReactEventHandler | undefined; onStalledCapture?: React.ReactEventHandler | undefined; onSuspend?: React.ReactEventHandler | undefined; onSuspendCapture?: React.ReactEventHandler | undefined; onTimeUpdate?: React.ReactEventHandler | undefined; onTimeUpdateCapture?: React.ReactEventHandler | undefined; onVolumeChange?: React.ReactEventHandler | undefined; onVolumeChangeCapture?: React.ReactEventHandler | undefined; onWaiting?: React.ReactEventHandler | undefined; onWaitingCapture?: React.ReactEventHandler | undefined; onAuxClick?: React.MouseEventHandler | undefined; onAuxClickCapture?: React.MouseEventHandler | undefined; onClickCapture?: React.MouseEventHandler | undefined; onContextMenu?: React.MouseEventHandler | undefined; onContextMenuCapture?: React.MouseEventHandler | undefined; onDoubleClick?: React.MouseEventHandler | undefined; onDoubleClickCapture?: React.MouseEventHandler | undefined; onDrag?: React.DragEventHandler | undefined; onDragCapture?: React.DragEventHandler | undefined; onDragEnd?: React.DragEventHandler | undefined; onDragEndCapture?: React.DragEventHandler | undefined; onDragEnter?: React.DragEventHandler | undefined; onDragEnterCapture?: React.DragEventHandler | undefined; onDragExit?: React.DragEventHandler | undefined; onDragExitCapture?: React.DragEventHandler | undefined; onDragLeave?: React.DragEventHandler | undefined; onDragLeaveCapture?: React.DragEventHandler | undefined; onDragOver?: React.DragEventHandler | undefined; onDragOverCapture?: React.DragEventHandler | undefined; onDragStart?: React.DragEventHandler | undefined; onDragStartCapture?: React.DragEventHandler | undefined; onDrop?: React.DragEventHandler | undefined; onDropCapture?: React.DragEventHandler | undefined; onMouseDown?: React.MouseEventHandler | undefined; onMouseDownCapture?: React.MouseEventHandler | undefined; onMouseEnter?: React.MouseEventHandler | undefined; onMouseLeave?: React.MouseEventHandler | undefined; onMouseMove?: React.MouseEventHandler | undefined; onMouseMoveCapture?: React.MouseEventHandler | undefined; onMouseOut?: React.MouseEventHandler | undefined; onMouseOutCapture?: React.MouseEventHandler | undefined; onMouseOver?: React.MouseEventHandler | undefined; onMouseOverCapture?: React.MouseEventHandler | undefined; onMouseUp?: React.MouseEventHandler | undefined; onMouseUpCapture?: React.MouseEventHandler | undefined; onSelect?: React.ReactEventHandler | undefined; onSelectCapture?: React.ReactEventHandler | undefined; onTouchCancel?: React.TouchEventHandler | undefined; onTouchCancelCapture?: React.TouchEventHandler | undefined; onTouchEnd?: React.TouchEventHandler | undefined; onTouchEndCapture?: React.TouchEventHandler | undefined; onTouchMove?: React.TouchEventHandler | undefined; onTouchMoveCapture?: React.TouchEventHandler | undefined; onTouchStart?: React.TouchEventHandler | undefined; onTouchStartCapture?: React.TouchEventHandler | undefined; onPointerDown?: React.PointerEventHandler | undefined; onPointerDownCapture?: React.PointerEventHandler | undefined; onPointerMove?: React.PointerEventHandler | undefined; onPointerMoveCapture?: React.PointerEventHandler | undefined; onPointerUp?: React.PointerEventHandler | undefined; onPointerUpCapture?: React.PointerEventHandler | undefined; onPointerCancel?: React.PointerEventHandler | undefined; onPointerCancelCapture?: React.PointerEventHandler | undefined; onPointerEnter?: React.PointerEventHandler | undefined; onPointerEnterCapture?: React.PointerEventHandler | undefined; onPointerLeave?: React.PointerEventHandler | undefined; onPointerLeaveCapture?: React.PointerEventHandler | undefined; onPointerOver?: React.PointerEventHandler | undefined; onPointerOverCapture?: React.PointerEventHandler | undefined; onPointerOut?: React.PointerEventHandler | undefined; onPointerOutCapture?: React.PointerEventHandler | undefined; onGotPointerCapture?: React.PointerEventHandler | undefined; onGotPointerCaptureCapture?: React.PointerEventHandler | undefined; onLostPointerCapture?: React.PointerEventHandler | undefined; onLostPointerCaptureCapture?: React.PointerEventHandler | undefined; onScroll?: React.UIEventHandler | undefined; onScrollCapture?: React.UIEventHandler | undefined; onWheel?: React.WheelEventHandler | undefined; onWheelCapture?: React.WheelEventHandler | undefined; onAnimationStart?: React.AnimationEventHandler | undefined; onAnimationStartCapture?: React.AnimationEventHandler | undefined; onAnimationEnd?: React.AnimationEventHandler | undefined; onAnimationEndCapture?: React.AnimationEventHandler | undefined; onAnimationIteration?: React.AnimationEventHandler | undefined; onAnimationIterationCapture?: React.AnimationEventHandler | undefined; onTransitionEnd?: React.TransitionEventHandler | undefined; onTransitionEndCapture?: React.TransitionEventHandler | undefined; 'data-test-subj'?: string | undefined; height?: string | number | undefined; width?: string | undefined; readOnly?: boolean | undefined; align?: ", + "; headers?: string | undefined; defaultValue?: string | number | readonly string[] | undefined; lang?: string | undefined; defaultChecked?: boolean | undefined; suppressContentEditableWarning?: boolean | undefined; suppressHydrationWarning?: boolean | undefined; accessKey?: string | undefined; contentEditable?: \"inherit\" | Booleanish | undefined; contextMenu?: string | undefined; dir?: string | undefined; draggable?: Booleanish | undefined; placeholder?: string | undefined; slot?: string | undefined; spellCheck?: Booleanish | undefined; style?: React.CSSProperties | undefined; tabIndex?: number | undefined; translate?: \"no\" | \"yes\" | undefined; radioGroup?: string | undefined; role?: React.AriaRole | undefined; about?: string | undefined; datatype?: string | undefined; inlist?: any; prefix?: string | undefined; property?: string | undefined; resource?: string | undefined; typeof?: string | undefined; vocab?: string | undefined; autoCapitalize?: string | undefined; autoCorrect?: string | undefined; autoSave?: string | undefined; itemProp?: string | undefined; itemScope?: boolean | undefined; itemType?: string | undefined; itemID?: string | undefined; itemRef?: string | undefined; results?: number | undefined; unselectable?: \"on\" | \"off\" | undefined; inputMode?: \"none\" | \"email\" | \"search\" | \"text\" | \"tel\" | \"url\" | \"numeric\" | \"decimal\" | undefined; is?: string | undefined; 'aria-activedescendant'?: string | undefined; 'aria-atomic'?: Booleanish | undefined; 'aria-autocomplete'?: \"none\" | \"list\" | \"inline\" | \"both\" | undefined; 'aria-busy'?: Booleanish | undefined; 'aria-checked'?: boolean | \"mixed\" | \"false\" | \"true\" | undefined; 'aria-colcount'?: number | undefined; 'aria-colindex'?: number | undefined; 'aria-colspan'?: number | undefined; 'aria-controls'?: string | undefined; 'aria-current'?: boolean | \"date\" | \"location\" | \"time\" | \"page\" | \"false\" | \"true\" | \"step\" | undefined; 'aria-describedby'?: string | undefined; 'aria-details'?: string | undefined; 'aria-disabled'?: Booleanish | undefined; 'aria-dropeffect'?: \"none\" | \"copy\" | \"link\" | \"execute\" | \"move\" | \"popup\" | undefined; 'aria-errormessage'?: string | undefined; 'aria-expanded'?: Booleanish | undefined; 'aria-flowto'?: string | undefined; 'aria-grabbed'?: Booleanish | undefined; 'aria-haspopup'?: boolean | \"grid\" | \"menu\" | \"false\" | \"true\" | \"dialog\" | \"listbox\" | \"tree\" | undefined; 'aria-hidden'?: Booleanish | undefined; 'aria-invalid'?: boolean | \"false\" | \"true\" | \"grammar\" | \"spelling\" | undefined; 'aria-keyshortcuts'?: string | undefined; 'aria-label'?: string | undefined; 'aria-labelledby'?: string | undefined; 'aria-level'?: number | undefined; 'aria-live'?: \"off\" | \"assertive\" | \"polite\" | undefined; 'aria-modal'?: Booleanish | undefined; 'aria-multiline'?: Booleanish | undefined; 'aria-multiselectable'?: Booleanish | undefined; 'aria-orientation'?: \"horizontal\" | \"vertical\" | undefined; 'aria-owns'?: string | undefined; 'aria-placeholder'?: string | undefined; 'aria-posinset'?: number | undefined; 'aria-pressed'?: boolean | \"mixed\" | \"false\" | \"true\" | undefined; 'aria-readonly'?: Booleanish | undefined; 'aria-relevant'?: \"all\" | \"text\" | \"additions\" | \"additions removals\" | \"additions text\" | \"removals\" | \"removals additions\" | \"removals text\" | \"text additions\" | \"text removals\" | undefined; 'aria-required'?: Booleanish | undefined; 'aria-roledescription'?: string | undefined; 'aria-rowcount'?: number | undefined; 'aria-rowindex'?: number | undefined; 'aria-rowspan'?: number | undefined; 'aria-selected'?: Booleanish | undefined; 'aria-setsize'?: number | undefined; 'aria-sort'?: \"none\" | \"other\" | \"ascending\" | \"descending\" | undefined; 'aria-valuemax'?: number | undefined; 'aria-valuemin'?: number | undefined; 'aria-valuenow'?: number | undefined; 'aria-valuetext'?: string | undefined; dangerouslySetInnerHTML?: { __html: string; } | undefined; onCopy?: React.ClipboardEventHandler | undefined; onCopyCapture?: React.ClipboardEventHandler | undefined; onCut?: React.ClipboardEventHandler | undefined; onCutCapture?: React.ClipboardEventHandler | undefined; onPaste?: React.ClipboardEventHandler | undefined; onPasteCapture?: React.ClipboardEventHandler | undefined; onCompositionEnd?: React.CompositionEventHandler | undefined; onCompositionEndCapture?: React.CompositionEventHandler | undefined; onCompositionStart?: React.CompositionEventHandler | undefined; onCompositionStartCapture?: React.CompositionEventHandler | undefined; onCompositionUpdate?: React.CompositionEventHandler | undefined; onCompositionUpdateCapture?: React.CompositionEventHandler | undefined; onFocus?: React.FocusEventHandler | undefined; onFocusCapture?: React.FocusEventHandler | undefined; onBlur?: React.FocusEventHandler | undefined; onBlurCapture?: React.FocusEventHandler | undefined; onChangeCapture?: React.FormEventHandler | undefined; onBeforeInput?: React.FormEventHandler | undefined; onBeforeInputCapture?: React.FormEventHandler | undefined; onInput?: React.FormEventHandler | undefined; onInputCapture?: React.FormEventHandler | undefined; onReset?: React.FormEventHandler | undefined; onResetCapture?: React.FormEventHandler | undefined; onSubmit?: React.FormEventHandler | undefined; onSubmitCapture?: React.FormEventHandler | undefined; onInvalid?: React.FormEventHandler | undefined; onInvalidCapture?: React.FormEventHandler | undefined; onLoad?: React.ReactEventHandler | undefined; onLoadCapture?: React.ReactEventHandler | undefined; onErrorCapture?: React.ReactEventHandler | undefined; onKeyDownCapture?: React.KeyboardEventHandler | undefined; onKeyPress?: React.KeyboardEventHandler | undefined; onKeyPressCapture?: React.KeyboardEventHandler | undefined; onKeyUp?: React.KeyboardEventHandler | undefined; onKeyUpCapture?: React.KeyboardEventHandler | undefined; onAbort?: React.ReactEventHandler | undefined; onAbortCapture?: React.ReactEventHandler | undefined; onCanPlay?: React.ReactEventHandler | undefined; onCanPlayCapture?: React.ReactEventHandler | undefined; onCanPlayThrough?: React.ReactEventHandler | undefined; onCanPlayThroughCapture?: React.ReactEventHandler | undefined; onDurationChange?: React.ReactEventHandler | undefined; onDurationChangeCapture?: React.ReactEventHandler | undefined; onEmptied?: React.ReactEventHandler | undefined; onEmptiedCapture?: React.ReactEventHandler | undefined; onEncrypted?: React.ReactEventHandler | undefined; onEncryptedCapture?: React.ReactEventHandler | undefined; onEnded?: React.ReactEventHandler | undefined; onEndedCapture?: React.ReactEventHandler | undefined; onLoadedData?: React.ReactEventHandler | undefined; onLoadedDataCapture?: React.ReactEventHandler | undefined; onLoadedMetadata?: React.ReactEventHandler | undefined; onLoadedMetadataCapture?: React.ReactEventHandler | undefined; onLoadStart?: React.ReactEventHandler | undefined; onLoadStartCapture?: React.ReactEventHandler | undefined; onPause?: React.ReactEventHandler | undefined; onPauseCapture?: React.ReactEventHandler | undefined; onPlay?: React.ReactEventHandler | undefined; onPlayCapture?: React.ReactEventHandler | undefined; onPlaying?: React.ReactEventHandler | undefined; onPlayingCapture?: React.ReactEventHandler | undefined; onProgress?: React.ReactEventHandler | undefined; onProgressCapture?: React.ReactEventHandler | undefined; onRateChange?: React.ReactEventHandler | undefined; onRateChangeCapture?: React.ReactEventHandler | undefined; onSeeked?: React.ReactEventHandler | undefined; onSeekedCapture?: React.ReactEventHandler | undefined; onSeeking?: React.ReactEventHandler | undefined; onSeekingCapture?: React.ReactEventHandler | undefined; onStalled?: React.ReactEventHandler | undefined; onStalledCapture?: React.ReactEventHandler | undefined; onSuspend?: React.ReactEventHandler | undefined; onSuspendCapture?: React.ReactEventHandler | undefined; onTimeUpdate?: React.ReactEventHandler | undefined; onTimeUpdateCapture?: React.ReactEventHandler | undefined; onVolumeChange?: React.ReactEventHandler | undefined; onVolumeChangeCapture?: React.ReactEventHandler | undefined; onWaiting?: React.ReactEventHandler | undefined; onWaitingCapture?: React.ReactEventHandler | undefined; onAuxClick?: React.MouseEventHandler | undefined; onAuxClickCapture?: React.MouseEventHandler | undefined; onClickCapture?: React.MouseEventHandler | undefined; onContextMenu?: React.MouseEventHandler | undefined; onContextMenuCapture?: React.MouseEventHandler | undefined; onDoubleClick?: React.MouseEventHandler | undefined; onDoubleClickCapture?: React.MouseEventHandler | undefined; onDrag?: React.DragEventHandler | undefined; onDragCapture?: React.DragEventHandler | undefined; onDragEnd?: React.DragEventHandler | undefined; onDragEndCapture?: React.DragEventHandler | undefined; onDragEnter?: React.DragEventHandler | undefined; onDragEnterCapture?: React.DragEventHandler | undefined; onDragExit?: React.DragEventHandler | undefined; onDragExitCapture?: React.DragEventHandler | undefined; onDragLeave?: React.DragEventHandler | undefined; onDragLeaveCapture?: React.DragEventHandler | undefined; onDragOver?: React.DragEventHandler | undefined; onDragOverCapture?: React.DragEventHandler | undefined; onDragStart?: React.DragEventHandler | undefined; onDragStartCapture?: React.DragEventHandler | undefined; onDrop?: React.DragEventHandler | undefined; onDropCapture?: React.DragEventHandler | undefined; onMouseDown?: React.MouseEventHandler | undefined; onMouseDownCapture?: React.MouseEventHandler | undefined; onMouseEnter?: React.MouseEventHandler | undefined; onMouseLeave?: React.MouseEventHandler | undefined; onMouseMove?: React.MouseEventHandler | undefined; onMouseMoveCapture?: React.MouseEventHandler | undefined; onMouseOut?: React.MouseEventHandler | undefined; onMouseOutCapture?: React.MouseEventHandler | undefined; onMouseOver?: React.MouseEventHandler | undefined; onMouseOverCapture?: React.MouseEventHandler | undefined; onMouseUp?: React.MouseEventHandler | undefined; onMouseUpCapture?: React.MouseEventHandler | undefined; onSelect?: React.ReactEventHandler | undefined; onSelectCapture?: React.ReactEventHandler | undefined; onTouchCancel?: React.TouchEventHandler | undefined; onTouchCancelCapture?: React.TouchEventHandler | undefined; onTouchEnd?: React.TouchEventHandler | undefined; onTouchEndCapture?: React.TouchEventHandler | undefined; onTouchMove?: React.TouchEventHandler | undefined; onTouchMoveCapture?: React.TouchEventHandler | undefined; onTouchStart?: React.TouchEventHandler | undefined; onTouchStartCapture?: React.TouchEventHandler | undefined; onPointerDown?: React.PointerEventHandler | undefined; onPointerDownCapture?: React.PointerEventHandler | undefined; onPointerMove?: React.PointerEventHandler | undefined; onPointerMoveCapture?: React.PointerEventHandler | undefined; onPointerUp?: React.PointerEventHandler | undefined; onPointerUpCapture?: React.PointerEventHandler | undefined; onPointerCancel?: React.PointerEventHandler | undefined; onPointerCancelCapture?: React.PointerEventHandler | undefined; onPointerEnter?: React.PointerEventHandler | undefined; onPointerEnterCapture?: React.PointerEventHandler | undefined; onPointerLeave?: React.PointerEventHandler | undefined; onPointerLeaveCapture?: React.PointerEventHandler | undefined; onPointerOver?: React.PointerEventHandler | undefined; onPointerOverCapture?: React.PointerEventHandler | undefined; onPointerOut?: React.PointerEventHandler | undefined; onPointerOutCapture?: React.PointerEventHandler | undefined; onGotPointerCapture?: React.PointerEventHandler | undefined; onGotPointerCaptureCapture?: React.PointerEventHandler | undefined; onLostPointerCapture?: React.PointerEventHandler | undefined; onLostPointerCaptureCapture?: React.PointerEventHandler | undefined; onScroll?: React.UIEventHandler | undefined; onScrollCapture?: React.UIEventHandler | undefined; onWheel?: React.WheelEventHandler | undefined; onWheelCapture?: React.WheelEventHandler | undefined; onAnimationStart?: React.AnimationEventHandler | undefined; onAnimationStartCapture?: React.AnimationEventHandler | undefined; onAnimationEnd?: React.AnimationEventHandler | undefined; onAnimationEndCapture?: React.AnimationEventHandler | undefined; onAnimationIteration?: React.AnimationEventHandler | undefined; onAnimationIterationCapture?: React.AnimationEventHandler | undefined; onTransitionEnd?: React.TransitionEventHandler | undefined; onTransitionEndCapture?: React.TransitionEventHandler | undefined; 'data-test-subj'?: string | undefined; height?: string | number | undefined; width?: string | undefined; readOnly?: boolean | undefined; align?: ", "HorizontalAlignment", " | undefined; abbr?: string | undefined; footer?: string | React.ReactElement> | ((props: ", "EuiTableFooterProps", @@ -322,7 +322,7 @@ "section": "def-public.SavedObjectsManagementRecord", "text": "SavedObjectsManagementRecord" }, - ">) => React.ReactNode) | undefined; colSpan?: number | undefined; headers?: string | undefined; rowSpan?: number | undefined; scope?: string | undefined; valign?: \"top\" | \"bottom\" | \"middle\" | \"baseline\" | undefined; dataType?: ", + ">) => React.ReactNode) | undefined; colSpan?: number | undefined; rowSpan?: number | undefined; scope?: string | undefined; valign?: \"top\" | \"bottom\" | \"middle\" | \"baseline\" | undefined; dataType?: ", "EuiTableDataType", " | undefined; isExpander?: boolean | undefined; textOnly?: boolean | undefined; truncateText?: boolean | undefined; mobileOptions?: (Omit<", "EuiTableRowCellMobileOptionsShape", diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index 7e987845a7f6e4..093ab0cd3411fb 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement'] --- import savedObjectsManagementObj from './saved_objects_management.devdocs.json'; diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx index 5d518c6f38be80..06500b90bde55d 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging'] --- import savedObjectsTaggingObj from './saved_objects_tagging.devdocs.json'; diff --git a/api_docs/saved_objects_tagging_oss.mdx b/api_docs/saved_objects_tagging_oss.mdx index 11d80f83e37bed..5a6c16542494db 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss'] --- import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json'; diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx index d64af3ea0899f8..d801ecf01425b6 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedSearch'] --- import savedSearchObj from './saved_search.devdocs.json'; diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx index 69b385c778d533..33aa8147cd15cf 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode'] --- import screenshotModeObj from './screenshot_mode.devdocs.json'; diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx index b55f6e9cab5410..da135809842195 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/security.mdx b/api_docs/security.mdx index ee218b50a477e2..f1603607e7234f 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: 2022-09-13 +date: 2022-09-14 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 e1fd0a2477294d..14a2b8cc373f60 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: 2022-09-13 +date: 2022-09-14 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 f4305bd1a9f45a..4f197b0a9fce09 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: 2022-09-13 +date: 2022-09-14 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 fdb2d1e61b2f81..71f2d14dd7453c 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: 2022-09-13 +date: 2022-09-14 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 4770ea6d27907b..ba5838205eb109 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: 2022-09-13 +date: 2022-09-14 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 933ca6900c3b6d..73c9f72a12d4c0 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: 2022-09-13 +date: 2022-09-14 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 186450bead6663..597973bf7ee2f8 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackAlerts'] --- import stackAlertsObj from './stack_alerts.devdocs.json'; diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx index b792174229db5e..f7980371f9fb5b 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: 2022-09-13 +date: 2022-09-14 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 7f949fecc09fda..d4f289390f0ef6 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: 2022-09-13 +date: 2022-09-14 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 43bcac0fd2464e..a6f53f88fc967d 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: 2022-09-13 +date: 2022-09-14 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 12a60401eeebe7..1f8de356eb2cf5 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: 2022-09-13 +date: 2022-09-14 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 32e5ab2f192cde..504bf789c1623e 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: 2022-09-13 +date: 2022-09-14 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 b61378c50bbaae..8c7e2dd55ebe77 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence'] --- import threatIntelligenceObj from './threat_intelligence.devdocs.json'; diff --git a/api_docs/timelines.devdocs.json b/api_docs/timelines.devdocs.json index 72a30421386dfc..49bd26f376c08d 100644 --- a/api_docs/timelines.devdocs.json +++ b/api_docs/timelines.devdocs.json @@ -377,7 +377,7 @@ "EsQueryConfig", "; indexPattern: ", "DataViewBase", - "; queries: ", + " | undefined; queries: ", "Query", "[]; filters: ", "Filter", @@ -425,9 +425,8 @@ "label": "indexPattern", "description": [], "signature": [ - "{ fields: ", - "DataViewFieldBase", - "[]; id?: string | undefined; title: string; }" + "DataViewBase", + " | undefined" ], "path": "x-pack/plugins/timelines/public/components/utils/keury/index.ts", "deprecated": false, diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index 3f3b87205d761c..1306817e42aaab 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: 2022-09-13 +date: 2022-09-14 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 208db579bbef08..1769b4f8a2dfcd 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: 2022-09-13 +date: 2022-09-14 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 81216ef5e5c188..cdea7649565a3d 100644 --- a/api_docs/triggers_actions_ui.devdocs.json +++ b/api_docs/triggers_actions_ui.devdocs.json @@ -3480,7 +3480,7 @@ "label": "actionVariables", "description": [], "signature": [ - "AsActionVariables<\"params\"> & Partial>" + "AsActionVariables<\"params\"> & Partial>" ], "path": "x-pack/plugins/triggers_actions_ui/public/types.ts", "deprecated": false, @@ -4590,7 +4590,7 @@ "label": "ActionVariables", "description": [], "signature": [ - "AsActionVariables<\"params\"> & Partial>" + "AsActionVariables<\"params\"> & Partial>" ], "path": "x-pack/plugins/triggers_actions_ui/public/types.ts", "deprecated": false, diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index 855cd38f3c4c1a..8fb46329235b40 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index 35e4aeabada7f2..f5639b18111e4c 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: 2022-09-13 +date: 2022-09-14 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 d7e183c85606d5..aee9a0b2919cc0 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: 2022-09-13 +date: 2022-09-14 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 acc4fe78bbe537..7b8ad7644e5311 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedFieldList'] --- import unifiedFieldListObj from './unified_field_list.devdocs.json'; diff --git a/api_docs/unified_search.devdocs.json b/api_docs/unified_search.devdocs.json index 909ff5f2d26f2c..4d5026322ffbb9 100644 --- a/api_docs/unified_search.devdocs.json +++ b/api_docs/unified_search.devdocs.json @@ -875,6 +875,205 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "unifiedSearch", + "id": "def-public.IUnifiedSearchPluginServices", + "type": "Interface", + "tags": [], + "label": "IUnifiedSearchPluginServices", + "description": [], + "signature": [ + { + "pluginId": "unifiedSearch", + "scope": "public", + "docId": "kibUnifiedSearchPluginApi", + "section": "def-public.IUnifiedSearchPluginServices", + "text": "IUnifiedSearchPluginServices" + }, + " extends Partial<", + { + "pluginId": "core", + "scope": "public", + "docId": "kibCorePluginApi", + "section": "def-public.CoreStart", + "text": "CoreStart" + }, + ">" + ], + "path": "src/plugins/unified_search/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "unifiedSearch", + "id": "def-public.IUnifiedSearchPluginServices.unifiedSearch", + "type": "Object", + "tags": [], + "label": "unifiedSearch", + "description": [], + "signature": [ + "{ autocomplete: { getQuerySuggestions: ", + { + "pluginId": "unifiedSearch", + "scope": "public", + "docId": "kibUnifiedSearchAutocompletePluginApi", + "section": "def-public.QuerySuggestionGetFn", + "text": "QuerySuggestionGetFn" + }, + "; hasQuerySuggestions: (language: string) => boolean; getValueSuggestions: ", + "ValueSuggestionsGetFn", + "; }; }" + ], + "path": "src/plugins/unified_search/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "unifiedSearch", + "id": "def-public.IUnifiedSearchPluginServices.appName", + "type": "string", + "tags": [], + "label": "appName", + "description": [], + "path": "src/plugins/unified_search/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "unifiedSearch", + "id": "def-public.IUnifiedSearchPluginServices.uiSettings", + "type": "Object", + "tags": [], + "label": "uiSettings", + "description": [], + "signature": [ + "IUiSettingsClient" + ], + "path": "src/plugins/unified_search/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "unifiedSearch", + "id": "def-public.IUnifiedSearchPluginServices.savedObjects", + "type": "Object", + "tags": [], + "label": "savedObjects", + "description": [], + "signature": [ + "SavedObjectsStart" + ], + "path": "src/plugins/unified_search/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "unifiedSearch", + "id": "def-public.IUnifiedSearchPluginServices.notifications", + "type": "Object", + "tags": [], + "label": "notifications", + "description": [], + "signature": [ + "NotificationsStart" + ], + "path": "src/plugins/unified_search/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "unifiedSearch", + "id": "def-public.IUnifiedSearchPluginServices.application", + "type": "Object", + "tags": [], + "label": "application", + "description": [], + "signature": [ + "ApplicationStart" + ], + "path": "src/plugins/unified_search/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "unifiedSearch", + "id": "def-public.IUnifiedSearchPluginServices.http", + "type": "Object", + "tags": [], + "label": "http", + "description": [], + "signature": [ + "HttpSetup" + ], + "path": "src/plugins/unified_search/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "unifiedSearch", + "id": "def-public.IUnifiedSearchPluginServices.storage", + "type": "Object", + "tags": [], + "label": "storage", + "description": [], + "signature": [ + { + "pluginId": "kibanaUtils", + "scope": "public", + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.IStorageWrapper", + "text": "IStorageWrapper" + }, + "" + ], + "path": "src/plugins/unified_search/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "unifiedSearch", + "id": "def-public.IUnifiedSearchPluginServices.data", + "type": "Object", + "tags": [], + "label": "data", + "description": [], + "signature": [ + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataPluginApi", + "section": "def-public.DataPublicPluginStart", + "text": "DataPublicPluginStart" + } + ], + "path": "src/plugins/unified_search/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "unifiedSearch", + "id": "def-public.IUnifiedSearchPluginServices.usageCollection", + "type": "Object", + "tags": [], + "label": "usageCollection", + "description": [], + "signature": [ + { + "pluginId": "usageCollection", + "scope": "public", + "docId": "kibUsageCollectionPluginApi", + "section": "def-public.UsageCollectionStart", + "text": "UsageCollectionStart" + }, + " | undefined" + ], + "path": "src/plugins/unified_search/public/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "unifiedSearch", "id": "def-public.QueryStringInputProps", @@ -1481,7 +1680,7 @@ "tags": [], "label": "ui", "description": [ - "\nprewired UI components\n{@link DataPublicPluginStartUi}" + "\nprewired UI components\n{@link UnifiedSearchPublicPluginStartUi}" ], "signature": [ "UnifiedSearchPublicPluginStartUi" diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index 5aec9e4ea7ca7e..eaa5c330c6a37d 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch'] --- import unifiedSearchObj from './unified_search.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Unified Search](https://github.com/orgs/elastic/teams/kibana-app-servic | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 111 | 2 | 85 | 16 | +| 122 | 2 | 96 | 16 | ## Client diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx index acb7f297ddeb1b..7e5d6dae5ddec1 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete'] --- import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Unified Search](https://github.com/orgs/elastic/teams/kibana-app-servic | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 111 | 2 | 85 | 16 | +| 122 | 2 | 96 | 16 | ## Client diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx index ee0673e504768e..d2adfc684fb7c3 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding'] --- import urlForwardingObj from './url_forwarding.devdocs.json'; diff --git a/api_docs/usage_collection.devdocs.json b/api_docs/usage_collection.devdocs.json index 091cf692aebb70..7d580cf4289f82 100644 --- a/api_docs/usage_collection.devdocs.json +++ b/api_docs/usage_collection.devdocs.json @@ -1822,17 +1822,6 @@ "description": [ "\nThe attributes stored in the UsageCounters' SavedObjects" ], - "signature": [ - { - "pluginId": "usageCollection", - "scope": "server", - "docId": "kibUsageCollectionPluginApi", - "section": "def-server.UsageCountersSavedObjectAttributes", - "text": "UsageCountersSavedObjectAttributes" - }, - " extends ", - "SavedObjectAttributes" - ], "path": "src/plugins/usage_collection/server/usage_counters/saved_objects.ts", "deprecated": false, "trackAdoption": false, diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx index a7e7d8c6ae0b67..3f237f46c69411 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: 2022-09-13 +date: 2022-09-14 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 2bfeb944d13cba..530d6840be3bad 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: 2022-09-13 +date: 2022-09-14 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 9887aca5925cee..83eec9c086f771 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: 2022-09-13 +date: 2022-09-14 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 61fcc96d1788ce..51ce7a31dada46 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: 2022-09-13 +date: 2022-09-14 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 8bdd2af90b27bc..e118434acda273 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: 2022-09-13 +date: 2022-09-14 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 93f00ba7ce5bd3..62189f36bf5904 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: 2022-09-13 +date: 2022-09-14 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 00a263cb6047c9..38b7f401826003 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: 2022-09-13 +date: 2022-09-14 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 c5b69594c76e3f..c9c97d09973e7b 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: 2022-09-13 +date: 2022-09-14 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 181e21f0ae85a8..a3c374fdfc827e 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: 2022-09-13 +date: 2022-09-14 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 d34eeb693643ab..a8b4c2fd1134dc 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: 2022-09-13 +date: 2022-09-14 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 e68edfdc210294..511dafbda6f495 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: 2022-09-13 +date: 2022-09-14 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 907fb00eb00545..5cf1e8abda71c7 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: 2022-09-13 +date: 2022-09-14 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 bbe7f2164107a7..bacaf0f14bc405 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: 2022-09-13 +date: 2022-09-14 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; diff --git a/dev_docs/operations/operations_landing.mdx b/dev_docs/operations/operations_landing.mdx index 3a80faa90c501f..88e4be9eb93a30 100644 --- a/dev_docs/operations/operations_landing.mdx +++ b/dev_docs/operations/operations_landing.mdx @@ -71,8 +71,6 @@ layout: landing { pageId: "kibDevDocsOpsDevCliRunner" }, { pageId: "kibDevDocsOpsGetRepoFiles" }, { pageId: "kibDevDocsOpsRepoSourceClassifier" }, - { pageId: "kibDevDocsOpsJsonc" }, - { pageId: "kibDevDocsOpsKibanaManifestParser" }, { pageId: "kibDevDocsOpsKibanaManifestSchema" }, { pageId: "kibDevDocsOpsManagedVscodeConfig" }, { pageId: "kibDevDocsOpsManagedVscodeConfigCli" }, diff --git a/package.json b/package.json index 9947161017b8af..e7e9092fa0f112 100644 --- a/package.json +++ b/package.json @@ -156,6 +156,8 @@ "@kbn/core-application-browser-internal": "link:bazel-bin/packages/core/application/core-application-browser-internal", "@kbn/core-application-browser-mocks": "link:bazel-bin/packages/core/application/core-application-browser-mocks", "@kbn/core-application-common": "link:bazel-bin/packages/core/application/core-application-common", + "@kbn/core-apps-browser-internal": "link:bazel-bin/packages/core/apps/core-apps-browser-internal", + "@kbn/core-apps-browser-mocks": "link:bazel-bin/packages/core/apps/core-apps-browser-mocks", "@kbn/core-base-browser-internal": "link:bazel-bin/packages/core/base/core-base-browser-internal", "@kbn/core-base-browser-mocks": "link:bazel-bin/packages/core/base/core-base-browser-mocks", "@kbn/core-base-common": "link:bazel-bin/packages/core/base/core-base-common", @@ -283,6 +285,9 @@ "@kbn/core-ui-settings-browser-internal": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-browser-internal", "@kbn/core-ui-settings-browser-mocks": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-browser-mocks", "@kbn/core-ui-settings-common": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-common", + "@kbn/core-ui-settings-server": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-server", + "@kbn/core-ui-settings-server-internal": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-server-internal", + "@kbn/core-ui-settings-server-mocks": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-server-mocks", "@kbn/core-usage-data-base-server-internal": "link:bazel-bin/packages/core/usage-data/core-usage-data-base-server-internal", "@kbn/core-usage-data-server": "link:bazel-bin/packages/core/usage-data/core-usage-data-server", "@kbn/core-usage-data-server-internal": "link:bazel-bin/packages/core/usage-data/core-usage-data-server-internal", @@ -650,9 +655,9 @@ "@babel/types": "^7.19.0", "@bazel/ibazel": "^0.16.2", "@bazel/typescript": "4.6.2", - "@cypress/code-coverage": "^3.9.12", + "@cypress/code-coverage": "^3.10.0", "@cypress/snapshot": "^2.1.7", - "@cypress/webpack-preprocessor": "^5.6.0", + "@cypress/webpack-preprocessor": "^5.12.2", "@elastic/eslint-plugin-eui": "0.0.2", "@elastic/github-checks-reporter": "0.0.20b3", "@elastic/makelogs": "^6.0.0", @@ -844,6 +849,8 @@ "@types/kbn__core-application-browser-internal": "link:bazel-bin/packages/core/application/core-application-browser-internal/npm_module_types", "@types/kbn__core-application-browser-mocks": "link:bazel-bin/packages/core/application/core-application-browser-mocks/npm_module_types", "@types/kbn__core-application-common": "link:bazel-bin/packages/core/application/core-application-common/npm_module_types", + "@types/kbn__core-apps-browser-internal": "link:bazel-bin/packages/core/apps/core-apps-browser-internal/npm_module_types", + "@types/kbn__core-apps-browser-mocks": "link:bazel-bin/packages/core/apps/core-apps-browser-mocks/npm_module_types", "@types/kbn__core-base-browser": "link:bazel-bin/packages/core/base/core-base-browser/npm_module_types", "@types/kbn__core-base-browser-internal": "link:bazel-bin/packages/core/base/core-base-browser-internal/npm_module_types", "@types/kbn__core-base-browser-mocks": "link:bazel-bin/packages/core/base/core-base-browser-mocks/npm_module_types", @@ -976,6 +983,9 @@ "@types/kbn__core-ui-settings-browser-internal": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-browser-internal/npm_module_types", "@types/kbn__core-ui-settings-browser-mocks": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-browser-mocks/npm_module_types", "@types/kbn__core-ui-settings-common": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-common/npm_module_types", + "@types/kbn__core-ui-settings-server": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-server/npm_module_types", + "@types/kbn__core-ui-settings-server-internal": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-server-internal/npm_module_types", + "@types/kbn__core-ui-settings-server-mocks": "link:bazel-bin/packages/core/ui-settings/core-ui-settings-server-mocks/npm_module_types", "@types/kbn__core-usage-data-base-server-internal": "link:bazel-bin/packages/core/usage-data/core-usage-data-base-server-internal/npm_module_types", "@types/kbn__core-usage-data-server": "link:bazel-bin/packages/core/usage-data/core-usage-data-server/npm_module_types", "@types/kbn__core-usage-data-server-internal": "link:bazel-bin/packages/core/usage-data/core-usage-data-server-internal/npm_module_types", @@ -1228,14 +1238,14 @@ "cssnano": "^5.1.12", "cssnano-preset-default": "^5.2.12", "csstype": "^3.0.2", - "cypress": "^9.6.1", - "cypress-axe": "^0.14.0", + "cypress": "^10.7.0", + "cypress-axe": "^1.0.0", "cypress-file-upload": "^5.0.8", - "cypress-multi-reporters": "^1.6.0", + "cypress-multi-reporters": "^1.6.1", "cypress-pipe": "^2.0.0", - "cypress-react-selector": "^2.3.17", - "cypress-real-events": "^1.7.0", - "cypress-recurse": "^1.20.0", + "cypress-react-selector": "^3.0.0", + "cypress-real-events": "^1.7.1", + "cypress-recurse": "^1.23.0", "debug": "^2.6.9", "delete-empty": "^2.0.0", "dependency-check": "^4.1.0", diff --git a/packages/BUILD.bazel b/packages/BUILD.bazel index b898faee5fb07e..6f40fc9ae3864f 100644 --- a/packages/BUILD.bazel +++ b/packages/BUILD.bazel @@ -24,6 +24,8 @@ filegroup( "//packages/core/application/core-application-browser-internal:build", "//packages/core/application/core-application-browser-mocks:build", "//packages/core/application/core-application-common:build", + "//packages/core/apps/core-apps-browser-internal:build", + "//packages/core/apps/core-apps-browser-mocks:build", "//packages/core/base/core-base-browser-internal:build", "//packages/core/base/core-base-browser-mocks:build", "//packages/core/base/core-base-common:build", @@ -149,6 +151,9 @@ filegroup( "//packages/core/ui-settings/core-ui-settings-browser-internal:build", "//packages/core/ui-settings/core-ui-settings-browser-mocks:build", "//packages/core/ui-settings/core-ui-settings-common:build", + "//packages/core/ui-settings/core-ui-settings-server:build", + "//packages/core/ui-settings/core-ui-settings-server-internal:build", + "//packages/core/ui-settings/core-ui-settings-server-mocks:build", "//packages/core/usage-data/core-usage-data-base-server-internal:build", "//packages/core/usage-data/core-usage-data-server:build", "//packages/core/usage-data/core-usage-data-server-internal:build", @@ -332,6 +337,8 @@ filegroup( "//packages/core/application/core-application-browser-internal:build_types", "//packages/core/application/core-application-browser-mocks:build_types", "//packages/core/application/core-application-common:build_types", + "//packages/core/apps/core-apps-browser-internal:build_types", + "//packages/core/apps/core-apps-browser-mocks:build_types", "//packages/core/base/core-base-browser-internal:build_types", "//packages/core/base/core-base-browser-mocks:build_types", "//packages/core/base/core-base-common:build_types", @@ -457,6 +464,9 @@ filegroup( "//packages/core/ui-settings/core-ui-settings-browser-internal:build_types", "//packages/core/ui-settings/core-ui-settings-browser-mocks:build_types", "//packages/core/ui-settings/core-ui-settings-common:build_types", + "//packages/core/ui-settings/core-ui-settings-server:build_types", + "//packages/core/ui-settings/core-ui-settings-server-internal:build_types", + "//packages/core/ui-settings/core-ui-settings-server-mocks:build_types", "//packages/core/usage-data/core-usage-data-base-server-internal:build_types", "//packages/core/usage-data/core-usage-data-server:build_types", "//packages/core/usage-data/core-usage-data-server-internal:build_types", diff --git a/packages/core/apps/core-apps-browser-internal/BUILD.bazel b/packages/core/apps/core-apps-browser-internal/BUILD.bazel new file mode 100644 index 00000000000000..4ca5c1a1cf2af1 --- /dev/null +++ b/packages/core/apps/core-apps-browser-internal/BUILD.bazel @@ -0,0 +1,137 @@ +load("@npm//@bazel/typescript:index.bzl", "ts_config") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") +load("//src/dev/bazel:index.bzl", "jsts_transpiler", "pkg_npm", "pkg_npm_types", "ts_project") + +PKG_DIRNAME = "core-apps-browser-internal" +PKG_REQUIRE_NAME = "@kbn/core-apps-browser-internal" + +SOURCE_FILES = glob( + [ + "**/*.ts", + "**/*.tsx", + ], + exclude = [ + "**/*.config.js", + "**/*.mock.*", + "**/*.test.*", + "**/*.stories.*", + "**/__snapshots__/**", + "**/integration_tests/**", + "**/mocks/**", + "**/scripts/**", + "**/storybook/**", + "**/test_fixtures/**", + "**/test_helpers/**", + ], +) + +SRCS = SOURCE_FILES + +filegroup( + name = "srcs", + srcs = SRCS, +) + +NPM_MODULE_EXTRA_FILES = [ + "package.json", +] + +RUNTIME_DEPS = [ + "@npm//react", + "@npm//react-dom", + "@npm//history", + "@npm//@elastic/eui", + "//packages/kbn-i18n", + "//packages/kbn-i18n-react", + "//packages/core/mount-utils/core-mount-utils-browser-internal", +] + +TYPES_DEPS = [ + "@npm//@types/node", + "@npm//@types/jest", + "@npm//@types/react", + "@npm//@types/react-dom", + "@npm//@types/history", + "@npm//@elastic/eui", + "//packages/kbn-i18n:npm_module_types", + "//packages/kbn-i18n-react:npm_module_types", + "//packages/core/base/core-base-browser-internal:npm_module_types", + "//packages/core/injected-metadata/core-injected-metadata-browser-internal:npm_module_types", + "//packages/core/doc-links/core-doc-links-browser:npm_module_types", + "//packages/core/http/core-http-browser:npm_module_types", + "//packages/core/ui-settings/core-ui-settings-browser:npm_module_types", + "//packages/core/notifications/core-notifications-browser:npm_module_types", + "//packages/core/application/core-application-browser:npm_module_types", + "//packages/core/application/core-application-browser-internal:npm_module_types", + "//packages/core/theme/core-theme-browser-internal:npm_module_types", + "//packages/core/mount-utils/core-mount-utils-browser-internal:npm_module_types", + "//packages/core/status/core-status-common-internal:npm_module_types", +] + +jsts_transpiler( + name = "target_node", + srcs = SRCS, + build_pkg_name = package_name(), +) + +jsts_transpiler( + name = "target_web", + srcs = SRCS, + build_pkg_name = package_name(), + web = True, +) + +ts_config( + name = "tsconfig", + src = "tsconfig.json", + deps = [ + "//:tsconfig.base.json", + "//:tsconfig.bazel.json", + ], +) + +ts_project( + name = "tsc_types", + args = ['--pretty'], + srcs = SRCS, + deps = TYPES_DEPS, + declaration = True, + declaration_map = True, + emit_declaration_only = True, + out_dir = "target_types", + tsconfig = ":tsconfig", +) + +js_library( + name = PKG_DIRNAME, + srcs = NPM_MODULE_EXTRA_FILES, + deps = RUNTIME_DEPS + [":target_node", ":target_web"], + package_name = PKG_REQUIRE_NAME, + visibility = ["//visibility:public"], +) + +pkg_npm( + name = "npm_module", + deps = [":" + PKG_DIRNAME], +) + +filegroup( + name = "build", + srcs = [":npm_module"], + visibility = ["//visibility:public"], +) + +pkg_npm_types( + name = "npm_module_types", + srcs = SRCS, + deps = [":tsc_types"], + package_name = PKG_REQUIRE_NAME, + tsconfig = ":tsconfig", + visibility = ["//visibility:public"], +) + +filegroup( + name = "build_types", + srcs = [":npm_module_types"], + visibility = ["//visibility:public"], +) diff --git a/packages/core/apps/core-apps-browser-internal/README.md b/packages/core/apps/core-apps-browser-internal/README.md new file mode 100644 index 00000000000000..8412844a911df4 --- /dev/null +++ b/packages/core/apps/core-apps-browser-internal/README.md @@ -0,0 +1,3 @@ +# @kbn/core-apps-browser-internal + +This package contains the internal types and implementation of Core's `coreApps` service. diff --git a/packages/core/apps/core-apps-browser-internal/index.ts b/packages/core/apps/core-apps-browser-internal/index.ts new file mode 100644 index 00000000000000..35678cd2a19fd4 --- /dev/null +++ b/packages/core/apps/core-apps-browser-internal/index.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { CoreAppsService, URL_MAX_LENGTH } from './src'; +export type { CoreAppsServiceSetupDeps, CoreAppsServiceStartDeps } from './src'; diff --git a/packages/core/apps/core-apps-browser-internal/jest.config.js b/packages/core/apps/core-apps-browser-internal/jest.config.js new file mode 100644 index 00000000000000..80df7f644eab5f --- /dev/null +++ b/packages/core/apps/core-apps-browser-internal/jest.config.js @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../../../..', + roots: ['/packages/core/apps/core-apps-browser-internal'], +}; diff --git a/packages/core/apps/core-apps-browser-internal/kibana.jsonc b/packages/core/apps/core-apps-browser-internal/kibana.jsonc new file mode 100644 index 00000000000000..552de143ce1dec --- /dev/null +++ b/packages/core/apps/core-apps-browser-internal/kibana.jsonc @@ -0,0 +1,7 @@ +{ + "type": "shared-common", + "id": "@kbn/core-apps-browser-internal", + "owner": "@elastic/kibana-core", + "runtimeDeps": [], + "typeDeps": [] +} diff --git a/packages/core/apps/core-apps-browser-internal/package.json b/packages/core/apps/core-apps-browser-internal/package.json new file mode 100644 index 00000000000000..58262f9a7aaeb7 --- /dev/null +++ b/packages/core/apps/core-apps-browser-internal/package.json @@ -0,0 +1,9 @@ +{ + "name": "@kbn/core-apps-browser-internal", + "private": true, + "version": "1.0.0", + "main": "./target_node/index.js", + "browser": "./target_web/index.js", + "author": "Kibana Core", + "license": "SSPL-1.0 OR Elastic License 2.0" +} diff --git a/src/core/public/core_app/core_app.ts b/packages/core/apps/core-apps-browser-internal/src/core_app.ts similarity index 91% rename from src/core/public/core_app/core_app.ts rename to packages/core/apps/core-apps-browser-internal/src/core_app.ts index 7b4fd29011b9bd..e8a61de40bea2e 100644 --- a/src/core/public/core_app/core_app.ts +++ b/packages/core/apps/core-apps-browser-internal/src/core_app.ts @@ -25,14 +25,14 @@ import { } from './errors'; import { renderApp as renderStatusApp } from './status'; -export interface SetupDeps { +export interface CoreAppsServiceSetupDeps { application: InternalApplicationSetup; http: HttpSetup; injectedMetadata: InternalInjectedMetadataSetup; notifications: NotificationsSetup; } -export interface StartDeps { +export interface CoreAppsServiceStartDeps { application: InternalApplicationStart; docLinks: DocLinksStart; http: HttpStart; @@ -40,12 +40,12 @@ export interface StartDeps { uiSettings: IUiSettingsClient; } -export class CoreApp { +export class CoreAppsService { private stopHistoryListening?: UnregisterCallback; constructor(private readonly coreContext: CoreContext) {} - public setup({ application, http, injectedMetadata, notifications }: SetupDeps) { + public setup({ application, http, injectedMetadata, notifications }: CoreAppsServiceSetupDeps) { application.register(this.coreContext.coreId, { id: 'error', title: 'App Error', @@ -73,7 +73,13 @@ export class CoreApp { }); } - public start({ application, docLinks, http, notifications, uiSettings }: StartDeps) { + public start({ + application, + docLinks, + http, + notifications, + uiSettings, + }: CoreAppsServiceStartDeps) { if (!application.history) { return; } diff --git a/src/core/public/core_app/errors/error_application.test.ts b/packages/core/apps/core-apps-browser-internal/src/errors/error_application.test.ts similarity index 100% rename from src/core/public/core_app/errors/error_application.test.ts rename to packages/core/apps/core-apps-browser-internal/src/errors/error_application.test.ts diff --git a/src/core/public/core_app/errors/error_application.tsx b/packages/core/apps/core-apps-browser-internal/src/errors/error_application.tsx similarity index 100% rename from src/core/public/core_app/errors/error_application.tsx rename to packages/core/apps/core-apps-browser-internal/src/errors/error_application.tsx diff --git a/src/core/public/core_app/errors/index.ts b/packages/core/apps/core-apps-browser-internal/src/errors/index.ts similarity index 100% rename from src/core/public/core_app/errors/index.ts rename to packages/core/apps/core-apps-browser-internal/src/errors/index.ts diff --git a/src/core/public/core_app/errors/public_base_url.test.tsx b/packages/core/apps/core-apps-browser-internal/src/errors/public_base_url.test.tsx similarity index 100% rename from src/core/public/core_app/errors/public_base_url.test.tsx rename to packages/core/apps/core-apps-browser-internal/src/errors/public_base_url.test.tsx diff --git a/src/core/public/core_app/errors/public_base_url.tsx b/packages/core/apps/core-apps-browser-internal/src/errors/public_base_url.tsx similarity index 95% rename from src/core/public/core_app/errors/public_base_url.tsx rename to packages/core/apps/core-apps-browser-internal/src/errors/public_base_url.tsx index f86903f3c185fe..ec5f45930ce228 100644 --- a/src/core/public/core_app/errors/public_base_url.tsx +++ b/packages/core/apps/core-apps-browser-internal/src/errors/public_base_url.tsx @@ -12,8 +12,9 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import type { DocLinksStart } from '@kbn/core-doc-links-browser'; +import type { HttpStart } from '@kbn/core-http-browser'; +import type { NotificationsStart } from '@kbn/core-notifications-browser'; import { mountReactNode } from '@kbn/core-mount-utils-browser-internal'; -import type { HttpStart, NotificationsStart } from '../..'; /** Only exported for tests */ export const MISSING_CONFIG_STORAGE_KEY = `core.warnings.publicBaseUrlMissingDismissed`; diff --git a/src/core/public/core_app/errors/url_overflow.test.ts b/packages/core/apps/core-apps-browser-internal/src/errors/url_overflow.test.ts similarity index 100% rename from src/core/public/core_app/errors/url_overflow.test.ts rename to packages/core/apps/core-apps-browser-internal/src/errors/url_overflow.test.ts diff --git a/src/core/public/core_app/errors/url_overflow.tsx b/packages/core/apps/core-apps-browser-internal/src/errors/url_overflow.tsx similarity index 100% rename from src/core/public/core_app/errors/url_overflow.tsx rename to packages/core/apps/core-apps-browser-internal/src/errors/url_overflow.tsx diff --git a/src/core/public/core_app/errors/url_overflow_ui.tsx b/packages/core/apps/core-apps-browser-internal/src/errors/url_overflow_ui.tsx similarity index 100% rename from src/core/public/core_app/errors/url_overflow_ui.tsx rename to packages/core/apps/core-apps-browser-internal/src/errors/url_overflow_ui.tsx diff --git a/packages/core/apps/core-apps-browser-internal/src/index.ts b/packages/core/apps/core-apps-browser-internal/src/index.ts new file mode 100644 index 00000000000000..d0bb30144b7dbc --- /dev/null +++ b/packages/core/apps/core-apps-browser-internal/src/index.ts @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { CoreAppsService } from './core_app'; +export { URL_MAX_LENGTH } from './errors'; +export type { CoreAppsServiceSetupDeps, CoreAppsServiceStartDeps } from './core_app'; diff --git a/src/core/public/core_app/status/components/__snapshots__/metric_tiles.test.tsx.snap b/packages/core/apps/core-apps-browser-internal/src/status/components/__snapshots__/metric_tiles.test.tsx.snap similarity index 100% rename from src/core/public/core_app/status/components/__snapshots__/metric_tiles.test.tsx.snap rename to packages/core/apps/core-apps-browser-internal/src/status/components/__snapshots__/metric_tiles.test.tsx.snap diff --git a/src/core/public/core_app/status/components/__snapshots__/server_status.test.tsx.snap b/packages/core/apps/core-apps-browser-internal/src/status/components/__snapshots__/server_status.test.tsx.snap similarity index 100% rename from src/core/public/core_app/status/components/__snapshots__/server_status.test.tsx.snap rename to packages/core/apps/core-apps-browser-internal/src/status/components/__snapshots__/server_status.test.tsx.snap diff --git a/src/core/public/core_app/status/components/__snapshots__/status_table.test.tsx.snap b/packages/core/apps/core-apps-browser-internal/src/status/components/__snapshots__/status_table.test.tsx.snap similarity index 100% rename from src/core/public/core_app/status/components/__snapshots__/status_table.test.tsx.snap rename to packages/core/apps/core-apps-browser-internal/src/status/components/__snapshots__/status_table.test.tsx.snap diff --git a/src/core/public/core_app/status/components/index.ts b/packages/core/apps/core-apps-browser-internal/src/status/components/index.ts similarity index 100% rename from src/core/public/core_app/status/components/index.ts rename to packages/core/apps/core-apps-browser-internal/src/status/components/index.ts diff --git a/src/core/public/core_app/status/components/metric_tiles.test.tsx b/packages/core/apps/core-apps-browser-internal/src/status/components/metric_tiles.test.tsx similarity index 100% rename from src/core/public/core_app/status/components/metric_tiles.test.tsx rename to packages/core/apps/core-apps-browser-internal/src/status/components/metric_tiles.test.tsx diff --git a/src/core/public/core_app/status/components/metric_tiles.tsx b/packages/core/apps/core-apps-browser-internal/src/status/components/metric_tiles.tsx similarity index 100% rename from src/core/public/core_app/status/components/metric_tiles.tsx rename to packages/core/apps/core-apps-browser-internal/src/status/components/metric_tiles.tsx diff --git a/src/core/public/core_app/status/components/server_status.test.tsx b/packages/core/apps/core-apps-browser-internal/src/status/components/server_status.test.tsx similarity index 100% rename from src/core/public/core_app/status/components/server_status.test.tsx rename to packages/core/apps/core-apps-browser-internal/src/status/components/server_status.test.tsx diff --git a/src/core/public/core_app/status/components/server_status.tsx b/packages/core/apps/core-apps-browser-internal/src/status/components/server_status.tsx similarity index 100% rename from src/core/public/core_app/status/components/server_status.tsx rename to packages/core/apps/core-apps-browser-internal/src/status/components/server_status.tsx diff --git a/src/core/public/core_app/status/components/status_badge.test.tsx b/packages/core/apps/core-apps-browser-internal/src/status/components/status_badge.test.tsx similarity index 100% rename from src/core/public/core_app/status/components/status_badge.test.tsx rename to packages/core/apps/core-apps-browser-internal/src/status/components/status_badge.test.tsx diff --git a/src/core/public/core_app/status/components/status_badge.tsx b/packages/core/apps/core-apps-browser-internal/src/status/components/status_badge.tsx similarity index 100% rename from src/core/public/core_app/status/components/status_badge.tsx rename to packages/core/apps/core-apps-browser-internal/src/status/components/status_badge.tsx diff --git a/src/core/public/core_app/status/components/status_expanded_row.tsx b/packages/core/apps/core-apps-browser-internal/src/status/components/status_expanded_row.tsx similarity index 100% rename from src/core/public/core_app/status/components/status_expanded_row.tsx rename to packages/core/apps/core-apps-browser-internal/src/status/components/status_expanded_row.tsx diff --git a/src/core/public/core_app/status/components/status_section.tsx b/packages/core/apps/core-apps-browser-internal/src/status/components/status_section.tsx similarity index 100% rename from src/core/public/core_app/status/components/status_section.tsx rename to packages/core/apps/core-apps-browser-internal/src/status/components/status_section.tsx diff --git a/src/core/public/core_app/status/components/status_table.test.tsx b/packages/core/apps/core-apps-browser-internal/src/status/components/status_table.test.tsx similarity index 100% rename from src/core/public/core_app/status/components/status_table.test.tsx rename to packages/core/apps/core-apps-browser-internal/src/status/components/status_table.test.tsx diff --git a/src/core/public/core_app/status/components/status_table.tsx b/packages/core/apps/core-apps-browser-internal/src/status/components/status_table.tsx similarity index 100% rename from src/core/public/core_app/status/components/status_table.tsx rename to packages/core/apps/core-apps-browser-internal/src/status/components/status_table.tsx diff --git a/src/core/public/core_app/status/components/version_header.test.tsx b/packages/core/apps/core-apps-browser-internal/src/status/components/version_header.test.tsx similarity index 100% rename from src/core/public/core_app/status/components/version_header.test.tsx rename to packages/core/apps/core-apps-browser-internal/src/status/components/version_header.test.tsx diff --git a/src/core/public/core_app/status/components/version_header.tsx b/packages/core/apps/core-apps-browser-internal/src/status/components/version_header.tsx similarity index 100% rename from src/core/public/core_app/status/components/version_header.tsx rename to packages/core/apps/core-apps-browser-internal/src/status/components/version_header.tsx diff --git a/src/core/public/core_app/status/index.ts b/packages/core/apps/core-apps-browser-internal/src/status/index.ts similarity index 100% rename from src/core/public/core_app/status/index.ts rename to packages/core/apps/core-apps-browser-internal/src/status/index.ts diff --git a/src/core/public/core_app/status/lib/format_number.test.ts b/packages/core/apps/core-apps-browser-internal/src/status/lib/format_number.test.ts similarity index 100% rename from src/core/public/core_app/status/lib/format_number.test.ts rename to packages/core/apps/core-apps-browser-internal/src/status/lib/format_number.test.ts diff --git a/src/core/public/core_app/status/lib/format_number.ts b/packages/core/apps/core-apps-browser-internal/src/status/lib/format_number.ts similarity index 100% rename from src/core/public/core_app/status/lib/format_number.ts rename to packages/core/apps/core-apps-browser-internal/src/status/lib/format_number.ts diff --git a/src/core/public/core_app/status/lib/index.ts b/packages/core/apps/core-apps-browser-internal/src/status/lib/index.ts similarity index 100% rename from src/core/public/core_app/status/lib/index.ts rename to packages/core/apps/core-apps-browser-internal/src/status/lib/index.ts diff --git a/src/core/public/core_app/status/lib/load_status.test.ts b/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.test.ts similarity index 100% rename from src/core/public/core_app/status/lib/load_status.test.ts rename to packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.test.ts diff --git a/src/core/public/core_app/status/lib/load_status.ts b/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts similarity index 99% rename from src/core/public/core_app/status/lib/load_status.ts rename to packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts index 5a4b2b5907ea2c..c3ebd9923e2a81 100644 --- a/src/core/public/core_app/status/lib/load_status.ts +++ b/packages/core/apps/core-apps-browser-internal/src/status/lib/load_status.ts @@ -14,7 +14,7 @@ import type { StatusResponse, StatusInfoServiceStatus as ServiceStatus, } from '@kbn/core-status-common-internal'; -import type { DataType } from '.'; +import type { DataType } from './format_number'; interface MetricMeta { title: string; diff --git a/src/core/public/core_app/status/lib/status_level.test.ts b/packages/core/apps/core-apps-browser-internal/src/status/lib/status_level.test.ts similarity index 100% rename from src/core/public/core_app/status/lib/status_level.test.ts rename to packages/core/apps/core-apps-browser-internal/src/status/lib/status_level.test.ts diff --git a/src/core/public/core_app/status/lib/status_level.ts b/packages/core/apps/core-apps-browser-internal/src/status/lib/status_level.ts similarity index 100% rename from src/core/public/core_app/status/lib/status_level.ts rename to packages/core/apps/core-apps-browser-internal/src/status/lib/status_level.ts diff --git a/src/core/public/core_app/status/render_app.tsx b/packages/core/apps/core-apps-browser-internal/src/status/render_app.tsx similarity index 100% rename from src/core/public/core_app/status/render_app.tsx rename to packages/core/apps/core-apps-browser-internal/src/status/render_app.tsx diff --git a/src/core/public/core_app/status/status_app.tsx b/packages/core/apps/core-apps-browser-internal/src/status/status_app.tsx similarity index 100% rename from src/core/public/core_app/status/status_app.tsx rename to packages/core/apps/core-apps-browser-internal/src/status/status_app.tsx diff --git a/packages/core/apps/core-apps-browser-internal/tsconfig.json b/packages/core/apps/core-apps-browser-internal/tsconfig.json new file mode 100644 index 00000000000000..2249e2ee937617 --- /dev/null +++ b/packages/core/apps/core-apps-browser-internal/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "../../../../tsconfig.bazel.json", + "compilerOptions": { + "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": true, + "outDir": "target_types", + "stripInternal": false, + "types": [ + "jest", + "node", + "react" + ] + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ] +} diff --git a/packages/core/apps/core-apps-browser-mocks/BUILD.bazel b/packages/core/apps/core-apps-browser-mocks/BUILD.bazel new file mode 100644 index 00000000000000..42c29b72766b94 --- /dev/null +++ b/packages/core/apps/core-apps-browser-mocks/BUILD.bazel @@ -0,0 +1,115 @@ +load("@npm//@bazel/typescript:index.bzl", "ts_config") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") +load("//src/dev/bazel:index.bzl", "jsts_transpiler", "pkg_npm", "pkg_npm_types", "ts_project") + +PKG_DIRNAME = "core-apps-browser-mocks" +PKG_REQUIRE_NAME = "@kbn/core-apps-browser-mocks" + +SOURCE_FILES = glob( + [ + "**/*.ts", + "**/*.tsx", + ], + exclude = [ + "**/*.config.js", + "**/*.test.*", + "**/*.stories.*", + "**/__snapshots__/**", + "**/integration_tests/**", + "**/mocks/**", + "**/scripts/**", + "**/storybook/**", + "**/test_fixtures/**", + "**/test_helpers/**", + ], +) + +SRCS = SOURCE_FILES + +filegroup( + name = "srcs", + srcs = SRCS, +) + +NPM_MODULE_EXTRA_FILES = [ + "package.json", +] + +RUNTIME_DEPS = [ + "@npm//react" +] + +TYPES_DEPS = [ + "@npm//@types/node", + "@npm//@types/jest", + "//packages/kbn-utility-types:npm_module_types", + "//packages/core/apps/core-apps-browser-internal:npm_module_types", +] + +jsts_transpiler( + name = "target_node", + srcs = SRCS, + build_pkg_name = package_name(), +) + +jsts_transpiler( + name = "target_web", + srcs = SRCS, + build_pkg_name = package_name(), + web = True, +) + +ts_config( + name = "tsconfig", + src = "tsconfig.json", + deps = [ + "//:tsconfig.base.json", + "//:tsconfig.bazel.json", + ], +) + +ts_project( + name = "tsc_types", + args = ['--pretty'], + srcs = SRCS, + deps = TYPES_DEPS, + declaration = True, + declaration_map = True, + emit_declaration_only = True, + out_dir = "target_types", + tsconfig = ":tsconfig", +) + +js_library( + name = PKG_DIRNAME, + srcs = NPM_MODULE_EXTRA_FILES, + deps = RUNTIME_DEPS + [":target_node", ":target_web"], + package_name = PKG_REQUIRE_NAME, + visibility = ["//visibility:public"], +) + +pkg_npm( + name = "npm_module", + deps = [":" + PKG_DIRNAME], +) + +filegroup( + name = "build", + srcs = [":npm_module"], + visibility = ["//visibility:public"], +) + +pkg_npm_types( + name = "npm_module_types", + srcs = SRCS, + deps = [":tsc_types"], + package_name = PKG_REQUIRE_NAME, + tsconfig = ":tsconfig", + visibility = ["//visibility:public"], +) + +filegroup( + name = "build_types", + srcs = [":npm_module_types"], + visibility = ["//visibility:public"], +) diff --git a/packages/core/apps/core-apps-browser-mocks/README.md b/packages/core/apps/core-apps-browser-mocks/README.md new file mode 100644 index 00000000000000..5ae368e814c435 --- /dev/null +++ b/packages/core/apps/core-apps-browser-mocks/README.md @@ -0,0 +1,4 @@ +# @kbn/core-apps-browser-mocks + +This package contains mocks for Core's browser-side `coreApps` service. +- `coreAppsMock` diff --git a/src/core/public/core_app/index.ts b/packages/core/apps/core-apps-browser-mocks/index.ts similarity index 81% rename from src/core/public/core_app/index.ts rename to packages/core/apps/core-apps-browser-mocks/index.ts index 594f9975d29fb0..68289764ac3e8a 100644 --- a/src/core/public/core_app/index.ts +++ b/packages/core/apps/core-apps-browser-mocks/index.ts @@ -6,5 +6,4 @@ * Side Public License, v 1. */ -export { CoreApp } from './core_app'; -export { URL_MAX_LENGTH } from './errors'; +export { coreAppsMock } from './src'; diff --git a/packages/core/apps/core-apps-browser-mocks/jest.config.js b/packages/core/apps/core-apps-browser-mocks/jest.config.js new file mode 100644 index 00000000000000..f797f04d42061c --- /dev/null +++ b/packages/core/apps/core-apps-browser-mocks/jest.config.js @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../../../..', + roots: ['/packages/core/apps/core-apps-browser-mocks'], +}; diff --git a/packages/core/apps/core-apps-browser-mocks/kibana.jsonc b/packages/core/apps/core-apps-browser-mocks/kibana.jsonc new file mode 100644 index 00000000000000..074993f2bd62b1 --- /dev/null +++ b/packages/core/apps/core-apps-browser-mocks/kibana.jsonc @@ -0,0 +1,7 @@ +{ + "type": "shared-common", + "id": "@kbn/core-apps-browser-mocks", + "owner": "@elastic/kibana-core", + "runtimeDeps": [], + "typeDeps": [] +} diff --git a/packages/core/apps/core-apps-browser-mocks/package.json b/packages/core/apps/core-apps-browser-mocks/package.json new file mode 100644 index 00000000000000..486f6445a8b248 --- /dev/null +++ b/packages/core/apps/core-apps-browser-mocks/package.json @@ -0,0 +1,9 @@ +{ + "name": "@kbn/core-apps-browser-mocks", + "private": true, + "version": "1.0.0", + "main": "./target_node/index.js", + "browser": "./target_web/index.js", + "author": "Kibana Core", + "license": "SSPL-1.0 OR Elastic License 2.0" +} diff --git a/src/core/public/core_app/core_app.mock.ts b/packages/core/apps/core-apps-browser-mocks/src/core_app.mock.ts similarity index 77% rename from src/core/public/core_app/core_app.mock.ts rename to packages/core/apps/core-apps-browser-mocks/src/core_app.mock.ts index 04a4eefa0d25f3..fb5a3b54ad5916 100644 --- a/src/core/public/core_app/core_app.mock.ts +++ b/packages/core/apps/core-apps-browser-mocks/src/core_app.mock.ts @@ -7,15 +7,16 @@ */ import type { PublicMethodsOf } from '@kbn/utility-types'; -import { CoreApp } from './core_app'; +import type { CoreAppsService } from '@kbn/core-apps-browser-internal'; + +type CoreAppContract = PublicMethodsOf; -type CoreAppContract = PublicMethodsOf; const createMock = (): jest.Mocked => ({ setup: jest.fn(), start: jest.fn(), stop: jest.fn(), }); -export const coreAppMock = { +export const coreAppsMock = { create: createMock, }; diff --git a/packages/core/apps/core-apps-browser-mocks/src/index.ts b/packages/core/apps/core-apps-browser-mocks/src/index.ts new file mode 100644 index 00000000000000..7afedc3d90fcf2 --- /dev/null +++ b/packages/core/apps/core-apps-browser-mocks/src/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { coreAppsMock } from './core_app.mock'; diff --git a/packages/core/apps/core-apps-browser-mocks/tsconfig.json b/packages/core/apps/core-apps-browser-mocks/tsconfig.json new file mode 100644 index 00000000000000..26b4c7aca3a676 --- /dev/null +++ b/packages/core/apps/core-apps-browser-mocks/tsconfig.json @@ -0,0 +1,18 @@ +{ + "extends": "../../../../tsconfig.bazel.json", + "compilerOptions": { + "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": true, + "outDir": "target_types", + "stripInternal": false, + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ] +} diff --git a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/index.ts b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/index.ts index 819f2b03815508..158af330fcb73f 100644 --- a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/index.ts +++ b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/index.ts @@ -9,6 +9,7 @@ export { ScopedClusterClient } from './src/scoped_cluster_client'; export { ClusterClient } from './src/cluster_client'; export { configureClient } from './src/configure_client'; +export { AgentManager } from './src/agent_manager'; export { getRequestDebugMeta, getErrorMessage } from './src/log_query_and_deprecation'; export { PRODUCT_RESPONSE_HEADER, diff --git a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/agent_manager.test.ts b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/agent_manager.test.ts new file mode 100644 index 00000000000000..b8b218db3d8fd8 --- /dev/null +++ b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/agent_manager.test.ts @@ -0,0 +1,125 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { AgentManager } from './agent_manager'; +import { Agent as HttpAgent } from 'http'; +import { Agent as HttpsAgent } from 'https'; + +jest.mock('http'); +jest.mock('https'); + +const HttpAgentMock = HttpAgent as jest.Mock; +const HttpsAgentMock = HttpsAgent as jest.Mock; + +describe('AgentManager', () => { + afterEach(() => { + HttpAgentMock.mockClear(); + HttpsAgentMock.mockClear(); + }); + + describe('#getAgentFactory()', () => { + it('provides factories which are different at each call', () => { + const agentManager = new AgentManager(); + const agentFactory1 = agentManager.getAgentFactory(); + const agentFactory2 = agentManager.getAgentFactory(); + expect(agentFactory1).not.toEqual(agentFactory2); + }); + + describe('one agent factory', () => { + it('provides instances of the http and https Agent classes', () => { + const mockedHttpAgent = new HttpAgent(); + HttpAgentMock.mockImplementationOnce(() => mockedHttpAgent); + const mockedHttpsAgent = new HttpsAgent(); + HttpsAgentMock.mockImplementationOnce(() => mockedHttpsAgent); + const agentManager = new AgentManager(); + const agentFactory = agentManager.getAgentFactory(); + const httpAgent = agentFactory({ url: new URL('http://elastic-node-1:9200') }); + const httpsAgent = agentFactory({ url: new URL('https://elastic-node-1:9200') }); + expect(httpAgent).toEqual(mockedHttpAgent); + expect(httpsAgent).toEqual(mockedHttpsAgent); + }); + + it('provides Agents with a valid default configuration', () => { + const agentManager = new AgentManager(); + const agentFactory = agentManager.getAgentFactory(); + agentFactory({ url: new URL('http://elastic-node-1:9200') }); + expect(HttpAgent).toBeCalledTimes(1); + expect(HttpAgent).toBeCalledWith({ + keepAlive: true, + keepAliveMsecs: 50000, + maxFreeSockets: 256, + maxSockets: 256, + scheduling: 'lifo', + }); + }); + + it('takes into account the provided configurations', () => { + const agentManager = new AgentManager({ maxFreeSockets: 32, maxSockets: 2048 }); + const agentFactory = agentManager.getAgentFactory({ + maxSockets: 1024, + scheduling: 'fifo', + }); + agentFactory({ url: new URL('http://elastic-node-1:9200') }); + expect(HttpAgent).toBeCalledTimes(1); + expect(HttpAgent).toBeCalledWith({ + keepAlive: true, + keepAliveMsecs: 50000, + maxFreeSockets: 32, + maxSockets: 1024, + scheduling: 'fifo', + }); + }); + + it('provides Agents that match the URLs protocol', () => { + const agentManager = new AgentManager(); + const agentFactory = agentManager.getAgentFactory(); + agentFactory({ url: new URL('http://elastic-node-1:9200') }); + expect(HttpAgent).toHaveBeenCalledTimes(1); + expect(HttpsAgent).toHaveBeenCalledTimes(0); + agentFactory({ url: new URL('https://elastic-node-3:9200') }); + expect(HttpAgent).toHaveBeenCalledTimes(1); + expect(HttpsAgent).toHaveBeenCalledTimes(1); + }); + + it('provides the same Agent iif URLs use the same protocol', () => { + const agentManager = new AgentManager(); + const agentFactory = agentManager.getAgentFactory(); + const agent1 = agentFactory({ url: new URL('http://elastic-node-1:9200') }); + const agent2 = agentFactory({ url: new URL('http://elastic-node-2:9200') }); + const agent3 = agentFactory({ url: new URL('https://elastic-node-3:9200') }); + const agent4 = agentFactory({ url: new URL('https://elastic-node-4:9200') }); + + expect(agent1).toEqual(agent2); + expect(agent1).not.toEqual(agent3); + expect(agent3).toEqual(agent4); + }); + + it('dereferences an agent instance when the agent is closed', () => { + const agentManager = new AgentManager(); + const agentFactory = agentManager.getAgentFactory(); + const agent = agentFactory({ url: new URL('http://elastic-node-1:9200') }); + // eslint-disable-next-line dot-notation + expect(agentManager['httpStore'].has(agent)).toEqual(true); + agent.destroy(); + // eslint-disable-next-line dot-notation + expect(agentManager['httpStore'].has(agent)).toEqual(false); + }); + }); + + describe('two agent factories', () => { + it('never provide the same Agent instance even if they use the same type', () => { + const agentManager = new AgentManager(); + const agentFactory1 = agentManager.getAgentFactory(); + const agentFactory2 = agentManager.getAgentFactory(); + const agent1 = agentFactory1({ url: new URL('http://elastic-node-1:9200') }); + const agent2 = agentFactory2({ url: new URL('http://elastic-node-1:9200') }); + expect(agent1).not.toEqual(agent2); + }); + }); + }); +}); diff --git a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/agent_manager.ts b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/agent_manager.ts new file mode 100644 index 00000000000000..237f6964d975b8 --- /dev/null +++ b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/agent_manager.ts @@ -0,0 +1,89 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { Agent as HttpAgent } from 'http'; +import { Agent as HttpsAgent } from 'https'; +import { ConnectionOptions, HttpAgentOptions } from '@elastic/elasticsearch'; + +const HTTPS = 'https:'; +const DEFAULT_CONFIG: HttpAgentOptions = { + keepAlive: true, + keepAliveMsecs: 50000, + maxSockets: 256, + maxFreeSockets: 256, + scheduling: 'lifo', +}; + +export type NetworkAgent = HttpAgent | HttpsAgent; +export type AgentFactory = (connectionOpts: ConnectionOptions) => NetworkAgent; + +/** + * Allows obtaining Agent factories, which can then be fed into elasticsearch-js's Client class. + * Ideally, we should obtain one Agent factory for each ES Client class. + * This allows using the same Agent across all the Pools and Connections of the Client (one per ES node). + * + * Agent instances are stored internally to allow collecting metrics (nbr of active/idle connections to ES). + * + * Using the same Agent factory across multiple ES Client instances is strongly discouraged, cause ES Client + * exposes methods that can modify the underlying pools, effectively impacting the connections of other Clients. + * @internal + **/ +export class AgentManager { + // Stores Https Agent instances + private httpsStore: Set; + // Stores Http Agent instances + private httpStore: Set; + + constructor(private agentOptions: HttpAgentOptions = DEFAULT_CONFIG) { + this.httpsStore = new Set(); + this.httpStore = new Set(); + } + + public getAgentFactory(agentOptions?: HttpAgentOptions): AgentFactory { + // a given agent factory always provides the same Agent instances (for the same protocol) + // we keep references to the instances at factory level, to be able to reuse them + let httpAgent: HttpAgent; + let httpsAgent: HttpsAgent; + + return (connectionOpts: ConnectionOptions): NetworkAgent => { + if (connectionOpts.url.protocol === HTTPS) { + if (!httpsAgent) { + const config = Object.assign( + {}, + DEFAULT_CONFIG, + this.agentOptions, + agentOptions, + connectionOpts.tls + ); + httpsAgent = new HttpsAgent(config); + this.httpsStore.add(httpsAgent); + dereferenceOnDestroy(this.httpsStore, httpsAgent); + } + + return httpsAgent; + } + + if (!httpAgent) { + const config = Object.assign({}, DEFAULT_CONFIG, this.agentOptions, agentOptions); + httpAgent = new HttpAgent(config); + this.httpStore.add(httpAgent); + dereferenceOnDestroy(this.httpStore, httpAgent); + } + + return httpAgent; + }; + } +} + +const dereferenceOnDestroy = (protocolStore: Set, agent: NetworkAgent) => { + const doDestroy = agent.destroy.bind(agent); + agent.destroy = () => { + protocolStore.delete(agent); + doDestroy(); + }; +}; diff --git a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/client_config.ts b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/client_config.ts index 9d380fcbaa4557..f72a43abfd310c 100644 --- a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/client_config.ts +++ b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/client_config.ts @@ -9,10 +9,12 @@ import { ConnectionOptions as TlsConnectionOptions } from 'tls'; import { URL } from 'url'; import { Duration } from 'moment'; -import type { ClientOptions } from '@elastic/elasticsearch/lib/client'; +import type { ClientOptions, HttpAgentOptions } from '@elastic/elasticsearch'; import type { ElasticsearchClientConfig } from '@kbn/core-elasticsearch-server'; import { DEFAULT_HEADERS } from './headers'; +export type ParsedClientOptions = Omit & { agent: HttpAgentOptions }; + /** * Parse the client options from given client config and `scoped` flag. * @@ -23,8 +25,8 @@ import { DEFAULT_HEADERS } from './headers'; export function parseClientOptions( config: ElasticsearchClientConfig, scoped: boolean -): ClientOptions { - const clientOptions: ClientOptions = { +): ParsedClientOptions { + const clientOptions: ParsedClientOptions = { sniffOnStart: config.sniffOnStart, sniffOnConnectionFault: config.sniffOnConnectionFault, headers: { diff --git a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/cluster_client.test.ts b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/cluster_client.test.ts index 3b2e6f82fe40dd..895266126ebcb5 100644 --- a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/cluster_client.test.ts +++ b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/cluster_client.test.ts @@ -17,6 +17,7 @@ import { httpServerMock, httpServiceMock } from '@kbn/core-http-server-mocks'; import type { ElasticsearchClientConfig } from '@kbn/core-elasticsearch-server'; import { ClusterClient } from './cluster_client'; import { DEFAULT_HEADERS } from './headers'; +import { AgentManager } from './agent_manager'; const createConfig = ( parts: Partial = {} @@ -42,6 +43,7 @@ describe('ClusterClient', () => { let authHeaders: ReturnType; let internalClient: jest.Mocked; let scopedClient: jest.Mocked; + let agentManager: AgentManager; const mockTransport = { mockTransport: true }; @@ -49,6 +51,7 @@ describe('ClusterClient', () => { logger = loggingSystemMock.createLogger(); internalClient = createClient(); scopedClient = createClient(); + agentManager = new AgentManager(); authHeaders = httpServiceMock.createAuthHeaderStorage(); authHeaders.get.mockImplementation(() => ({ @@ -78,16 +81,19 @@ describe('ClusterClient', () => { authHeaders, type: 'custom-type', getExecutionContext: getExecutionContextMock, + agentManager, }); expect(configureClientMock).toHaveBeenCalledTimes(2); expect(configureClientMock).toHaveBeenCalledWith(config, { logger, + agentManager, type: 'custom-type', getExecutionContext: getExecutionContextMock, }); expect(configureClientMock).toHaveBeenCalledWith(config, { logger, + agentManager, type: 'custom-type', getExecutionContext: getExecutionContextMock, scoped: true, @@ -101,6 +107,7 @@ describe('ClusterClient', () => { logger, type: 'custom-type', authHeaders, + agentManager, }); expect(clusterClient.asInternalUser).toBe(internalClient); @@ -114,6 +121,7 @@ describe('ClusterClient', () => { logger, type: 'custom-type', authHeaders, + agentManager, }); const request = httpServerMock.createKibanaRequest(); @@ -139,6 +147,7 @@ describe('ClusterClient', () => { authHeaders, getExecutionContext, getUnauthorizedErrorHandler, + agentManager, }); const request = httpServerMock.createKibanaRequest(); @@ -161,6 +170,7 @@ describe('ClusterClient', () => { authHeaders, getExecutionContext, getUnauthorizedErrorHandler, + agentManager, }); const request = httpServerMock.createKibanaRequest(); @@ -192,6 +202,7 @@ describe('ClusterClient', () => { logger, type: 'custom-type', authHeaders, + agentManager, }); const request = httpServerMock.createKibanaRequest(); @@ -210,7 +221,13 @@ describe('ClusterClient', () => { }); authHeaders.get.mockReturnValue({}); - const clusterClient = new ClusterClient({ config, logger, type: 'custom-type', authHeaders }); + const clusterClient = new ClusterClient({ + config, + logger, + type: 'custom-type', + authHeaders, + agentManager, + }); const request = httpServerMock.createKibanaRequest({ headers: { foo: 'bar', @@ -237,7 +254,13 @@ describe('ClusterClient', () => { other: 'yep', }); - const clusterClient = new ClusterClient({ config, logger, type: 'custom-type', authHeaders }); + const clusterClient = new ClusterClient({ + config, + logger, + type: 'custom-type', + authHeaders, + agentManager, + }); const request = httpServerMock.createKibanaRequest({}); clusterClient.asScoped(request); @@ -264,7 +287,13 @@ describe('ClusterClient', () => { other: 'yep', }); - const clusterClient = new ClusterClient({ config, logger, type: 'custom-type', authHeaders }); + const clusterClient = new ClusterClient({ + config, + logger, + type: 'custom-type', + authHeaders, + agentManager, + }); const request = httpServerMock.createKibanaRequest({ headers: { authorization: 'override', @@ -296,7 +325,13 @@ describe('ClusterClient', () => { }); authHeaders.get.mockReturnValue({}); - const clusterClient = new ClusterClient({ config, logger, type: 'custom-type', authHeaders }); + const clusterClient = new ClusterClient({ + config, + logger, + type: 'custom-type', + authHeaders, + agentManager, + }); const request = httpServerMock.createKibanaRequest({}); clusterClient.asScoped(request); @@ -318,7 +353,13 @@ describe('ClusterClient', () => { const config = createConfig(); authHeaders.get.mockReturnValue({}); - const clusterClient = new ClusterClient({ config, logger, type: 'custom-type', authHeaders }); + const clusterClient = new ClusterClient({ + config, + logger, + type: 'custom-type', + authHeaders, + agentManager, + }); const request = httpServerMock.createKibanaRequest({ kibanaRequestState: { requestId: 'my-fake-id', requestUuid: 'ignore-this-id' }, }); @@ -348,7 +389,13 @@ describe('ClusterClient', () => { foo: 'auth', }); - const clusterClient = new ClusterClient({ config, logger, type: 'custom-type', authHeaders }); + const clusterClient = new ClusterClient({ + config, + logger, + type: 'custom-type', + authHeaders, + agentManager, + }); const request = httpServerMock.createKibanaRequest({}); clusterClient.asScoped(request); @@ -376,7 +423,13 @@ describe('ClusterClient', () => { }); authHeaders.get.mockReturnValue({}); - const clusterClient = new ClusterClient({ config, logger, type: 'custom-type', authHeaders }); + const clusterClient = new ClusterClient({ + config, + logger, + type: 'custom-type', + authHeaders, + agentManager, + }); const request = httpServerMock.createKibanaRequest({ headers: { foo: 'request' }, }); @@ -405,7 +458,13 @@ describe('ClusterClient', () => { }); authHeaders.get.mockReturnValue({}); - const clusterClient = new ClusterClient({ config, logger, type: 'custom-type', authHeaders }); + const clusterClient = new ClusterClient({ + config, + logger, + type: 'custom-type', + authHeaders, + agentManager, + }); const request = httpServerMock.createKibanaRequest(); clusterClient.asScoped(request); @@ -428,7 +487,13 @@ describe('ClusterClient', () => { }); authHeaders.get.mockReturnValue({}); - const clusterClient = new ClusterClient({ config, logger, type: 'custom-type', authHeaders }); + const clusterClient = new ClusterClient({ + config, + logger, + type: 'custom-type', + authHeaders, + agentManager, + }); const request = httpServerMock.createKibanaRequest({ headers: { [headerKey]: 'foo' }, }); @@ -454,7 +519,13 @@ describe('ClusterClient', () => { }); authHeaders.get.mockReturnValue({}); - const clusterClient = new ClusterClient({ config, logger, type: 'custom-type', authHeaders }); + const clusterClient = new ClusterClient({ + config, + logger, + type: 'custom-type', + authHeaders, + agentManager, + }); const request = httpServerMock.createKibanaRequest({ headers: { foo: 'request' }, kibanaRequestState: { requestId: 'from request', requestUuid: 'ignore-this-id' }, @@ -479,7 +550,13 @@ describe('ClusterClient', () => { }); authHeaders.get.mockReturnValue({}); - const clusterClient = new ClusterClient({ config, logger, type: 'custom-type', authHeaders }); + const clusterClient = new ClusterClient({ + config, + logger, + type: 'custom-type', + authHeaders, + agentManager, + }); const request = { headers: { authorization: 'auth', @@ -505,7 +582,13 @@ describe('ClusterClient', () => { authorization: 'auth', }); - const clusterClient = new ClusterClient({ config, logger, type: 'custom-type', authHeaders }); + const clusterClient = new ClusterClient({ + config, + logger, + type: 'custom-type', + authHeaders, + agentManager, + }); const request = { headers: { foo: 'bar', @@ -531,6 +614,7 @@ describe('ClusterClient', () => { logger, type: 'custom-type', authHeaders, + agentManager, }); await clusterClient.close(); @@ -547,6 +631,7 @@ describe('ClusterClient', () => { logger, type: 'custom-type', authHeaders, + agentManager, }); let internalClientClosed = false; @@ -590,6 +675,7 @@ describe('ClusterClient', () => { logger, type: 'custom-type', authHeaders, + agentManager, }); internalClient.close.mockRejectedValue(new Error('error closing client')); @@ -605,6 +691,7 @@ describe('ClusterClient', () => { logger, type: 'custom-type', authHeaders, + agentManager, }); await clusterClient.close(); diff --git a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/cluster_client.ts b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/cluster_client.ts index 088a99c7642f0a..4c7f56458baa7a 100644 --- a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/cluster_client.ts +++ b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/cluster_client.ts @@ -26,6 +26,7 @@ import { ScopedClusterClient } from './scoped_cluster_client'; import { DEFAULT_HEADERS } from './headers'; import { createInternalErrorHandler, InternalUnauthorizedErrorHandler } from './retry_unauthorized'; import { createTransport } from './create_transport'; +import { AgentManager } from './agent_manager'; const noop = () => undefined; @@ -47,6 +48,7 @@ export class ClusterClient implements ICustomClusterClient { authHeaders, getExecutionContext = noop, getUnauthorizedErrorHandler = noop, + agentManager, }: { config: ElasticsearchClientConfig; logger: Logger; @@ -54,18 +56,25 @@ export class ClusterClient implements ICustomClusterClient { authHeaders?: IAuthHeadersStorage; getExecutionContext?: () => string | undefined; getUnauthorizedErrorHandler?: () => UnauthorizedErrorHandler | undefined; + agentManager: AgentManager; }) { this.config = config; this.authHeaders = authHeaders; this.getExecutionContext = getExecutionContext; this.getUnauthorizedErrorHandler = getUnauthorizedErrorHandler; - this.asInternalUser = configureClient(config, { logger, type, getExecutionContext }); + this.asInternalUser = configureClient(config, { + logger, + type, + getExecutionContext, + agentManager, + }); this.rootScopedClient = configureClient(config, { logger, type, getExecutionContext, scoped: true, + agentManager, }); } diff --git a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/configure_client.test.ts b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/configure_client.test.ts index e4fb582972b1b1..e37f30b2722125 100644 --- a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/configure_client.test.ts +++ b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/configure_client.test.ts @@ -10,17 +10,23 @@ jest.mock('./log_query_and_deprecation', () => ({ __esModule: true, instrumentEsQueryAndDeprecationLogger: jest.fn(), })); +jest.mock('./agent_manager'); +import { Agent } from 'http'; import { parseClientOptionsMock, createTransportMock, ClientMock, } from './configure_client.test.mocks'; +import { MockedLogger } from '@kbn/logging-mocks'; import { loggingSystemMock } from '@kbn/core-logging-server-mocks'; import { ClusterConnectionPool } from '@elastic/elasticsearch'; import type { ElasticsearchClientConfig } from '@kbn/core-elasticsearch-server'; import { configureClient } from './configure_client'; import { instrumentEsQueryAndDeprecationLogger } from './log_query_and_deprecation'; +import { AgentManager } from './agent_manager'; + +const AgentManagerMock = AgentManager as jest.Mock; const createFakeConfig = ( parts: Partial = {} @@ -39,15 +45,31 @@ const createFakeClient = () => { return client; }; +const createFakeAgentFactory = (logger: MockedLogger) => { + const agentFactory = () => new Agent(); + + AgentManagerMock.mockImplementationOnce(() => { + const agentManager = new AgentManager(); + agentManager.getAgentFactory = () => agentFactory; + return agentManager; + }); + + const agentManager = new AgentManager(); + + return { agentManager, agentFactory }; +}; + describe('configureClient', () => { - let logger: ReturnType; + let logger: MockedLogger; let config: ElasticsearchClientConfig; + let agentManager: AgentManager; beforeEach(() => { logger = loggingSystemMock.createLogger(); config = createFakeConfig(); parseClientOptionsMock.mockReturnValue({}); ClientMock.mockImplementation(() => createFakeClient()); + agentManager = new AgentManager(); }); afterEach(() => { @@ -57,14 +79,14 @@ describe('configureClient', () => { }); it('calls `parseClientOptions` with the correct parameters', () => { - configureClient(config, { logger, type: 'test', scoped: false }); + configureClient(config, { logger, type: 'test', scoped: false, agentManager }); expect(parseClientOptionsMock).toHaveBeenCalledTimes(1); expect(parseClientOptionsMock).toHaveBeenCalledWith(config, false); parseClientOptionsMock.mockClear(); - configureClient(config, { logger, type: 'test', scoped: true }); + configureClient(config, { logger, type: 'test', scoped: true, agentManager }); expect(parseClientOptionsMock).toHaveBeenCalledTimes(1); expect(parseClientOptionsMock).toHaveBeenCalledWith(config, true); @@ -76,23 +98,49 @@ describe('configureClient', () => { }; parseClientOptionsMock.mockReturnValue(parsedOptions); - const client = configureClient(config, { logger, type: 'test', scoped: false }); + const client = configureClient(config, { logger, type: 'test', scoped: false, agentManager }); expect(ClientMock).toHaveBeenCalledTimes(1); expect(ClientMock).toHaveBeenCalledWith(expect.objectContaining(parsedOptions)); expect(client).toBe(ClientMock.mock.results[0].value); }); + it('constructs a client using the provided `agentManager`', () => { + const { agentManager: customAgentManager, agentFactory } = createFakeAgentFactory(logger); + const client = configureClient(config, { + logger, + type: 'test', + scoped: false, + agentManager: customAgentManager, + }); + + expect(ClientMock).toHaveBeenCalledTimes(1); + expect(ClientMock).toHaveBeenCalledWith(expect.objectContaining({ agent: agentFactory })); + expect(client).toBe(ClientMock.mock.results[0].value); + }); + it('calls `createTransport` with the correct parameters', () => { const getExecutionContext = jest.fn(); - configureClient(config, { logger, type: 'test', scoped: false, getExecutionContext }); + configureClient(config, { + logger, + type: 'test', + scoped: false, + getExecutionContext, + agentManager, + }); expect(createTransportMock).toHaveBeenCalledTimes(1); expect(createTransportMock).toHaveBeenCalledWith({ getExecutionContext }); createTransportMock.mockClear(); - configureClient(config, { logger, type: 'test', scoped: true, getExecutionContext }); + configureClient(config, { + logger, + type: 'test', + scoped: true, + getExecutionContext, + agentManager, + }); expect(createTransportMock).toHaveBeenCalledTimes(1); expect(createTransportMock).toHaveBeenCalledWith({ getExecutionContext }); @@ -102,7 +150,7 @@ describe('configureClient', () => { const mockedTransport = { mockTransport: true }; createTransportMock.mockReturnValue(mockedTransport); - const client = configureClient(config, { logger, type: 'test', scoped: false }); + const client = configureClient(config, { logger, type: 'test', scoped: false, agentManager }); expect(ClientMock).toHaveBeenCalledTimes(1); expect(ClientMock).toHaveBeenCalledWith( @@ -117,7 +165,7 @@ describe('configureClient', () => { const mockedTransport = { mockTransport: true }; createTransportMock.mockReturnValue(mockedTransport); - const client = configureClient(config, { logger, type: 'test', scoped: false }); + const client = configureClient(config, { logger, type: 'test', scoped: false, agentManager }); expect(ClientMock).toHaveBeenCalledTimes(1); expect(ClientMock).toHaveBeenCalledWith( @@ -129,7 +177,7 @@ describe('configureClient', () => { }); it('calls instrumentEsQueryAndDeprecationLogger', () => { - const client = configureClient(config, { logger, type: 'test', scoped: false }); + const client = configureClient(config, { logger, type: 'test', scoped: false, agentManager }); expect(instrumentEsQueryAndDeprecationLogger).toHaveBeenCalledTimes(1); expect(instrumentEsQueryAndDeprecationLogger).toHaveBeenCalledWith({ diff --git a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/configure_client.ts b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/configure_client.ts index 4901349e6b487b..9980a54356fee4 100644 --- a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/configure_client.ts +++ b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/configure_client.ts @@ -12,6 +12,7 @@ import type { ElasticsearchClientConfig } from '@kbn/core-elasticsearch-server'; import { parseClientOptions } from './client_config'; import { instrumentEsQueryAndDeprecationLogger } from './log_query_and_deprecation'; import { createTransport } from './create_transport'; +import { AgentManager } from './agent_manager'; const noop = () => undefined; @@ -22,18 +23,20 @@ export const configureClient = ( type, scoped = false, getExecutionContext = noop, + agentManager, }: { logger: Logger; type: string; scoped?: boolean; getExecutionContext?: () => string | undefined; + agentManager: AgentManager; } ): Client => { const clientOptions = parseClientOptions(config, scoped); const KibanaTransport = createTransport({ getExecutionContext }); - const client = new Client({ ...clientOptions, + agent: agentManager.getAgentFactory(clientOptions.agent), Transport: KibanaTransport, Connection: HttpConnection, // using ClusterConnectionPool until https://github.com/elastic/elasticsearch-js/issues/1714 is addressed diff --git a/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.test.mocks.ts b/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.test.mocks.ts index 29b9a2cda3dfd5..cd6d36f0cb1110 100644 --- a/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.test.mocks.ts +++ b/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.test.mocks.ts @@ -7,8 +7,10 @@ */ export const MockClusterClient = jest.fn(); +export const MockAgentManager = jest.fn(); jest.mock('@kbn/core-elasticsearch-client-server-internal', () => ({ ClusterClient: MockClusterClient, + AgentManager: MockAgentManager, })); export const isScriptingEnabledMock = jest.fn(); diff --git a/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.test.ts b/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.test.ts index aaf7344fdc3b6d..5b54a2c35683e4 100644 --- a/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.test.ts +++ b/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.test.ts @@ -135,6 +135,20 @@ describe('#preboot', () => { ); }); + it('creates a ClusterClient using the internal AgentManager', async () => { + const prebootContract = await elasticsearchService.preboot(); + const customConfig = { keepAlive: true }; + const clusterClient = prebootContract.createClient('custom-type', customConfig); + + expect(clusterClient).toBe(mockClusterClientInstance); + + expect(MockClusterClient).toHaveBeenCalledTimes(1); + expect(MockClusterClient.mock.calls[0][0]).toEqual( + // eslint-disable-next-line dot-notation + expect.objectContaining({ agentManager: elasticsearchService['agentManager'] }) + ); + }); + it('creates a new client on each call', async () => { const prebootContract = await elasticsearchService.preboot(); diff --git a/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.ts b/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.ts index 8e7ab46b0edd45..1dc50c7561192b 100644 --- a/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.ts +++ b/packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_service.ts @@ -22,7 +22,7 @@ import type { UnauthorizedErrorHandler, ElasticsearchClientConfig, } from '@kbn/core-elasticsearch-server'; -import { ClusterClient } from '@kbn/core-elasticsearch-client-server-internal'; +import { ClusterClient, AgentManager } from '@kbn/core-elasticsearch-client-server-internal'; import { registerAnalyticsContextProvider } from './register_analytics_context_provider'; import { ElasticsearchConfig, ElasticsearchConfigType } from './elasticsearch_config'; @@ -58,6 +58,7 @@ export class ElasticsearchService private esNodesCompatibility$?: Observable; private client?: ClusterClient; private unauthorizedErrorHandler?: UnauthorizedErrorHandler; + private agentManager: AgentManager; constructor(private readonly coreContext: CoreContext) { this.kibanaVersion = coreContext.env.packageInfo.version; @@ -65,6 +66,7 @@ export class ElasticsearchService this.config$ = coreContext.configService .atPath('elasticsearch') .pipe(map((rawConfig) => new ElasticsearchConfig(rawConfig))); + this.agentManager = new AgentManager(); } public async preboot(): Promise { @@ -172,6 +174,7 @@ export class ElasticsearchService clientConfig: Partial = {} ) { const config = mergeConfig(baseConfig, clientConfig); + return new ClusterClient({ config, logger: this.coreContext.logger.get('elasticsearch'), @@ -179,6 +182,7 @@ export class ElasticsearchService authHeaders: this.authHeaders, getExecutionContext: () => this.executionContextClient?.getAsHeader(), getUnauthorizedErrorHandler: () => this.unauthorizedErrorHandler, + agentManager: this.agentManager, }); } } diff --git a/packages/core/elasticsearch/core-elasticsearch-server-mocks/src/elasticsearch_service.mock.ts b/packages/core/elasticsearch/core-elasticsearch-server-mocks/src/elasticsearch_service.mock.ts index fcaca91264d4f1..a1323be0ea71b5 100644 --- a/packages/core/elasticsearch/core-elasticsearch-server-mocks/src/elasticsearch_service.mock.ts +++ b/packages/core/elasticsearch/core-elasticsearch-server-mocks/src/elasticsearch_service.mock.ts @@ -42,18 +42,15 @@ export type MockedElasticSearchServiceSetup = jest.Mocked< export interface MockedElasticSearchServiceStart { client: ClusterClientMock; createClient: jest.MockedFunction< - (name: string, config?: Partial) => CustomClusterClientMock + (type: string, config?: Partial) => CustomClusterClientMock >; } const createPrebootContractMock = () => { const prebootContract: MockedElasticSearchServicePreboot = { config: { hosts: [], credentialsSpecified: false }, - createClient: jest.fn(), + createClient: jest.fn((type: string) => elasticsearchClientMock.createCustomClusterClient()), }; - prebootContract.createClient.mockImplementation(() => - elasticsearchClientMock.createCustomClusterClient() - ); return prebootContract; }; @@ -70,12 +67,8 @@ const createSetupContractMock = () => { const createStartContractMock = () => { const startContract: MockedElasticSearchServiceStart = { client: elasticsearchClientMock.createClusterClient(), - createClient: jest.fn(), + createClient: jest.fn((type: string) => elasticsearchClientMock.createCustomClusterClient()), }; - - startContract.createClient.mockImplementation(() => - elasticsearchClientMock.createCustomClusterClient() - ); return startContract; }; diff --git a/packages/core/ui-settings/core-ui-settings-server-internal/BUILD.bazel b/packages/core/ui-settings/core-ui-settings-server-internal/BUILD.bazel new file mode 100644 index 00000000000000..ae77747b313e37 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server-internal/BUILD.bazel @@ -0,0 +1,129 @@ +load("@npm//@bazel/typescript:index.bzl", "ts_config") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") +load("//src/dev/bazel:index.bzl", "jsts_transpiler", "pkg_npm", "pkg_npm_types", "ts_project") + +PKG_DIRNAME = "core-ui-settings-server-internal" +PKG_REQUIRE_NAME = "@kbn/core-ui-settings-server-internal" + +SOURCE_FILES = glob( + [ + "**/*.ts", + ], + exclude = [ + "**/*.config.js", + "**/*.mock.*", + "**/*.test.*", + "**/*.stories.*", + "**/__snapshots__/**", + "**/integration_tests/**", + "**/mocks/**", + "**/scripts/**", + "**/storybook/**", + "**/test_fixtures/**", + "**/test_helpers/**", + ], +) + +SRCS = SOURCE_FILES + +filegroup( + name = "srcs", + srcs = SRCS, +) + +NPM_MODULE_EXTRA_FILES = [ + "package.json", +] + +RUNTIME_DEPS = [ + "@npm//lodash", + "@npm//semver", + "@npm//moment-timezone", + "//packages/kbn-std", + "//packages/kbn-i18n", + "//packages/kbn-config-schema", + "//packages/core/saved-objects/core-saved-objects-utils-server", +] + +TYPES_DEPS = [ + "@npm//@types/node", + "@npm//@types/jest", + "@npm//@types/semver", + "@npm//@types/moment-timezone", + "@npm//lodash", + "//packages/kbn-ui-shared-deps-npm:npm_module_types", + "//packages/kbn-logging:npm_module_types", + "//packages/kbn-std:npm_module_types", + "//packages/kbn-i18n:npm_module_types", + "//packages/kbn-config-schema:npm_module_types", + "//packages/core/base/core-base-server-internal:npm_module_types", + "//packages/core/http/core-http-server:npm_module_types", + "//packages/core/http/core-http-server-internal:npm_module_types", + "//packages/core/saved-objects/core-saved-objects-api-server:npm_module_types", + "//packages/core/saved-objects/core-saved-objects-server:npm_module_types", + "//packages/core/saved-objects/core-saved-objects-server-internal:npm_module_types", + "//packages/core/saved-objects/core-saved-objects-utils-server:npm_module_types", + "//packages/core/ui-settings/core-ui-settings-common:npm_module_types", + "//packages/core/ui-settings/core-ui-settings-server:npm_module_types", +] + +jsts_transpiler( + name = "target_node", + srcs = SRCS, + build_pkg_name = package_name(), +) + +ts_config( + name = "tsconfig", + src = "tsconfig.json", + deps = [ + "//:tsconfig.base.json", + "//:tsconfig.bazel.json", + ], +) + +ts_project( + name = "tsc_types", + args = ['--pretty'], + srcs = SRCS, + deps = TYPES_DEPS, + declaration = True, + declaration_map = True, + emit_declaration_only = True, + out_dir = "target_types", + tsconfig = ":tsconfig", +) + +js_library( + name = PKG_DIRNAME, + srcs = NPM_MODULE_EXTRA_FILES, + deps = RUNTIME_DEPS + [":target_node"], + package_name = PKG_REQUIRE_NAME, + visibility = ["//visibility:public"], +) + +pkg_npm( + name = "npm_module", + deps = [":" + PKG_DIRNAME], +) + +filegroup( + name = "build", + srcs = [":npm_module"], + visibility = ["//visibility:public"], +) + +pkg_npm_types( + name = "npm_module_types", + srcs = SRCS, + deps = [":tsc_types"], + package_name = PKG_REQUIRE_NAME, + tsconfig = ":tsconfig", + visibility = ["//visibility:public"], +) + +filegroup( + name = "build_types", + srcs = [":npm_module_types"], + visibility = ["//visibility:public"], +) diff --git a/packages/core/ui-settings/core-ui-settings-server-internal/README.md b/packages/core/ui-settings/core-ui-settings-server-internal/README.md new file mode 100644 index 00000000000000..00e9d6e29465c8 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server-internal/README.md @@ -0,0 +1,3 @@ +# @kbn/core-ui-settings-server-internal + +This package contains the internal types and implementation for Core's server-side uiSettings service. diff --git a/packages/core/ui-settings/core-ui-settings-server-internal/index.ts b/packages/core/ui-settings/core-ui-settings-server-internal/index.ts new file mode 100644 index 00000000000000..9fd6540587ab23 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server-internal/index.ts @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { + uiSettingsConfig, + UiSettingsClient, + UiSettingsService, + CoreUiSettingsRouteHandlerContext, +} from './src'; +export type { + InternalUiSettingsServicePreboot, + InternalUiSettingsServiceSetup, + InternalUiSettingsServiceStart, + UiSettingsServiceOptions, +} from './src'; + +// only exported for integration tests +export { createOrUpgradeSavedConfig } from './src/create_or_upgrade_saved_config'; diff --git a/packages/core/ui-settings/core-ui-settings-server-internal/jest.config.js b/packages/core/ui-settings/core-ui-settings-server-internal/jest.config.js new file mode 100644 index 00000000000000..441fe174f93ae9 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server-internal/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/ui-settings/core-ui-settings-server-internal'], +}; diff --git a/packages/core/ui-settings/core-ui-settings-server-internal/kibana.jsonc b/packages/core/ui-settings/core-ui-settings-server-internal/kibana.jsonc new file mode 100644 index 00000000000000..b6c943e1e6677d --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server-internal/kibana.jsonc @@ -0,0 +1,7 @@ +{ + "type": "shared-common", + "id": "@kbn/core-ui-settings-server-internal", + "owner": "@elastic/kibana-core", + "runtimeDeps": [], + "typeDeps": [], +} diff --git a/packages/core/ui-settings/core-ui-settings-server-internal/package.json b/packages/core/ui-settings/core-ui-settings-server-internal/package.json new file mode 100644 index 00000000000000..519392b438efb5 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server-internal/package.json @@ -0,0 +1,8 @@ +{ + "name": "@kbn/core-ui-settings-server-internal", + "private": true, + "version": "1.0.0", + "main": "./target_node/index.js", + "author": "Kibana Core", + "license": "SSPL-1.0 OR Elastic License 2.0" +} diff --git a/src/core/server/ui_settings/base_ui_settings_client.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/base_ui_settings_client.ts similarity index 91% rename from src/core/server/ui_settings/base_ui_settings_client.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/base_ui_settings_client.ts index be50c923bea0eb..27c7bccefb8356 100644 --- a/src/core/server/ui_settings/base_ui_settings_client.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/base_ui_settings_client.ts @@ -7,14 +7,13 @@ */ import { omit } from 'lodash'; - import type { Logger } from '@kbn/logging'; -import { - IUiSettingsClient, +import type { UiSettingsParams, PublicUiSettingsParams, UserProvidedValues, -} from './types'; +} from '@kbn/core-ui-settings-common'; +import type { IUiSettingsClient } from '@kbn/core-ui-settings-server'; export interface BaseUiSettingsDefaultsClientOptions { overrides?: Record; @@ -26,9 +25,9 @@ export interface BaseUiSettingsDefaultsClientOptions { * Base implementation of the {@link IUiSettingsClient}. */ export abstract class BaseUiSettingsClient implements IUiSettingsClient { - private readonly defaults: NonNullable; + private readonly defaults: Record; private readonly defaultValues: Record; - protected readonly overrides: NonNullable; + protected readonly overrides: Record; protected readonly log: Logger; protected constructor(options: BaseUiSettingsDefaultsClientOptions) { @@ -86,8 +85,12 @@ export abstract class BaseUiSettingsClient implements IUiSettingsClient { } abstract getUserProvided(): Promise>>; + abstract setMany(changes: Record): Promise; + abstract set(key: string, value: any): Promise; + abstract remove(key: string): Promise; + abstract removeMany(keys: string[]): Promise; } diff --git a/src/core/server/ui_settings/cache.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/cache.test.ts similarity index 100% rename from src/core/server/ui_settings/cache.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/cache.test.ts diff --git a/src/core/server/ui_settings/cache.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/cache.ts similarity index 99% rename from src/core/server/ui_settings/cache.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/cache.ts index ea628193c0d650..3dcde3d97844f5 100644 --- a/src/core/server/ui_settings/cache.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/cache.ts @@ -8,6 +8,7 @@ const oneSec = 1000; const defMaxAge = 5 * oneSec; + /** * @internal */ diff --git a/src/core/server/ui_settings/create_or_upgrade_saved_config/create_or_upgrade_saved_config.test.mock.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/create_or_upgrade_saved_config/create_or_upgrade_saved_config.test.mock.ts similarity index 100% rename from src/core/server/ui_settings/create_or_upgrade_saved_config/create_or_upgrade_saved_config.test.mock.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/create_or_upgrade_saved_config/create_or_upgrade_saved_config.test.mock.ts diff --git a/src/core/server/ui_settings/create_or_upgrade_saved_config/create_or_upgrade_saved_config.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/create_or_upgrade_saved_config/create_or_upgrade_saved_config.test.ts similarity index 100% rename from src/core/server/ui_settings/create_or_upgrade_saved_config/create_or_upgrade_saved_config.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/create_or_upgrade_saved_config/create_or_upgrade_saved_config.test.ts diff --git a/src/core/server/ui_settings/create_or_upgrade_saved_config/create_or_upgrade_saved_config.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/create_or_upgrade_saved_config/create_or_upgrade_saved_config.ts similarity index 100% rename from src/core/server/ui_settings/create_or_upgrade_saved_config/create_or_upgrade_saved_config.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/create_or_upgrade_saved_config/create_or_upgrade_saved_config.ts diff --git a/src/core/server/ui_settings/create_or_upgrade_saved_config/get_upgradeable_config.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/create_or_upgrade_saved_config/get_upgradeable_config.test.ts similarity index 100% rename from src/core/server/ui_settings/create_or_upgrade_saved_config/get_upgradeable_config.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/create_or_upgrade_saved_config/get_upgradeable_config.test.ts diff --git a/src/core/server/ui_settings/create_or_upgrade_saved_config/get_upgradeable_config.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/create_or_upgrade_saved_config/get_upgradeable_config.ts similarity index 100% rename from src/core/server/ui_settings/create_or_upgrade_saved_config/get_upgradeable_config.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/create_or_upgrade_saved_config/get_upgradeable_config.ts diff --git a/src/core/server/ui_settings/create_or_upgrade_saved_config/index.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/create_or_upgrade_saved_config/index.ts similarity index 100% rename from src/core/server/ui_settings/create_or_upgrade_saved_config/index.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/create_or_upgrade_saved_config/index.ts diff --git a/src/core/server/ui_settings/create_or_upgrade_saved_config/is_config_version_upgradeable.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/create_or_upgrade_saved_config/is_config_version_upgradeable.test.ts similarity index 100% rename from src/core/server/ui_settings/create_or_upgrade_saved_config/is_config_version_upgradeable.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/create_or_upgrade_saved_config/is_config_version_upgradeable.test.ts diff --git a/src/core/server/ui_settings/create_or_upgrade_saved_config/is_config_version_upgradeable.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/create_or_upgrade_saved_config/is_config_version_upgradeable.ts similarity index 100% rename from src/core/server/ui_settings/create_or_upgrade_saved_config/is_config_version_upgradeable.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/create_or_upgrade_saved_config/is_config_version_upgradeable.ts diff --git a/src/core/server/ui_settings/index.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/index.ts similarity index 60% rename from src/core/server/ui_settings/index.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/index.ts index ee8cd7181fe8dc..654816e9212261 100644 --- a/src/core/server/ui_settings/index.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/index.ts @@ -6,23 +6,13 @@ * Side Public License, v 1. */ -export type { UiSettingsClient, UiSettingsServiceOptions } from './ui_settings_client'; - -export { config } from './ui_settings_config'; +export { uiSettingsConfig } from './ui_settings_config'; export { UiSettingsService } from './ui_settings_service'; export { CoreUiSettingsRouteHandlerContext } from './ui_settings_route_handler_context'; -export type { UiSettingsRequestHandlerContext } from './ui_settings_route_handler_context'; - +export { UiSettingsClient } from './ui_settings_client'; +export type { UiSettingsServiceOptions } from './ui_settings_client'; export type { - UiSettingsServiceSetup, - UiSettingsServiceStart, - IUiSettingsClient, - UiSettingsParams, - PublicUiSettingsParams, InternalUiSettingsServicePreboot, InternalUiSettingsServiceSetup, InternalUiSettingsServiceStart, - UiSettingsType, - UserProvidedValues, - DeprecationSettings, } from './types'; diff --git a/src/core/server/ui_settings/internal_types.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/internal_types.ts similarity index 90% rename from src/core/server/ui_settings/internal_types.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/internal_types.ts index 441a5dbb389e0b..2da5446360029e 100644 --- a/src/core/server/ui_settings/internal_types.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/internal_types.ts @@ -7,7 +7,7 @@ */ import type { IRouter, RequestHandlerContextBase } from '@kbn/core-http-server'; -import type { UiSettingsRequestHandlerContext } from './ui_settings_route_handler_context'; +import type { UiSettingsRequestHandlerContext } from '@kbn/core-ui-settings-server'; /** * Request handler context used by core's uiSetting routes. diff --git a/src/core/server/ui_settings/routes/delete.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/routes/delete.ts similarity index 100% rename from src/core/server/ui_settings/routes/delete.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/routes/delete.ts diff --git a/src/core/server/ui_settings/routes/get.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/routes/get.ts similarity index 100% rename from src/core/server/ui_settings/routes/get.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/routes/get.ts diff --git a/src/core/server/ui_settings/routes/index.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/routes/index.ts similarity index 100% rename from src/core/server/ui_settings/routes/index.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/routes/index.ts diff --git a/src/core/server/ui_settings/routes/set.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/routes/set.ts similarity index 100% rename from src/core/server/ui_settings/routes/set.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/routes/set.ts diff --git a/src/core/server/ui_settings/routes/set_many.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/routes/set_many.ts similarity index 100% rename from src/core/server/ui_settings/routes/set_many.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/routes/set_many.ts diff --git a/src/core/server/ui_settings/saved_objects/index.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/index.ts similarity index 100% rename from src/core/server/ui_settings/saved_objects/index.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/index.ts diff --git a/src/core/server/ui_settings/saved_objects/migrations.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/migrations.test.ts similarity index 99% rename from src/core/server/ui_settings/saved_objects/migrations.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/migrations.test.ts index c08f75ad9d184a..4c6114ea93a8d5 100644 --- a/src/core/server/ui_settings/saved_objects/migrations.test.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/migrations.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { SavedObjectUnsanitizedDoc } from '../..'; +import type { SavedObjectUnsanitizedDoc } from '@kbn/core-saved-objects-server'; import { migrations } from './migrations'; describe('ui_settings 7.9.0 migrations', () => { diff --git a/src/core/server/ui_settings/saved_objects/migrations.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/migrations.ts similarity index 97% rename from src/core/server/ui_settings/saved_objects/migrations.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/migrations.ts index 73b51254d18696..2c14f022379f71 100644 --- a/src/core/server/ui_settings/saved_objects/migrations.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/migrations.ts @@ -6,7 +6,10 @@ * Side Public License, v 1. */ -import { SavedObjectUnsanitizedDoc, SavedObjectSanitizedDoc } from '../..'; +import type { + SavedObjectUnsanitizedDoc, + SavedObjectSanitizedDoc, +} from '@kbn/core-saved-objects-server'; export const migrations = { '7.9.0': (doc: SavedObjectUnsanitizedDoc): SavedObjectSanitizedDoc => ({ diff --git a/src/core/server/ui_settings/saved_objects/transforms.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts similarity index 97% rename from src/core/server/ui_settings/saved_objects/transforms.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts index 279dfd637b9e28..8f3382d4dadd24 100644 --- a/src/core/server/ui_settings/saved_objects/transforms.test.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.test.ts @@ -6,9 +6,9 @@ * Side Public License, v 1. */ -import { savedObjectsClientMock } from '../../mocks'; +import { savedObjectsClientMock } from '@kbn/core-saved-objects-api-server-mocks'; import { SavedObjectsErrorHelpers } from '@kbn/core-saved-objects-utils-server'; -import { SavedObject } from '../../types'; +import type { SavedObject } from '@kbn/core-saved-objects-common'; import type { UpgradeableConfigAttributes } from '../create_or_upgrade_saved_config'; import { transformDefaultIndex } from './transforms'; diff --git a/src/core/server/ui_settings/saved_objects/transforms.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.ts similarity index 98% rename from src/core/server/ui_settings/saved_objects/transforms.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.ts index 797b895f91556d..05bfbbf9d3a12d 100644 --- a/src/core/server/ui_settings/saved_objects/transforms.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/transforms.ts @@ -7,7 +7,7 @@ */ import { SavedObjectsErrorHelpers } from '@kbn/core-saved-objects-utils-server'; -import type { SavedObjectsClientContract } from '../../types'; +import type { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server'; import type { UpgradeableConfigAttributes } from '../create_or_upgrade_saved_config'; /** diff --git a/src/core/server/ui_settings/saved_objects/ui_settings.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/ui_settings.ts similarity index 100% rename from src/core/server/ui_settings/saved_objects/ui_settings.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/saved_objects/ui_settings.ts diff --git a/src/core/server/ui_settings/settings/accessibility.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/accessibility.test.ts similarity index 94% rename from src/core/server/ui_settings/settings/accessibility.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/accessibility.test.ts index 9e7dbbfe28455c..0441e87dfa5b15 100644 --- a/src/core/server/ui_settings/settings/accessibility.test.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/accessibility.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { UiSettingsParams } from '../../../types'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; import { getAccessibilitySettings } from './accessibility'; describe('accessibility settings', () => { diff --git a/src/core/server/ui_settings/settings/accessibility.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/accessibility.ts similarity index 93% rename from src/core/server/ui_settings/settings/accessibility.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/accessibility.ts index 36e756c3fc984e..bd84cbc89f0457 100644 --- a/src/core/server/ui_settings/settings/accessibility.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/accessibility.ts @@ -8,7 +8,7 @@ import { schema } from '@kbn/config-schema'; import { i18n } from '@kbn/i18n'; -import { UiSettingsParams } from '../../../types'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; export const getAccessibilitySettings = (): Record => { return { diff --git a/src/core/server/ui_settings/settings/announcements.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/announcements.test.ts similarity index 94% rename from src/core/server/ui_settings/settings/announcements.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/announcements.test.ts index ef32e85ef192a9..0317402b28f108 100644 --- a/src/core/server/ui_settings/settings/announcements.test.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/announcements.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { UiSettingsParams } from '../../../types'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; import { getAnnouncementsSettings } from './announcements'; describe('announcements settings', () => { diff --git a/src/core/server/ui_settings/settings/announcements.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/announcements.ts similarity index 93% rename from src/core/server/ui_settings/settings/announcements.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/announcements.ts index 1f049feb462e8c..12cfa29c4c37dd 100644 --- a/src/core/server/ui_settings/settings/announcements.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/announcements.ts @@ -8,7 +8,7 @@ import { schema } from '@kbn/config-schema'; import { i18n } from '@kbn/i18n'; -import { UiSettingsParams } from '../../../types'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; export const getAnnouncementsSettings = (): Record => { return { diff --git a/src/core/server/ui_settings/settings/date_formats.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/date_formats.test.ts similarity index 97% rename from src/core/server/ui_settings/settings/date_formats.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/date_formats.test.ts index 57edd6f0b1a013..d34dc9cf7d9344 100644 --- a/src/core/server/ui_settings/settings/date_formats.test.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/date_formats.test.ts @@ -7,7 +7,7 @@ */ import moment from 'moment-timezone'; -import { UiSettingsParams } from '../../../types'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; import { getDateFormatSettings } from './date_formats'; describe('accessibility settings', () => { diff --git a/src/core/server/ui_settings/settings/date_formats.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/date_formats.ts similarity index 98% rename from src/core/server/ui_settings/settings/date_formats.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/date_formats.ts index 039ead326a2361..c13eae4965a54c 100644 --- a/src/core/server/ui_settings/settings/date_formats.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/date_formats.ts @@ -9,7 +9,7 @@ import moment from 'moment-timezone'; import { schema } from '@kbn/config-schema'; import { i18n } from '@kbn/i18n'; -import { UiSettingsParams } from '../../../types'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; export const getDateFormatSettings = (): Record => { const weekdays = moment.weekdays().slice(); diff --git a/src/core/server/ui_settings/settings/index.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/index.test.ts similarity index 100% rename from src/core/server/ui_settings/settings/index.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/index.test.ts diff --git a/src/core/server/ui_settings/settings/index.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/index.ts similarity index 94% rename from src/core/server/ui_settings/settings/index.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/index.ts index 137443a6a1a2e3..baf10af09acb68 100644 --- a/src/core/server/ui_settings/settings/index.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/index.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { UiSettingsParams } from '../../../types'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; import { getAccessibilitySettings } from './accessibility'; import { getDateFormatSettings } from './date_formats'; import { getMiscUiSettings } from './misc'; diff --git a/src/core/server/ui_settings/settings/misc.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/misc.ts similarity index 89% rename from src/core/server/ui_settings/settings/misc.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/misc.ts index ad7411dfd12afa..cdda2d7f7dc8bf 100644 --- a/src/core/server/ui_settings/settings/misc.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/misc.ts @@ -7,7 +7,7 @@ */ import { schema } from '@kbn/config-schema'; -import { UiSettingsParams } from '../types'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; export const getMiscUiSettings = (): Record => { return { diff --git a/src/core/server/ui_settings/settings/navigation.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/navigation.test.ts similarity index 94% rename from src/core/server/ui_settings/settings/navigation.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/navigation.test.ts index 37f5e81f737e8b..11c89c76621224 100644 --- a/src/core/server/ui_settings/settings/navigation.test.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/navigation.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { UiSettingsParams } from '../../../types'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; import { getNavigationSettings } from './navigation'; describe('navigation settings', () => { diff --git a/src/core/server/ui_settings/settings/navigation.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/navigation.ts similarity index 95% rename from src/core/server/ui_settings/settings/navigation.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/navigation.ts index 9a4374c12a4adb..c69889b84fc367 100644 --- a/src/core/server/ui_settings/settings/navigation.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/navigation.ts @@ -9,7 +9,7 @@ import { schema } from '@kbn/config-schema'; import { i18n } from '@kbn/i18n'; import { isRelativeUrl } from '@kbn/std'; -import { UiSettingsParams } from '../../../types'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; export const getNavigationSettings = (): Record => { return { diff --git a/src/core/server/ui_settings/settings/notifications.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/notifications.test.ts similarity index 98% rename from src/core/server/ui_settings/settings/notifications.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/notifications.test.ts index 01e2905b0cc2c9..59c3403080450b 100644 --- a/src/core/server/ui_settings/settings/notifications.test.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/notifications.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { UiSettingsParams } from '../../../types'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; import { getNotificationsSettings } from './notifications'; describe('notifications settings', () => { diff --git a/src/core/server/ui_settings/settings/notifications.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/notifications.ts similarity index 98% rename from src/core/server/ui_settings/settings/notifications.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/notifications.ts index 2084dd32073486..13101c22c94c77 100644 --- a/src/core/server/ui_settings/settings/notifications.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/notifications.ts @@ -8,7 +8,7 @@ import { schema } from '@kbn/config-schema'; import { i18n } from '@kbn/i18n'; -import { UiSettingsParams } from '../../../types'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; export const getNotificationsSettings = (): Record => { return { diff --git a/src/core/server/ui_settings/settings/state.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/state.test.ts similarity index 94% rename from src/core/server/ui_settings/settings/state.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/state.test.ts index 4304b29a9d9890..ee7aed84415c15 100644 --- a/src/core/server/ui_settings/settings/state.test.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/state.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { UiSettingsParams } from '../../../types'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; import { getStateSettings } from './state'; describe('state settings', () => { diff --git a/src/core/server/ui_settings/settings/state.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/state.ts similarity index 94% rename from src/core/server/ui_settings/settings/state.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/state.ts index fa630b0a2b7887..20441d46179a88 100644 --- a/src/core/server/ui_settings/settings/state.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/state.ts @@ -8,7 +8,7 @@ import { schema } from '@kbn/config-schema'; import { i18n } from '@kbn/i18n'; -import { UiSettingsParams } from '../../../types'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; export const getStateSettings = (): Record => { return { diff --git a/src/core/server/ui_settings/settings/theme.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/theme.test.ts similarity index 96% rename from src/core/server/ui_settings/settings/theme.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/theme.test.ts index 839ece4eaf8d0d..78770b3ae62c7a 100644 --- a/src/core/server/ui_settings/settings/theme.test.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/theme.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { UiSettingsParams } from '../../../types'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; import { getThemeSettings } from './theme'; describe('theme settings', () => { diff --git a/src/core/server/ui_settings/settings/theme.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/theme.ts similarity index 96% rename from src/core/server/ui_settings/settings/theme.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/settings/theme.ts index 1c343148399167..1cece7db0bfed6 100644 --- a/src/core/server/ui_settings/settings/theme.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/theme.ts @@ -9,7 +9,7 @@ import { schema } from '@kbn/config-schema'; import { i18n } from '@kbn/i18n'; import type { ThemeVersion } from '@kbn/ui-shared-deps-npm'; -import { UiSettingsParams } from '../../../types'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; function parseThemeTags() { if (!process.env.KBN_OPTIMIZER_THEMES || process.env.KBN_OPTIMIZER_THEMES === '*') { diff --git a/packages/core/ui-settings/core-ui-settings-server-internal/src/types.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/types.ts new file mode 100644 index 00000000000000..16af4b0d01d67e --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/types.ts @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { + IUiSettingsClient, + UiSettingsServiceSetup, + UiSettingsServiceStart, +} from '@kbn/core-ui-settings-server'; + +/** @internal */ +export interface InternalUiSettingsServicePreboot { + /** + * Creates a {@link IUiSettingsClient} that returns default values for the Core uiSettings. + */ + createDefaultsClient(): IUiSettingsClient; +} + +/** @internal */ +export type InternalUiSettingsServiceSetup = UiSettingsServiceSetup; + +/** @internal */ +export type InternalUiSettingsServiceStart = UiSettingsServiceStart; diff --git a/src/core/server/ui_settings/ui_settings_client.test.mock.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_client.test.mock.ts similarity index 100% rename from src/core/server/ui_settings/ui_settings_client.test.mock.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_client.test.mock.ts diff --git a/src/core/server/ui_settings/ui_settings_client.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_client.test.ts similarity index 100% rename from src/core/server/ui_settings/ui_settings_client.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_client.test.ts diff --git a/src/core/server/ui_settings/ui_settings_client.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_client.ts similarity index 98% rename from src/core/server/ui_settings/ui_settings_client.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_client.ts index aa7d344881cf60..908607463c4cd3 100644 --- a/src/core/server/ui_settings/ui_settings_client.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_client.ts @@ -9,8 +9,8 @@ import type { Logger } from '@kbn/logging'; import type { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server'; import { SavedObjectsErrorHelpers } from '@kbn/core-saved-objects-utils-server'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; import { createOrUpgradeSavedConfig } from './create_or_upgrade_saved_config'; -import { UiSettingsParams } from './types'; import { CannotOverrideError } from './ui_settings_errors'; import { Cache } from './cache'; import { BaseUiSettingsClient } from './base_ui_settings_client'; diff --git a/src/core/server/ui_settings/ui_settings_config.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_config.ts similarity index 92% rename from src/core/server/ui_settings/ui_settings_config.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_config.ts index 20d2c5f30e3961..5e5d5a05345baf 100644 --- a/src/core/server/ui_settings/ui_settings_config.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_config.ts @@ -21,7 +21,7 @@ const configSchema = schema.object({ export type UiSettingsConfigType = TypeOf; -export const config: ServiceConfigDescriptor = { +export const uiSettingsConfig: ServiceConfigDescriptor = { path: 'uiSettings', schema: configSchema, deprecations, diff --git a/src/core/server/ui_settings/ui_settings_defaults_client.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_defaults_client.test.ts similarity index 100% rename from src/core/server/ui_settings/ui_settings_defaults_client.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_defaults_client.test.ts diff --git a/src/core/server/ui_settings/ui_settings_defaults_client.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_defaults_client.ts similarity index 95% rename from src/core/server/ui_settings/ui_settings_defaults_client.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_defaults_client.ts index 1865065adcea58..08e7b76dbf7ac4 100644 --- a/src/core/server/ui_settings/ui_settings_defaults_client.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_defaults_client.ts @@ -7,7 +7,7 @@ */ import type { Logger } from '@kbn/logging'; -import { UiSettingsParams, UserProvidedValues } from './types'; +import type { UiSettingsParams, UserProvidedValues } from '@kbn/core-ui-settings-common'; import { BaseUiSettingsClient } from './base_ui_settings_client'; export interface UiSettingsDefaultsClientOptions { diff --git a/src/core/server/ui_settings/ui_settings_errors.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_errors.ts similarity index 100% rename from src/core/server/ui_settings/ui_settings_errors.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_errors.ts diff --git a/src/core/server/ui_settings/ui_settings_route_handler_context.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_route_handler_context.ts similarity index 82% rename from src/core/server/ui_settings/ui_settings_route_handler_context.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_route_handler_context.ts index 09a6aa4c43d64d..ca7f680c0e628d 100644 --- a/src/core/server/ui_settings/ui_settings_route_handler_context.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_route_handler_context.ts @@ -7,15 +7,11 @@ */ import type { CoreSavedObjectsRouteHandlerContext } from '@kbn/core-saved-objects-server-internal'; -import type { IUiSettingsClient, InternalUiSettingsServiceStart } from './types'; - -/** - * Core's `uiSettings` request handler context. - * @public - */ -export interface UiSettingsRequestHandlerContext { - client: IUiSettingsClient; -} +import type { + UiSettingsRequestHandlerContext, + IUiSettingsClient, +} from '@kbn/core-ui-settings-server'; +import type { InternalUiSettingsServiceStart } from './types'; /** * The {@link UiSettingsRequestHandlerContext} implementation. diff --git a/src/core/server/ui_settings/ui_settings_service.test.mock.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_service.test.mock.ts similarity index 100% rename from src/core/server/ui_settings/ui_settings_service.test.mock.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_service.test.mock.ts diff --git a/src/core/server/ui_settings/ui_settings_service.test.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_service.test.ts similarity index 100% rename from src/core/server/ui_settings/ui_settings_service.test.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_service.test.ts diff --git a/src/core/server/ui_settings/ui_settings_service.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_service.ts similarity index 94% rename from src/core/server/ui_settings/ui_settings_service.ts rename to packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_service.ts index 04f22e51828c1e..173547c8bda2e8 100644 --- a/src/core/server/ui_settings/ui_settings_service.ts +++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/ui_settings_service.ts @@ -13,20 +13,20 @@ import type { Logger } from '@kbn/logging'; import type { CoreContext, CoreService } from '@kbn/core-base-server-internal'; import type { InternalHttpServiceSetup } from '@kbn/core-http-server-internal'; import type { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server'; -import { InternalSavedObjectsServiceSetup } from '@kbn/core-saved-objects-server-internal'; -import { UiSettingsConfigType, config as uiConfigDefinition } from './ui_settings_config'; +import type { InternalSavedObjectsServiceSetup } from '@kbn/core-saved-objects-server-internal'; +import type { UiSettingsParams } from '@kbn/core-ui-settings-common'; +import { UiSettingsConfigType, uiSettingsConfig as uiConfigDefinition } from './ui_settings_config'; import { UiSettingsClient } from './ui_settings_client'; -import { +import type { InternalUiSettingsServicePreboot, InternalUiSettingsServiceSetup, InternalUiSettingsServiceStart, - UiSettingsParams, } from './types'; +import type { InternalUiSettingsRequestHandlerContext } from './internal_types'; import { uiSettingsType } from './saved_objects'; import { registerRoutes } from './routes'; import { getCoreSettings } from './settings'; import { UiSettingsDefaultsClient } from './ui_settings_defaults_client'; -import type { InternalUiSettingsRequestHandlerContext } from './internal_types'; export interface SetupDeps { http: InternalHttpServiceSetup; diff --git a/packages/core/ui-settings/core-ui-settings-server-internal/tsconfig.json b/packages/core/ui-settings/core-ui-settings-server-internal/tsconfig.json new file mode 100644 index 00000000000000..71bb40fe57f3f4 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server-internal/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "../../../../tsconfig.bazel.json", + "compilerOptions": { + "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": true, + "outDir": "target_types", + "stripInternal": false, + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ] +} diff --git a/packages/core/ui-settings/core-ui-settings-server-mocks/BUILD.bazel b/packages/core/ui-settings/core-ui-settings-server-mocks/BUILD.bazel new file mode 100644 index 00000000000000..332b7e19f9cf32 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server-mocks/BUILD.bazel @@ -0,0 +1,107 @@ +load("@npm//@bazel/typescript:index.bzl", "ts_config") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") +load("//src/dev/bazel:index.bzl", "jsts_transpiler", "pkg_npm", "pkg_npm_types", "ts_project") + +PKG_DIRNAME = "core-ui-settings-server-mocks" +PKG_REQUIRE_NAME = "@kbn/core-ui-settings-server-mocks" + +SOURCE_FILES = glob( + [ + "**/*.ts", + ], + exclude = [ + "**/*.config.js", + "**/*.test.*", + "**/*.stories.*", + "**/__snapshots__/**", + "**/integration_tests/**", + "**/mocks/**", + "**/scripts/**", + "**/storybook/**", + "**/test_fixtures/**", + "**/test_helpers/**", + ], +) + +SRCS = SOURCE_FILES + +filegroup( + name = "srcs", + srcs = SRCS, +) + +NPM_MODULE_EXTRA_FILES = [ + "package.json", +] + +RUNTIME_DEPS = [ +] + +TYPES_DEPS = [ + "@npm//@types/node", + "@npm//@types/jest", + "//packages/kbn-utility-types:npm_module_types", + "//packages/core/ui-settings/core-ui-settings-server:npm_module_types", + "//packages/core/ui-settings/core-ui-settings-server-internal:npm_module_types", +] + +jsts_transpiler( + name = "target_node", + srcs = SRCS, + build_pkg_name = package_name(), +) + +ts_config( + name = "tsconfig", + src = "tsconfig.json", + deps = [ + "//:tsconfig.base.json", + "//:tsconfig.bazel.json", + ], +) + +ts_project( + name = "tsc_types", + args = ['--pretty'], + srcs = SRCS, + deps = TYPES_DEPS, + declaration = True, + declaration_map = True, + emit_declaration_only = True, + out_dir = "target_types", + tsconfig = ":tsconfig", +) + +js_library( + name = PKG_DIRNAME, + srcs = NPM_MODULE_EXTRA_FILES, + deps = RUNTIME_DEPS + [":target_node"], + package_name = PKG_REQUIRE_NAME, + visibility = ["//visibility:public"], +) + +pkg_npm( + name = "npm_module", + deps = [":" + PKG_DIRNAME], +) + +filegroup( + name = "build", + srcs = [":npm_module"], + visibility = ["//visibility:public"], +) + +pkg_npm_types( + name = "npm_module_types", + srcs = SRCS, + deps = [":tsc_types"], + package_name = PKG_REQUIRE_NAME, + tsconfig = ":tsconfig", + visibility = ["//visibility:public"], +) + +filegroup( + name = "build_types", + srcs = [":npm_module_types"], + visibility = ["//visibility:public"], +) diff --git a/packages/core/ui-settings/core-ui-settings-server-mocks/README.md b/packages/core/ui-settings/core-ui-settings-server-mocks/README.md new file mode 100644 index 00000000000000..8ce5bc6201c166 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server-mocks/README.md @@ -0,0 +1,4 @@ +# @kbn/core-ui-settings-server-mocks + +This package contains the mocks for the server-side uiSettings service: +- `uiSettingsServiceMock` diff --git a/packages/core/ui-settings/core-ui-settings-server-mocks/index.ts b/packages/core/ui-settings/core-ui-settings-server-mocks/index.ts new file mode 100644 index 00000000000000..3a0ca94d059dd0 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server-mocks/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { uiSettingsServiceMock } from './src'; diff --git a/packages/core/ui-settings/core-ui-settings-server-mocks/jest.config.js b/packages/core/ui-settings/core-ui-settings-server-mocks/jest.config.js new file mode 100644 index 00000000000000..2e4e9bb23e8b92 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server-mocks/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/ui-settings/core-ui-settings-server-mocks'], +}; diff --git a/packages/core/ui-settings/core-ui-settings-server-mocks/kibana.jsonc b/packages/core/ui-settings/core-ui-settings-server-mocks/kibana.jsonc new file mode 100644 index 00000000000000..5426961c3a6635 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server-mocks/kibana.jsonc @@ -0,0 +1,7 @@ +{ + "type": "shared-common", + "id": "@kbn/core-ui-settings-server-mocks", + "owner": "@elastic/kibana-core", + "runtimeDeps": [], + "typeDeps": [], +} diff --git a/packages/core/ui-settings/core-ui-settings-server-mocks/package.json b/packages/core/ui-settings/core-ui-settings-server-mocks/package.json new file mode 100644 index 00000000000000..1984eb8ec5d616 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server-mocks/package.json @@ -0,0 +1,8 @@ +{ + "name": "@kbn/core-ui-settings-server-mocks", + "private": true, + "version": "1.0.0", + "main": "./target_node/index.js", + "author": "Kibana Core", + "license": "SSPL-1.0 OR Elastic License 2.0" +} diff --git a/packages/core/ui-settings/core-ui-settings-server-mocks/src/index.ts b/packages/core/ui-settings/core-ui-settings-server-mocks/src/index.ts new file mode 100644 index 00000000000000..1eaa0bff3a4c7f --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server-mocks/src/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { uiSettingsServiceMock } from './ui_settings_service.mock'; diff --git a/src/core/server/ui_settings/ui_settings_service.mock.ts b/packages/core/ui-settings/core-ui-settings-server-mocks/src/ui_settings_service.mock.ts similarity index 93% rename from src/core/server/ui_settings/ui_settings_service.mock.ts rename to packages/core/ui-settings/core-ui-settings-server-mocks/src/ui_settings_service.mock.ts index d505074ee824aa..8a8c3fddd1765d 100644 --- a/src/core/server/ui_settings/ui_settings_service.mock.ts +++ b/packages/core/ui-settings/core-ui-settings-server-mocks/src/ui_settings_service.mock.ts @@ -7,13 +7,13 @@ */ import type { PublicMethodsOf } from '@kbn/utility-types'; -import { - IUiSettingsClient, +import type { IUiSettingsClient } from '@kbn/core-ui-settings-server'; +import type { InternalUiSettingsServiceSetup, InternalUiSettingsServiceStart, InternalUiSettingsServicePreboot, -} from './types'; -import type { UiSettingsService } from './ui_settings_service'; + UiSettingsService, +} from '@kbn/core-ui-settings-server-internal'; const createClientMock = () => { const mocked: jest.Mocked = { diff --git a/packages/core/ui-settings/core-ui-settings-server-mocks/tsconfig.json b/packages/core/ui-settings/core-ui-settings-server-mocks/tsconfig.json new file mode 100644 index 00000000000000..71bb40fe57f3f4 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server-mocks/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "../../../../tsconfig.bazel.json", + "compilerOptions": { + "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": true, + "outDir": "target_types", + "stripInternal": false, + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ] +} diff --git a/packages/core/ui-settings/core-ui-settings-server/BUILD.bazel b/packages/core/ui-settings/core-ui-settings-server/BUILD.bazel new file mode 100644 index 00000000000000..c28f92633e9497 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server/BUILD.bazel @@ -0,0 +1,107 @@ +load("@npm//@bazel/typescript:index.bzl", "ts_config") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") +load("//src/dev/bazel:index.bzl", "jsts_transpiler", "pkg_npm", "pkg_npm_types", "ts_project") + +PKG_DIRNAME = "core-ui-settings-server" +PKG_REQUIRE_NAME = "@kbn/core-ui-settings-server" + +SOURCE_FILES = glob( + [ + "**/*.ts", + ], + exclude = [ + "**/*.config.js", + "**/*.mock.*", + "**/*.test.*", + "**/*.stories.*", + "**/__snapshots__/**", + "**/integration_tests/**", + "**/mocks/**", + "**/scripts/**", + "**/storybook/**", + "**/test_fixtures/**", + "**/test_helpers/**", + ], +) + +SRCS = SOURCE_FILES + +filegroup( + name = "srcs", + srcs = SRCS, +) + +NPM_MODULE_EXTRA_FILES = [ + "package.json", +] + +RUNTIME_DEPS = [ +] + +TYPES_DEPS = [ + "@npm//@types/node", + "@npm//@types/jest", + "//packages/core/saved-objects/core-saved-objects-api-server:npm_module_types", + "//packages/core/ui-settings/core-ui-settings-common:npm_module_types", +] + +jsts_transpiler( + name = "target_node", + srcs = SRCS, + build_pkg_name = package_name(), +) + +ts_config( + name = "tsconfig", + src = "tsconfig.json", + deps = [ + "//:tsconfig.base.json", + "//:tsconfig.bazel.json", + ], +) + +ts_project( + name = "tsc_types", + args = ['--pretty'], + srcs = SRCS, + deps = TYPES_DEPS, + declaration = True, + declaration_map = True, + emit_declaration_only = True, + out_dir = "target_types", + tsconfig = ":tsconfig", +) + +js_library( + name = PKG_DIRNAME, + srcs = NPM_MODULE_EXTRA_FILES, + deps = RUNTIME_DEPS + [":target_node"], + package_name = PKG_REQUIRE_NAME, + visibility = ["//visibility:public"], +) + +pkg_npm( + name = "npm_module", + deps = [":" + PKG_DIRNAME], +) + +filegroup( + name = "build", + srcs = [":npm_module"], + visibility = ["//visibility:public"], +) + +pkg_npm_types( + name = "npm_module_types", + srcs = SRCS, + deps = [":tsc_types"], + package_name = PKG_REQUIRE_NAME, + tsconfig = ":tsconfig", + visibility = ["//visibility:public"], +) + +filegroup( + name = "build_types", + srcs = [":npm_module_types"], + visibility = ["//visibility:public"], +) diff --git a/packages/core/ui-settings/core-ui-settings-server/README.md b/packages/core/ui-settings/core-ui-settings-server/README.md new file mode 100644 index 00000000000000..5150e7b6f7d227 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server/README.md @@ -0,0 +1,3 @@ +# @kbn/core-ui-settings-server + +This package contains the public types for the server-side ui-settings service. diff --git a/packages/core/ui-settings/core-ui-settings-server/index.ts b/packages/core/ui-settings/core-ui-settings-server/index.ts new file mode 100644 index 00000000000000..d2759b6f6d21cb --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server/index.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export type { + IUiSettingsClient, + UiSettingsServiceSetup, + UiSettingsServiceStart, + UiSettingsRequestHandlerContext, +} from './src'; diff --git a/packages/core/ui-settings/core-ui-settings-server/jest.config.js b/packages/core/ui-settings/core-ui-settings-server/jest.config.js new file mode 100644 index 00000000000000..9ed815b3f223c4 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-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/ui-settings/core-ui-settings-server'], +}; diff --git a/packages/core/ui-settings/core-ui-settings-server/kibana.jsonc b/packages/core/ui-settings/core-ui-settings-server/kibana.jsonc new file mode 100644 index 00000000000000..5ac08792e518ee --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server/kibana.jsonc @@ -0,0 +1,7 @@ +{ + "type": "shared-common", + "id": "@kbn/core-ui-settings-server", + "owner": "@elastic/kibana-core", + "runtimeDeps": [], + "typeDeps": [], +} diff --git a/packages/core/ui-settings/core-ui-settings-server/package.json b/packages/core/ui-settings/core-ui-settings-server/package.json new file mode 100644 index 00000000000000..930339f0db50ad --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server/package.json @@ -0,0 +1,8 @@ +{ + "name": "@kbn/core-ui-settings-server", + "private": true, + "version": "1.0.0", + "main": "./target_node/index.js", + "author": "Kibana Core", + "license": "SSPL-1.0 OR Elastic License 2.0" +} diff --git a/packages/core/ui-settings/core-ui-settings-server/src/contracts.ts b/packages/core/ui-settings/core-ui-settings-server/src/contracts.ts new file mode 100644 index 00000000000000..b078da6a4ec46f --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server/src/contracts.ts @@ -0,0 +1,52 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { UiSettingsParams } from '@kbn/core-ui-settings-common'; +import type { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server'; +import type { IUiSettingsClient } from './ui_settings_client'; + +/** @public */ +export interface UiSettingsServiceSetup { + /** + * Sets settings with default values for the uiSettings. + * @param settings + * + * @example + * ```ts + * setup(core: CoreSetup){ + * core.uiSettings.register([{ + * foo: { + * name: i18n.translate('my foo settings'), + * value: true, + * description: 'add some awesomeness', + * }, + * }]); + * } + * ``` + */ + register(settings: Record): void; +} + +/** @public */ +export interface UiSettingsServiceStart { + /** + * Creates a {@link IUiSettingsClient} with provided *scoped* saved objects client. + * + * This should only be used in the specific case where the client needs to be accessed + * from outside of the scope of a {@link RequestHandler}. + * + * @example + * ```ts + * start(core: CoreStart) { + * const soClient = core.savedObjects.getScopedClient(arbitraryRequest); + * const uiSettingsClient = core.uiSettings.asScopedToClient(soClient); + * } + * ``` + */ + asScopedToClient(savedObjectsClient: SavedObjectsClientContract): IUiSettingsClient; +} diff --git a/packages/core/ui-settings/core-ui-settings-server/src/index.ts b/packages/core/ui-settings/core-ui-settings-server/src/index.ts new file mode 100644 index 00000000000000..d409cb2e6757ec --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server/src/index.ts @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export type { IUiSettingsClient } from './ui_settings_client'; +export type { UiSettingsServiceSetup, UiSettingsServiceStart } from './contracts'; +export type { UiSettingsRequestHandlerContext } from './request_handler_context'; diff --git a/packages/core/ui-settings/core-ui-settings-server/src/request_handler_context.ts b/packages/core/ui-settings/core-ui-settings-server/src/request_handler_context.ts new file mode 100644 index 00000000000000..32c59539abf94d --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server/src/request_handler_context.ts @@ -0,0 +1,17 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { IUiSettingsClient } from './ui_settings_client'; + +/** + * Core's `uiSettings` request handler context. + * @public + */ +export interface UiSettingsRequestHandlerContext { + client: IUiSettingsClient; +} diff --git a/src/core/server/ui_settings/types.ts b/packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts similarity index 51% rename from src/core/server/ui_settings/types.ts rename to packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts index f782cf6c497ce6..fa8022be605c53 100644 --- a/src/core/server/ui_settings/types.ts +++ b/packages/core/ui-settings/core-ui-settings-server/src/ui_settings_client.ts @@ -6,20 +6,7 @@ * Side Public License, v 1. */ -import { - UiSettingsParams, - UserProvidedValues, - PublicUiSettingsParams, -} from '@kbn/core-ui-settings-common'; -import type { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server'; - -export type { - UiSettingsParams, - DeprecationSettings, - PublicUiSettingsParams, - UiSettingsType, - UserProvidedValues, -} from '@kbn/core-ui-settings-common'; +import type { UserProvidedValues, PublicUiSettingsParams } from '@kbn/core-ui-settings-common'; /** * Server-side client that provides access to the advanced settings stored in elasticsearch. @@ -71,64 +58,3 @@ export interface IUiSettingsClient { */ isSensitive: (key: string) => boolean; } - -/** @internal */ -export interface InternalUiSettingsServicePreboot { - /** - * Creates a {@link IUiSettingsClient} that returns default values for the Core uiSettings. - */ - createDefaultsClient(): IUiSettingsClient; -} - -/** @internal */ -export interface InternalUiSettingsServiceSetup { - /** - * Sets settings with default values for the uiSettings. - * @param settings - */ - register(settings: Record): void; -} - -/** @public */ -export interface UiSettingsServiceSetup { - /** - * Sets settings with default values for the uiSettings. - * @param settings - * - * @example - * ```ts - * setup(core: CoreSetup){ - * core.uiSettings.register([{ - * foo: { - * name: i18n.translate('my foo settings'), - * value: true, - * description: 'add some awesomeness', - * }, - * }]); - * } - * ``` - */ - register(settings: Record): void; -} - -/** @public */ -export interface UiSettingsServiceStart { - /** - * Creates a {@link IUiSettingsClient} with provided *scoped* saved objects client. - * - * This should only be used in the specific case where the client needs to be accessed - * from outside of the scope of a {@link RequestHandler}. - * - * @example - * ```ts - * start(core: CoreStart) { - * const soClient = core.savedObjects.getScopedClient(arbitraryRequest); - * const uiSettingsClient = core.uiSettings.asScopedToClient(soClient); - * } - * ``` - */ - asScopedToClient(savedObjectsClient: SavedObjectsClientContract): IUiSettingsClient; -} - -/** @internal */ -export type InternalUiSettingsServiceStart = UiSettingsServiceStart; diff --git a/packages/core/ui-settings/core-ui-settings-server/tsconfig.json b/packages/core/ui-settings/core-ui-settings-server/tsconfig.json new file mode 100644 index 00000000000000..71bb40fe57f3f4 --- /dev/null +++ b/packages/core/ui-settings/core-ui-settings-server/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "../../../../tsconfig.bazel.json", + "compilerOptions": { + "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": true, + "outDir": "target_types", + "stripInternal": false, + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ] +} diff --git a/packages/kbn-es-query/src/es_query/build_es_query.ts b/packages/kbn-es-query/src/es_query/build_es_query.ts index 1a0ac9cef15eef..497d38a0530cf0 100644 --- a/packages/kbn-es-query/src/es_query/build_es_query.ts +++ b/packages/kbn-es-query/src/es_query/build_es_query.ts @@ -45,7 +45,7 @@ function removeMatchAll(filters: T[]) { * @public */ export function buildEsQuery( - indexPattern: DataViewBase | undefined, + indexPattern: DataViewBase | DataViewBase[] | undefined, queries: AnyQuery | AnyQuery[], filters: Filter | Filter[], config: EsQueryConfig = { @@ -60,7 +60,7 @@ export function buildEsQuery( const validQueries = queries.filter(isOfQueryType).filter((query) => has(query, 'query')); const queriesByLanguage = groupBy(validQueries, 'language'); const kueryQuery = buildQueryFromKuery( - indexPattern, + Array.isArray(indexPattern) ? indexPattern[0] : indexPattern, queriesByLanguage.kuery, { allowLeadingWildcards: config.allowLeadingWildcards }, { diff --git a/packages/kbn-es-query/src/es_query/from_filters.test.ts b/packages/kbn-es-query/src/es_query/from_filters.test.ts index 78b719ccc0e625..d17b0de3768b12 100644 --- a/packages/kbn-es-query/src/es_query/from_filters.test.ts +++ b/packages/kbn-es-query/src/es_query/from_filters.test.ts @@ -15,6 +15,7 @@ describe('build query', () => { const indexPattern: DataViewBase = { fields, title: 'dataView', + id: '1', }; describe('buildQueryFromFilters', () => { @@ -201,5 +202,43 @@ describe('build query', () => { const result = buildQueryFromFilters(filters, indexPattern, { nestedIgnoreUnmapped: true }); expect(result.filter).toEqual(expectedESQueries); }); + + test('should work with multiple data views', () => { + const indexPattern2: DataViewBase = { + fields, + title: 'dataView', + id: '2', + }; + + const filters = [ + { + query: { query_string: { query: 'foo' } }, + meta: { index: '1' }, + }, + { + query: { query_string: { query: 'bar' } }, + meta: { index: '2' }, + }, + ] as Filter[]; + + const result = buildQueryFromFilters(filters, [indexPattern, indexPattern2], { + ignoreFilterIfFieldNotInIndex: false, + }); + + expect(result.filter).toMatchInlineSnapshot(` + Array [ + Object { + "query_string": Object { + "query": "foo", + }, + }, + Object { + "query_string": Object { + "query": "bar", + }, + }, + ] + `); + }); }); }); diff --git a/packages/kbn-es-query/src/es_query/from_filters.ts b/packages/kbn-es-query/src/es_query/from_filters.ts index 871ff77026b54e..2200648a52c4f8 100644 --- a/packages/kbn-es-query/src/es_query/from_filters.ts +++ b/packages/kbn-es-query/src/es_query/from_filters.ts @@ -64,27 +64,34 @@ export interface EsQueryFiltersConfig { * @public */ export const buildQueryFromFilters = ( - filters: Filter[] = [], - indexPattern: DataViewBase | undefined, + inputFilters: Filter[] = [], + inputDataViews: DataViewBase | DataViewBase[] | undefined, { ignoreFilterIfFieldNotInIndex = false, nestedIgnoreUnmapped }: EsQueryFiltersConfig = { ignoreFilterIfFieldNotInIndex: false, } ): BoolQuery => { - filters = filters.filter((filter) => filter && !isFilterDisabled(filter)); + const filters = inputFilters.filter((filter) => filter && !isFilterDisabled(filter)); + const indexPatterns = Array.isArray(inputDataViews) ? inputDataViews : [inputDataViews]; + + const findIndexPattern = (id: string | undefined) => { + return indexPatterns.find((index) => index?.id === id) || indexPatterns[0]; + }; const filtersToESQueries = (negate: boolean) => { return filters .filter((f) => !!f) .filter(filterNegate(negate)) - .filter( - (filter) => !ignoreFilterIfFieldNotInIndex || filterMatchesIndex(filter, indexPattern) - ) + .filter((filter) => { + const indexPattern = findIndexPattern(filter.meta?.index); + return !ignoreFilterIfFieldNotInIndex || filterMatchesIndex(filter, indexPattern); + }) .map((filter) => { - return migrateFilter(filter, indexPattern); + const indexPattern = findIndexPattern(filter.meta?.index); + const migratedFilter = migrateFilter(filter, indexPattern); + return handleNestedFilter(migratedFilter, indexPattern, { + ignoreUnmapped: nestedIgnoreUnmapped, + }); }) - .map((filter) => - handleNestedFilter(filter, indexPattern, { ignoreUnmapped: nestedIgnoreUnmapped }) - ) .map(cleanFilter) .map(translateToQuery); }; diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/core_app/styles/_globals_v7dark.scss b/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v7dark.scss similarity index 100% rename from packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/core_app/styles/_globals_v7dark.scss rename to packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v7dark.scss diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/core_app/styles/_globals_v7light.scss b/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v7light.scss similarity index 100% rename from packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/core_app/styles/_globals_v7light.scss rename to packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v7light.scss diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/core_app/styles/_globals_v8dark.scss b/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v8dark.scss similarity index 100% rename from packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/core_app/styles/_globals_v8dark.scss rename to packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v8dark.scss diff --git a/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/core_app/styles/_globals_v8light.scss b/packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v8light.scss similarity index 100% rename from packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/core_app/styles/_globals_v8light.scss rename to packages/kbn-optimizer/src/__fixtures__/mock_repo/src/core/public/styles/core_app/_globals_v8light.scss diff --git a/packages/kbn-optimizer/src/integration_tests/basic_optimization.test.ts b/packages/kbn-optimizer/src/integration_tests/basic_optimization.test.ts index e7f9e7d3c3b81e..fdd36c76f6e4d9 100644 --- a/packages/kbn-optimizer/src/integration_tests/basic_optimization.test.ts +++ b/packages/kbn-optimizer/src/integration_tests/basic_optimization.test.ts @@ -164,8 +164,8 @@ it('builds expected bundles, saves bundle counts to metadata', async () => { /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/public/legacy/_other_styles.scss, /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/public/legacy/styles.scss, /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/plugins/bar/public/lib.ts, - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/src/core/public/core_app/styles/_globals_v8dark.scss, - /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/src/core/public/core_app/styles/_globals_v8light.scss, + /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/src/core/public/styles/core_app/_globals_v8dark.scss, + /packages/kbn-optimizer/src/__fixtures__/__tmp__/mock_repo/src/core/public/styles/core_app/_globals_v8light.scss, /packages/kbn-optimizer/src/worker/entry_point_creator.ts, ] `); diff --git a/packages/kbn-optimizer/src/worker/webpack.config.ts b/packages/kbn-optimizer/src/worker/webpack.config.ts index 1b87498496b243..04074fb2b10b40 100644 --- a/packages/kbn-optimizer/src/worker/webpack.config.ts +++ b/packages/kbn-optimizer/src/worker/webpack.config.ts @@ -188,7 +188,7 @@ export function getWebpackConfig(bundle: Bundle, bundleRefs: BundleRefs, worker: loaderContext, Path.resolve( worker.repoRoot, - `src/core/public/core_app/styles/_globals_${theme}.scss` + `src/core/public/styles/core_app/_globals_${theme}.scss` ) )};\n${content}`; }, @@ -246,7 +246,10 @@ export function getWebpackConfig(bundle: Bundle, bundleRefs: BundleRefs, worker: extensions: ['.js', '.ts', '.tsx', '.json'], mainFields: ['browser', 'main'], alias: { - core_app_image_assets: Path.resolve(worker.repoRoot, 'src/core/public/core_app/images'), + core_app_image_assets: Path.resolve( + worker.repoRoot, + 'src/core/public/styles/core_app/images' + ), vega: Path.resolve(worker.repoRoot, 'node_modules/vega/build-es5/vega.js'), }, symlinks: false, diff --git a/packages/kbn-storybook/src/webpack.config.ts b/packages/kbn-storybook/src/webpack.config.ts index 880afe83528a84..3d00fb88a089a6 100644 --- a/packages/kbn-storybook/src/webpack.config.ts +++ b/packages/kbn-storybook/src/webpack.config.ts @@ -102,7 +102,7 @@ export default ({ config: storybookConfig }: { config: Configuration }) => { additionalData(content: string, loaderContext: any) { return `@import ${stringifyRequest( loaderContext, - resolve(REPO_ROOT, 'src/core/public/core_app/styles/_globals_v8light.scss') + resolve(REPO_ROOT, 'src/core/public/styles/core_app/_globals_v8light.scss') )};\n${content}`; }, implementation: require('node-sass'), @@ -120,7 +120,7 @@ export default ({ config: storybookConfig }: { config: Configuration }) => { extensions: ['.js', '.ts', '.tsx', '.json', '.mdx'], mainFields: ['browser', 'main'], alias: { - core_app_image_assets: resolve(REPO_ROOT, 'src/core/public/core_app/images'), + core_app_image_assets: resolve(REPO_ROOT, 'src/core/public/styles/core_app/images'), core_styles: resolve(REPO_ROOT, 'src/core/public/index.scss'), }, symlinks: false, diff --git a/packages/kbn-test/src/failed_tests_reporter/__fixtures__/cypress_report.xml b/packages/kbn-test/src/failed_tests_reporter/__fixtures__/cypress_report.xml index ed0e154552caac..c0c66e81db26d2 100644 --- a/packages/kbn-test/src/failed_tests_reporter/__fixtures__/cypress_report.xml +++ b/packages/kbn-test/src/failed_tests_reporter/__fixtures__/cypress_report.xml @@ -1,6 +1,6 @@ - + diff --git a/packages/kbn-test/src/failed_tests_reporter/add_messages_to_report.test.ts b/packages/kbn-test/src/failed_tests_reporter/add_messages_to_report.test.ts index 220a336915bf14..3b71823ee6bdeb 100644 --- a/packages/kbn-test/src/failed_tests_reporter/add_messages_to_report.test.ts +++ b/packages/kbn-test/src/failed_tests_reporter/add_messages_to_report.test.ts @@ -282,9 +282,9 @@ it('rewrites cypress reports with minimal changes', async () => { -‹?xml version="1.0" encoding="UTF-8"?› +‹?xml version="1.0" encoding="utf-8"?› ‹testsuites name="Mocha Tests" time="16.198" tests="2" failures="1"› - - ‹testsuite name="Root Suite" timestamp="2020-07-22T15:06:26" tests="0" file="cypress/integration/timeline_flyout_button.spec.ts" failures="0" time="0"› + - ‹testsuite name="Root Suite" timestamp="2020-07-22T15:06:26" tests="0" file="cypress/e2e/timeline_flyout_button.spec.ts" failures="0" time="0"› - ‹/testsuite› - + ‹testsuite name="Root Suite" timestamp="2020-07-22T15:06:26" tests="0" file="cypress/integration/timeline_flyout_button.spec.ts" failures="0" time="0"/› + + ‹testsuite name="Root Suite" timestamp="2020-07-22T15:06:26" tests="0" file="cypress/e2e/timeline_flyout_button.spec.ts" failures="0" time="0"/› ‹testsuite name="timeline flyout button" timestamp="2020-07-22T15:06:26" tests="2" failures="1" time="16.198"› - ‹testcase name="timeline flyout button toggles open the timeline" time="8.099" classname="toggles open the timeline"› - ‹/testcase› diff --git a/src/cli_setup/utils.ts b/src/cli_setup/utils.ts index de047a0540db45..e7fb5b6b63c547 100644 --- a/src/cli_setup/utils.ts +++ b/src/cli_setup/utils.ts @@ -13,7 +13,7 @@ import { merge } from 'lodash'; import { kibanaPackageJson } from '@kbn/utils'; import { Logger } from '@kbn/core/server'; -import { ClusterClient } from '@kbn/core-elasticsearch-client-server-internal'; +import { AgentManager, ClusterClient } from '@kbn/core-elasticsearch-client-server-internal'; import { configSchema } from '@kbn/core-elasticsearch-server-internal'; import { ElasticsearchService } from '@kbn/interactive-setup-plugin/server/elasticsearch_service'; import { KibanaConfigWriter } from '@kbn/interactive-setup-plugin/server/kibana_config_writer'; @@ -47,6 +47,8 @@ export const elasticsearch = new ElasticsearchService(logger, kibanaPackageJson. ), logger, type, + // we use an independent AgentManager for cli_setup, no need to track performance of this one + agentManager: new AgentManager(), }); }, }, diff --git a/src/core/public/core_system.test.mocks.ts b/src/core/public/core_system.test.mocks.ts index 2b378b02554cb0..f5b0c017dcd188 100644 --- a/src/core/public/core_system.test.mocks.ts +++ b/src/core/public/core_system.test.mocks.ts @@ -21,7 +21,7 @@ import { pluginsServiceMock } from './plugins/plugins_service.mock'; import { uiSettingsServiceMock } from '@kbn/core-ui-settings-browser-mocks'; import { renderingServiceMock } from '@kbn/core-rendering-browser-mocks'; import { integrationsServiceMock } from '@kbn/core-integrations-browser-mocks'; -import { coreAppMock } from './core_app/core_app.mock'; +import { coreAppsMock } from '@kbn/core-apps-browser-mocks'; export const analyticsServiceStartMock = analyticsServiceMock.createAnalyticsServiceStart(); export const MockAnalyticsService = analyticsServiceMock.create(); @@ -126,10 +126,10 @@ jest.doMock('@kbn/core-integrations-browser-internal', () => ({ IntegrationsService: IntegrationsServiceConstructor, })); -export const MockCoreApp = coreAppMock.create(); +export const MockCoreApp = coreAppsMock.create(); export const CoreAppConstructor = jest.fn().mockImplementation(() => MockCoreApp); -jest.doMock('./core_app', () => ({ - CoreApp: CoreAppConstructor, +jest.doMock('@kbn/core-apps-browser-internal', () => ({ + CoreAppsService: CoreAppConstructor, })); export const MockThemeService = themeServiceMock.create(); diff --git a/src/core/public/core_system.test.ts b/src/core/public/core_system.test.ts index f9f9f6e90afdd2..8e2e980e5ea945 100644 --- a/src/core/public/core_system.test.ts +++ b/src/core/public/core_system.test.ts @@ -52,6 +52,8 @@ import { } from './events'; jest.spyOn(CoreSystem.prototype, 'stop'); +(global.navigator as any).deviceMemory = 5; +jest.spyOn(global.navigator as any, 'hardwareConcurrency', 'get').mockReturnValue(4); const defaultCoreSystemParams = { rootDomElement: document.createElement('div'), @@ -292,6 +294,8 @@ describe('#start()', () => { meta: { kibana_version: '1.2.3', protocol: 'http:', + deviceMemory: '5', + hardwareConcurrency: '4', }, key1: LOAD_START, key2: LOAD_BOOTSTRAP_START, @@ -325,6 +329,8 @@ describe('#start()', () => { meta: { kibana_version: '1.2.3', protocol: 'http:', + deviceMemory: '5', + hardwareConcurrency: '4', ...performanceMemory, }, key1: LOAD_START, diff --git a/src/core/public/core_system.ts b/src/core/public/core_system.ts index cf3a9e6405f690..7b1e073e4b535d 100644 --- a/src/core/public/core_system.ts +++ b/src/core/public/core_system.ts @@ -38,10 +38,10 @@ import { type InternalApplicationStart, } from '@kbn/core-application-browser-internal'; import { RenderingService } from '@kbn/core-rendering-browser-internal'; +import { CoreAppsService } from '@kbn/core-apps-browser-internal'; import { fetchOptionalMemoryInfo } from './fetch_optional_memory_info'; import { CoreSetup, CoreStart } from '.'; import { PluginsService } from './plugins'; -import { CoreApp } from './core_app'; import { LOAD_SETUP_DONE, @@ -71,6 +71,17 @@ export interface InternalCoreStart extends Omit { injectedMetadata: InternalInjectedMetadataStart; } +// Expands the definition of navigator to include experimental features +interface ExtendedNavigator { + connection?: { + effectiveType?: string; + }; + // Estimated RAM + deviceMemory?: number; + // Number of cores + hardwareConcurrency?: number; +} + /** * The CoreSystem is the root of the new platform, and setups all parts * of Kibana in the UI, including the LegacyPlatform which is managed @@ -95,7 +106,7 @@ export class CoreSystem { private readonly docLinks: DocLinksService; private readonly rendering: RenderingService; private readonly integrations: IntegrationsService; - private readonly coreApp: CoreApp; + private readonly coreApp: CoreAppsService; private readonly deprecations: DeprecationsService; private readonly theme: ThemeService; private readonly rootDomElement: HTMLElement; @@ -140,7 +151,7 @@ export class CoreSystem { this.executionContext = new ExecutionContextService(); this.plugins = new PluginsService(this.coreContext, injectedMetadata.uiPlugins); - this.coreApp = new CoreApp(this.coreContext); + this.coreApp = new CoreAppsService(this.coreContext); performance.mark(KBN_LOAD_MARKS, { detail: LOAD_CORE_CREATED, @@ -168,12 +179,24 @@ export class CoreSystem { }); const timing = this.getLoadMarksInfo(); + + const navigatorExt = navigator as ExtendedNavigator; + const navigatorInfo: Record = {}; + if (navigatorExt.deviceMemory) { + navigatorInfo.deviceMemory = String(navigatorExt.deviceMemory); + } + if (navigatorExt.hardwareConcurrency) { + navigatorInfo.hardwareConcurrency = String(navigatorExt.hardwareConcurrency); + } + reportPerformanceMetricEvent(analytics, { eventName: KIBANA_LOADED_EVENT, meta: { kibana_version: this.coreContext.env.packageInfo.version, protocol: window.location.protocol, ...fetchOptionalMemoryInfo(), + // Report some hardware metrics for bucketing + ...navigatorInfo, }, duration: timing[LOAD_FIRST_NAV], key1: LOAD_START, diff --git a/src/core/public/index.ts b/src/core/public/index.ts index 9eba054ab53020..e5c137a6d5db4b 100644 --- a/src/core/public/index.ts +++ b/src/core/public/index.ts @@ -224,7 +224,7 @@ export type { export type { MountPoint, UnmountCallback, OverlayRef } from '@kbn/core-mount-utils-browser'; -export { URL_MAX_LENGTH } from './core_app'; +export { URL_MAX_LENGTH } from '@kbn/core-apps-browser-internal'; export type { KibanaExecutionContext } from '@kbn/core-execution-context-common'; diff --git a/src/core/public/styles/core_app/README.txt b/src/core/public/styles/core_app/README.txt new file mode 100644 index 00000000000000..06f79f0f1afc1e --- /dev/null +++ b/src/core/public/styles/core_app/README.txt @@ -0,0 +1 @@ +These files are only used by the sass loader, located here: `packages/kbn-optimizer/src/worker/webpack.config.ts` diff --git a/src/core/public/core_app/styles/_globals_v8dark.scss b/src/core/public/styles/core_app/_globals_v8dark.scss similarity index 100% rename from src/core/public/core_app/styles/_globals_v8dark.scss rename to src/core/public/styles/core_app/_globals_v8dark.scss diff --git a/src/core/public/core_app/styles/_globals_v8light.scss b/src/core/public/styles/core_app/_globals_v8light.scss similarity index 100% rename from src/core/public/core_app/styles/_globals_v8light.scss rename to src/core/public/styles/core_app/_globals_v8light.scss diff --git a/src/core/public/core_app/styles/_mixins.scss b/src/core/public/styles/core_app/_mixins.scss similarity index 100% rename from src/core/public/core_app/styles/_mixins.scss rename to src/core/public/styles/core_app/_mixins.scss diff --git a/src/core/public/core_app/images/bg_bottom_branded.svg b/src/core/public/styles/core_app/images/bg_bottom_branded.svg similarity index 100% rename from src/core/public/core_app/images/bg_bottom_branded.svg rename to src/core/public/styles/core_app/images/bg_bottom_branded.svg diff --git a/src/core/public/core_app/images/bg_bottom_branded_dark.svg b/src/core/public/styles/core_app/images/bg_bottom_branded_dark.svg similarity index 100% rename from src/core/public/core_app/images/bg_bottom_branded_dark.svg rename to src/core/public/styles/core_app/images/bg_bottom_branded_dark.svg diff --git a/src/core/public/core_app/images/bg_top_branded.svg b/src/core/public/styles/core_app/images/bg_top_branded.svg similarity index 100% rename from src/core/public/core_app/images/bg_top_branded.svg rename to src/core/public/styles/core_app/images/bg_top_branded.svg diff --git a/src/core/public/core_app/images/bg_top_branded_dark.svg b/src/core/public/styles/core_app/images/bg_top_branded_dark.svg similarity index 100% rename from src/core/public/core_app/images/bg_top_branded_dark.svg rename to src/core/public/styles/core_app/images/bg_top_branded_dark.svg diff --git a/src/core/server/core_app/internal_types.ts b/src/core/server/core_app/internal_types.ts index edb0a5195bd321..49e73a67a11a89 100644 --- a/src/core/server/core_app/internal_types.ts +++ b/src/core/server/core_app/internal_types.ts @@ -7,7 +7,7 @@ */ import type { IRouter, RequestHandlerContextBase } from '@kbn/core-http-server'; -import type { UiSettingsRequestHandlerContext } from '../ui_settings'; +import type { UiSettingsRequestHandlerContext } from '@kbn/core-ui-settings-server'; /** * Request handler context used by core's coreApp routes. diff --git a/src/core/server/core_route_handler_context.ts b/src/core/server/core_route_handler_context.ts index 52e49615971ab2..14cc99b5014366 100644 --- a/src/core/server/core_route_handler_context.ts +++ b/src/core/server/core_route_handler_context.ts @@ -13,7 +13,8 @@ import type { SavedObjectsRequestHandlerContext } from '@kbn/core-saved-objects- import { CoreSavedObjectsRouteHandlerContext } from '@kbn/core-saved-objects-server-internal'; import type { DeprecationsRequestHandlerContext } from '@kbn/core-deprecations-server'; import { CoreDeprecationsRouteHandlerContext } from '@kbn/core-deprecations-server-internal'; -import { CoreUiSettingsRouteHandlerContext, UiSettingsRequestHandlerContext } from './ui_settings'; +import type { UiSettingsRequestHandlerContext } from '@kbn/core-ui-settings-server'; +import { CoreUiSettingsRouteHandlerContext } from '@kbn/core-ui-settings-server-internal'; import type { InternalCoreStart } from './internal_types'; /** diff --git a/src/core/server/index.ts b/src/core/server/index.ts index 3aa3cbd52c4e4c..67c29f0fb747c7 100644 --- a/src/core/server/index.ts +++ b/src/core/server/index.ts @@ -68,10 +68,10 @@ import type { DeprecationsServiceSetup } from '@kbn/core-deprecations-server'; import type { CoreUsageDataStart, CoreUsageDataSetup } from '@kbn/core-usage-data-server'; import type { I18nServiceSetup } from '@kbn/core-i18n-server'; import type { StatusServiceSetup } from '@kbn/core-status-server'; +import type { UiSettingsServiceSetup, UiSettingsServiceStart } from '@kbn/core-ui-settings-server'; import { HttpResources } from './http_resources'; import { PluginsServiceSetup, PluginsServiceStart, PluginOpaqueId } from './plugins'; -import { UiSettingsServiceSetup, UiSettingsServiceStart } from './ui_settings'; import type { CoreRequestHandlerContext } from './core_route_handler_context'; import type { PrebootCoreRequestHandlerContext } from './preboot_core_route_handler_context'; @@ -397,16 +397,18 @@ export type { } from '@kbn/core-saved-objects-import-export-server-internal'; export type { - IUiSettingsClient, UiSettingsParams, PublicUiSettingsParams, UiSettingsType, - UiSettingsServiceSetup, - UiSettingsServiceStart, UserProvidedValues, DeprecationSettings, +} from '@kbn/core-ui-settings-common'; +export type { + IUiSettingsClient, + UiSettingsServiceSetup, + UiSettingsServiceStart, UiSettingsRequestHandlerContext, -} from './ui_settings'; +} from '@kbn/core-ui-settings-server'; export type { OpsMetrics, diff --git a/src/core/server/integration_tests/ui_settings/create_or_upgrade.test.ts b/src/core/server/integration_tests/ui_settings/create_or_upgrade.test.ts index f464c8828ce15f..fa3e236507e82a 100644 --- a/src/core/server/integration_tests/ui_settings/create_or_upgrade.test.ts +++ b/src/core/server/integration_tests/ui_settings/create_or_upgrade.test.ts @@ -13,11 +13,12 @@ import { TestKibanaUtils, TestUtils, } from '../../../test_helpers/kbn_server'; -import { createOrUpgradeSavedConfig } from '../../ui_settings/create_or_upgrade_saved_config'; import { loggingSystemMock } from '@kbn/core-logging-server-mocks'; import { httpServerMock } from '@kbn/core-http-server-mocks'; +import { createOrUpgradeSavedConfig } from '@kbn/core-ui-settings-server-internal'; const logger = loggingSystemMock.create().get(); + describe('createOrUpgradeSavedConfig()', () => { let savedObjectsClient: SavedObjectsClientContract; let servers: TestUtils; diff --git a/src/core/server/internal_types.ts b/src/core/server/internal_types.ts index 4a74d2e0aadcb6..e744ae01d1be06 100644 --- a/src/core/server/internal_types.ts +++ b/src/core/server/internal_types.ts @@ -53,11 +53,11 @@ import type { CoreUsageDataStart } from '@kbn/core-usage-data-server'; import type { InternalCoreUsageDataSetup } from '@kbn/core-usage-data-base-server-internal'; import type { I18nServiceSetup } from '@kbn/core-i18n-server'; import type { InternalStatusServiceSetup } from '@kbn/core-status-server-internal'; -import { +import type { InternalUiSettingsServicePreboot, InternalUiSettingsServiceSetup, InternalUiSettingsServiceStart, -} from './ui_settings'; +} from '@kbn/core-ui-settings-server-internal'; import { InternalRenderingServiceSetup } from './rendering'; import { InternalHttpResourcesPreboot, InternalHttpResourcesSetup } from './http_resources'; diff --git a/src/core/server/mocks.ts b/src/core/server/mocks.ts index 66ff3aea68b379..6c2ef712cbf566 100644 --- a/src/core/server/mocks.ts +++ b/src/core/server/mocks.ts @@ -30,6 +30,7 @@ import { deprecationsServiceMock } from '@kbn/core-deprecations-server-mocks'; import { coreUsageDataServiceMock } from '@kbn/core-usage-data-server-mocks'; import { i18nServiceMock } from '@kbn/core-i18n-server-mocks'; import { statusServiceMock } from '@kbn/core-status-server-mocks'; +import { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks'; import type { PluginInitializerContext, CoreSetup, @@ -40,7 +41,6 @@ import type { } from '.'; import { httpResourcesMock } from './http_resources/http_resources_service.mock'; import { renderingMock } from './rendering/rendering_service.mock'; -import { uiSettingsServiceMock } from './ui_settings/ui_settings_service.mock'; import { SharedGlobalConfig } from './plugins'; export { configServiceMock, configDeprecationsMock } from '@kbn/config-mocks'; @@ -55,7 +55,7 @@ export { savedObjectsRepositoryMock, } from '@kbn/core-saved-objects-api-server-mocks'; export { migrationMocks } from '@kbn/core-saved-objects-migration-server-mocks'; -export { uiSettingsServiceMock } from './ui_settings/ui_settings_service.mock'; +export { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks'; export { metricsServiceMock } from '@kbn/core-metrics-server-mocks'; export { renderingMock } from './rendering/rendering_service.mock'; export { statusServiceMock } from '@kbn/core-status-server-mocks'; diff --git a/src/core/server/preboot_core_route_handler_context.ts b/src/core/server/preboot_core_route_handler_context.ts index ba3cc445f69583..ec5ef594180d1d 100644 --- a/src/core/server/preboot_core_route_handler_context.ts +++ b/src/core/server/preboot_core_route_handler_context.ts @@ -7,8 +7,8 @@ */ // eslint-disable-next-line max-classes-per-file -import { InternalCorePreboot } from './internal_types'; -import { IUiSettingsClient } from './ui_settings'; +import type { IUiSettingsClient } from '@kbn/core-ui-settings-server'; +import type { InternalCorePreboot } from './internal_types'; /** * @public diff --git a/src/core/server/rendering/bootstrap/bootstrap_renderer.test.ts b/src/core/server/rendering/bootstrap/bootstrap_renderer.test.ts index 54b5b539bbd680..a1ed415f72c42b 100644 --- a/src/core/server/rendering/bootstrap/bootstrap_renderer.test.ts +++ b/src/core/server/rendering/bootstrap/bootstrap_renderer.test.ts @@ -17,7 +17,7 @@ import { PackageInfo } from '@kbn/config'; import { AuthStatus } from '@kbn/core-http-server'; import { UiPlugins } from '../../plugins'; import { httpServiceMock, httpServerMock } from '@kbn/core-http-server-mocks'; -import { uiSettingsServiceMock } from '../../ui_settings/ui_settings_service.mock'; +import { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks'; import { bootstrapRendererFactory, BootstrapRenderer } from './bootstrap_renderer'; const createPackageInfo = (parts: Partial = {}): PackageInfo => ({ diff --git a/src/core/server/rendering/bootstrap/bootstrap_renderer.ts b/src/core/server/rendering/bootstrap/bootstrap_renderer.ts index 02325a621210d1..4c20f8d3d799aa 100644 --- a/src/core/server/rendering/bootstrap/bootstrap_renderer.ts +++ b/src/core/server/rendering/bootstrap/bootstrap_renderer.ts @@ -10,8 +10,8 @@ import { createHash } from 'crypto'; import { PackageInfo } from '@kbn/config'; import { ThemeVersion } from '@kbn/ui-shared-deps-npm'; import type { KibanaRequest, HttpAuth } from '@kbn/core-http-server'; +import type { IUiSettingsClient } from '@kbn/core-ui-settings-server'; import { UiPlugins } from '../../plugins'; -import { IUiSettingsClient } from '../../ui_settings'; import { getPluginsBundlePaths } from './get_plugin_bundle_paths'; import { getJsDependencyPaths } from './get_js_dependency_paths'; import { getThemeTag } from './get_theme_tag'; diff --git a/src/core/server/rendering/internal_types.ts b/src/core/server/rendering/internal_types.ts index 92a5e8bdd0af71..6f63439f4f8ad6 100644 --- a/src/core/server/rendering/internal_types.ts +++ b/src/core/server/rendering/internal_types.ts @@ -7,7 +7,7 @@ */ import type { RequestHandlerContextBase, IRouter } from '@kbn/core-http-server'; -import type { UiSettingsRequestHandlerContext } from '../ui_settings'; +import type { UiSettingsRequestHandlerContext } from '@kbn/core-ui-settings-server'; /** * Request handler context used by core's rendering routes. diff --git a/src/core/server/rendering/render_utils.ts b/src/core/server/rendering/render_utils.ts index 0482d5eff6df57..c64bf337adf942 100644 --- a/src/core/server/rendering/render_utils.ts +++ b/src/core/server/rendering/render_utils.ts @@ -8,7 +8,7 @@ import UiSharedDepsNpm from '@kbn/ui-shared-deps-npm'; import * as UiSharedDepsSrc from '@kbn/ui-shared-deps-src'; -import { PublicUiSettingsParams, UserProvidedValues } from '../ui_settings'; +import type { PublicUiSettingsParams, UserProvidedValues } from '@kbn/core-ui-settings-common'; export const getSettingValue = ( settingName: string, diff --git a/src/core/server/rendering/rendering_service.test.ts b/src/core/server/rendering/rendering_service.test.ts index 477e169b3328fc..424bcd8a6533b3 100644 --- a/src/core/server/rendering/rendering_service.test.ts +++ b/src/core/server/rendering/rendering_service.test.ts @@ -17,7 +17,7 @@ import { load } from 'cheerio'; import { mockRouter } from '@kbn/core-http-router-server-mocks'; import { httpServerMock } from '@kbn/core-http-server-mocks'; -import { uiSettingsServiceMock } from '../ui_settings/ui_settings_service.mock'; +import { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks'; import { mockRenderingServiceParams, mockRenderingPrebootDeps, diff --git a/src/core/server/rendering/rendering_service.tsx b/src/core/server/rendering/rendering_service.tsx index 33da58887533d4..c5b56a06782bcd 100644 --- a/src/core/server/rendering/rendering_service.tsx +++ b/src/core/server/rendering/rendering_service.tsx @@ -15,6 +15,7 @@ import type { ThemeVersion } from '@kbn/ui-shared-deps-npm'; import { firstValueFrom, of } from 'rxjs'; import type { CoreContext } from '@kbn/core-base-server-internal'; import type { KibanaRequest, HttpAuth } from '@kbn/core-http-server'; +import type { IUiSettingsClient } from '@kbn/core-ui-settings-server'; import type { UiPlugins } from '../plugins'; import { Template } from './views'; import { @@ -27,7 +28,6 @@ import { } from './types'; import { registerBootstrapRoute, bootstrapRendererFactory } from './bootstrap'; import { getSettingValue, getStylesheetPaths } from './render_utils'; -import { IUiSettingsClient } from '../ui_settings'; import { filterUiPlugins } from './filter_ui_plugins'; import type { InternalRenderingRequestHandlerContext } from './internal_types'; diff --git a/src/core/server/rendering/types.ts b/src/core/server/rendering/types.ts index 60059637beb58b..7068d2a9b789d9 100644 --- a/src/core/server/rendering/types.ts +++ b/src/core/server/rendering/types.ts @@ -16,8 +16,8 @@ import type { } from '@kbn/core-http-server-internal'; import type { InternalElasticsearchServiceSetup } from '@kbn/core-elasticsearch-server-internal'; import type { InternalStatusServiceSetup } from '@kbn/core-status-server-internal'; +import type { IUiSettingsClient } from '@kbn/core-ui-settings-server'; import { UiPlugins } from '../plugins'; -import { IUiSettingsClient } from '../ui_settings'; /** @internal */ export interface RenderingMetadata { diff --git a/src/core/server/server.test.mocks.ts b/src/core/server/server.test.mocks.ts index 0b055ea5a8cf50..dec2b17ae8c611 100644 --- a/src/core/server/server.test.mocks.ts +++ b/src/core/server/server.test.mocks.ts @@ -51,10 +51,10 @@ jest.doMock('@kbn/core-http-context-server-internal', () => ({ ContextService: jest.fn(() => mockContextService), })); -import { uiSettingsServiceMock } from './ui_settings/ui_settings_service.mock'; +import { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks'; export const mockUiSettingsService = uiSettingsServiceMock.create(); -jest.doMock('./ui_settings/ui_settings_service', () => ({ +jest.doMock('@kbn/core-ui-settings-server-internal', () => ({ UiSettingsService: jest.fn(() => mockUiSettingsService), })); diff --git a/src/core/server/server.ts b/src/core/server/server.ts index 751da1845224d2..aa747a1023b351 100644 --- a/src/core/server/server.ts +++ b/src/core/server/server.ts @@ -57,13 +57,12 @@ import { } from '@kbn/core-deprecations-server-internal'; import { CoreUsageDataService } from '@kbn/core-usage-data-server-internal'; import { StatusService, statusConfig } from '@kbn/core-status-server-internal'; +import { UiSettingsService, uiSettingsConfig } from '@kbn/core-ui-settings-server-internal'; + import { CoreApp } from './core_app'; import { HttpResourcesService } from './http_resources'; import { RenderingService } from './rendering'; -import { UiSettingsService } from './ui_settings'; import { PluginsService, config as pluginsConfig } from './plugins'; - -import { config as uiSettingsConfig } from './ui_settings'; import { InternalCorePreboot, InternalCoreSetup, InternalCoreStart } from './internal_types'; import { CoreRouteHandlerContext } from './core_route_handler_context'; import { PrebootCoreRouteHandlerContext } from './preboot_core_route_handler_context'; diff --git a/src/core/server/types.ts b/src/core/server/types.ts index 966380ba99c8fa..130674543ae48f 100644 --- a/src/core/server/types.ts +++ b/src/core/server/types.ts @@ -47,4 +47,16 @@ export type { } from '@kbn/core-deprecations-common'; export type { ExternalUrlConfig } from '@kbn/core-http-server-internal'; export type { SavedObjectStatusMeta } from '@kbn/core-saved-objects-server'; -export * from './ui_settings/types'; +export type { + UiSettingsParams, + PublicUiSettingsParams, + UiSettingsType, + UserProvidedValues, + DeprecationSettings, +} from '@kbn/core-ui-settings-common'; +export type { + IUiSettingsClient, + UiSettingsServiceSetup, + UiSettingsServiceStart, + UiSettingsRequestHandlerContext, +} from '@kbn/core-ui-settings-server'; diff --git a/src/plugins/chart_expressions/expression_xy/common/expression_functions/annotation_layer.ts b/src/plugins/chart_expressions/expression_xy/common/expression_functions/annotation_layer.ts index 85de554f435e5c..9048e6019db898 100644 --- a/src/plugins/chart_expressions/expression_xy/common/expression_functions/annotation_layer.ts +++ b/src/plugins/chart_expressions/expression_xy/common/expression_functions/annotation_layer.ts @@ -24,6 +24,10 @@ export function annotationLayerFunction(): ExpressionFunctionDefinition< inputTypes: ['datatable'], help: strings.getAnnotationLayerFnHelp(), args: { + layerId: { + types: ['string'], + help: strings.getLayerIdHelp(), + }, simpleView: { types: ['boolean'], default: false, diff --git a/src/plugins/chart_expressions/expression_xy/common/expression_functions/layered_xy_vis_fn.ts b/src/plugins/chart_expressions/expression_xy/common/expression_functions/layered_xy_vis_fn.ts index 50549d5f8ac1ca..1eed6aca1cea54 100644 --- a/src/plugins/chart_expressions/expression_xy/common/expression_functions/layered_xy_vis_fn.ts +++ b/src/plugins/chart_expressions/expression_xy/common/expression_functions/layered_xy_vis_fn.ts @@ -26,7 +26,13 @@ export const layeredXyVisFn: LayeredXyVisFn['fn'] = async (data, args, handlers) if (args.singleTable) { logDatatable(data, layers, handlers, args.splitColumnAccessor, args.splitRowAccessor); } else { - logDatatables(layers, handlers, args.splitColumnAccessor, args.splitRowAccessor); + logDatatables( + layers, + handlers, + args.splitColumnAccessor, + args.splitRowAccessor, + args.annotations + ); } const hasBar = hasBarLayer(dataLayers); diff --git a/src/plugins/chart_expressions/expression_xy/common/i18n/index.tsx b/src/plugins/chart_expressions/expression_xy/common/i18n/index.tsx index 1e9df3c3ffe64c..d9fc015c2844c4 100644 --- a/src/plugins/chart_expressions/expression_xy/common/i18n/index.tsx +++ b/src/plugins/chart_expressions/expression_xy/common/i18n/index.tsx @@ -329,4 +329,12 @@ export const strings = { i18n.translate('expressionXY.referenceLine.Value.help', { defaultMessage: 'Reference line value', }), + getTimeLabel: () => + i18n.translate('expressionXY.annotation.time', { + defaultMessage: 'Time', + }), + getLabelLabel: () => + i18n.translate('expressionXY.annotation.label', { + defaultMessage: 'Label', + }), }; diff --git a/src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts b/src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts index 43d05eda09b237..50262ab27a2055 100644 --- a/src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts +++ b/src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts @@ -291,12 +291,13 @@ export interface XYProps { } export interface AnnotationLayerArgs { + layerId: string; annotations: EventAnnotationOutput[]; simpleView?: boolean; } export type ExtendedAnnotationLayerArgs = AnnotationLayerArgs & { - layerId?: string; + layerId: string; }; export type AnnotationLayerConfigResult = AnnotationLayerArgs & { diff --git a/src/plugins/chart_expressions/expression_xy/common/utils/log_datatables.ts b/src/plugins/chart_expressions/expression_xy/common/utils/log_datatables.ts index 5b04b1bdf0d426..4cb20a44b5c92b 100644 --- a/src/plugins/chart_expressions/expression_xy/common/utils/log_datatables.ts +++ b/src/plugins/chart_expressions/expression_xy/common/utils/log_datatables.ts @@ -6,18 +6,26 @@ * Side Public License, v 1. */ +import { QueryPointEventAnnotationOutput } from '@kbn/event-annotation-plugin/common'; import { Datatable, ExecutionContext } from '@kbn/expressions-plugin/common'; import { ExpressionValueVisDimension } from '@kbn/visualizations-plugin/common'; import { Dimension, prepareLogTable } from '@kbn/visualizations-plugin/common/utils'; import { LayerTypes, REFERENCE_LINE } from '../constants'; import { strings } from '../i18n'; -import { CommonXYDataLayerConfig, CommonXYLayerConfig, ReferenceLineLayerConfig } from '../types'; +import { + AnnotationLayerConfigResult, + CommonXYDataLayerConfig, + CommonXYLayerConfig, + ExpressionAnnotationResult, + ReferenceLineLayerConfig, +} from '../types'; export const logDatatables = ( layers: CommonXYLayerConfig[], handlers: ExecutionContext, splitColumnAccessor?: string | ExpressionValueVisDimension, - splitRowAccessor?: string | ExpressionValueVisDimension + splitRowAccessor?: string | ExpressionValueVisDimension, + annotations?: ExpressionAnnotationResult ) => { if (!handlers?.inspectorAdapters?.tables) { return; @@ -45,6 +53,35 @@ export const logDatatables = ( const logTable = prepareLogTable(layer.table, layerDimensions, true); handlers.inspectorAdapters.tables.logDatatable(layer.layerId, logTable); }); + if (annotations) { + annotations.layers.forEach((layer) => { + const logTable = getLogAnnotationTable(annotations.datatable, layer); + handlers.inspectorAdapters.tables.logDatatable(layer.layerId, logTable); + }); + } +}; + +const getLogAnnotationTable = (data: Datatable, layer: AnnotationLayerConfigResult) => { + const layerDimensions: Dimension[] = [ + [['label'], strings.getLabelLabel()], + [['time'], strings.getTimeLabel()], + ]; + const layerAnnotationsId = new Set(layer.annotations.map((annotation) => annotation.id)); + layer.annotations + .filter((a): a is QueryPointEventAnnotationOutput => a.type === 'query_point_event_annotation') + .forEach((annotation) => { + const dynamicDimensions: Dimension[] = [ + ...(annotation.extraFields ? annotation.extraFields : []), + ...(annotation.textField ? [annotation.textField] : []), + ].map((f) => [[`field:${f}`], f]); + layerDimensions.push(...dynamicDimensions); + }); + + return prepareLogTable( + { ...data, rows: data.rows.filter((row) => layerAnnotationsId.has(row.id)) }, + layerDimensions, + true + ); }; export const logDatatable = ( diff --git a/src/plugins/chart_expressions/expression_xy/public/components/annotations.tsx b/src/plugins/chart_expressions/expression_xy/public/components/annotations.tsx index fd5cdd874bc22a..4b0f747dc24bb9 100644 --- a/src/plugins/chart_expressions/expression_xy/public/components/annotations.tsx +++ b/src/plugins/chart_expressions/expression_xy/public/components/annotations.tsx @@ -9,7 +9,7 @@ import './annotations.scss'; import './reference_lines/reference_lines.scss'; -import React from 'react'; +import React, { Fragment } from 'react'; import { groupBy, snakeCase } from 'lodash'; import { AnnotationDomainType, @@ -76,7 +76,7 @@ const TooltipAnnotationHeader = ({ const TooltipAnnotationDetails = ({ row, extraFields, - isGrouped, + timeFormat, }: { row: PointEventAnnotationRow; extraFields: Array<{ @@ -84,13 +84,12 @@ const TooltipAnnotationDetails = ({ name: string; formatter: FieldFormat | undefined; }>; - isGrouped?: boolean; + timeFormat: string; }) => { return (
- {isGrouped &&
{moment(row.time).format('YYYY-MM-DD, hh:mm:ss')}
} - +
{moment(row.time).format(timeFormat)}
{extraFields.map((field) => (
@@ -125,7 +124,8 @@ const createCustomTooltipDetails = ( rows: PointEventAnnotationRow[], formatFactory: FormatFactory, - columns: DatatableColumn[] | undefined + columns: DatatableColumn[] | undefined, + timeFormat: string ): AnnotationTooltipFormatter => () => { const groupedConfigs = groupBy(rows, 'id'); @@ -137,7 +137,7 @@ const createCustomTooltipDetails = const extraFields = getExtraFields(firstElement, formatFactory, columns); return ( -
+
{group.map((row, index) => ( - <> + {index > 0 && ( <> @@ -157,11 +157,11 @@ const createCustomTooltipDetails = )} 1} row={row} extraFields={extraFields} + timeFormat={timeFormat} /> - + ))}
@@ -220,7 +220,8 @@ export const getAnnotationsGroupedByInterval = ( annotations: PointEventAnnotationRow[], configs: EventAnnotationOutput[] | undefined, columns: DatatableColumn[] | undefined, - formatFactory: FormatFactory + formatFactory: FormatFactory, + timeFormat: string ) => { const visibleGroupedConfigs = annotations.reduce>( (acc, current) => { @@ -249,7 +250,12 @@ export const getAnnotationsGroupedByInterval = ( icon: firstRow.icon || 'triangle', timebucket: Number(timebucket), position: 'bottom', - customTooltipDetails: createCustomTooltipDetails(rowsPerBucket, formatFactory, columns), + customTooltipDetails: createCustomTooltipDetails( + rowsPerBucket, + formatFactory, + columns, + timeFormat + ), isGrouped: false, }; if (rowsPerBucket.length > 1) { diff --git a/src/plugins/chart_expressions/expression_xy/public/components/xy_chart.test.tsx b/src/plugins/chart_expressions/expression_xy/public/components/xy_chart.test.tsx index 279e1e846ef85a..30b1abaad08409 100644 --- a/src/plugins/chart_expressions/expression_xy/public/components/xy_chart.test.tsx +++ b/src/plugins/chart_expressions/expression_xy/public/components/xy_chart.test.tsx @@ -120,6 +120,7 @@ describe('XYChart component', () => { useLegacyTimeAxis: false, eventAnnotationService: eventAnnotationServiceMock, renderComplete: jest.fn(), + timeFormat: 'MMM D, YYYY @ HH:mm:ss.SSS', }; }); @@ -3073,6 +3074,7 @@ describe('XYChart component', () => { const createLayerWithAnnotations = ( annotations: EventAnnotationOutput[] = [defaultLineStaticAnnotation] ): AnnotationLayerConfigResult => ({ + layerId: 'annotations', type: 'annotationLayer', layerType: LayerTypes.ANNOTATIONS, annotations, @@ -3145,7 +3147,7 @@ describe('XYChart component', () => { // checking tooltip const renderLinks = mount(
{groupedAnnotation.prop('customTooltipDetails')!()}
); expect(renderLinks.text()).toEqual( - ' Event 12022-03-18, 04:25:002022-03-18, 04:25:002022-03-18, 04:25:00' + ' Event 1Mar 18, 2022 @ 04:25:00.000Mar 18, 2022 @ 04:25:00.020Mar 18, 2022 @ 04:25:00.001' ); }); diff --git a/src/plugins/chart_expressions/expression_xy/public/components/xy_chart.tsx b/src/plugins/chart_expressions/expression_xy/public/components/xy_chart.tsx index 9fb415308635e9..334f9fe9bb31f9 100644 --- a/src/plugins/chart_expressions/expression_xy/public/components/xy_chart.tsx +++ b/src/plugins/chart_expressions/expression_xy/public/components/xy_chart.tsx @@ -128,6 +128,7 @@ export type XYChartRenderProps = XYChartProps & { eventAnnotationService: EventAnnotationServiceType; renderComplete: () => void; uiState?: PersistedState; + timeFormat: string; }; function getValueLabelsStyling(isHorizontal: boolean): { @@ -189,6 +190,7 @@ export function XYChart({ data, formatFactory, timeZone, + timeFormat, chartsThemeService, chartsActiveCursorService, paletteService, @@ -408,7 +410,8 @@ export function XYChart({ lineAnnotations as PointEventAnnotationRow[], annotationsConfigs, annotations?.datatable.columns, - formatFactory + formatFactory, + timeFormat ); const visualConfigs = [ diff --git a/src/plugins/chart_expressions/expression_xy/public/expression_renderers/xy_chart_renderer.tsx b/src/plugins/chart_expressions/expression_xy/public/expression_renderers/xy_chart_renderer.tsx index 3bab1c2a1accd4..ee61e7974157c6 100644 --- a/src/plugins/chart_expressions/expression_xy/public/expression_renderers/xy_chart_renderer.tsx +++ b/src/plugins/chart_expressions/expression_xy/public/expression_renderers/xy_chart_renderer.tsx @@ -36,6 +36,7 @@ export type GetStartDepsFn = () => Promise<{ activeCursor: ChartsPluginStart['activeCursor']; paletteService: PaletteRegistry; timeZone: string; + timeFormat: string; useLegacyTimeAxis: boolean; kibanaTheme: ThemeServiceStart; eventAnnotationService: EventAnnotationServiceType; @@ -153,6 +154,7 @@ export const getXyChartRenderer = ({ chartsThemeService={deps.theme} paletteService={deps.paletteService} timeZone={deps.timeZone} + timeFormat={deps.timeFormat} eventAnnotationService={deps.eventAnnotationService} useLegacyTimeAxis={deps.useLegacyTimeAxis} minInterval={calculateMinInterval(deps.data.datatableUtilities, config)} diff --git a/src/plugins/chart_expressions/expression_xy/public/plugin.ts b/src/plugins/chart_expressions/expression_xy/public/plugin.ts index 2de8dcd3d1e583..9c76a0d59395fe 100755 --- a/src/plugins/chart_expressions/expression_xy/public/plugin.ts +++ b/src/plugins/chart_expressions/expression_xy/public/plugin.ts @@ -97,6 +97,7 @@ export class ExpressionXyPlugin { useLegacyTimeAxis, eventAnnotationService, timeZone: getTimeZone(core.uiSettings), + timeFormat: core.uiSettings.get('dateFormat'), }; }; diff --git a/src/plugins/data/common/search/strategies/eql_search/types.ts b/src/plugins/data/common/search/strategies/eql_search/types.ts index 7f6ec4809b2c5d..985dbb409e2056 100644 --- a/src/plugins/data/common/search/strategies/eql_search/types.ts +++ b/src/plugins/data/common/search/strategies/eql_search/types.ts @@ -16,6 +16,9 @@ export const EQL_SEARCH_STRATEGY = 'eql'; export type EqlRequestParams = EqlSearchRequest; export interface EqlSearchStrategyRequest extends IKibanaSearchRequest { + /** + * @deprecated: use IAsyncSearchOptions.transport instead. + */ options?: TransportRequestOptions; } diff --git a/src/plugins/data/common/search/types.ts b/src/plugins/data/common/search/types.ts index fec48e2a54a0af..802af347b8e69a 100644 --- a/src/plugins/data/common/search/types.ts +++ b/src/plugins/data/common/search/types.ts @@ -5,6 +5,8 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ + +import type { TransportRequestOptions } from '@elastic/elasticsearch'; import type { KibanaExecutionContext } from '@kbn/core/public'; import type { DataView } from '@kbn/data-views-plugin/common'; import { Observable } from 'rxjs'; @@ -132,6 +134,12 @@ export interface ISearchOptions { * Index pattern reference is used for better error messages */ indexPattern?: DataView; + + /** + * TransportRequestOptions, other than `signal`, to pass through to the ES client. + * To pass an abort signal, use {@link ISearchOptions.abortSignal} + */ + transport?: Omit; } /** diff --git a/src/plugins/data/server/search/strategies/eql_search/eql_search_strategy.test.ts b/src/plugins/data/server/search/strategies/eql_search/eql_search_strategy.test.ts index 32f2d8b1e03d5b..7394f51f861ef6 100644 --- a/src/plugins/data/server/search/strategies/eql_search/eql_search_strategy.test.ts +++ b/src/plugins/data/server/search/strategies/eql_search/eql_search_strategy.test.ts @@ -10,6 +10,7 @@ import type { Logger } from '@kbn/core/server'; import { eqlSearchStrategyProvider } from './eql_search_strategy'; import { SearchStrategyDependencies } from '../../types'; import { EqlSearchStrategyRequest } from '../../../../common'; +import { firstValueFrom } from 'rxjs'; const getMockEqlResponse = () => ({ body: { @@ -84,9 +85,15 @@ describe('EQL search strategy', () => { await eqlSearch.search({ options, params }, {}, mockDeps).toPromise(); const [[request, requestOptions]] = mockEqlSearch.mock.calls; - expect(request.index).toEqual('logstash-*'); - expect(request.body).toEqual(expect.objectContaining({ query: 'process where 1 == 1' })); - expect(requestOptions).toEqual(expect.objectContaining({ ignore: [400] })); + expect(request).toEqual({ + body: { query: 'process where 1 == 1' }, + ignore_unavailable: true, + index: 'logstash-*', + keep_alive: '1m', + max_concurrent_shard_requests: undefined, + wait_for_completion_timeout: '100ms', + }); + expect(requestOptions).toEqual({ ignore: [400], meta: true, signal: undefined }); }); it('retrieves the current request if an id is provided', async () => { @@ -95,7 +102,11 @@ describe('EQL search strategy', () => { const [[requestParams]] = mockEqlGet.mock.calls; expect(mockEqlSearch).not.toHaveBeenCalled(); - expect(requestParams).toEqual(expect.objectContaining({ id: 'my-search-id' })); + expect(requestParams).toEqual({ + id: 'my-search-id', + keep_alive: '1m', + wait_for_completion_timeout: '100ms', + }); }); it('emits an error if the client throws', async () => { @@ -184,7 +195,7 @@ describe('EQL search strategy', () => { ); }); - it('passes transport options for an existing request', async () => { + it('passes (deprecated) transport options for an existing request', async () => { const eqlSearch = await eqlSearchStrategyProvider(mockLogger); await eqlSearch .search({ id: 'my-search-id', options: { ignore: [400] } }, {}, mockDeps) @@ -194,6 +205,42 @@ describe('EQL search strategy', () => { expect(mockEqlSearch).not.toHaveBeenCalled(); expect(requestOptions).toEqual(expect.objectContaining({ ignore: [400] })); }); + + it('passes abort signal', async () => { + const eqlSearch = eqlSearchStrategyProvider(mockLogger); + const eql: EqlSearchStrategyRequest = { id: 'my-search-id' }; + const abortController = new AbortController(); + await firstValueFrom( + eqlSearch.search(eql, { abortSignal: abortController.signal }, mockDeps) + ); + const [[_params, requestOptions]] = mockEqlGet.mock.calls; + + expect(requestOptions).toEqual({ meta: true, signal: expect.any(AbortSignal) }); + }); + + it('passes transport options for search with id', async () => { + const eqlSearch = eqlSearchStrategyProvider(mockLogger); + const eql: EqlSearchStrategyRequest = { id: 'my-search-id' }; + await firstValueFrom( + eqlSearch.search(eql, { transport: { maxResponseSize: 13131313 } }, mockDeps) + ); + const [[_params, requestOptions]] = mockEqlGet.mock.calls; + + expect(requestOptions).toEqual({ + maxResponseSize: 13131313, + meta: true, + signal: undefined, + }); + }); + + it('passes transport options for search without id', async () => { + const eqlSearch = eqlSearchStrategyProvider(mockLogger); + const eql: EqlSearchStrategyRequest = { params: { index: 'all' } }; + await firstValueFrom(eqlSearch.search(eql, { transport: { ignore: [400] } }, mockDeps)); + const [[_params, requestOptions]] = mockEqlSearch.mock.calls; + + expect(requestOptions).toEqual({ ignore: [400], meta: true, signal: undefined }); + }); }); describe('response', () => { diff --git a/src/plugins/data/server/search/strategies/eql_search/eql_search_strategy.ts b/src/plugins/data/server/search/strategies/eql_search/eql_search_strategy.ts index 13b4295fb7c636..aab1341f9dbfa5 100644 --- a/src/plugins/data/server/search/strategies/eql_search/eql_search_strategy.ts +++ b/src/plugins/data/server/search/strategies/eql_search/eql_search_strategy.ts @@ -56,12 +56,18 @@ export const eqlSearchStrategyProvider = ( const response = id ? await client.get( { ...params, id }, - { ...request.options, signal: options.abortSignal, meta: true } + { + ...request.options, + ...options.transport, + signal: options.abortSignal, + meta: true, + } ) : // @ts-expect-error optional key cannot be used since search doesn't expect undefined await client.search(params as EqlSearchStrategyRequest['params'], { ...request.options, - abortController: { signal: options.abortSignal }, + ...options.transport, + signal: options.abortSignal, meta: true, }); diff --git a/src/plugins/data/server/search/strategies/es_search/es_search_strategy.test.ts b/src/plugins/data/server/search/strategies/es_search/es_search_strategy.test.ts index 7a7f2253b96950..d8413703808c7a 100644 --- a/src/plugins/data/server/search/strategies/es_search/es_search_strategy.test.ts +++ b/src/plugins/data/server/search/strategies/es_search/es_search_strategy.test.ts @@ -15,6 +15,7 @@ import { SearchStrategyDependencies } from '../../types'; import * as indexNotFoundException from '../../../../common/search/test_data/index_not_found_exception.json'; import { errors } from '@elastic/elasticsearch'; import { KbnServerError } from '@kbn/kibana-utils-plugin/server'; +import { firstValueFrom } from 'rxjs'; describe('ES search strategy', () => { const successBody = { @@ -105,6 +106,19 @@ describe('ES search strategy', () => { done(); })); + it('calls the client with transport options', async () => { + const params = { index: 'logstash-*', ignore_unavailable: false, timeout: '1000ms' }; + await firstValueFrom( + esSearchStrategyProvider(mockConfig$, mockLogger).search( + { params }, + { transport: { maxRetries: 5 } }, + getMockedDeps() + ) + ); + const [, searchOptions] = esClient.search.mock.calls[0]; + expect(searchOptions).toEqual({ signal: undefined, maxRetries: 5 }); + }); + it('can be aborted', async () => { const params = { index: 'logstash-*', ignore_unavailable: false, timeout: '1000ms' }; @@ -120,6 +134,7 @@ describe('ES search strategy', () => { ...params, track_total_hits: true, }); + expect(esClient.search.mock.calls[0][1]).toEqual({ signal: expect.any(AbortSignal) }); }); it('throws normalized error if ResponseError is thrown', async (done) => { diff --git a/src/plugins/data/server/search/strategies/es_search/es_search_strategy.ts b/src/plugins/data/server/search/strategies/es_search/es_search_strategy.ts index 741174ac01613a..73a3b587048771 100644 --- a/src/plugins/data/server/search/strategies/es_search/es_search_strategy.ts +++ b/src/plugins/data/server/search/strategies/es_search/es_search_strategy.ts @@ -28,7 +28,7 @@ export const esSearchStrategyProvider = ( * @throws `KbnServerError` * @returns `Observable>` */ - search: (request, { abortSignal, ...options }, { esClient, uiSettingsClient }) => { + search: (request, { abortSignal, transport, ...options }, { esClient, uiSettingsClient }) => { // Only default index pattern type is supported here. // See ese for other type support. if (request.indexType) { @@ -48,6 +48,7 @@ export const esSearchStrategyProvider = ( }; const body = await esClient.asCurrentUser.search(params, { signal: abortSignal, + ...transport, }); const response = shimHitsTotal(body, options); return toKibanaSearchResponse(response); diff --git a/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.test.ts b/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.test.ts index b657d5602e99c6..409c84a4638f7b 100644 --- a/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.test.ts +++ b/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { BehaviorSubject } from 'rxjs'; +import { BehaviorSubject, firstValueFrom } from 'rxjs'; import { KbnServerError } from '@kbn/kibana-utils-plugin/server'; import { errors } from '@elastic/elasticsearch'; import * as indexNotFoundException from '../../../../common/search/test_data/index_not_found_exception.json'; @@ -119,6 +119,53 @@ describe('ES search strategy', () => { expect(request).toHaveProperty('keep_alive', '1m'); }); + it('sets transport options on POST requests', async () => { + const transportOptions = { maxRetries: 1 }; + mockSubmitCaller.mockResolvedValueOnce(mockAsyncResponse); + const params = { index: 'logstash-*', body: { query: {} } }; + const esSearch = enhancedEsSearchStrategyProvider(mockLegacyConfig$, mockLogger); + + await firstValueFrom( + esSearch.search({ params }, { transport: transportOptions }, mockDeps) + ); + + expect(mockSubmitCaller).toHaveBeenNthCalledWith( + 1, + expect.objectContaining({ + batched_reduce_size: 64, + body: { query: {} }, + ignore_unavailable: true, + index: 'logstash-*', + keep_alive: '1m', + keep_on_completion: false, + max_concurrent_shard_requests: undefined, + track_total_hits: true, + wait_for_completion_timeout: '100ms', + }), + expect.objectContaining({ maxRetries: 1, meta: true, signal: undefined }) + ); + }); + + it('sets transport options on GET requests', async () => { + mockGetCaller.mockResolvedValueOnce(mockAsyncResponse); + const params = { index: 'logstash-*', body: { query: {} } }; + const esSearch = enhancedEsSearchStrategyProvider(mockLegacyConfig$, mockLogger); + + await firstValueFrom( + esSearch.search({ id: 'foo', params }, { transport: { maxRetries: 1 } }, mockDeps) + ); + + expect(mockGetCaller).toHaveBeenNthCalledWith( + 1, + expect.objectContaining({ + id: 'foo', + keep_alive: '1m', + wait_for_completion_timeout: '100ms', + }), + expect.objectContaining({ maxRetries: 1, meta: true, signal: undefined }) + ); + }); + it('sets wait_for_completion_timeout and keep_alive in the request', async () => { mockSubmitCaller.mockResolvedValueOnce(mockAsyncResponse); diff --git a/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.ts b/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.ts index 450407800e7af9..33234d7c657305 100644 --- a/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.ts +++ b/src/plugins/data/server/search/strategies/ese_search/ese_search_strategy.ts @@ -70,9 +70,10 @@ export const enhancedEsSearchStrategyProvider = ( const { body, headers } = id ? await client.asyncSearch.get( { ...params, id }, - { signal: options.abortSignal, meta: true } + { ...options.transport, signal: options.abortSignal, meta: true } ) : await client.asyncSearch.submit(params, { + ...options.transport, signal: options.abortSignal, meta: true, }); diff --git a/src/plugins/data/server/search/strategies/sql_search/sql_search_strategy.test.ts b/src/plugins/data/server/search/strategies/sql_search/sql_search_strategy.test.ts index 4b700aa0c69495..e36b66a31c017f 100644 --- a/src/plugins/data/server/search/strategies/sql_search/sql_search_strategy.test.ts +++ b/src/plugins/data/server/search/strategies/sql_search/sql_search_strategy.test.ts @@ -72,14 +72,25 @@ describe('SQL search strategy', () => { }; const esSearch = await sqlSearchStrategyProvider(mockLogger); - await esSearch.search({ params }, {}, mockDeps).toPromise(); + await esSearch + .search({ params }, { transport: { requestTimeout: 30000 } }, mockDeps) + .toPromise(); expect(mockSqlQuery).toBeCalled(); - const request = mockSqlQuery.mock.calls[0][0]; - expect(request.query).toEqual(params.query); - expect(request).toHaveProperty('format', 'json'); - expect(request).toHaveProperty('keep_alive', '1m'); - expect(request).toHaveProperty('wait_for_completion_timeout'); + const [request, searchOptions] = mockSqlQuery.mock.calls[0]; + expect(request).toEqual({ + format: 'json', + keep_alive: '1m', + keep_on_completion: undefined, + query: + 'SELECT customer_first_name FROM kibana_sample_data_ecommerce ORDER BY order_date DESC', + wait_for_completion_timeout: '100ms', + }); + expect(searchOptions).toEqual({ + meta: true, + requestTimeout: 30000, + signal: undefined, + }); }); it('makes a GET request to async search with ID', async () => { @@ -92,14 +103,23 @@ describe('SQL search strategy', () => { const esSearch = await sqlSearchStrategyProvider(mockLogger); - await esSearch.search({ id: 'foo', params }, {}, mockDeps).toPromise(); + await esSearch + .search({ id: 'foo', params }, { transport: { requestTimeout: 30000 } }, mockDeps) + .toPromise(); expect(mockSqlGetAsync).toBeCalled(); - const request = mockSqlGetAsync.mock.calls[0][0]; - expect(request.id).toEqual('foo'); - expect(request).toHaveProperty('wait_for_completion_timeout'); - expect(request).toHaveProperty('keep_alive', '1m'); - expect(request).toHaveProperty('format', 'json'); + const [request, searchOptions] = mockSqlGetAsync.mock.calls[0]; + expect(request).toEqual({ + format: 'json', + id: 'foo', + keep_alive: '1m', + wait_for_completion_timeout: '100ms', + }); + expect(searchOptions).toEqual({ + meta: true, + requestTimeout: 30000, + signal: undefined, + }); }); }); diff --git a/src/plugins/data/server/search/strategies/sql_search/sql_search_strategy.ts b/src/plugins/data/server/search/strategies/sql_search/sql_search_strategy.ts index bb6f6dfa2205a6..b84dcfe45d2cf7 100644 --- a/src/plugins/data/server/search/strategies/sql_search/sql_search_strategy.ts +++ b/src/plugins/data/server/search/strategies/sql_search/sql_search_strategy.ts @@ -59,10 +59,7 @@ export const sqlSearchStrategyProvider = ( ...getDefaultAsyncGetParams(sessionConfig, options), id, }, - { - signal: options.abortSignal, - meta: true, - } + { ...options.transport, signal: options.abortSignal, meta: true } )); } else { ({ headers, body } = await client.sql.query( @@ -71,10 +68,7 @@ export const sqlSearchStrategyProvider = ( ...getDefaultAsyncSubmitParams(sessionConfig, options), ...params, }, - { - signal: options.abortSignal, - meta: true, - } + { ...options.transport, signal: options.abortSignal, meta: true } )); } diff --git a/src/plugins/event_annotation/common/fetch_event_annotations/utils.ts b/src/plugins/event_annotation/common/fetch_event_annotations/utils.ts index caf6055c607933..7af00db63160e1 100644 --- a/src/plugins/event_annotation/common/fetch_event_annotations/utils.ts +++ b/src/plugins/event_annotation/common/fetch_event_annotations/utils.ts @@ -156,6 +156,7 @@ export const postprocessAnnotations = ( .map((col) => { return { ...col, + name: swappedFieldsColIdMap[col.id], // we need to overwrite the name because esaggs column name is per bucket and not per row (eg. "First 10 fields...") id: `field:${swappedFieldsColIdMap[col.id]}`, }; }); diff --git a/src/plugins/unified_search/public/filter_bar/filter_item/filter_item.tsx b/src/plugins/unified_search/public/filter_bar/filter_item/filter_item.tsx index 32601f4590558f..3f70a57708b465 100644 --- a/src/plugins/unified_search/public/filter_bar/filter_item/filter_item.tsx +++ b/src/plugins/unified_search/public/filter_bar/filter_item/filter_item.tsx @@ -29,7 +29,6 @@ import { } from '@kbn/data-plugin/public'; import { FilterEditor } from '../filter_editor/filter_editor'; import { FilterView } from '../filter_view'; -import { getIndexPatterns } from '../../services'; import { FilterPanelOption } from '../../types'; export interface FilterItemProps { @@ -67,7 +66,6 @@ export const FILTER_EDITOR_WIDTH = 800; export function FilterItem(props: FilterItemProps) { const [isPopoverOpen, setIsPopoverOpen] = useState(false); - const [indexPatternExists, setIndexPatternExists] = useState(undefined); const [renderedComponent, setRenderedComponent] = useState('menu'); const { id, filter, indexPatterns, hiddenPanelOptions, readOnly = false } = props; @@ -77,31 +75,6 @@ export function FilterItem(props: FilterItemProps) { } }, [isPopoverOpen]); - useEffect(() => { - const index = props.filter.meta.index; - let isSubscribed = true; - if (index) { - getIndexPatterns() - .get(index) - .then((indexPattern) => { - if (isSubscribed) { - setIndexPatternExists(!!indexPattern); - } - }) - .catch(() => { - if (isSubscribed) { - setIndexPatternExists(false); - } - }); - } else if (isSubscribed) { - // Allow filters without an index pattern and don't validate them. - setIndexPatternExists(true); - } - return () => { - isSubscribed = false; - }; - }, [props.filter.meta.index]); - function handleBadgeClick(e: MouseEvent) { if (e.shiftKey) { onToggleDisabled(); @@ -297,22 +270,7 @@ export function FilterItem(props: FilterItemProps) { return label; } - if (indexPatternExists === false) { - label.status = FILTER_ITEM_ERROR; - label.title = props.intl.formatMessage({ - id: 'unifiedSearch.filter.filterBar.labelErrorText', - defaultMessage: `Error`, - }); - label.message = props.intl.formatMessage( - { - id: 'unifiedSearch.filter.filterBar.labelErrorInfo', - defaultMessage: 'Index pattern {indexPattern} not found', - }, - { - indexPattern: filter.meta.index, - } - ); - } else if (isFilterApplicable()) { + if (isFilterApplicable()) { try { label.title = getDisplayValueFromFilter(filter, indexPatterns); } catch (e) { @@ -343,8 +301,6 @@ export function FilterItem(props: FilterItemProps) { return label; } - // Don't render until we know if the index pattern is valid - if (indexPatternExists === undefined) return null; const valueLabelConfig = getValueLabel(); // Disable errored filters and re-render diff --git a/test/functional/apps/dashboard/group2/dashboard_filter_bar.ts b/test/functional/apps/dashboard/group2/dashboard_filter_bar.ts index f2476f7516611c..1244e179f7f6a1 100644 --- a/test/functional/apps/dashboard/group2/dashboard_filter_bar.ts +++ b/test/functional/apps/dashboard/group2/dashboard_filter_bar.ts @@ -224,8 +224,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.dashboard.loadSavedDashboard('dashboard with bad filters'); }); - it('filter with non-existent index pattern renders in error mode', async function () { - const hasBadFieldFilter = await filterBar.hasFilter('name', 'error', false); + it('filter with non-existent index pattern renders if it matches a field', async function () { + const hasBadFieldFilter = await filterBar.hasFilter('name', 'moo', false); expect(hasBadFieldFilter).to.be(true); }); diff --git a/test/plugin_functional/test_suites/core_plugins/rendering.ts b/test/plugin_functional/test_suites/core_plugins/rendering.ts index ce598ee1e7dcfb..693bb943d236d1 100644 --- a/test/plugin_functional/test_suites/core_plugins/rendering.ts +++ b/test/plugin_functional/test_suites/core_plugins/rendering.ts @@ -163,7 +163,6 @@ export default function ({ getService }: PluginFunctionalProviderContext) { 'usageCollection.uiCounters.enabled (boolean)', 'vis_type_vega.enableExternalUrls (boolean)', 'xpack.actions.email.domain_allowlist (array)', - 'xpack.apm.profilingEnabled (boolean)', 'xpack.apm.serviceMapEnabled (boolean)', 'xpack.apm.ui.enabled (boolean)', 'xpack.apm.ui.maxTraceItems (number)', diff --git a/x-pack/plugins/alerting/common/execution_log_types.ts b/x-pack/plugins/alerting/common/execution_log_types.ts index 41406bb6c9dc1e..1938d8be4acd35 100644 --- a/x-pack/plugins/alerting/common/execution_log_types.ts +++ b/x-pack/plugins/alerting/common/execution_log_types.ts @@ -49,6 +49,7 @@ export interface IExecutionLog { schedule_delay_ms: number; timed_out: boolean; rule_id: string; + rule_name: string; } export interface IExecutionErrors { diff --git a/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.test.ts b/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.test.ts index bd3fc05c6d8f75..e48483785490a6 100644 --- a/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.test.ts +++ b/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.test.ts @@ -278,6 +278,7 @@ describe('getExecutionLogAggregation', () => { 'error.message', 'kibana.version', 'rule.id', + 'rule.name', ], }, }, @@ -482,6 +483,7 @@ describe('getExecutionLogAggregation', () => { 'error.message', 'kibana.version', 'rule.id', + 'rule.name', ], }, }, @@ -686,6 +688,7 @@ describe('getExecutionLogAggregation', () => { 'error.message', 'kibana.version', 'rule.id', + 'rule.name', ], }, }, @@ -776,7 +779,7 @@ describe('formatExecutionLogResult', () => { _id: 'S4wIZX8B8TGQpG7XQZns', _score: 1.0, _source: { - rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef' }, + rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', name: 'rule_name' }, event: { outcome: 'success', }, @@ -860,7 +863,7 @@ describe('formatExecutionLogResult', () => { _id: 'a4wIZX8B8TGQpG7Xwpnz', _score: 1.0, _source: { - rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef' }, + rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', name: 'rule_name' }, event: { outcome: 'success', @@ -940,6 +943,7 @@ describe('formatExecutionLogResult', () => { timed_out: false, schedule_delay_ms: 3074, rule_id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', + rule_name: 'rule_name', }, { id: '41b2755e-765a-4044-9745-b03875d5e79a', @@ -961,6 +965,7 @@ describe('formatExecutionLogResult', () => { timed_out: false, schedule_delay_ms: 3126, rule_id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', + rule_name: 'rule_name', }, ], }); @@ -1015,7 +1020,7 @@ describe('formatExecutionLogResult', () => { _id: 'S4wIZX8B8TGQpG7XQZns', _score: 1.0, _source: { - rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef' }, + rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', name: 'rule_name' }, event: { outcome: 'failure', }, @@ -1102,7 +1107,7 @@ describe('formatExecutionLogResult', () => { _id: 'a4wIZX8B8TGQpG7Xwpnz', _score: 1.0, _source: { - rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef' }, + rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', name: 'rule_name' }, event: { outcome: 'success', }, @@ -1181,6 +1186,7 @@ describe('formatExecutionLogResult', () => { timed_out: false, schedule_delay_ms: 3074, rule_id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', + rule_name: 'rule_name', }, { id: '41b2755e-765a-4044-9745-b03875d5e79a', @@ -1202,6 +1208,7 @@ describe('formatExecutionLogResult', () => { timed_out: false, schedule_delay_ms: 3126, rule_id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', + rule_name: 'rule_name', }, ], }); @@ -1256,7 +1263,7 @@ describe('formatExecutionLogResult', () => { _id: 'dJkWa38B1ylB1EvsAckB', _score: 1.0, _source: { - rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef' }, + rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', name: 'rule_name' }, event: { outcome: 'success', }, @@ -1335,7 +1342,7 @@ describe('formatExecutionLogResult', () => { _id: 'a4wIZX8B8TGQpG7Xwpnz', _score: 1.0, _source: { - rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef' }, + rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', name: 'rule_name' }, event: { outcome: 'success', }, @@ -1414,6 +1421,7 @@ describe('formatExecutionLogResult', () => { timed_out: true, schedule_delay_ms: 3074, rule_id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', + rule_name: 'rule_name', }, { id: '41b2755e-765a-4044-9745-b03875d5e79a', @@ -1435,6 +1443,7 @@ describe('formatExecutionLogResult', () => { timed_out: false, schedule_delay_ms: 3126, rule_id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', + rule_name: 'rule_name', }, ], }); @@ -1489,7 +1498,7 @@ describe('formatExecutionLogResult', () => { _id: '7xKcb38BcntAq5ycFwiu', _score: 1.0, _source: { - rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef' }, + rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', name: 'rule_name' }, event: { outcome: 'success', }, @@ -1573,7 +1582,7 @@ describe('formatExecutionLogResult', () => { _id: 'zRKbb38BcntAq5ycOwgk', _score: 1.0, _source: { - rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef' }, + rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', name: 'rule_name' }, event: { outcome: 'success', }, @@ -1652,6 +1661,7 @@ describe('formatExecutionLogResult', () => { timed_out: false, schedule_delay_ms: 3126, rule_id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', + rule_name: 'rule_name', }, { id: '61bb867b-661a-471f-bf92-23471afa10b3', @@ -1673,6 +1683,7 @@ describe('formatExecutionLogResult', () => { timed_out: false, schedule_delay_ms: 3133, rule_id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', + rule_name: 'rule_name', }, ], }); diff --git a/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.ts b/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.ts index 14d67807a86af4..0854488d5f29ee 100644 --- a/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.ts +++ b/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.ts @@ -17,6 +17,7 @@ import { IExecutionLog, IExecutionLogResult } from '../../common'; const DEFAULT_MAX_BUCKETS_LIMIT = 1000; // do not retrieve more than this number of executions const RULE_ID_FIELD = 'rule.id'; +const RULE_NAME_FIELD = 'rule.name'; const PROVIDER_FIELD = 'event.provider'; const START_FIELD = 'event.start'; const ACTION_FIELD = 'event.action'; @@ -265,6 +266,7 @@ export function getExecutionLogAggregation({ ERROR_MESSAGE_FIELD, VERSION_FIELD, RULE_ID_FIELD, + RULE_NAME_FIELD, ], }, }, @@ -336,6 +338,7 @@ function formatExecutionLogAggBucket(bucket: IExecutionUuidAggBucket): IExecutio const version = outcomeAndMessage ? outcomeAndMessage?.kibana?.version ?? '' : ''; const ruleId = outcomeAndMessage ? outcomeAndMessage?.rule?.id ?? '' : ''; + const ruleName = outcomeAndMessage ? outcomeAndMessage?.rule?.name ?? '' : ''; return { id: bucket?.key ?? '', timestamp: bucket?.ruleExecution?.executeStartTime.value_as_string ?? '', @@ -355,6 +358,7 @@ function formatExecutionLogAggBucket(bucket: IExecutionUuidAggBucket): IExecutio schedule_delay_ms: scheduleDelayUs / Millis2Nanos, timed_out: timedOut, rule_id: ruleId, + rule_name: ruleName, }; } diff --git a/x-pack/plugins/alerting/server/routes/get_global_execution_logs.test.ts b/x-pack/plugins/alerting/server/routes/get_global_execution_logs.test.ts index 4c7f6c0a2750e0..43b08ed0787e29 100644 --- a/x-pack/plugins/alerting/server/routes/get_global_execution_logs.test.ts +++ b/x-pack/plugins/alerting/server/routes/get_global_execution_logs.test.ts @@ -46,6 +46,7 @@ describe('getRuleExecutionLogRoute', () => { timed_out: false, schedule_delay_ms: 3126, rule_id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', + rule_name: 'rule-name', }, { id: '41b2755e-765a-4044-9745-b03875d5e79a', @@ -67,6 +68,7 @@ describe('getRuleExecutionLogRoute', () => { timed_out: false, schedule_delay_ms: 3008, rule_id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', + rule_name: 'rule-name', }, ], }; diff --git a/x-pack/plugins/alerting/server/routes/get_rule_execution_log.test.ts b/x-pack/plugins/alerting/server/routes/get_rule_execution_log.test.ts index 9c1be8628c8234..048da6cbabeb35 100644 --- a/x-pack/plugins/alerting/server/routes/get_rule_execution_log.test.ts +++ b/x-pack/plugins/alerting/server/routes/get_rule_execution_log.test.ts @@ -47,6 +47,7 @@ describe('getRuleExecutionLogRoute', () => { timed_out: false, schedule_delay_ms: 3126, rule_id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', + rule_name: 'rule_name', }, { id: '41b2755e-765a-4044-9745-b03875d5e79a', @@ -68,6 +69,7 @@ describe('getRuleExecutionLogRoute', () => { timed_out: false, schedule_delay_ms: 3008, rule_id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', + rule_name: 'rule_name', }, ], }; diff --git a/x-pack/plugins/alerting/server/rules_client/rules_client.ts b/x-pack/plugins/alerting/server/rules_client/rules_client.ts index 7d0f6463a48721..55f9ce0da063c1 100644 --- a/x-pack/plugins/alerting/server/rules_client/rules_client.ts +++ b/x-pack/plugins/alerting/server/rules_client/rules_client.ts @@ -944,32 +944,7 @@ export class RulesClient { } ); - const formattedResult = formatExecutionLogResult(aggResult); - const ruleIds = [...new Set(formattedResult.data.map((l) => l.rule_id))].filter( - Boolean - ) as string[]; - const ruleNameIdEntries = await Promise.all( - ruleIds.map(async (id) => { - try { - const result = await this.get({ id }); - return [id, result.name]; - } catch (e) { - return [id, id]; - } - }) - ); - const ruleNameIdMap: Record = ruleNameIdEntries.reduce( - (result, [key, val]) => ({ ...result, [key]: val }), - {} - ); - - return { - ...formattedResult, - data: formattedResult.data.map((entry) => ({ - ...entry, - rule_name: ruleNameIdMap[entry.rule_id!], - })), - }; + return formatExecutionLogResult(aggResult); } catch (err) { this.logger.debug( `rulesClient.getGlobalExecutionLogWithAuth(): error searching global event log: ${err.message}` diff --git a/x-pack/plugins/alerting/server/rules_client/tests/get_execution_log.test.ts b/x-pack/plugins/alerting/server/rules_client/tests/get_execution_log.test.ts index cf525f59e9448c..f5525820da6dc1 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/get_execution_log.test.ts +++ b/x-pack/plugins/alerting/server/rules_client/tests/get_execution_log.test.ts @@ -145,6 +145,7 @@ const aggregateResults = { _source: { rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', + name: 'rule-name', }, event: { outcome: 'success', @@ -248,7 +249,7 @@ const aggregateResults = { _id: 'a4wIZX8B8TGQpG7Xwpnz', _score: 1.0, _source: { - rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef' }, + rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', name: 'rule-name' }, event: { outcome: 'success', }, @@ -377,6 +378,7 @@ describe('getExecutionLogForRule()', () => { timed_out: false, schedule_delay_ms: 3126, rule_id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', + rule_name: 'rule-name', }, { id: '41b2755e-765a-4044-9745-b03875d5e79a', @@ -398,6 +400,7 @@ describe('getExecutionLogForRule()', () => { timed_out: false, schedule_delay_ms: 3345, rule_id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', + rule_name: 'rule-name', }, ], }); diff --git a/x-pack/plugins/apm/common/__snapshots__/elasticsearch_fieldnames.test.ts.snap b/x-pack/plugins/apm/common/__snapshots__/elasticsearch_fieldnames.test.ts.snap index fb5d820091ab08..0065245e507e67 100644 --- a/x-pack/plugins/apm/common/__snapshots__/elasticsearch_fieldnames.test.ts.snap +++ b/x-pack/plugins/apm/common/__snapshots__/elasticsearch_fieldnames.test.ts.snap @@ -131,26 +131,6 @@ exports[`Error POD_NAME 1`] = `undefined`; exports[`Error PROCESSOR_EVENT 1`] = `"error"`; -exports[`Error PROFILE_ALLOC_OBJECTS 1`] = `undefined`; - -exports[`Error PROFILE_ALLOC_SPACE 1`] = `undefined`; - -exports[`Error PROFILE_CPU_NS 1`] = `undefined`; - -exports[`Error PROFILE_ID 1`] = `undefined`; - -exports[`Error PROFILE_INUSE_OBJECTS 1`] = `undefined`; - -exports[`Error PROFILE_INUSE_SPACE 1`] = `undefined`; - -exports[`Error PROFILE_SAMPLES_COUNT 1`] = `undefined`; - -exports[`Error PROFILE_STACK 1`] = `undefined`; - -exports[`Error PROFILE_TOP_ID 1`] = `undefined`; - -exports[`Error PROFILE_WALL_US 1`] = `undefined`; - exports[`Error SERVICE 1`] = ` Object { "language": Object { @@ -370,26 +350,6 @@ exports[`Span POD_NAME 1`] = `undefined`; exports[`Span PROCESSOR_EVENT 1`] = `"span"`; -exports[`Span PROFILE_ALLOC_OBJECTS 1`] = `undefined`; - -exports[`Span PROFILE_ALLOC_SPACE 1`] = `undefined`; - -exports[`Span PROFILE_CPU_NS 1`] = `undefined`; - -exports[`Span PROFILE_ID 1`] = `undefined`; - -exports[`Span PROFILE_INUSE_OBJECTS 1`] = `undefined`; - -exports[`Span PROFILE_INUSE_SPACE 1`] = `undefined`; - -exports[`Span PROFILE_SAMPLES_COUNT 1`] = `undefined`; - -exports[`Span PROFILE_STACK 1`] = `undefined`; - -exports[`Span PROFILE_TOP_ID 1`] = `undefined`; - -exports[`Span PROFILE_WALL_US 1`] = `undefined`; - exports[`Span SERVICE 1`] = ` Object { "name": "service name", @@ -615,26 +575,6 @@ exports[`Transaction POD_NAME 1`] = `undefined`; exports[`Transaction PROCESSOR_EVENT 1`] = `"transaction"`; -exports[`Transaction PROFILE_ALLOC_OBJECTS 1`] = `undefined`; - -exports[`Transaction PROFILE_ALLOC_SPACE 1`] = `undefined`; - -exports[`Transaction PROFILE_CPU_NS 1`] = `undefined`; - -exports[`Transaction PROFILE_ID 1`] = `undefined`; - -exports[`Transaction PROFILE_INUSE_OBJECTS 1`] = `undefined`; - -exports[`Transaction PROFILE_INUSE_SPACE 1`] = `undefined`; - -exports[`Transaction PROFILE_SAMPLES_COUNT 1`] = `undefined`; - -exports[`Transaction PROFILE_STACK 1`] = `undefined`; - -exports[`Transaction PROFILE_TOP_ID 1`] = `undefined`; - -exports[`Transaction PROFILE_WALL_US 1`] = `undefined`; - exports[`Transaction SERVICE 1`] = ` Object { "language": Object { diff --git a/x-pack/plugins/apm/common/elasticsearch_fieldnames.ts b/x-pack/plugins/apm/common/elasticsearch_fieldnames.ts index 0a6399c34ae65e..d8460bcad9b78a 100644 --- a/x-pack/plugins/apm/common/elasticsearch_fieldnames.ts +++ b/x-pack/plugins/apm/common/elasticsearch_fieldnames.ts @@ -131,19 +131,6 @@ export const TRANSACTION_URL = 'url.full'; export const USER_AGENT_DEVICE = 'user_agent.device.name'; export const USER_AGENT_OS = 'user_agent.os.name'; -export const PROFILE_ID = 'profile.id'; -export const PROFILE_TOP_ID = 'profile.top.id'; -export const PROFILE_STACK = 'profile.stack'; - -export const PROFILE_SAMPLES_COUNT = 'profile.samples.count'; -export const PROFILE_CPU_NS = 'profile.cpu.ns'; -export const PROFILE_WALL_US = 'profile.wall.us'; - -export const PROFILE_ALLOC_OBJECTS = 'profile.alloc_objects.count'; -export const PROFILE_ALLOC_SPACE = 'profile.alloc_space.bytes'; -export const PROFILE_INUSE_OBJECTS = 'profile.inuse_objects.count'; -export const PROFILE_INUSE_SPACE = 'profile.inuse_space.bytes'; - export const FAAS_ID = 'faas.id'; export const FAAS_COLDSTART = 'faas.coldstart'; export const FAAS_TRIGGER_TYPE = 'faas.trigger.type'; diff --git a/x-pack/plugins/apm/common/processor_event.ts b/x-pack/plugins/apm/common/processor_event.ts index ba4626e85ee2e8..0d6891ce42ee2a 100644 --- a/x-pack/plugins/apm/common/processor_event.ts +++ b/x-pack/plugins/apm/common/processor_event.ts @@ -12,7 +12,6 @@ export const processorEventRt = t.union([ t.literal(ProcessorEvent.error), t.literal(ProcessorEvent.metric), t.literal(ProcessorEvent.span), - t.literal(ProcessorEvent.profile), ]); /** * Processor events that are searchable in the UI via the query bar. diff --git a/x-pack/plugins/apm/common/profiling.ts b/x-pack/plugins/apm/common/profiling.ts deleted file mode 100644 index e185ef704aed05..00000000000000 --- a/x-pack/plugins/apm/common/profiling.ts +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import { i18n } from '@kbn/i18n'; -import { - PROFILE_ALLOC_OBJECTS, - PROFILE_ALLOC_SPACE, - PROFILE_CPU_NS, - PROFILE_INUSE_OBJECTS, - PROFILE_INUSE_SPACE, - PROFILE_SAMPLES_COUNT, - PROFILE_WALL_US, -} from './elasticsearch_fieldnames'; - -export enum ProfilingValueType { - wallTime = 'wall_time', - cpuTime = 'cpu_time', - samples = 'samples', - allocObjects = 'alloc_objects', - allocSpace = 'alloc_space', - inuseObjects = 'inuse_objects', - inuseSpace = 'inuse_space', -} - -export enum ProfilingValueTypeUnit { - ns = 'ns', - us = 'us', - count = 'count', - bytes = 'bytes', -} - -export interface ProfileNode { - id: string; - label: string; - fqn: string; - value: number; - children: string[]; -} - -const config = { - [ProfilingValueType.wallTime]: { - unit: ProfilingValueTypeUnit.us, - label: i18n.translate( - 'xpack.apm.serviceProfiling.valueTypeLabel.wallTime', - { - defaultMessage: 'Wall', - } - ), - field: PROFILE_WALL_US, - }, - [ProfilingValueType.cpuTime]: { - unit: ProfilingValueTypeUnit.ns, - label: i18n.translate('xpack.apm.serviceProfiling.valueTypeLabel.cpuTime', { - defaultMessage: 'On-CPU', - }), - field: PROFILE_CPU_NS, - }, - [ProfilingValueType.samples]: { - unit: ProfilingValueTypeUnit.count, - label: i18n.translate('xpack.apm.serviceProfiling.valueTypeLabel.samples', { - defaultMessage: 'Samples', - }), - field: PROFILE_SAMPLES_COUNT, - }, - [ProfilingValueType.allocObjects]: { - unit: ProfilingValueTypeUnit.count, - label: i18n.translate( - 'xpack.apm.serviceProfiling.valueTypeLabel.allocObjects', - { - defaultMessage: 'Alloc. objects', - } - ), - field: PROFILE_ALLOC_OBJECTS, - }, - [ProfilingValueType.allocSpace]: { - unit: ProfilingValueTypeUnit.bytes, - label: i18n.translate( - 'xpack.apm.serviceProfiling.valueTypeLabel.allocSpace', - { - defaultMessage: 'Alloc. space', - } - ), - field: PROFILE_ALLOC_SPACE, - }, - [ProfilingValueType.inuseObjects]: { - unit: ProfilingValueTypeUnit.count, - label: i18n.translate( - 'xpack.apm.serviceProfiling.valueTypeLabel.inuseObjects', - { - defaultMessage: 'In-use objects', - } - ), - field: PROFILE_INUSE_OBJECTS, - }, - [ProfilingValueType.inuseSpace]: { - unit: ProfilingValueTypeUnit.bytes, - label: i18n.translate( - 'xpack.apm.serviceProfiling.valueTypeLabel.inuseSpace', - { - defaultMessage: 'In-use space', - } - ), - field: PROFILE_INUSE_SPACE, - }, -}; - -export const getValueTypeConfig = (type: ProfilingValueType) => { - return config[type]; -}; diff --git a/x-pack/plugins/apm/ftr_e2e/cypress.config.ts b/x-pack/plugins/apm/ftr_e2e/cypress.config.ts new file mode 100644 index 00000000000000..7a92b84ac36bd4 --- /dev/null +++ b/x-pack/plugins/apm/ftr_e2e/cypress.config.ts @@ -0,0 +1,36 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { defineConfig } from 'cypress'; +import { plugin } from './cypress/plugins'; + +module.exports = defineConfig({ + fileServerFolder: './cypress', + fixturesFolder: './cypress/fixtures', + screenshotsFolder: './cypress/screenshots', + videosFolder: './cypress/videos', + requestTimeout: 10000, + responseTimeout: 40000, + defaultCommandTimeout: 30000, + execTimeout: 120000, + pageLoadTimeout: 120000, + viewportHeight: 900, + viewportWidth: 1440, + video: false, + screenshotOnRunFailure: false, + e2e: { + // We've imported your old cypress plugins here. + // You may want to clean this up later by importing these. + setupNodeEvents(on, config) { + plugin(on, config); + }, + baseUrl: 'http://localhost:5601', + supportFile: './cypress/support/e2e.ts', + specPattern: './cypress/e2e/**/*.cy.{js,jsx,ts,tsx}', + experimentalSessionAndOrigin: false, + }, +}); diff --git a/x-pack/plugins/apm/ftr_e2e/cypress.json b/x-pack/plugins/apm/ftr_e2e/cypress.json deleted file mode 100644 index 848a10efed6682..00000000000000 --- a/x-pack/plugins/apm/ftr_e2e/cypress.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "fileServerFolder": "./cypress", - "fixturesFolder": "./cypress/fixtures", - "integrationFolder": "./cypress/integration", - "pluginsFile": "./cypress/plugins/index.ts", - "screenshotsFolder": "./cypress/screenshots", - "supportFile": "./cypress/support/index.ts", - "videosFolder": "./cypress/videos", - "requestTimeout": 10000, - "responseTimeout": 40000, - "defaultCommandTimeout": 30000, - "execTimeout": 120000, - "pageLoadTimeout": 120000, - "viewportHeight": 900, - "viewportWidth": 1440, - "video": false, - "screenshotOnRunFailure": false, - "experimentalSessionAndOrigin": true -} diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/power_user/feature_flag/comparison.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/power_user/feature_flag/comparison.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/power_user/feature_flag/comparison.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/power_user/feature_flag/comparison.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/power_user/infrastructure/generate_data.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/power_user/infrastructure/generate_data.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/power_user/infrastructure/generate_data.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/power_user/infrastructure/generate_data.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/power_user/infrastructure/infrastructure_page.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/power_user/infrastructure/infrastructure_page.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/power_user/infrastructure/infrastructure_page.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/power_user/infrastructure/infrastructure_page.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/power_user/integration_settings/integration_policy.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/power_user/integration_settings/integration_policy.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/power_user/integration_settings/integration_policy.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/power_user/integration_settings/integration_policy.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/power_user/no_data_screen.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/power_user/no_data_screen.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/power_user/no_data_screen.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/power_user/no_data_screen.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/power_user/rules/error_count.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/power_user/rules/error_count.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/power_user/rules/error_count.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/power_user/rules/error_count.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/power_user/settings/agent_configurations.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/power_user/settings/agent_configurations.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/power_user/settings/agent_configurations.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/power_user/settings/agent_configurations.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/power_user/settings/custom_links.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/power_user/settings/custom_links.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/power_user/settings/custom_links.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/power_user/settings/custom_links.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/deep_links.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/deep_links.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/deep_links.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/deep_links.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/dependencies.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/dependencies.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/dependencies.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/dependencies.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/errors/error_details.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/errors/error_details.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/errors/error_details.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/errors/error_details.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/errors/errors_page.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/errors/errors_page.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/errors/errors_page.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/errors/errors_page.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/errors/generate_data.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/errors/generate_data.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/errors/generate_data.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/errors/generate_data.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/home.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/home.cy.ts similarity index 95% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/home.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/home.cy.ts index be9acfd38ab0ce..2ee2f4f019b12a 100644 --- a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/home.spec.ts +++ b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/home.cy.ts @@ -31,6 +31,10 @@ describe('Home page', () => { to: new Date(end).getTime(), }) ); + + cy.updateAdvancedSettings({ + 'observability:enableComparisonByDefault': true, + }); }); after(() => { diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_inventory/generate_data.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_inventory/generate_data.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_inventory/generate_data.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_inventory/generate_data.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_inventory/header_filters/generate_data.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_inventory/header_filters/generate_data.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_inventory/header_filters/generate_data.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_inventory/header_filters/generate_data.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_inventory/header_filters/header_filters.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_inventory/header_filters/header_filters.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_inventory/header_filters/header_filters.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_inventory/header_filters/header_filters.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_inventory/service_inventory.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_inventory/service_inventory.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_inventory/service_inventory.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_inventory/service_inventory.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_overview/aws_lambda/aws_lamba.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_overview/aws_lambda/aws_lamba.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_overview/aws_lambda/aws_lamba.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_overview/aws_lambda/aws_lamba.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_overview/aws_lambda/generate_data.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_overview/aws_lambda/generate_data.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_overview/aws_lambda/generate_data.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_overview/aws_lambda/generate_data.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_overview/errors_table.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_overview/errors_table.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_overview/errors_table.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_overview/errors_table.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_overview/header_filters.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_overview/header_filters.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_overview/header_filters.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_overview/header_filters.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_overview/instances_table.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_overview/instances_table.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_overview/instances_table.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_overview/instances_table.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_overview/service_overview.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_overview/service_overview.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_overview/service_overview.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_overview/service_overview.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_overview/time_comparison.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_overview/time_comparison.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/service_overview/time_comparison.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/service_overview/time_comparison.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/transaction_details/generate_span_links_data.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/transaction_details/generate_span_links_data.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/transaction_details/generate_span_links_data.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/transaction_details/generate_span_links_data.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/transaction_details/span_links.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/transaction_details/span_links.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/transaction_details/span_links.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/transaction_details/span_links.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/transaction_details/transaction_details.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/transaction_details/transaction_details.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/transaction_details/transaction_details.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/transaction_details/transaction_details.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/transactions_overview/transactions_overview.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/transactions_overview/transactions_overview.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/transactions_overview/transactions_overview.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/transactions_overview/transactions_overview.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/tutorial/tutorial.spec.ts b/x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/tutorial/tutorial.cy.ts similarity index 100% rename from x-pack/plugins/apm/ftr_e2e/cypress/integration/read_only_user/tutorial/tutorial.spec.ts rename to x-pack/plugins/apm/ftr_e2e/cypress/e2e/read_only_user/tutorial/tutorial.cy.ts diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/plugins/index.ts b/x-pack/plugins/apm/ftr_e2e/cypress/plugins/index.ts index 2cc7595ce67313..8adaad0b71c631 100644 --- a/x-pack/plugins/apm/ftr_e2e/cypress/plugins/index.ts +++ b/x-pack/plugins/apm/ftr_e2e/cypress/plugins/index.ts @@ -29,7 +29,7 @@ import { createEsClientForTesting } from '@kbn/test'; * @type {Cypress.PluginConfig} */ -const plugin: Cypress.PluginConfig = (on, config) => { +export const plugin: Cypress.PluginConfig = (on, config) => { // `on` is used to hook into various events Cypress emits // `config` is the resolved Cypress config @@ -66,5 +66,3 @@ const plugin: Cypress.PluginConfig = (on, config) => { }, }); }; - -module.exports = plugin; diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/support/commands.ts b/x-pack/plugins/apm/ftr_e2e/cypress/support/commands.ts index 37182e328ebf37..692926d3049ca9 100644 --- a/x-pack/plugins/apm/ftr_e2e/cypress/support/commands.ts +++ b/x-pack/plugins/apm/ftr_e2e/cypress/support/commands.ts @@ -21,25 +21,26 @@ Cypress.Commands.add('loginAsEditorUser', () => { Cypress.Commands.add( 'loginAs', ({ username, password }: { username: string; password: string }) => { - cy.log(`Calling 'loginAs'`); - cy.session([username, password], () => { - cy.log(`Logging in as ${username}`); - const kibanaUrl = Cypress.env('KIBANA_URL'); - cy.request({ - log: false, - method: 'POST', - url: `${kibanaUrl}/internal/security/login`, - body: { - providerType: 'basic', - providerName: 'basic', - currentURL: `${kibanaUrl}/login`, - params: { username, password }, - }, - headers: { - 'kbn-xsrf': 'e2e_test', - }, - }); + // cy.session(username, () => { + const kibanaUrl = Cypress.env('KIBANA_URL'); + cy.log(`Logging in as ${username} on ${kibanaUrl}`); + cy.visit('/'); + cy.request({ + log: true, + method: 'POST', + url: `${kibanaUrl}/internal/security/login`, + body: { + providerType: 'basic', + providerName: 'basic', + currentURL: `${kibanaUrl}/login`, + params: { username, password }, + }, + headers: { + 'kbn-xsrf': 'e2e_test', + }, + // }); }); + cy.visit('/'); } ); diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/support/e2e.ts b/x-pack/plugins/apm/ftr_e2e/cypress/support/e2e.ts new file mode 100644 index 00000000000000..93daa0bc7ed2ac --- /dev/null +++ b/x-pack/plugins/apm/ftr_e2e/cypress/support/e2e.ts @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +Cypress.on('uncaught:exception', (err, runnable) => { + return false; +}); + +import './commands'; +// import './output_command_timings'; diff --git a/x-pack/plugins/apm/ftr_e2e/cypress_test_runner.ts b/x-pack/plugins/apm/ftr_e2e/cypress_test_runner.ts index 86316fe7ef8c82..9736a695e81c73 100644 --- a/x-pack/plugins/apm/ftr_e2e/cypress_test_runner.ts +++ b/x-pack/plugins/apm/ftr_e2e/cypress_test_runner.ts @@ -58,10 +58,9 @@ export async function cypressTestRunner({ getService }: FtrProviderContext) { ...cypressCliArgs, project: cypressProjectPath, config: { - baseUrl: kibanaUrl, - requestTimeout: 10000, - responseTimeout: 60000, - defaultCommandTimeout: 15000, + e2e: { + baseUrl: kibanaUrl, + }, }, env: { KIBANA_URL: kibanaUrl, diff --git a/x-pack/plugins/apm/public/components/app/service_profiling/index.tsx b/x-pack/plugins/apm/public/components/app/service_profiling/index.tsx deleted file mode 100644 index fccaf5c46ccbf8..00000000000000 --- a/x-pack/plugins/apm/public/components/app/service_profiling/index.tsx +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import { EuiFlexGroup, EuiFlexItem, EuiPanel, EuiTitle } from '@elastic/eui'; -import React, { useEffect, useState } from 'react'; -import { - getValueTypeConfig, - ProfilingValueType, -} from '../../../../common/profiling'; -import { useApmServiceContext } from '../../../context/apm_service/use_apm_service_context'; -import { useApmParams } from '../../../hooks/use_apm_params'; -import { useFetcher } from '../../../hooks/use_fetcher'; -import { useTimeRange } from '../../../hooks/use_time_range'; -import { APIReturnType } from '../../../services/rest/create_call_apm_api'; -import { ServiceProfilingFlamegraph } from './service_profiling_flamegraph'; -import { ServiceProfilingTimeline } from './service_profiling_timeline'; - -type ApiResponse = - APIReturnType<'GET /internal/apm/services/{serviceName}/profiling/timeline'>; -const DEFAULT_DATA: ApiResponse = { profilingTimeline: [] }; - -export function ServiceProfiling() { - const { serviceName } = useApmServiceContext(); - - const { - query: { environment, kuery, rangeFrom, rangeTo }, - } = useApmParams('/services/{serviceName}/profiling'); - - const { start, end } = useTimeRange({ rangeFrom, rangeTo }); - - const { data = DEFAULT_DATA } = useFetcher( - (callApmApi) => { - if (!start || !end) { - return; - } - - return callApmApi( - 'GET /internal/apm/services/{serviceName}/profiling/timeline', - { - params: { - path: { serviceName }, - query: { - kuery, - start, - end, - environment, - }, - }, - } - ); - }, - [kuery, start, end, serviceName, environment] - ); - - const { profilingTimeline } = data; - - const [valueType, setValueType] = useState(); - - useEffect(() => { - if (!profilingTimeline.length) { - return; - } - - const availableValueTypes = profilingTimeline.reduce((set, point) => { - ( - Object.keys(point.valueTypes).filter( - (type) => type !== 'unknown' - ) as ProfilingValueType[] - ) - .filter((type) => point.valueTypes[type] > 0) - .forEach((type) => { - set.add(type); - }); - - return set; - }, new Set()); - - if (!valueType || !availableValueTypes.has(valueType)) { - setValueType(Array.from(availableValueTypes)[0]); - } - }, [profilingTimeline, valueType]); - - return ( - <> - - - - { - setValueType(type); - }} - selectedValueType={valueType} - /> - - {valueType ? ( - - -

{getValueTypeConfig(valueType).label}

-
-
- ) : null} - - - -
-
- - ); -} diff --git a/x-pack/plugins/apm/public/components/app/service_profiling/service_profiling_flamegraph.tsx b/x-pack/plugins/apm/public/components/app/service_profiling/service_profiling_flamegraph.tsx deleted file mode 100644 index 064b33d2dd9c0b..00000000000000 --- a/x-pack/plugins/apm/public/components/app/service_profiling/service_profiling_flamegraph.tsx +++ /dev/null @@ -1,423 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import { - Chart, - Datum, - Partition, - PartitionLayout, - PrimitiveValue, - Settings, - TooltipInfo, - PartialTheme, -} from '@elastic/charts'; -import { - EuiCheckbox, - EuiFieldText, - EuiFlexGroup, - EuiFlexItem, - EuiIcon, - EuiInMemoryTable, - euiPaletteForTemperature, - EuiText, - EuiToolTip, -} from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; -import { find, sumBy } from 'lodash'; -import { rgba } from 'polished'; -import React, { useMemo, useState } from 'react'; -import seedrandom from 'seedrandom'; -import { euiStyled } from '@kbn/kibana-react-plugin/common'; -import { useChartTheme } from '@kbn/observability-plugin/public'; -import { - getValueTypeConfig, - ProfileNode, - ProfilingValueType, - ProfilingValueTypeUnit, -} from '../../../../common/profiling'; -import { - asDuration, - asDynamicBytes, - asInteger, -} from '../../../../common/utils/formatters'; -import { useFetcher } from '../../../hooks/use_fetcher'; -import { useTheme } from '../../../hooks/use_theme'; -import { unit } from '../../../utils/style'; - -const colors = euiPaletteForTemperature(100).slice(50, 85); - -interface ProfileDataPoint { - id: string; - value: number; - depth: number; - layers: Record; -} - -const TooltipContainer = euiStyled.div` - background-color: ${(props) => props.theme.eui.euiColorDarkestShade}; - border-radius: ${(props) => props.theme.eui.euiBorderRadius}; - color: ${(props) => props.theme.eui.euiColorLightestShade}; - padding: ${(props) => props.theme.eui.euiSizeS}; -`; - -const formatValue = ( - value: number, - valueUnit: ProfilingValueTypeUnit -): string => { - switch (valueUnit) { - case ProfilingValueTypeUnit.ns: - return asDuration(value / 1000); - - case ProfilingValueTypeUnit.us: - return asDuration(value); - - case ProfilingValueTypeUnit.count: - return asInteger(value); - - case ProfilingValueTypeUnit.bytes: - return asDynamicBytes(value); - } -}; - -function CustomTooltip({ - values, - nodes, - valueUnit, -}: TooltipInfo & { - nodes: Record; - valueUnit: ProfilingValueTypeUnit; -}) { - const first = values[0]; - - const foundNode = find(nodes, (node) => node.label === first.label); - - const label = foundNode?.fqn ?? first.label; - const value = formatValue(first.value, valueUnit) + first.formattedValue; - - return ( - - - - - - - {label} - - - - {value} - - - - - ); -} - -export function ServiceProfilingFlamegraph({ - serviceName, - environment, - kuery, - valueType, - start, - end, -}: { - serviceName: string; - environment: string; - kuery: string; - valueType?: ProfilingValueType; - start?: string; - end?: string; -}) { - const theme = useTheme(); - - const [collapseSimilarFrames, setCollapseSimilarFrames] = useState(true); - const [highlightFilter, setHighlightFilter] = useState(''); - - const { data } = useFetcher( - (callApmApi) => { - if (!start || !end || !valueType) { - return undefined; - } - - return callApmApi( - 'GET /internal/apm/services/{serviceName}/profiling/statistics', - { - params: { - path: { - serviceName, - }, - query: { - kuery, - start, - end, - environment, - valueType, - }, - }, - } - ); - }, - [kuery, start, end, environment, serviceName, valueType] - ); - - const points = useMemo(() => { - if (!data) { - return []; - } - - const { rootNodes, nodes } = data; - - const getDataPoints = ( - node: ProfileNode, - depth: number - ): ProfileDataPoint[] => { - const { children } = node; - - if (!children.length) { - // edge - return [ - { - id: node.id, - value: node.value, - depth, - layers: { - [depth]: node.id, - }, - }, - ]; - } - - const directChildNodes = children.map((childId) => nodes[childId]); - - const shouldCollapse = - collapseSimilarFrames && - node.value === 0 && - directChildNodes.length === 1 && - directChildNodes[0].value === 0; - - const nextDepth = shouldCollapse ? depth : depth + 1; - - const childDataPoints = children.flatMap((childId) => - getDataPoints(nodes[childId], nextDepth) - ); - - if (!shouldCollapse) { - childDataPoints.forEach((point) => { - point.layers[depth] = node.id; - }); - } - - const totalTime = sumBy(childDataPoints, 'value'); - const selfTime = node.value - totalTime; - - if (selfTime === 0) { - return childDataPoints; - } - - return [ - ...childDataPoints, - { - id: '', - value: selfTime, - layers: { [nextDepth]: '' }, - depth, - }, - ]; - }; - - const root = { - id: 'root', - label: 'root', - fqn: 'root', - children: rootNodes, - value: 0, - }; - - nodes.root = root; - - return getDataPoints(root, 0); - }, [data, collapseSimilarFrames]); - - const layers = useMemo(() => { - if (!data || !points.length) { - return []; - } - - const { nodes } = data; - - const maxDepth = Math.max(...points.map((point) => point.depth)); - - return [...new Array(maxDepth)].map((_, depth) => { - return { - groupByRollup: (d: Datum) => d.layers[depth], - nodeLabel: (id: PrimitiveValue) => { - if (nodes[id!]) { - return nodes[id!].label; - } - return ''; - }, - showAccessor: (id: PrimitiveValue) => !!id, - shape: { - fillColor: (d: { dataName: string }) => { - const node = nodes[d.dataName]; - - if ( - !node || - // TODO: apply highlight to entire stack, not just node - (highlightFilter && !node.fqn.includes(highlightFilter)) - ) { - return rgba(0, 0, 0, 0.25); - } - - const integer = - Math.abs(seedrandom(d.dataName).int32()) % colors.length; - return colors[integer]; - }, - }, - }; - }); - }, [points, highlightFilter, data]); - - const chartTheme = useChartTheme(); - const themeOverrides: PartialTheme = { - chartMargins: { top: 0, bottom: 0, left: 0, right: 0 }, - partition: { - fillLabel: { - fontFamily: theme.eui.euiCodeFontFamily, - clipText: true, - }, - fontFamily: theme.eui.euiCodeFontFamily, - minFontSize: 9, - maxFontSize: 9, - }, - }; - - const chartSize = { - height: layers.length * 20, - width: '100%', - }; - - const items = Object.values(data?.nodes ?? {}).filter((node) => - highlightFilter ? node.fqn.includes(highlightFilter) : true - ); - - const valueUnit = valueType - ? getValueTypeConfig(valueType).unit - : ProfilingValueTypeUnit.count; - - return ( - - - - ( - - ), - }} - /> - d.value as number} - valueFormatter={() => ''} - /> - - - - - - { - setCollapseSimilarFrames((state) => !state); - }} - label={i18n.translate( - 'xpack.apm.profiling.collapseSimilarFrames', - { - defaultMessage: 'Collapse similar', - } - )} - /> - - - { - if (!e.target.value) { - setHighlightFilter(''); - } - }} - onKeyPress={(e) => { - if (e.charCode === 13) { - setHighlightFilter(() => (e.target as any).value); - } - }} - /> - - - { - return ( - - {item.label} - - ); - }, - }, - { - field: 'value', - name: i18n.translate('xpack.apm.profiling.table.value', { - defaultMessage: 'Self', - }), - render: (_, item) => formatValue(item.value, valueUnit), - width: `${unit * 6}px`, - }, - ]} - /> - - - - - ); -} diff --git a/x-pack/plugins/apm/public/components/app/service_profiling/service_profiling_timeline.tsx b/x-pack/plugins/apm/public/components/app/service_profiling/service_profiling_timeline.tsx deleted file mode 100644 index 1801cbc365f35d..00000000000000 --- a/x-pack/plugins/apm/public/components/app/service_profiling/service_profiling_timeline.tsx +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import { - Axis, - BarSeries, - Chart, - niceTimeFormatter, - Position, - ScaleType, - Settings, -} from '@elastic/charts'; -import { EuiButtonEmpty } from '@elastic/eui'; -import { - EuiFlexGroup, - EuiFlexItem, - EuiIcon, - EuiText, - euiPaletteColorBlind, -} from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; -import React from 'react'; -import { useChartTheme } from '@kbn/observability-plugin/public'; -import { - getValueTypeConfig, - ProfilingValueType, -} from '../../../../common/profiling'; - -type ProfilingTimelineItem = { - x: number; -} & { valueTypes: Record }; - -const palette = euiPaletteColorBlind(); - -export function ServiceProfilingTimeline({ - start, - end, - series, - onValueTypeSelect, - selectedValueType, -}: { - series: ProfilingTimelineItem[]; - start: string; - end: string; - onValueTypeSelect: (valueType: ProfilingValueType) => void; - selectedValueType: ProfilingValueType | undefined; -}) { - const chartTheme = useChartTheme(); - - const xFormat = niceTimeFormatter([Date.parse(start), Date.parse(end)]); - - function getSeriesForValueType(type: ProfilingValueType | 'unknown') { - const label = - type === 'unknown' - ? i18n.translate('xpack.apm.serviceProfiling.valueTypeLabel.unknown', { - defaultMessage: 'Other', - }) - : getValueTypeConfig(type).label; - - return { - name: label, - id: type, - data: series.map((coord) => ({ - x: coord.x, - y: coord.valueTypes[type], - })), - }; - } - - const specs = [ - getSeriesForValueType('unknown'), - ...Object.values(ProfilingValueType).map((type) => - getSeriesForValueType(type) - ), - ] - .filter((spec) => spec.data.some((coord) => coord.y > 0)) - .map((spec, index) => { - return { - ...spec, - color: palette[index], - }; - }); - - return ( - - - - - - - {specs.map((spec) => ( - - ))} - - - - - {specs.map((spec) => ( - - - - - - - { - if (spec.id !== 'unknown') { - onValueTypeSelect(spec.id); - } - }} - > - - {spec.name} - - - - - - ))} - - - - ); -} diff --git a/x-pack/plugins/apm/public/components/routing/service_detail/index.tsx b/x-pack/plugins/apm/public/components/routing/service_detail/index.tsx index 1835eee137f41a..8068ee3baf5ef7 100644 --- a/x-pack/plugins/apm/public/components/routing/service_detail/index.tsx +++ b/x-pack/plugins/apm/public/components/routing/service_detail/index.tsx @@ -23,7 +23,6 @@ import { ServiceNodeOverview } from '../../app/service_node_overview'; import { ServiceNodeMetrics } from '../../app/service_node_metrics'; import { ServiceMapServiceDetail } from '../../app/service_map'; import { TransactionDetails } from '../../app/transaction_details'; -import { ServiceProfiling } from '../../app/service_profiling'; import { ServiceDependencies } from '../../app/service_dependencies'; import { ServiceLogs } from '../../app/service_logs'; import { InfraOverview } from '../../app/infra_overview'; @@ -268,13 +267,6 @@ export const serviceDetail = { showKueryBar: false, }, }), - '/services/{serviceName}/profiling': page({ - tab: 'profiling', - title: i18n.translate('xpack.apm.views.serviceProfiling.title', { - defaultMessage: 'Profiling', - }), - element: , - }), '/services/{serviceName}/infrastructure': page({ tab: 'infrastructure', title: i18n.translate('xpack.apm.views.infra.title', { diff --git a/x-pack/plugins/apm/public/components/routing/templates/apm_service_template/index.tsx b/x-pack/plugins/apm/public/components/routing/templates/apm_service_template/index.tsx index 2abfdba6f4124f..9622acb525618b 100644 --- a/x-pack/plugins/apm/public/components/routing/templates/apm_service_template/index.tsx +++ b/x-pack/plugins/apm/public/components/routing/templates/apm_service_template/index.tsx @@ -48,7 +48,6 @@ type Tab = NonNullable[0] & { | 'infrastructure' | 'service-map' | 'logs' - | 'profiling' | 'alerts'; hidden?: boolean; }; @@ -184,7 +183,7 @@ export function isInfraTabHidden({ function useTabs({ selectedTab }: { selectedTab: Tab['key'] }) { const { agentName, runtimeName } = useApmServiceContext(); - const { config, core, plugins } = useApmPluginContext(); + const { core, plugins } = useApmPluginContext(); const { capabilities } = core.application; const { isAlertingAvailable, canReadAlerts } = getAlertingCapabilities( plugins, @@ -305,20 +304,6 @@ function useTabs({ selectedTab }: { selectedTab: Tab['key'] }) { hidden: !agentName || isRumAgentName(agentName) || isMobileAgentName(agentName), }, - { - key: 'profiling', - href: router.link('/services/{serviceName}/profiling', { - path: { - serviceName, - }, - query, - }), - hidden: !config.profilingEnabled, - append: , - label: i18n.translate('xpack.apm.serviceDetails.profilingTabLabel', { - defaultMessage: 'Profiling', - }), - }, { key: 'alerts', href: router.link('/services/{serviceName}/alerts', { diff --git a/x-pack/plugins/apm/public/components/shared/links/apm/service_profiling_link.tsx b/x-pack/plugins/apm/public/components/shared/links/apm/service_profiling_link.tsx deleted file mode 100644 index 01e23cba48e04d..00000000000000 --- a/x-pack/plugins/apm/public/components/shared/links/apm/service_profiling_link.tsx +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { EuiLink } from '@elastic/eui'; -import React from 'react'; -import { APMLinkExtendProps, useAPMHref } from './apm_link'; - -interface ServiceProfilingLinkProps extends APMLinkExtendProps { - serviceName: string; - environment?: string; -} - -export function useServiceProfilingHref({ - serviceName, - environment, -}: ServiceProfilingLinkProps) { - const query = environment - ? { - environment, - } - : {}; - return useAPMHref({ - path: `/services/${serviceName}/profiling`, - query, - }); -} - -export function ServiceProfilingLink({ - serviceName, - environment, - ...rest -}: ServiceProfilingLinkProps) { - const href = useServiceProfilingHref({ serviceName, environment }); - return ; -} diff --git a/x-pack/plugins/apm/public/context/apm_plugin/mock_apm_plugin_context.tsx b/x-pack/plugins/apm/public/context/apm_plugin/mock_apm_plugin_context.tsx index e9f7bda8de2360..04a4df52579163 100644 --- a/x-pack/plugins/apm/public/context/apm_plugin/mock_apm_plugin_context.tsx +++ b/x-pack/plugins/apm/public/context/apm_plugin/mock_apm_plugin_context.tsx @@ -66,7 +66,6 @@ const mockConfig: ConfigSchema = { ui: { enabled: false, }, - profilingEnabled: false, }; const urlService = new UrlService({ diff --git a/x-pack/plugins/apm/public/index.ts b/x-pack/plugins/apm/public/index.ts index 1a5177b7f1f8c6..bc50f97a5e8d74 100644 --- a/x-pack/plugins/apm/public/index.ts +++ b/x-pack/plugins/apm/public/index.ts @@ -10,7 +10,6 @@ import { ApmPlugin, ApmPluginSetup, ApmPluginStart } from './plugin'; export interface ConfigSchema { serviceMapEnabled: boolean; - profilingEnabled: boolean; ui: { enabled: boolean; }; diff --git a/x-pack/plugins/apm/server/index.ts b/x-pack/plugins/apm/server/index.ts index 5dbee19cbf8664..6071c455ad84ef 100644 --- a/x-pack/plugins/apm/server/index.ts +++ b/x-pack/plugins/apm/server/index.ts @@ -41,7 +41,6 @@ const configSchema = schema.object({ ), telemetryCollectionEnabled: schema.boolean({ defaultValue: true }), metricsInterval: schema.number({ defaultValue: 30 }), - profilingEnabled: schema.boolean({ defaultValue: false }), agent: schema.object({ migrations: schema.object({ enabled: schema.boolean({ defaultValue: false }), @@ -107,7 +106,6 @@ export const config: PluginConfigDescriptor = { exposeToBrowser: { serviceMapEnabled: true, ui: true, - profilingEnabled: true, }, schema: configSchema, }; diff --git a/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.ts b/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.ts index 40579a270672c0..fd9f1a352f5c7f 100644 --- a/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.ts +++ b/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.ts @@ -21,7 +21,6 @@ import { import { unwrapEsResponse } from '@kbn/observability-plugin/server'; import { omit } from 'lodash'; import { ProcessorEvent } from '@kbn/observability-plugin/common'; -import { Profile } from '../../../../../typings/es_schemas/ui/profile'; import { withApmSpan } from '../../../../utils/with_apm_span'; import { APMError } from '../../../../../typings/es_schemas/ui/apm_error'; import { Metric } from '../../../../../typings/es_schemas/ui/metric'; @@ -69,7 +68,6 @@ type TypeOfProcessorEvent = { transaction: Transaction; span: Span; metric: Metric; - profile: Profile; }[T]; type TypedSearchResponse = diff --git a/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/unpack_processor_events.ts b/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/unpack_processor_events.ts index ea83728b64ac09..683271a566685a 100644 --- a/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/unpack_processor_events.ts +++ b/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/unpack_processor_events.ts @@ -16,8 +16,6 @@ const processorEventIndexMap = { [ProcessorEvent.span]: 'span', [ProcessorEvent.metric]: 'metric', [ProcessorEvent.error]: 'error', - // TODO: should have its own config setting - [ProcessorEvent.profile]: 'transaction', } as const; export function processorEventsToIndex( diff --git a/x-pack/plugins/apm/server/routes/services/profiling/get_service_profiling_statistics.ts b/x-pack/plugins/apm/server/routes/services/profiling/get_service_profiling_statistics.ts deleted file mode 100644 index 7599e67963e4a6..00000000000000 --- a/x-pack/plugins/apm/server/routes/services/profiling/get_service_profiling_statistics.ts +++ /dev/null @@ -1,284 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import { keyBy, last } from 'lodash'; -import { Logger } from '@kbn/core/server'; -import util from 'util'; -import { ESFilter } from '@kbn/core/types/elasticsearch'; -import { rangeQuery, kqlQuery } from '@kbn/observability-plugin/server'; -import { ProcessorEvent } from '@kbn/observability-plugin/common'; -import { maybe } from '../../../../common/utils/maybe'; -import { ProfileStackFrame } from '../../../../typings/es_schemas/ui/profile'; -import { - ProfilingValueType, - ProfileNode, - getValueTypeConfig, -} from '../../../../common/profiling'; -import { - PROFILE_STACK, - PROFILE_TOP_ID, - SERVICE_NAME, -} from '../../../../common/elasticsearch_fieldnames'; -import { environmentQuery } from '../../../../common/utils/environment_query'; -import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; -import { Setup } from '../../../lib/helpers/setup_request'; -import { withApmSpan } from '../../../utils/with_apm_span'; - -const MAX_STACK_IDS = 10000; -const MAX_STACKS_PER_REQUEST = 1000; - -const maybeAdd = (to: any[], value: any) => { - if (to.includes(value)) { - return; - } - - to.push(value); -}; - -async function getProfilingStats({ - apmEventClient, - filter, - valueTypeField, -}: { - apmEventClient: APMEventClient; - filter: ESFilter[]; - valueTypeField: string; -}) { - const response = await apmEventClient.search('get_profiling_stats', { - apm: { - events: [ProcessorEvent.profile], - }, - body: { - size: 0, - query: { - bool: { - filter, - }, - }, - aggs: { - stacks: { - terms: { - field: PROFILE_TOP_ID, - size: MAX_STACK_IDS, - order: { - value: 'desc', - }, - }, - aggs: { - value: { - sum: { - field: valueTypeField, - }, - }, - }, - }, - }, - }, - }); - - const stacks = - response.aggregations?.stacks.buckets.map((stack) => { - return { - id: stack.key as string, - value: stack.value.value!, - }; - }) ?? []; - - return stacks; -} - -function getProfilesWithStacks({ - apmEventClient, - filter, -}: { - apmEventClient: APMEventClient; - filter: ESFilter[]; -}) { - return withApmSpan('get_profiles_with_stacks', async () => { - const cardinalityResponse = await apmEventClient.search( - 'get_top_cardinality', - { - apm: { - events: [ProcessorEvent.profile], - }, - body: { - size: 0, - query: { - bool: { filter }, - }, - aggs: { - top: { - cardinality: { - field: PROFILE_TOP_ID, - }, - }, - }, - }, - } - ); - - const cardinality = cardinalityResponse.aggregations?.top.value ?? 0; - - const numStacksToFetch = Math.min( - Math.ceil(cardinality * 1.1), - MAX_STACK_IDS - ); - - const partitions = Math.ceil(numStacksToFetch / MAX_STACKS_PER_REQUEST); - - if (partitions === 0) { - return []; - } - - const allResponses = await withApmSpan('get_all_stacks', async () => { - return Promise.all( - [...new Array(partitions)].map(async (_, num) => { - const response = await apmEventClient.search('get_partition', { - apm: { - events: [ProcessorEvent.profile], - }, - body: { - size: 0, - query: { - bool: { - filter, - }, - }, - aggs: { - top: { - terms: { - field: PROFILE_TOP_ID, - size: Math.max(MAX_STACKS_PER_REQUEST), - include: { - num_partitions: partitions, - partition: num, - }, - }, - aggs: { - latest: { - top_hits: { - _source: [PROFILE_TOP_ID, PROFILE_STACK], - }, - }, - }, - }, - }, - }, - }); - - return ( - response.aggregations?.top.buckets.flatMap((bucket) => { - return bucket.latest.hits.hits[0]._source; - }) ?? [] - ); - }) - ); - }); - - return allResponses.flat(); - }); -} - -export async function getServiceProfilingStatistics({ - kuery, - serviceName, - setup, - environment, - valueType, - logger, - start, - end, -}: { - kuery: string; - serviceName: string; - setup: Setup; - environment: string; - valueType: ProfilingValueType; - logger: Logger; - start: number; - end: number; -}) { - return withApmSpan('get_service_profiling_statistics', async () => { - const { apmEventClient } = setup; - - const valueTypeField = getValueTypeConfig(valueType).field; - - const filter: ESFilter[] = [ - { term: { [SERVICE_NAME]: serviceName } }, - { exists: { field: valueTypeField } }, - ...rangeQuery(start, end), - ...environmentQuery(environment), - ...kqlQuery(kuery), - ]; - - const [profileStats, profileStacks] = await Promise.all([ - getProfilingStats({ apmEventClient, filter, valueTypeField }), - getProfilesWithStacks({ apmEventClient, filter }), - ]); - - const nodes: Record = {}; - const rootNodes: string[] = []; - - function getNode(frame: ProfileStackFrame) { - const { id, filename, function: functionName, line } = frame; - const location = [functionName, line].filter(Boolean).join(':'); - const fqn = [filename, location].filter(Boolean).join('/'); - const label = last(location.split('/'))!; - let node = nodes[id]; - if (!node) { - node = { id, label, fqn, value: 0, children: [] }; - nodes[id] = node; - } - return node; - } - - const stackStatsById = keyBy(profileStats, 'id'); - - const missingStacks: string[] = []; - - profileStacks.forEach((profile) => { - const stats = maybe(stackStatsById[profile.profile.top.id]); - - if (!stats) { - missingStacks.push(profile.profile.top.id); - return; - } - - const frames = profile.profile.stack.concat().reverse(); - - frames.forEach((frame, index) => { - const node = getNode(frame); - - if (index === frames.length - 1 && stats) { - node.value += stats.value; - } - - if (index === 0) { - // root node - maybeAdd(rootNodes, node.id); - } else { - const parent = nodes[frames[index - 1].id]; - maybeAdd(parent.children, node.id); - } - }); - }); - - if (missingStacks.length > 0) { - logger.warn( - `Could not find stats for all stacks: ${util.inspect({ - numProfileStats: profileStats.length, - numStacks: profileStacks.length, - missing: missingStacks, - })}` - ); - } - - return { - nodes, - rootNodes, - }; - }); -} diff --git a/x-pack/plugins/apm/server/routes/services/profiling/get_service_profiling_timeline.ts b/x-pack/plugins/apm/server/routes/services/profiling/get_service_profiling_timeline.ts deleted file mode 100644 index 371f17159beb06..00000000000000 --- a/x-pack/plugins/apm/server/routes/services/profiling/get_service_profiling_timeline.ts +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import { mapKeys, mapValues } from 'lodash'; -import { kqlQuery, rangeQuery } from '@kbn/observability-plugin/server'; -import { ProcessorEvent } from '@kbn/observability-plugin/common'; -import { - PROFILE_ID, - SERVICE_NAME, -} from '../../../../common/elasticsearch_fieldnames'; -import { - getValueTypeConfig, - ProfilingValueType, -} from '../../../../common/profiling'; -import { Setup } from '../../../lib/helpers/setup_request'; -import { getBucketSize } from '../../../lib/helpers/get_bucket_size'; -import { environmentQuery } from '../../../../common/utils/environment_query'; - -const configMap = mapValues( - mapKeys(ProfilingValueType, (val, key) => val), - (value) => getValueTypeConfig(value) -) as Record>; - -const allFields = Object.values(configMap).map((config) => config.field); - -export async function getServiceProfilingTimeline({ - kuery, - serviceName, - environment, - setup, - start, - end, -}: { - kuery: string; - serviceName: string; - setup: Setup; - environment: string; - start: number; - end: number; -}) { - const { apmEventClient } = setup; - - const response = await apmEventClient.search( - 'get_service_profiling_timeline', - { - apm: { - events: [ProcessorEvent.profile], - }, - body: { - size: 0, - query: { - bool: { - filter: [ - { term: { [SERVICE_NAME]: serviceName } }, - ...rangeQuery(start, end), - ...environmentQuery(environment), - ...kqlQuery(kuery), - ], - }, - }, - aggs: { - timeseries: { - date_histogram: { - field: '@timestamp', - fixed_interval: getBucketSize({ start, end }).intervalString, - min_doc_count: 0, - extended_bounds: { - min: start, - max: end, - }, - }, - aggs: { - value_type: { - filters: { - filters: { - unknown: { - bool: { - must_not: allFields.map((field) => ({ - exists: { field }, - })), - }, - }, - ...mapValues(configMap, ({ field }) => ({ - exists: { field }, - })), - }, - }, - aggs: { - num_profiles: { - cardinality: { - field: PROFILE_ID, - }, - }, - }, - }, - }, - }, - }, - }, - } - ); - - const { aggregations } = response; - - if (!aggregations) { - return []; - } - - return aggregations.timeseries.buckets.map((bucket) => { - return { - x: bucket.key, - valueTypes: { - unknown: bucket.value_type.buckets.unknown.num_profiles.value, - // TODO: use enum as object key. not possible right now - // because of https://github.com/microsoft/TypeScript/issues/37888 - ...mapValues(configMap, (_, key) => { - return ( - bucket.value_type.buckets[key as ProfilingValueType]?.num_profiles - .value ?? 0 - ); - }), - }, - }; - }); -} diff --git a/x-pack/plugins/apm/server/routes/services/route.ts b/x-pack/plugins/apm/server/routes/services/route.ts index 52ba901fd62c5c..26557e2adfb445 100644 --- a/x-pack/plugins/apm/server/routes/services/route.ts +++ b/x-pack/plugins/apm/server/routes/services/route.ts @@ -18,7 +18,6 @@ import { ScopedAnnotationsClient } from '@kbn/observability-plugin/server'; import { Annotation } from '@kbn/observability-plugin/common/annotations'; import { apmServiceGroupMaxNumberOfServices } from '@kbn/observability-plugin/common'; import { latencyAggregationTypeRt } from '../../../common/latency_aggregation_types'; -import { ProfilingValueType } from '../../../common/profiling'; import { getSearchAggregatedTransactions } from '../../lib/helpers/transactions'; import { setupRequest } from '../../lib/helpers/setup_request'; import { getServiceAnnotations } from './annotations'; @@ -32,8 +31,6 @@ import { getServiceMetadataIcons } from './get_service_metadata_icons'; import { getServiceNodeMetadata } from './get_service_node_metadata'; import { getServiceTransactionTypes } from './get_service_transaction_types'; import { getThroughput } from './get_throughput'; -import { getServiceProfilingStatistics } from './profiling/get_service_profiling_statistics'; -import { getServiceProfilingTimeline } from './profiling/get_service_profiling_timeline'; import { withApmSpan } from '../../utils/with_apm_span'; import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; import { @@ -1028,108 +1025,6 @@ export const serviceDependenciesBreakdownRoute = createApmServerRoute({ }, }); -const serviceProfilingTimelineRoute = createApmServerRoute({ - endpoint: 'GET /internal/apm/services/{serviceName}/profiling/timeline', - params: t.type({ - path: t.type({ - serviceName: t.string, - }), - query: t.intersection([environmentRt, kueryRt, rangeRt]), - }), - options: { - tags: ['access:apm'], - }, - handler: async ( - resources - ): Promise<{ - profilingTimeline: Array<{ - x: number; - valueTypes: { - wall_time: number; - cpu_time: number; - samples: number; - alloc_objects: number; - alloc_space: number; - inuse_objects: number; - inuse_space: number; - unknown: number; - }; - }>; - }> => { - const setup = await setupRequest(resources); - const { params } = resources; - const { - path: { serviceName }, - query: { environment, kuery, start, end }, - } = params; - - const profilingTimeline = await getServiceProfilingTimeline({ - kuery, - setup, - serviceName, - environment, - start, - end, - }); - - return { profilingTimeline }; - }, -}); - -const serviceProfilingStatisticsRoute = createApmServerRoute({ - endpoint: 'GET /internal/apm/services/{serviceName}/profiling/statistics', - params: t.type({ - path: t.type({ - serviceName: t.string, - }), - query: t.intersection([ - environmentRt, - kueryRt, - rangeRt, - t.type({ - valueType: t.union([ - t.literal(ProfilingValueType.wallTime), - t.literal(ProfilingValueType.cpuTime), - t.literal(ProfilingValueType.samples), - t.literal(ProfilingValueType.allocObjects), - t.literal(ProfilingValueType.allocSpace), - t.literal(ProfilingValueType.inuseObjects), - t.literal(ProfilingValueType.inuseSpace), - ]), - }), - ]), - }), - options: { - tags: ['access:apm'], - }, - handler: async ( - resources - ): Promise<{ - nodes: Record; - rootNodes: string[]; - }> => { - const setup = await setupRequest(resources); - - const { params, logger } = resources; - - const { - path: { serviceName }, - query: { environment, kuery, valueType, start, end }, - } = params; - - return getServiceProfilingStatistics({ - kuery, - serviceName, - environment, - valueType, - setup, - logger, - start, - end, - }); - }, -}); - const serviceAnomalyChartsRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/services/{serviceName}/anomaly_charts', params: t.type({ @@ -1263,8 +1158,6 @@ export const serviceRouteRepository = { ...serviceInstancesDetailedStatisticsRoute, ...serviceDependenciesRoute, ...serviceDependenciesBreakdownRoute, - ...serviceProfilingTimelineRoute, - ...serviceProfilingStatisticsRoute, ...serviceAnomalyChartsRoute, ...sortedAndFilteredServicesRoute, }; diff --git a/x-pack/plugins/apm/server/routes/storage_explorer/get_storage_details_per_processor_event.ts b/x-pack/plugins/apm/server/routes/storage_explorer/get_storage_details_per_processor_event.ts index 95f575dff9600d..8f92ce9d93809b 100644 --- a/x-pack/plugins/apm/server/routes/storage_explorer/get_storage_details_per_processor_event.ts +++ b/x-pack/plugins/apm/server/routes/storage_explorer/get_storage_details_per_processor_event.ts @@ -133,10 +133,7 @@ export async function getStorageDetailsPerProcessorEvent({ ); return { - processorEvent: processorEvent as Exclude< - ProcessorEvent, - ProcessorEvent.profile - >, + processorEvent, docs: bucketForProcessorEvent?.number_of_metric_docs_for_processor_event .value ?? 0, diff --git a/x-pack/plugins/apm/typings/es_schemas/ui/profile.ts b/x-pack/plugins/apm/typings/es_schemas/ui/profile.ts deleted file mode 100644 index e8fbe8805fd0f7..00000000000000 --- a/x-pack/plugins/apm/typings/es_schemas/ui/profile.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { Observer } from '@elastic/eui/src/components/observer/observer'; -import { Agent } from './fields/agent'; - -export interface ProfileStackFrame { - filename?: string; - line?: string; - function: string; - id: string; -} - -export interface Profile { - agent: Agent; - '@timestamp': string; - labels?: { - [key: string]: string | number | boolean; - }; - observer?: Observer; - profile: { - top: ProfileStackFrame; - duration: number; - stack: ProfileStackFrame[]; - id: string; - wall?: { - us: number; - }; - cpu?: { - ns: number; - }; - samples: { - count: number; - }; - }; -} diff --git a/x-pack/plugins/cases/public/common/apm/use_cases_transactions.test.ts b/x-pack/plugins/cases/public/common/apm/use_cases_transactions.test.ts new file mode 100644 index 00000000000000..3b0ba69ae85600 --- /dev/null +++ b/x-pack/plugins/cases/public/common/apm/use_cases_transactions.test.ts @@ -0,0 +1,106 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { renderHook } from '@testing-library/react-hooks'; +import { CaseAttachmentsWithoutOwner } from '../../types'; +import { + StartAddAttachmentToExistingCaseTransaction, + StartCreateCaseWithAttachmentsTransaction, + useAddAttachmentToExistingCaseTransaction, + useCreateCaseWithAttachmentsTransaction, +} from './use_cases_transactions'; + +const mockAddLabels = jest.fn(); +const mockStartTransaction = jest.fn(() => ({ addLabels: mockAddLabels })); +jest.mock('./use_start_transaction', () => ({ + useStartTransaction: () => ({ + startTransaction: mockStartTransaction, + }), +})); + +const appId = 'testAppId'; + +const singleAttachments = [ + { type: 'alert', alertId: 'someAlertId' }, +] as CaseAttachmentsWithoutOwner; + +const bulkAttachments = [ + { type: 'alert', alertId: ['someAlertId', 'someAlertId2'] }, + { type: 'alert', alertId: ['someAlertId3'] }, + { type: 'user', comment: 'someComment' }, +] as CaseAttachmentsWithoutOwner; + +const renderUseCreateCaseWithAttachmentsTransaction = () => + renderHook( + useCreateCaseWithAttachmentsTransaction + ); + +const renderUseAddAttachmentToExistingCaseTransaction = () => + renderHook( + useAddAttachmentToExistingCaseTransaction + ); + +describe('cases transactions', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + describe('useCreateCaseWithAttachmentsTransaction', () => { + it('should call createCase transaction', () => { + const { result } = renderUseCreateCaseWithAttachmentsTransaction(); + + result.current.startTransaction({ appId }); + + expect(mockStartTransaction).toHaveBeenCalledWith(`Cases [${appId}] createCase`); + expect(mockAddLabels).not.toHaveBeenCalled(); + }); + + it('should call addAttachmentToNewCase transaction', () => { + const { result } = renderUseCreateCaseWithAttachmentsTransaction(); + + result.current.startTransaction({ appId, attachments: singleAttachments }); + + expect(mockStartTransaction).toHaveBeenCalledWith(`Cases [${appId}] addAttachmentToNewCase`); + expect(mockAddLabels).not.toHaveBeenCalled(); + }); + + it('should call bulkAddAttachmentsToNewCase transaction', () => { + const { result } = renderUseCreateCaseWithAttachmentsTransaction(); + + result.current.startTransaction({ appId, attachments: bulkAttachments }); + + expect(mockStartTransaction).toHaveBeenCalledWith( + `Cases [${appId}] bulkAddAttachmentsToNewCase` + ); + expect(mockAddLabels).toHaveBeenCalledWith({ alert_count: 3 }); + }); + }); + + describe('useAddAttachmentToExistingCaseTransaction', () => { + it('should call addAttachmentToExistingCase transaction', () => { + const { result } = renderUseAddAttachmentToExistingCaseTransaction(); + + result.current.startTransaction({ appId, attachments: singleAttachments }); + + expect(mockStartTransaction).toHaveBeenCalledWith( + `Cases [${appId}] addAttachmentToExistingCase` + ); + expect(mockAddLabels).not.toHaveBeenCalled(); + }); + + it('should call bulkAddAttachmentsToExistingCase transaction', () => { + const { result } = renderUseAddAttachmentToExistingCaseTransaction(); + + result.current.startTransaction({ appId, attachments: bulkAttachments }); + + expect(mockStartTransaction).toHaveBeenCalledWith( + `Cases [${appId}] bulkAddAttachmentsToExistingCase` + ); + expect(mockAddLabels).toHaveBeenCalledWith({ alert_count: 3 }); + }); + }); +}); diff --git a/x-pack/plugins/cases/public/common/apm/use_cases_transactions.ts b/x-pack/plugins/cases/public/common/apm/use_cases_transactions.ts new file mode 100644 index 00000000000000..1f7b77c32df993 --- /dev/null +++ b/x-pack/plugins/cases/public/common/apm/use_cases_transactions.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 { Transaction } from '@elastic/apm-rum'; +import { useCallback } from 'react'; +import { CommentType } from '../../../common'; +import { CaseAttachmentsWithoutOwner } from '../../types'; +import { useStartTransaction } from './use_start_transaction'; + +const CREATE_CASE = 'createCase' as const; +const ADD_ATTACHMENT_TO_NEW_CASE = 'addAttachmentToNewCase' as const; +const BULK_ADD_ATTACHMENT_TO_NEW_CASE = 'bulkAddAttachmentsToNewCase' as const; +const ADD_ATTACHMENT_TO_EXISTING_CASE = 'addAttachmentToExistingCase' as const; +const BULK_ADD_ATTACHMENT_TO_EXISTING_CASE = 'bulkAddAttachmentsToExistingCase' as const; + +export type StartCreateCaseWithAttachmentsTransaction = (param: { + appId: string; + attachments?: CaseAttachmentsWithoutOwner; +}) => Transaction | undefined; + +// Called when a case is created, attachments are optional +export const useCreateCaseWithAttachmentsTransaction = () => { + const { startTransaction } = useStartTransaction(); + + const startCreateCaseWithAttachmentsTransaction = + useCallback( + ({ appId, attachments }) => { + if (!attachments) { + return startTransaction(`Cases [${appId}] ${CREATE_CASE}`); + } + const alertCount = getAlertCount(attachments); + if (alertCount <= 1) { + return startTransaction(`Cases [${appId}] ${ADD_ATTACHMENT_TO_NEW_CASE}`); + } + + const transaction = startTransaction(`Cases [${appId}] ${BULK_ADD_ATTACHMENT_TO_NEW_CASE}`); + transaction?.addLabels({ alert_count: alertCount }); + return transaction; + }, + [startTransaction] + ); + + return { startTransaction: startCreateCaseWithAttachmentsTransaction }; +}; + +export type StartAddAttachmentToExistingCaseTransaction = (param: { + appId: string; + attachments: CaseAttachmentsWithoutOwner; +}) => Transaction | undefined; + +// Called when attachments are added to existing case +export const useAddAttachmentToExistingCaseTransaction = () => { + const { startTransaction } = useStartTransaction(); + + const startAddAttachmentToExistingCaseTransaction = + useCallback( + ({ appId, attachments }) => { + const alertCount = getAlertCount(attachments); + if (alertCount <= 1) { + return startTransaction(`Cases [${appId}] ${ADD_ATTACHMENT_TO_EXISTING_CASE}`); + } + const transaction = startTransaction( + `Cases [${appId}] ${BULK_ADD_ATTACHMENT_TO_EXISTING_CASE}` + ); + transaction?.addLabels({ alert_count: alertCount }); + return transaction; + }, + [startTransaction] + ); + + return { startTransaction: startAddAttachmentToExistingCaseTransaction }; +}; + +const getAlertCount = (attachments: CaseAttachmentsWithoutOwner) => { + return attachments.reduce((total, attachment) => { + if (attachment.type !== CommentType.alert) { + return total; + } + if (!Array.isArray(attachment.alertId)) { + return total + 1; + } + return total + attachment.alertId.length; + }, 0); +}; diff --git a/x-pack/plugins/cases/public/common/apm/use_start_transaction.ts b/x-pack/plugins/cases/public/common/apm/use_start_transaction.ts new file mode 100644 index 00000000000000..5951b6454cb42d --- /dev/null +++ b/x-pack/plugins/cases/public/common/apm/use_start_transaction.ts @@ -0,0 +1,43 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license 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 } from 'react'; +import type { TransactionOptions } from '@elastic/apm-rum'; +import { useKibana } from '../lib/kibana'; + +export type CasesApmTransactionName = `Cases [${string}] ${string}`; + +interface StartTransactionOptions { + type?: string; + options?: TransactionOptions; +} + +const DEFAULT_TRANSACTION_OPTIONS: TransactionOptions = { managed: true }; +const DEFAULT_TRANSACTION_TYPE = 'user-interaction'; + +export const useStartTransaction = () => { + const { apm } = useKibana().services; + + const startTransaction = useCallback( + ( + name: CasesApmTransactionName, + { + type = DEFAULT_TRANSACTION_TYPE, + options = DEFAULT_TRANSACTION_OPTIONS, + }: StartTransactionOptions = {} + ) => apm?.startTransaction(name, type, options), + [apm] + ); + + return { startTransaction }; +}; diff --git a/x-pack/plugins/cases/public/components/all_cases/selector_modal/use_cases_add_to_existing_case_modal.tsx b/x-pack/plugins/cases/public/components/all_cases/selector_modal/use_cases_add_to_existing_case_modal.tsx index 8152986e6c75b3..f9f27ebe780d37 100644 --- a/x-pack/plugins/cases/public/components/all_cases/selector_modal/use_cases_add_to_existing_case_modal.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/selector_modal/use_cases_add_to_existing_case_modal.tsx @@ -15,6 +15,7 @@ import { useCasesContext } from '../../cases_context/use_cases_context'; import { useCasesAddToNewCaseFlyout } from '../../create/flyout/use_cases_add_to_new_case_flyout'; import { CaseAttachmentsWithoutOwner } from '../../../types'; import { useCreateAttachments } from '../../../containers/use_create_attachments'; +import { useAddAttachmentToExistingCaseTransaction } from '../../../common/apm/use_cases_transactions'; type AddToExistingFlyoutProps = AllCasesSelectorModalProps & { toastTitle?: string; @@ -35,9 +36,10 @@ export const useCasesAddToExistingCaseModal = (props: AddToExistingFlyoutProps = toastContent: props.toastContent, }); - const { dispatch } = useCasesContext(); + const { dispatch, appId } = useCasesContext(); const casesToasts = useCasesToast(); const { createAttachments } = useCreateAttachments(); + const { startTransaction } = useAddAttachmentToExistingCaseTransaction(); const closeModal = useCallback(() => { dispatch({ @@ -63,6 +65,8 @@ export const useCasesAddToExistingCaseModal = (props: AddToExistingFlyoutProps = try { // add attachments to the case if (attachments !== undefined && attachments.length > 0) { + startTransaction({ appId, attachments }); + await createAttachments({ caseId: theCase.id, caseOwner: theCase.owner, @@ -86,7 +90,15 @@ export const useCasesAddToExistingCaseModal = (props: AddToExistingFlyoutProps = props.onRowClick(theCase); } }, - [casesToasts, closeModal, createNewCaseFlyout, createAttachments, props] + [ + props, + closeModal, + createNewCaseFlyout, + startTransaction, + appId, + createAttachments, + casesToasts, + ] ); const openModal = useCallback( diff --git a/x-pack/plugins/cases/public/components/create/form_context.tsx b/x-pack/plugins/cases/public/components/create/form_context.tsx index dc8c3e593c87f9..c037d220121582 100644 --- a/x-pack/plugins/cases/public/components/create/form_context.tsx +++ b/x-pack/plugins/cases/public/components/create/form_context.tsx @@ -23,6 +23,7 @@ import { useCasesFeatures } from '../cases_context/use_cases_features'; import { getConnectorById } from '../utils'; import { CaseAttachmentsWithoutOwner } from '../../types'; import { useGetConnectors } from '../../containers/configure/use_connectors'; +import { useCreateCaseWithAttachmentsTransaction } from '../../common/apm/use_cases_transactions'; const initialCaseValue: FormProps = { description: '', @@ -53,11 +54,12 @@ export const FormContext: React.FC = ({ attachments, }) => { const { data: connectors = [], isLoading: isLoadingConnectors } = useGetConnectors(); - const { owner } = useCasesContext(); + const { owner, appId } = useCasesContext(); const { isSyncAlertsEnabled } = useCasesFeatures(); const { postCase } = usePostCase(); const { createAttachments } = useCreateAttachments(); const { pushCaseToExternalService } = usePostPushToService(); + const { startTransaction } = useCreateCaseWithAttachmentsTransaction(); const submitCase = useCallback( async ( @@ -73,6 +75,8 @@ export const FormContext: React.FC = ({ const { selectedOwner, ...userFormData } = dataWithoutConnectorId; const caseConnector = getConnectorById(dataConnectorId, connectors); + startTransaction({ appId, attachments }); + const connectorToUpdate = caseConnector ? normalizeActionConnector(caseConnector, fields) : getNoneConnector(); @@ -110,6 +114,8 @@ export const FormContext: React.FC = ({ } }, [ + appId, + startTransaction, isSyncAlertsEnabled, connectors, postCase, diff --git a/x-pack/plugins/cases/public/types.ts b/x-pack/plugins/cases/public/types.ts index f25d3db46dc56c..c7ebe237599493 100644 --- a/x-pack/plugins/cases/public/types.ts +++ b/x-pack/plugins/cases/public/types.ts @@ -19,6 +19,7 @@ import type { SecurityPluginSetup, SecurityPluginStart } from '@kbn/security-plu import type { SpacesPluginStart } from '@kbn/spaces-plugin/public'; import type { TriggersAndActionsUIPublicPluginStart as TriggersActionsStart } from '@kbn/triggers-actions-ui-plugin/public'; import type { DistributiveOmit } from '@elastic/eui'; +import type { ApmBase } from '@elastic/apm-rum'; import type { CasesByAlertId, CasesByAlertIDRequest, @@ -60,6 +61,7 @@ export interface CasesPluginStart { features: FeaturesPluginStart; security: SecurityPluginStart; spaces?: SpacesPluginStart; + apm?: ApmBase; } /** diff --git a/x-pack/plugins/enterprise_search/common/types/indices.ts b/x-pack/plugins/enterprise_search/common/types/indices.ts index 78831e16150046..d047ec9ba36d74 100644 --- a/x-pack/plugins/enterprise_search/common/types/indices.ts +++ b/x-pack/plugins/enterprise_search/common/types/indices.ts @@ -36,13 +36,9 @@ export interface ElasticsearchIndex { export interface ConnectorIndex extends ElasticsearchIndex { connector: Connector; } -export interface ConnectorCrawlerIndex extends ElasticsearchIndex { - connector: Connector; - crawler: Crawler; -} export interface CrawlerIndex extends ElasticsearchIndex { - connector?: Connector; crawler: Crawler; + connector?: Connector; } export interface ElasticsearchIndexWithPrivileges extends ElasticsearchIndex { diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/cypress.config.js b/x-pack/plugins/enterprise_search/public/applications/app_search/cypress.config.js new file mode 100644 index 00000000000000..b625b3051f15a4 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/cypress.config.js @@ -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. + */ + +// eslint-disable-next-line import/no-extraneous-dependencies +import { defineConfig } from 'cypress'; + +// eslint-disable-next-line import/no-default-export +export default defineConfig({ + defaultCommandTimeout: 120000, + e2e: { + baseUrl: 'http://localhost:5601', + // eslint-disable-next-line no-unused-vars + setupNodeEvents(on, config) {}, + supportFile: './cypress/support/commands.ts', + }, + env: { + password: 'changeme', + username: 'elastic', + }, + execTimeout: 120000, + pageLoadTimeout: 180000, + retries: { + runMode: 2, + }, + screenshotsFolder: '../../../target/cypress/screenshots', + video: false, + videosFolder: '../../../target/cypress/videos', + viewportHeight: 1200, + viewportWidth: 1600, +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/cypress.json b/x-pack/plugins/enterprise_search/public/applications/app_search/cypress.json deleted file mode 100644 index 766aaf6df36ada..00000000000000 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/cypress.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "supportFile": "./cypress/support/commands.ts", - "pluginsFile": false, - "retries": { - "runMode": 2 - }, - "baseUrl": "http://localhost:5601", - "env": { - "username": "elastic", - "password": "changeme" - }, - "screenshotsFolder": "../../../target/cypress/screenshots", - "videosFolder": "../../../target/cypress/videos", - "defaultCommandTimeout": 120000, - "execTimeout": 120000, - "pageLoadTimeout": 180000, - "viewportWidth": 1600, - "viewportHeight": 1200, - "video": false -} diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/cypress/integration/engines.spec.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/cypress/e2e/engines.cy.ts similarity index 100% rename from x-pack/plugins/enterprise_search/public/applications/app_search/cypress/integration/engines.spec.ts rename to x-pack/plugins/enterprise_search/public/applications/app_search/cypress/e2e/engines.cy.ts diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_scheduling.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_scheduling.tsx index 9c22ecd8572ef8..ca9a415c4c958d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_scheduling.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_scheduling.tsx @@ -34,7 +34,7 @@ import { UpdateConnectorSchedulingApiLogic } from '../../../api/connector/update import { SEARCH_INDEX_TAB_PATH } from '../../../routes'; import { IngestionStatus } from '../../../types'; -import { isConnectorIndex, isConnectorCrawlerIndex } from '../../../utils/indices'; +import { isConnectorIndex } from '../../../utils/indices'; import { IndexViewLogic } from '../index_view_logic'; @@ -61,7 +61,7 @@ export const ConnectorSchedulingComponent: React.FC = () => { frequency: schedulingInput?.interval ? cronToFrequency(schedulingInput.interval) : 'HOUR', }); - if (!isConnectorIndex(index) && !isConnectorCrawlerIndex(index)) { + if (!isConnectorIndex(index)) { return <>; } diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/inference_pipeline_card.test.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/inference_pipeline_card.test.tsx new file mode 100644 index 00000000000000..fab7620f7f2327 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/inference_pipeline_card.test.tsx @@ -0,0 +1,47 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { setMockValues } from '../../../../__mocks__/kea_logic'; + +import React from 'react'; + +import { shallow } from 'enzyme'; + +import { EuiBadge, EuiHealth, EuiPanel, EuiTitle } from '@elastic/eui'; + +import { InferencePipelineCard } from './inference_pipeline_card'; + +export const DEFAULT_VALUES = { + pipelineName: 'Sample Processor', + trainedModelName: 'example_trained_model', + isDeployed: true, + modelType: 'pytorch', +}; + +const mockValues = { ...DEFAULT_VALUES }; + +describe('InfererencePipelineCard', () => { + beforeEach(() => { + jest.clearAllMocks(); + setMockValues(mockValues); + }); + it('renders the item', () => { + const wrapper = shallow(); + expect(wrapper.find(EuiPanel)).toHaveLength(1); + expect(wrapper.find(EuiTitle)).toHaveLength(1); + expect(wrapper.find(EuiBadge)).toHaveLength(1); + + const health = wrapper.find(EuiHealth); + expect(health.prop('children')).toEqual('Deployed'); + }); + + it('renders an undeployed item', () => { + const wrapper = shallow(); + const health = wrapper.find(EuiHealth); + expect(health.prop('children')).toEqual('Not deployed'); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/inference_pipeline_card.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/inference_pipeline_card.tsx new file mode 100644 index 00000000000000..32547f81f00c08 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/inference_pipeline_card.tsx @@ -0,0 +1,124 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useState } from 'react'; + +import { + EuiBadge, + EuiButtonEmpty, + EuiFlexGroup, + EuiFlexItem, + EuiHealth, + EuiPanel, + EuiPopover, + EuiTextColor, + EuiTitle, +} from '@elastic/eui'; + +import { i18n } from '@kbn/i18n'; + +import { InferencePipeline } from './types'; + +export const InferencePipelineCard: React.FC = ({ + pipelineName, + trainedModelName, + isDeployed, + modelType, +}) => { + const [isPopOverOpen, setIsPopOverOpen] = useState(false); + + const deployedText = i18n.translate('xpack.enterpriseSearch.inferencePipelineCard.isDeployed', { + defaultMessage: 'Deployed', + }); + + const notDeployedText = i18n.translate( + 'xpack.enterpriseSearch.inferencePipelineCard.isNotDeployed', + { defaultMessage: 'Not deployed' } + ); + + const actionButton = ( + setIsPopOverOpen(!isPopOverOpen)} + > + {i18n.translate('xpack.enterpriseSearch.inferencePipelineCard.actionButton', { + defaultMessage: 'Actions', + })} + + ); + + return ( + + + + + + +

{pipelineName}

+
+
+ + setIsPopOverOpen(false)} + > + + +
+ + {i18n.translate( + 'xpack.enterpriseSearch.inferencePipelineCard.action.view', + { defaultMessage: 'View pipeline in Stack Management' } + )} + +
+
+ +
+ + {i18n.translate( + 'xpack.enterpriseSearch.inferencePipelineCard.action.delete', + { defaultMessage: 'Delete pipeline' } + )} + +
+
+
+
+
+
+
+ + + + {trainedModelName} + + + + + + {isDeployed ? deployedText : notDeployedText} + + + + + + {modelType} + + + + + + + +
+
+ ); +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines.tsx index c80f4cd669273f..84ca76685926d5 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines.tsx @@ -7,13 +7,39 @@ import React from 'react'; -import { EuiFlexGroup, EuiFlexItem, EuiSpacer } from '@elastic/eui'; +import { EuiButton, EuiFlexGroup, EuiFlexItem, EuiLink, EuiSpacer } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { DataPanel } from '../../../../shared/data_panel/data_panel'; +import { InferencePipelineCard } from './inference_pipeline_card'; +import { InferencePipeline } from './types'; + export const SearchIndexPipelines: React.FC = () => { + // TODO: REPLACE THIS DATA WITH REAL DATA + + const inferencePipelines: InferencePipeline[] = [ + { + pipelineName: 'NER Processor', + trainedModelName: 'elastic_dslim_bert_base_ner', + isDeployed: true, + modelType: 'pytorch', + }, + { + pipelineName: 'Sentiment Analysis', + trainedModelName: 'elastic_dslim_bert_base_ner', + isDeployed: false, + modelType: 'pytorch', + }, + { + pipelineName: 'Sentiment Analysis', + trainedModelName: 'elastic_dslim_bert_base_ner', + isDeployed: false, + modelType: 'pytorch', + }, + ]; + return ( <> @@ -21,6 +47,16 @@ export const SearchIndexPipelines: React.FC = () => { + {i18n.translate( + 'xpack.enterpriseSearch.content.indices.pipelines.ingestionPipeline.docLink', + { + defaultMessage: 'Learn more about using pipelines in Enterprise Search', + } + )} +
+ } title={

{i18n.translate( @@ -31,13 +67,30 @@ export const SearchIndexPipelines: React.FC = () => { )}

} + subtitle={i18n.translate( + 'xpack.enterpriseSearch.content.indices.pipelines.ingestionPipeline.subtitle', + { + defaultMessage: 'Ingest pipelines optimize your index for search applications', + } + )} iconType="logstashInput" >
- + + + {i18n.translate( + 'xpack.enterpriseSearch.content.indices.pipelines.mlInferencePipelines.docLink', + { + defaultMessage: 'Learn more about deploying ML models in Elastic', + } + )} + + } title={

{i18n.translate( @@ -48,12 +101,41 @@ export const SearchIndexPipelines: React.FC = () => { )}

} + subtitle={i18n.translate( + 'xpack.enterpriseSearch.content.indices.pipelines.mlInferencePipelines.subtitle', + { + defaultMessage: + 'Inference pipelines will be run as processors from the Enterprise Search Ingest Pipeline', + } + )} iconType="compute" + action={ + + {i18n.translate( + 'xpack.enterpriseSearch.content.indices.pipelines.mlInferencePipelines.newButton', + { + defaultMessage: 'Add ML inference pipeline', + } + )} + + } > -
+ {inferencePipelines.length > 0 && ( + + {inferencePipelines.map((item: InferencePipeline, index: number) => ( + + + + ))} + + )} - ); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/types.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/types.ts new file mode 100644 index 00000000000000..9438ce5ef4bc1e --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/types.ts @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export interface InferencePipeline { + pipelineName: string; + trainedModelName: string; + isDeployed: boolean; + modelType: string; +} 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 b998fa5d10db2a..58494595ad2e40 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 @@ -32,6 +32,7 @@ import { IndexCreatedCallout } from './components/index_created_callout/callout' import { IndexCreatedCalloutLogic } from './components/index_created_callout/callout_logic'; import { ConnectorConfiguration } from './connector/connector_configuration'; import { ConnectorSchedulingComponent } from './connector/connector_scheduling'; +import { AutomaticCrawlScheduler } from './crawler/automatic_crawl_scheduler/automatic_crawl_scheduler'; import { CrawlCustomSettingsFlyout } from './crawler/crawl_custom_settings_flyout/crawl_custom_settings_flyout'; import { SearchIndexDomainManagement } from './crawler/domain_management/domain_management'; import { SearchIndexDocuments } from './documents'; @@ -117,7 +118,7 @@ export const SearchIndex: React.FC = () => { }), }, { - content: , + content: , id: SearchIndexTabId.SCHEDULING, name: i18n.translate('xpack.enterpriseSearch.content.searchIndex.schedulingTabLabel', { defaultMessage: 'Scheduling', diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/indices.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/indices.test.ts index b023aff4b9e085..ce6e443a250259 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/indices.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/indices.test.ts @@ -23,7 +23,6 @@ import { getLastUpdated, indexToViewIndex, isConnectorIndex, - isConnectorCrawlerIndex, isCrawlerIndex, isApiIndex, isConnectorViewIndex, @@ -145,20 +144,6 @@ describe('Indices util functions', () => { expect(isConnectorIndex(apiIndex)).toEqual(false); }); }); - describe('isConnectorCrawlerIndex', () => { - it('should return false for connector indices', () => { - expect(isConnectorCrawlerIndex(connectorIndex)).toEqual(false); - }); - it('should return false for connector-crawler indices', () => { - expect(isConnectorCrawlerIndex(connectorCrawlerIndex)).toEqual(true); - }); - it('should return false for crawler indices', () => { - expect(isConnectorCrawlerIndex(crawlerIndex)).toEqual(false); - }); - it('should return false for API indices', () => { - expect(isConnectorCrawlerIndex(apiIndex)).toEqual(false); - }); - }); describe('isCrawlerIndex', () => { it('should return true for crawler indices', () => { expect(isCrawlerIndex(crawlerIndex)).toEqual(true); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/indices.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/indices.ts index 540ad2b2db69e2..9a17f7fe84f4dd 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/indices.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/utils/indices.ts @@ -13,7 +13,6 @@ import { ENTERPRISE_SEARCH_CONNECTOR_CRAWLER_SERVICE_TYPE } from '../../../../co import { SyncStatus, ConnectorStatus } from '../../../../common/types/connectors'; import { ConnectorIndex, - ConnectorCrawlerIndex, CrawlerIndex, ElasticsearchIndexWithIngestion, } from '../../../../common/types/indices'; @@ -37,16 +36,6 @@ export function isConnectorIndex( ); } -export function isConnectorCrawlerIndex( - index: ElasticsearchIndexWithIngestion | undefined -): index is ConnectorCrawlerIndex { - const crawlerIndex = index as CrawlerIndex; - return ( - !!crawlerIndex?.connector && - crawlerIndex.connector.service_type === ENTERPRISE_SEARCH_CONNECTOR_CRAWLER_SERVICE_TYPE - ); -} - export function isCrawlerIndex( index: ElasticsearchIndexWithIngestion | undefined ): index is CrawlerIndex { diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_overview/cypress.config.js b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_overview/cypress.config.js new file mode 100644 index 00000000000000..a6d98df28c413c --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_overview/cypress.config.js @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +// eslint-disable-next-line import/no-extraneous-dependencies +import { defineConfig } from 'cypress'; + +// eslint-disable-next-line import/no-default-export +export default defineConfig({ + defaultCommandTimeout: 120000, + e2e: { + baseUrl: 'http://localhost:5601', + // eslint-disable-next-line no-unused-vars + setupNodeEvents(on, config) {}, + supportFile: false, + }, + env: { + password: 'changeme', + username: 'elastic', + }, + execTimeout: 120000, + fixturesFolder: false, + pageLoadTimeout: 180000, + retries: { + runMode: 2, + }, + screenshotsFolder: '../../../target/cypress/screenshots', + video: false, + videosFolder: '../../../target/cypress/videos', + viewportHeight: 1200, + viewportWidth: 1600, +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_overview/cypress.json b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_overview/cypress.json deleted file mode 100644 index 8ca8bdfd79a49b..00000000000000 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_overview/cypress.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "supportFile": false, - "pluginsFile": false, - "retries": { - "runMode": 2 - }, - "baseUrl": "http://localhost:5601", - "env": { - "username": "elastic", - "password": "changeme" - }, - "fixturesFolder": false, - "screenshotsFolder": "../../../target/cypress/screenshots", - "videosFolder": "../../../target/cypress/videos", - "defaultCommandTimeout": 120000, - "execTimeout": 120000, - "pageLoadTimeout": 180000, - "viewportWidth": 1600, - "viewportHeight": 1200, - "video": false -} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_overview/cypress/integration/overview.spec.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_overview/cypress/e2e/overview.cy.ts similarity index 100% rename from x-pack/plugins/enterprise_search/public/applications/enterprise_search_overview/cypress/integration/overview.spec.ts rename to x-pack/plugins/enterprise_search/public/applications/enterprise_search_overview/cypress/e2e/overview.cy.ts diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/data_panel/data_panel.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/data_panel/data_panel.test.tsx index 703e4d1328e7d5..547dc87e274864 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/data_panel/data_panel.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/data_panel/data_panel.test.tsx @@ -129,7 +129,7 @@ describe('DataPanel', () => { }); it('passes hasBorder', () => { - const wrapper = shallow(Test} />); + const wrapper = shallow(Test} />); expect(wrapper.prop('hasBorder')).toBeFalsy(); wrapper.setProps({ hasBorder: true }); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/data_panel/data_panel.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/data_panel/data_panel.tsx index 50a30a658e8bef..0d4820a531c351 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/data_panel/data_panel.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/data_panel/data_panel.tsx @@ -14,7 +14,7 @@ import { EuiFlexItem, EuiIcon, EuiIconProps, - EuiPanel, + EuiSplitPanel, EuiSpacer, EuiText, EuiTitle, @@ -31,6 +31,7 @@ type Props = Omit<_EuiPanelDivlike, 'title'> & { subtitle?: React.ReactNode; iconType?: EuiIconProps['type']; action?: React.ReactNode; + footerDocLink?: React.ReactNode; responsive?: boolean; filled?: boolean; isLoading?: boolean; @@ -46,6 +47,7 @@ export const DataPanel: React.FC = ({ responsive = false, filled, isLoading, + footerDocLink, className, children, ...props // e.g., data-test-subj @@ -55,43 +57,55 @@ export const DataPanel: React.FC = ({ }); return ( - - - - - {iconType && ( - - + + + + + + + {iconType && ( + + + + )} + + {title} + + + {action && {action}} + + + + {subtitle && ( + <> + + +

{subtitle}

+
+ )} - - {title} - -
- {subtitle && ( - <> - - -

{subtitle}

-
- - )} -
- {action && {action}} -
- {children && ( - <> - - {children} - +
+
+ {children && ( + <> + + {children} + + )} + {isLoading && } + + {!!footerDocLink && ( + {footerDocLink} )} - {isLoading && } -
+ ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/result/result_field.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/result/result_field.tsx index 607068d8595b56..d1922ab62de071 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/result/result_field.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/result/result_field.tsx @@ -22,7 +22,7 @@ import { ResultFieldProps } from './types'; import './result.scss'; const iconMap: Record = { - boolean: 'tokenBoolen', + boolean: 'tokenBoolean', date: 'tokenDate', date_range: 'tokenDate', double: 'tokenNumber', diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/cypress.config.js b/x-pack/plugins/enterprise_search/public/applications/workplace_search/cypress.config.js new file mode 100644 index 00000000000000..b625b3051f15a4 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/cypress.config.js @@ -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. + */ + +// eslint-disable-next-line import/no-extraneous-dependencies +import { defineConfig } from 'cypress'; + +// eslint-disable-next-line import/no-default-export +export default defineConfig({ + defaultCommandTimeout: 120000, + e2e: { + baseUrl: 'http://localhost:5601', + // eslint-disable-next-line no-unused-vars + setupNodeEvents(on, config) {}, + supportFile: './cypress/support/commands.ts', + }, + env: { + password: 'changeme', + username: 'elastic', + }, + execTimeout: 120000, + pageLoadTimeout: 180000, + retries: { + runMode: 2, + }, + screenshotsFolder: '../../../target/cypress/screenshots', + video: false, + videosFolder: '../../../target/cypress/videos', + viewportHeight: 1200, + viewportWidth: 1600, +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/cypress.json b/x-pack/plugins/enterprise_search/public/applications/workplace_search/cypress.json deleted file mode 100644 index 766aaf6df36ada..00000000000000 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/cypress.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "supportFile": "./cypress/support/commands.ts", - "pluginsFile": false, - "retries": { - "runMode": 2 - }, - "baseUrl": "http://localhost:5601", - "env": { - "username": "elastic", - "password": "changeme" - }, - "screenshotsFolder": "../../../target/cypress/screenshots", - "videosFolder": "../../../target/cypress/videos", - "defaultCommandTimeout": 120000, - "execTimeout": 120000, - "pageLoadTimeout": 180000, - "viewportWidth": 1600, - "viewportHeight": 1200, - "video": false -} diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/cypress/integration/overview.spec.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/cypress/e2e/overview.cy.ts similarity index 100% rename from x-pack/plugins/enterprise_search/public/applications/workplace_search/cypress/integration/overview.spec.ts rename to x-pack/plugins/enterprise_search/public/applications/workplace_search/cypress/e2e/overview.cy.ts diff --git a/x-pack/plugins/file_upload/public/components/geo_upload_form/geo_upload_form.tsx b/x-pack/plugins/file_upload/public/components/geo_upload_form/geo_upload_form.tsx index 43dde2580b66d5..05b6c6244810f3 100644 --- a/x-pack/plugins/file_upload/public/components/geo_upload_form/geo_upload_form.tsx +++ b/x-pack/plugins/file_upload/public/components/geo_upload_form/geo_upload_form.tsx @@ -6,7 +6,15 @@ */ import React, { ChangeEvent, Component } from 'react'; -import { EuiForm, EuiFormRow, EuiSelect } from '@elastic/eui'; +import { + EuiForm, + EuiFormRow, + EuiSpacer, + EuiSelect, + EuiSwitch, + EuiSwitchEvent, + EuiToolTip, +} from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { ES_FIELD_TYPES } from '@kbn/data-plugin/public'; import { GeoFilePicker, OnFileSelectParameters } from './geo_file_picker'; @@ -28,12 +36,14 @@ interface Props { geoFieldType: ES_FIELD_TYPES.GEO_POINT | ES_FIELD_TYPES.GEO_SHAPE; indexName: string; indexNameError?: string; + smallChunks: boolean; onFileClear: () => void; onFileSelect: (onFileSelectParameters: OnFileSelectParameters) => void; onGeoFieldTypeSelect: (geoFieldType: ES_FIELD_TYPES.GEO_POINT | ES_FIELD_TYPES.GEO_SHAPE) => void; onIndexNameChange: (name: string, error?: string) => void; onIndexNameValidationStart: () => void; onIndexNameValidationEnd: () => void; + onSmallChunksChange: (smallChunks: boolean) => void; } interface State { @@ -96,6 +106,10 @@ export class GeoUploadForm extends Component { ); }; + _onSmallChunksChange = (event: EuiSwitchEvent) => { + this.props.onSmallChunksChange(event.target.checked); + }; + _renderGeoFieldTypeSelect() { return this.state.hasFile && this.state.isPointsOnly ? ( { {this._renderGeoFieldTypeSelect()} {this.state.hasFile ? ( - + <> + + + + + + + + ) : null} ); diff --git a/x-pack/plugins/file_upload/public/components/geo_upload_wizard.tsx b/x-pack/plugins/file_upload/public/components/geo_upload_wizard.tsx index adbce777a49425..0c7f09c56f36f4 100644 --- a/x-pack/plugins/file_upload/public/components/geo_upload_wizard.tsx +++ b/x-pack/plugins/file_upload/public/components/geo_upload_wizard.tsx @@ -40,6 +40,7 @@ interface State { indexNameError?: string; dataViewResp?: object; phase: PHASE; + smallChunks: boolean; } export class GeoUploadWizard extends Component { @@ -52,6 +53,7 @@ export class GeoUploadWizard extends Component importStatus: '', indexName: '', phase: PHASE.CONFIGURE, + smallChunks: false, }; componentDidMount() { @@ -146,6 +148,7 @@ export class GeoUploadWizard extends Component this.setState({ importStatus: getWritingToIndexMsg(0), }); + this._geoFileImporter.setSmallChunks(this.state.smallChunks); const importResults = await this._geoFileImporter.import( initializeImportResp.id, this.state.indexName, @@ -281,6 +284,10 @@ export class GeoUploadWizard extends Component } }; + _onSmallChunksChange = (smallChunks: boolean) => { + this.setState({ smallChunks }); + }; + render() { if (this.state.phase === PHASE.IMPORT) { return ( @@ -311,10 +318,12 @@ export class GeoUploadWizard extends Component indexNameError={this.state.indexNameError} onFileClear={this._onFileClear} onFileSelect={this._onFileSelect} + smallChunks={this.state.smallChunks} onGeoFieldTypeSelect={this._onGeoFieldTypeSelect} onIndexNameChange={this._onIndexNameChange} onIndexNameValidationStart={this.props.disableImportBtn} onIndexNameValidationEnd={this.props.enableImportBtn} + onSmallChunksChange={this._onSmallChunksChange} /> ); } diff --git a/x-pack/plugins/file_upload/public/components/import_complete_view.tsx b/x-pack/plugins/file_upload/public/components/import_complete_view.tsx index 5ec4e6f0ddf375..46f566eb27e2e6 100644 --- a/x-pack/plugins/file_upload/public/components/import_complete_view.tsx +++ b/x-pack/plugins/file_upload/public/components/import_complete_view.tsx @@ -128,13 +128,20 @@ export class ImportCompleteView extends Component { } if (!this.props.importResults || !this.props.importResults.success) { - const errorMsg = - this.props.importResults && this.props.importResults.error - ? i18n.translate('xpack.fileUpload.importComplete.uploadFailureMsgErrorBlock', { - defaultMessage: 'Error: {reason}', - values: { reason: this.props.importResults.error.error.reason }, - }) - : ''; + let reason: string | undefined; + if (this.props.importResults?.error?.body?.message) { + // Display http request error message + reason = this.props.importResults.error.body.message; + } else if (this.props.importResults?.error?.error?.reason) { + // Display elasticxsearch request error message + reason = this.props.importResults.error.error.reason; + } + const errorMsg = reason + ? i18n.translate('xpack.fileUpload.importComplete.uploadFailureMsgErrorBlock', { + defaultMessage: 'Error: {reason}', + values: { reason }, + }) + : ''; return ( ; renderEditor(onChange: () => void): ReactNode; setGeoFieldType(geoFieldType: ES_FIELD_TYPES.GEO_POINT | ES_FIELD_TYPES.GEO_SHAPE): void; + setSmallChunks(smallChunks: boolean): void; } diff --git a/x-pack/plugins/fleet/cypress.config.ts b/x-pack/plugins/fleet/cypress.config.ts new file mode 100644 index 00000000000000..e2d5ffd3ffdac8 --- /dev/null +++ b/x-pack/plugins/fleet/cypress.config.ts @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +// eslint-disable-next-line import/no-extraneous-dependencies +import { defineConfig } from 'cypress'; + +// eslint-disable-next-line import/no-default-export +export default defineConfig({ + defaultCommandTimeout: 60000, + requestTimeout: 60000, + responseTimeout: 60000, + execTimeout: 120000, + pageLoadTimeout: 120000, + + retries: { + runMode: 2, + }, + + screenshotsFolder: '../../../target/kibana-fleet/cypress/screenshots', + trashAssetsBeforeRuns: false, + video: false, + videosFolder: '../../../target/kibana-fleet/cypress/videos', + viewportHeight: 900, + viewportWidth: 1440, + screenshotOnRunFailure: true, + + env: { + protocol: 'http', + hostname: 'localhost', + configport: '5601', + }, + + e2e: { + baseUrl: 'http://localhost:5601', + setupNodeEvents(on, config) { + // eslint-disable-next-line @typescript-eslint/no-var-requires, @kbn/imports/no_boundary_crossing + return require('./cypress/plugins')(on, config); + }, + }, +}); diff --git a/x-pack/plugins/fleet/cypress/cypress.json b/x-pack/plugins/fleet/cypress/cypress.json deleted file mode 100644 index b36d0c513116ce..00000000000000 --- a/x-pack/plugins/fleet/cypress/cypress.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "baseUrl": "http://localhost:5620", - "defaultCommandTimeout": 60000, - "requestTimeout": 60000, - "responseTimeout": 60000, - "execTimeout": 120000, - "pageLoadTimeout": 120000, - "nodeVersion": "system", - "retries": { - "runMode": 2 - }, - "screenshotsFolder": "../../../target/kibana-fleet/cypress/screenshots", - "trashAssetsBeforeRuns": false, - "video": false, - "videosFolder": "../../../target/kibana-fleet/cypress/videos", - "viewportHeight": 900, - "viewportWidth": 1440, - "screenshotOnRunFailure": true, - "env": { - "protocol": "http", - "hostname": "localhost", - "configport": "5601" - } -} diff --git a/x-pack/plugins/fleet/cypress/downloads/downloads.html b/x-pack/plugins/fleet/cypress/downloads/downloads.html deleted file mode 100644 index 772778ea352e58..00000000000000 Binary files a/x-pack/plugins/fleet/cypress/downloads/downloads.html and /dev/null differ diff --git a/x-pack/plugins/fleet/cypress/integration/a11y/home_page.spec.ts b/x-pack/plugins/fleet/cypress/e2e/a11y/home_page.cy.ts similarity index 98% rename from x-pack/plugins/fleet/cypress/integration/a11y/home_page.spec.ts rename to x-pack/plugins/fleet/cypress/e2e/a11y/home_page.cy.ts index b5d6e9d605f1e4..b76942ec9a456e 100644 --- a/x-pack/plugins/fleet/cypress/integration/a11y/home_page.spec.ts +++ b/x-pack/plugins/fleet/cypress/e2e/a11y/home_page.cy.ts @@ -4,7 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -/* eslint-disable-next-line import/no-extraneous-dependencies */ + import 'cypress-real-events/support'; import { checkA11y } from '../../support/commands'; import { FLEET, navigateTo } from '../../tasks/navigation'; diff --git a/x-pack/plugins/fleet/cypress/integration/agent_binary_download_source.spec.ts b/x-pack/plugins/fleet/cypress/e2e/agent_binary_download_source.cy.ts similarity index 100% rename from x-pack/plugins/fleet/cypress/integration/agent_binary_download_source.spec.ts rename to x-pack/plugins/fleet/cypress/e2e/agent_binary_download_source.cy.ts diff --git a/x-pack/plugins/fleet/cypress/integration/agent_list.spec.ts b/x-pack/plugins/fleet/cypress/e2e/agent_list.cy.ts similarity index 100% rename from x-pack/plugins/fleet/cypress/integration/agent_list.spec.ts rename to x-pack/plugins/fleet/cypress/e2e/agent_list.cy.ts diff --git a/x-pack/plugins/fleet/cypress/integration/agent_policy.spec.ts b/x-pack/plugins/fleet/cypress/e2e/agent_policy.cy.ts similarity index 100% rename from x-pack/plugins/fleet/cypress/integration/agent_policy.spec.ts rename to x-pack/plugins/fleet/cypress/e2e/agent_policy.cy.ts diff --git a/x-pack/plugins/fleet/cypress/integration/enrollment_token.spec.ts b/x-pack/plugins/fleet/cypress/e2e/enrollment_token.cy.ts similarity index 100% rename from x-pack/plugins/fleet/cypress/integration/enrollment_token.spec.ts rename to x-pack/plugins/fleet/cypress/e2e/enrollment_token.cy.ts diff --git a/x-pack/plugins/fleet/cypress/integration/fleet_agent_flyout.spec.ts b/x-pack/plugins/fleet/cypress/e2e/fleet_agent_flyout.cy.ts similarity index 100% rename from x-pack/plugins/fleet/cypress/integration/fleet_agent_flyout.spec.ts rename to x-pack/plugins/fleet/cypress/e2e/fleet_agent_flyout.cy.ts diff --git a/x-pack/plugins/fleet/cypress/integration/fleet_settings.spec.ts b/x-pack/plugins/fleet/cypress/e2e/fleet_settings.cy.ts similarity index 100% rename from x-pack/plugins/fleet/cypress/integration/fleet_settings.spec.ts rename to x-pack/plugins/fleet/cypress/e2e/fleet_settings.cy.ts diff --git a/x-pack/plugins/fleet/cypress/integration/fleet_startup.spec.ts b/x-pack/plugins/fleet/cypress/e2e/fleet_startup.cy.ts similarity index 100% rename from x-pack/plugins/fleet/cypress/integration/fleet_startup.spec.ts rename to x-pack/plugins/fleet/cypress/e2e/fleet_startup.cy.ts diff --git a/x-pack/plugins/fleet/cypress/integration/install_assets.spec.ts b/x-pack/plugins/fleet/cypress/e2e/install_assets.cy.ts similarity index 100% rename from x-pack/plugins/fleet/cypress/integration/install_assets.spec.ts rename to x-pack/plugins/fleet/cypress/e2e/install_assets.cy.ts diff --git a/x-pack/plugins/fleet/cypress/integration/integrations_mock.spec.ts b/x-pack/plugins/fleet/cypress/e2e/integrations_mock.cy.ts similarity index 100% rename from x-pack/plugins/fleet/cypress/integration/integrations_mock.spec.ts rename to x-pack/plugins/fleet/cypress/e2e/integrations_mock.cy.ts diff --git a/x-pack/plugins/fleet/cypress/integration/integrations_real.spec.ts b/x-pack/plugins/fleet/cypress/e2e/integrations_real.cy.ts similarity index 100% rename from x-pack/plugins/fleet/cypress/integration/integrations_real.spec.ts rename to x-pack/plugins/fleet/cypress/e2e/integrations_real.cy.ts diff --git a/x-pack/plugins/fleet/cypress/integration/package_policy.spec.ts b/x-pack/plugins/fleet/cypress/e2e/package_policy.cy.ts similarity index 100% rename from x-pack/plugins/fleet/cypress/integration/package_policy.spec.ts rename to x-pack/plugins/fleet/cypress/e2e/package_policy.cy.ts diff --git a/x-pack/plugins/fleet/cypress/integration/privileges_fleet_all_integrations_none.spec.ts b/x-pack/plugins/fleet/cypress/e2e/privileges_fleet_all_integrations_none.cy.ts similarity index 100% rename from x-pack/plugins/fleet/cypress/integration/privileges_fleet_all_integrations_none.spec.ts rename to x-pack/plugins/fleet/cypress/e2e/privileges_fleet_all_integrations_none.cy.ts diff --git a/x-pack/plugins/fleet/cypress/integration/privileges_fleet_all_integrations_read.spec.ts b/x-pack/plugins/fleet/cypress/e2e/privileges_fleet_all_integrations_read.cy.ts similarity index 100% rename from x-pack/plugins/fleet/cypress/integration/privileges_fleet_all_integrations_read.spec.ts rename to x-pack/plugins/fleet/cypress/e2e/privileges_fleet_all_integrations_read.cy.ts diff --git a/x-pack/plugins/fleet/cypress/integration/privileges_fleet_none_integrations_all.spec.ts b/x-pack/plugins/fleet/cypress/e2e/privileges_fleet_none_integrations_all.cy.ts similarity index 100% rename from x-pack/plugins/fleet/cypress/integration/privileges_fleet_none_integrations_all.spec.ts rename to x-pack/plugins/fleet/cypress/e2e/privileges_fleet_none_integrations_all.cy.ts diff --git a/x-pack/plugins/fleet/cypress/support/index.ts b/x-pack/plugins/fleet/cypress/support/e2e.ts similarity index 100% rename from x-pack/plugins/fleet/cypress/support/index.ts rename to x-pack/plugins/fleet/cypress/support/e2e.ts diff --git a/x-pack/plugins/fleet/cypress/tsconfig.json b/x-pack/plugins/fleet/cypress/tsconfig.json index a2a0a7f8aabf2b..aba041b4e17b8b 100644 --- a/x-pack/plugins/fleet/cypress/tsconfig.json +++ b/x-pack/plugins/fleet/cypress/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../../../../tsconfig.base.json", "include": [ - "**/*" + "**/*", + "../cypress.config.ts" ], "exclude": [ "target/**/*" diff --git a/x-pack/plugins/fleet/package.json b/x-pack/plugins/fleet/package.json index b1ff148358ee6d..9a1464fbc17092 100644 --- a/x-pack/plugins/fleet/package.json +++ b/x-pack/plugins/fleet/package.json @@ -6,11 +6,11 @@ "license": "Elastic-License", "scripts": { "cypress": "../../../node_modules/.bin/cypress", - "cypress:open": "yarn cypress open --config-file ./cypress/cypress.json", + "cypress:open": "yarn cypress open --config-file ./cypress.config.ts", "cypress:open-as-ci": "node ../../../scripts/functional_tests --config ../../test/fleet_cypress/visual_config.ts", - "cypress:run": "yarn cypress:run:reporter --browser chrome --spec './cypress/integration/**/*.spec.ts'; status=$?; yarn junit:merge && exit $status", + "cypress:run": "yarn cypress:run:reporter --browser chrome --spec './cypress/e2e/**/*.cy.ts'; status=$?; yarn junit:merge && exit $status", "cypress:run-as-ci": "node ../../../scripts/functional_tests --config ../../test/fleet_cypress/cli_config.ts", - "cypress:run:reporter": "yarn cypress run --config-file ./cypress/cypress.json --reporter ../../../node_modules/cypress-multi-reporters --reporter-options configFile=./cypress/reporter_config.json", + "cypress:run:reporter": "yarn cypress run --config-file ./cypress.config.ts --reporter ../../../node_modules/cypress-multi-reporters --reporter-options configFile=./cypress/reporter_config.json", "junit:merge": "../../../node_modules/.bin/mochawesome-merge ../../../target/kibana-fleet/cypress/results/mochawesome*.json > ../../../target/kibana-fleet/cypress/results/output.json && ../../../node_modules/.bin/marge ../../../target/kibana-fleet/cypress/results/output.json --reportDir ../../../target/kibana-fleet/cypress/results && mkdir -p ../../../target/junit && cp ../../../target/kibana-fleet/cypress/results/*.xml ../../../target/junit/" } } diff --git a/x-pack/plugins/fleet/tsconfig.json b/x-pack/plugins/fleet/tsconfig.json index d0361f4550576c..7cc16fe6542680 100644 --- a/x-pack/plugins/fleet/tsconfig.json +++ b/x-pack/plugins/fleet/tsconfig.json @@ -6,8 +6,9 @@ "declaration": true, "declarationMap": true, }, + "exclude": ["cypress.config.ts"], "include": [ - // add all the folders containg files to be compiled + // add all the folders containing files to be compiled ".storybook/**/*", "common/**/*", "public/**/*", @@ -15,6 +16,7 @@ "server/**/*.json", "scripts/**/*", "package.json", + "cypress.config.ts", "../../../typings/**/*" ], "references": [ diff --git a/x-pack/plugins/ml/server/saved_objects/sync_task.ts b/x-pack/plugins/ml/server/saved_objects/sync_task.ts index aaca13b99131c7..cc72247593ca00 100644 --- a/x-pack/plugins/ml/server/saved_objects/sync_task.ts +++ b/x-pack/plugins/ml/server/saved_objects/sync_task.ts @@ -126,7 +126,7 @@ export class SavedObjectsSyncService { return taskInstance; } catch (e) { - this.log.error(`Error running task: ${SAVED_OBJECTS_SYNC_TASK_ID}, `, e?.message() ?? e); + this.log.error(`Error running task: ${SAVED_OBJECTS_SYNC_TASK_ID}, `, e?.message ?? e); return null; } } diff --git a/x-pack/plugins/observability/common/processor_event.ts b/x-pack/plugins/observability/common/processor_event.ts index 3dee3bade41cd9..5bbc327e9f1b16 100644 --- a/x-pack/plugins/observability/common/processor_event.ts +++ b/x-pack/plugins/observability/common/processor_event.ts @@ -10,5 +10,4 @@ export enum ProcessorEvent { error = 'error', metric = 'metric', span = 'span', - profile = 'profile', } diff --git a/x-pack/plugins/observability/e2e/README.md b/x-pack/plugins/observability/e2e/README.md new file mode 100644 index 00000000000000..292e38a208d2d5 --- /dev/null +++ b/x-pack/plugins/observability/e2e/README.md @@ -0,0 +1,15 @@ +## How to run these tests + +These tests rely on the Kibana functional test runner. There is a Kibana config in this directory, and a dedicated +script for standing up the test server. + +### Start the server + +From `~/x-pack/plugins/observability/scripts`, run `node e2e.js --server`. Wait for the server to startup. It will provide you +with an example run command when it finishes. + +### Run the tests + +From this directory, `~/x-pack/plugins/observability/e2e`, you can now run `node ../../../../scripts/functional_test_runner --config synthetics_run.ts`. + +In addition to the usual flags like `--grep`, you can also specify `--no-headless` in order to view your tests as you debug/develop. diff --git a/x-pack/plugins/observability/public/config/paths.ts b/x-pack/plugins/observability/public/config/paths.ts index 7c523f9bb12c78..4c7d4e7c45b775 100644 --- a/x-pack/plugins/observability/public/config/paths.ts +++ b/x-pack/plugins/observability/public/config/paths.ts @@ -14,8 +14,10 @@ export const paths = { rules: RULES_PAGE_LINK, ruleDetails: (ruleId?: string | null) => ruleId ? `${RULES_PAGE_LINK}/${encodeURI(ruleId)}` : RULES_PAGE_LINK, - alertDetails: (alertId?: string | null) => - alertId ? `${ALERT_PAGE_LINK}/${encodeURI(alertId)}` : ALERT_PAGE_LINK, + alertDetails: (alertId?: string | null, ruleId?: string | null) => + alertId && ruleId + ? `${ALERT_PAGE_LINK}/rules/${encodeURI(ruleId)}/alerts/${encodeURI(alertId)}` + : ALERT_PAGE_LINK, }, management: { rules: '/app/management/insightsAndAlerting/triggersActions/rules', diff --git a/x-pack/plugins/observability/public/pages/alerts/components/observability_actions.tsx b/x-pack/plugins/observability/public/pages/alerts/components/observability_actions.tsx index eddead1fa90dea..de631f92ef586a 100644 --- a/x-pack/plugins/observability/public/pages/alerts/components/observability_actions.tsx +++ b/x-pack/plugins/observability/public/pages/alerts/components/observability_actions.tsx @@ -79,8 +79,8 @@ export function ObservabilityActions({ : null; const alertId = alert.fields['kibana.alert.uuid'] ?? null; const linkToAlert = - pageId !== ALERT_DETAILS_PAGE_ID && alertId - ? http.basePath.prepend(paths.observability.alertDetails(alertId)) + pageId !== ALERT_DETAILS_PAGE_ID && alertId && ruleId + ? http.basePath.prepend(paths.observability.alertDetails(alertId, ruleId)) : null; const caseAttachments: CaseAttachmentsWithoutOwner = useMemo(() => { return ecsData?._id diff --git a/x-pack/plugins/observability/public/routes/index.tsx b/x-pack/plugins/observability/public/routes/index.tsx index 2f7ec525f46039..130a77f480da9f 100644 --- a/x-pack/plugins/observability/public/routes/index.tsx +++ b/x-pack/plugins/observability/public/routes/index.tsx @@ -117,7 +117,7 @@ export const routes = { params: {}, exact: true, }, - '/alerts/:alertId': { + '/alerts/rules/:ruleId/alerts/:alertId': { handler: () => { return ; }, diff --git a/x-pack/plugins/osquery/cypress.config.ts b/x-pack/plugins/osquery/cypress.config.ts new file mode 100644 index 00000000000000..862b4a916beada --- /dev/null +++ b/x-pack/plugins/osquery/cypress.config.ts @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +// eslint-disable-next-line import/no-extraneous-dependencies +import { defineConfig } from 'cypress'; + +// eslint-disable-next-line import/no-default-export +export default defineConfig({ + defaultCommandTimeout: 60000, + execTimeout: 120000, + pageLoadTimeout: 12000, + + retries: { + runMode: 1, + openMode: 0, + }, + + screenshotsFolder: '../../../target/kibana-osquery/cypress/screenshots', + trashAssetsBeforeRuns: false, + video: false, + videosFolder: '../../../target/kibana-osquery/cypress/videos', + viewportHeight: 900, + viewportWidth: 1440, + experimentalStudio: true, + + env: { + 'cypress-react-selector': { + root: '#osquery-app', + }, + }, + + e2e: { + baseUrl: 'http://localhost:5601', + setupNodeEvents(on, config) { + // implement node event listeners here + }, + }, +}); diff --git a/x-pack/plugins/osquery/cypress/cypress.json b/x-pack/plugins/osquery/cypress/cypress.json deleted file mode 100644 index 5df26a922d7c3b..00000000000000 --- a/x-pack/plugins/osquery/cypress/cypress.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "baseUrl": "http://localhost:5620", - "defaultCommandTimeout": 60000, - "execTimeout": 120000, - "pageLoadTimeout": 12000, - "retries": { - "runMode": 1, - "openMode": 0 - }, - "screenshotsFolder": "../../../target/kibana-osquery/cypress/screenshots", - "trashAssetsBeforeRuns": false, - "video": false, - "videosFolder": "../../../target/kibana-osquery/cypress/videos", - "viewportHeight": 900, - "viewportWidth": 1440, - "experimentalStudio": true, - "env": { - "cypress-react-selector": { - "root": "#osquery-app" - } - } -} diff --git a/x-pack/plugins/osquery/cypress/integration/all/add_integration.spec.ts b/x-pack/plugins/osquery/cypress/e2e/all/add_integration.cy.ts similarity index 100% rename from x-pack/plugins/osquery/cypress/integration/all/add_integration.spec.ts rename to x-pack/plugins/osquery/cypress/e2e/all/add_integration.cy.ts diff --git a/x-pack/plugins/osquery/cypress/integration/all/alerts.spec.ts b/x-pack/plugins/osquery/cypress/e2e/all/alerts.cy.ts similarity index 100% rename from x-pack/plugins/osquery/cypress/integration/all/alerts.spec.ts rename to x-pack/plugins/osquery/cypress/e2e/all/alerts.cy.ts diff --git a/x-pack/plugins/osquery/cypress/integration/all/discover.spec.ts b/x-pack/plugins/osquery/cypress/e2e/all/discover.cy.ts similarity index 100% rename from x-pack/plugins/osquery/cypress/integration/all/discover.spec.ts rename to x-pack/plugins/osquery/cypress/e2e/all/discover.cy.ts diff --git a/x-pack/plugins/osquery/cypress/integration/all/edit_saved_queries.spec.ts b/x-pack/plugins/osquery/cypress/e2e/all/edit_saved_queries.cy.ts similarity index 100% rename from x-pack/plugins/osquery/cypress/integration/all/edit_saved_queries.spec.ts rename to x-pack/plugins/osquery/cypress/e2e/all/edit_saved_queries.cy.ts diff --git a/x-pack/plugins/osquery/cypress/integration/all/live_query.spec.ts b/x-pack/plugins/osquery/cypress/e2e/all/live_query.cy.ts similarity index 100% rename from x-pack/plugins/osquery/cypress/integration/all/live_query.spec.ts rename to x-pack/plugins/osquery/cypress/e2e/all/live_query.cy.ts diff --git a/x-pack/plugins/osquery/cypress/integration/all/metrics.spec.ts b/x-pack/plugins/osquery/cypress/e2e/all/metrics.cy.ts similarity index 100% rename from x-pack/plugins/osquery/cypress/integration/all/metrics.spec.ts rename to x-pack/plugins/osquery/cypress/e2e/all/metrics.cy.ts diff --git a/x-pack/plugins/osquery/cypress/integration/all/packs.spec.ts b/x-pack/plugins/osquery/cypress/e2e/all/packs.cy.ts similarity index 100% rename from x-pack/plugins/osquery/cypress/integration/all/packs.spec.ts rename to x-pack/plugins/osquery/cypress/e2e/all/packs.cy.ts diff --git a/x-pack/plugins/osquery/cypress/integration/all/saved_queries.spec.ts b/x-pack/plugins/osquery/cypress/e2e/all/saved_queries.cy.ts similarity index 100% rename from x-pack/plugins/osquery/cypress/integration/all/saved_queries.spec.ts rename to x-pack/plugins/osquery/cypress/e2e/all/saved_queries.cy.ts diff --git a/x-pack/plugins/osquery/cypress/integration/roles/admin.spec.ts b/x-pack/plugins/osquery/cypress/e2e/roles/admin.cy.ts similarity index 100% rename from x-pack/plugins/osquery/cypress/integration/roles/admin.spec.ts rename to x-pack/plugins/osquery/cypress/e2e/roles/admin.cy.ts diff --git a/x-pack/plugins/osquery/cypress/integration/roles/alert_test.spec.ts b/x-pack/plugins/osquery/cypress/e2e/roles/alert_test.cy.ts similarity index 100% rename from x-pack/plugins/osquery/cypress/integration/roles/alert_test.spec.ts rename to x-pack/plugins/osquery/cypress/e2e/roles/alert_test.cy.ts diff --git a/x-pack/plugins/osquery/cypress/integration/roles/reader.spec.ts b/x-pack/plugins/osquery/cypress/e2e/roles/reader.cy.ts similarity index 100% rename from x-pack/plugins/osquery/cypress/integration/roles/reader.spec.ts rename to x-pack/plugins/osquery/cypress/e2e/roles/reader.cy.ts diff --git a/x-pack/plugins/osquery/cypress/integration/roles/t1_analyst.spec.ts b/x-pack/plugins/osquery/cypress/e2e/roles/t1_analyst.cy.ts similarity index 100% rename from x-pack/plugins/osquery/cypress/integration/roles/t1_analyst.spec.ts rename to x-pack/plugins/osquery/cypress/e2e/roles/t1_analyst.cy.ts diff --git a/x-pack/plugins/osquery/cypress/integration/roles/t2_analyst.spec.ts b/x-pack/plugins/osquery/cypress/e2e/roles/t2_analyst.cy.ts similarity index 100% rename from x-pack/plugins/osquery/cypress/integration/roles/t2_analyst.spec.ts rename to x-pack/plugins/osquery/cypress/e2e/roles/t2_analyst.cy.ts diff --git a/x-pack/plugins/osquery/cypress/support/coverage.ts b/x-pack/plugins/osquery/cypress/support/coverage.ts index 65975f65af24fe..9278edfcc6ddd7 100644 --- a/x-pack/plugins/osquery/cypress/support/coverage.ts +++ b/x-pack/plugins/osquery/cypress/support/coverage.ts @@ -47,7 +47,8 @@ const logMessage = (s: string) => { * If there are more files loaded from support folder, also removes them */ const filterSupportFilesFromCoverage = (totalCoverage: any) => { - const integrationFolder = Cypress.config('integrationFolder'); + // @ts-expect-error update types + const integrationFolder = Cypress.config('e2eFolder'); const supportFile = Cypress.config('supportFile'); /** @type {string} Cypress run-time config has the support folder string */ @@ -64,6 +65,7 @@ const filterSupportFilesFromCoverage = (totalCoverage: any) => { // if we have files from support folder AND the support folder is not same // as the integration, or its prefix (this might remove all app source files) // then remove all files from the support folder + // @ts-expect-error update types if (!integrationFolder.startsWith(supportFolder)) { // remove all covered files from support folder coverage = Cypress._.omitBy(totalCoverage, (fileCoverage, filename) => diff --git a/x-pack/plugins/osquery/cypress/support/index.ts b/x-pack/plugins/osquery/cypress/support/e2e.ts similarity index 100% rename from x-pack/plugins/osquery/cypress/support/index.ts rename to x-pack/plugins/osquery/cypress/support/e2e.ts diff --git a/x-pack/plugins/osquery/cypress/tsconfig.json b/x-pack/plugins/osquery/cypress/tsconfig.json index cbb5b10c48aaf2..548ac5dc3eb130 100644 --- a/x-pack/plugins/osquery/cypress/tsconfig.json +++ b/x-pack/plugins/osquery/cypress/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../../../../tsconfig.base.json", "include": [ - "**/*" + "**/*", + "../cypress.config.ts" ], "exclude": [ "target/**/*" diff --git a/x-pack/plugins/osquery/package.json b/x-pack/plugins/osquery/package.json index 8d0e928f727707..fdda0a2316779b 100644 --- a/x-pack/plugins/osquery/package.json +++ b/x-pack/plugins/osquery/package.json @@ -5,9 +5,9 @@ "private": true, "license": "Elastic-License", "scripts": { - "cypress:open": "../../../node_modules/.bin/cypress open --config-file ./cypress/cypress.json", + "cypress:open": "../../../node_modules/.bin/cypress open --config-file ./cypress.config.ts", "cypress:open-as-ci": "node ../../../scripts/functional_tests --config ../../test/osquery_cypress/visual_config.ts", - "cypress:run": "../../../node_modules/.bin/cypress run --config-file ./cypress/cypress.json", + "cypress:run": "../../../node_modules/.bin/cypress run --config-file ./cypress.config.ts", "cypress:run-as-ci": "node ../../../scripts/functional_tests --config ../../test/osquery_cypress/cli_config.ts", "nyc": "../../../node_modules/.bin/nyc report --reporter=text-summary" } diff --git a/x-pack/plugins/osquery/tsconfig.json b/x-pack/plugins/osquery/tsconfig.json index 4eac1baa43d791..f9cacf100b6918 100644 --- a/x-pack/plugins/osquery/tsconfig.json +++ b/x-pack/plugins/osquery/tsconfig.json @@ -6,6 +6,7 @@ "declaration": true, "declarationMap": true }, + "exclude": ["cypress.config.ts"], "include": [ // add all the folders contains files to be compiled "common/**/*", @@ -13,6 +14,7 @@ "scripts/**/*", "scripts/**/**.json", "server/**/*", + "cypress.config.ts", "../../../typings/**/*", // ECS and Osquery schema files "public/common/schemas/*/**.json", diff --git a/x-pack/plugins/reporting/server/config/create_config.test.ts b/x-pack/plugins/reporting/server/config/create_config.test.ts index d2fd645fcc26d6..b884151a500f46 100644 --- a/x-pack/plugins/reporting/server/config/create_config.test.ts +++ b/x-pack/plugins/reporting/server/config/create_config.test.ts @@ -79,7 +79,12 @@ describe('Reporting server createConfig$', () => { "capture": Object { "maxAttempts": 1, }, - "csv": Object {}, + "csv": Object { + "scroll": Object { + "duration": "30s", + "size": 500, + }, + }, "encryptionKey": "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii", "index": ".reporting", "kibanaServer": Object { diff --git a/x-pack/plugins/reporting/server/export_types/csv_searchsource/execute_job.ts b/x-pack/plugins/reporting/server/export_types/csv_searchsource/execute_job.ts index 8b5f0e5395827b..d7e5f4be33f8e1 100644 --- a/x-pack/plugins/reporting/server/export_types/csv_searchsource/execute_job.ts +++ b/x-pack/plugins/reporting/server/export_types/csv_searchsource/execute_job.ts @@ -16,11 +16,11 @@ export const runTaskFnFactory: RunTaskFnFactory> = ( parentLogger ) => { const config = reporting.getConfig(); + const encryptionKey = config.get('encryptionKey'); + const csvConfig = config.get('csv'); return async function runTask(jobId, job, cancellationToken, stream) { const logger = parentLogger.get(`execute-job:${jobId}`); - - const encryptionKey = config.get('encryptionKey'); const headers = await decryptJobHeaders(encryptionKey, job.headers, logger); const fakeRequest = reporting.getFakeRequest({ headers }, job.spaceId, logger); const uiSettings = await reporting.getUiSettingsClient(fakeRequest, logger); @@ -44,7 +44,7 @@ export const runTaskFnFactory: RunTaskFnFactory> = ( const csv = new CsvGenerator( job, - config, + csvConfig, clients, dependencies, cancellationToken, diff --git a/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.test.ts b/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.test.ts index 0ce8af4c1aa5a5..d339d2b12bad0f 100644 --- a/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.test.ts +++ b/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.test.ts @@ -7,9 +7,7 @@ import { errors as esErrors } from '@elastic/elasticsearch'; import type { SearchResponse } from '@elastic/elasticsearch/lib/api/types'; -import type { Logger, IScopedClusterClient, IUiSettingsClient } from '@kbn/core/server'; -import { identity, range } from 'lodash'; -import * as Rx from 'rxjs'; +import type { IScopedClusterClient, IUiSettingsClient, Logger } from '@kbn/core/server'; import { elasticsearchServiceMock, loggingSystemMock, @@ -21,14 +19,17 @@ import { searchSourceInstanceMock } from '@kbn/data-plugin/common/search/search_ import { IScopedSearchClient } from '@kbn/data-plugin/server'; import { dataPluginMock } from '@kbn/data-plugin/server/mocks'; import { FieldFormatsRegistry } from '@kbn/field-formats-plugin/common'; -import { Writable } from 'stream'; -import { ReportingConfig } from '../../..'; +import { identity, range } from 'lodash'; +import * as Rx from 'rxjs'; +import type { Writable } from 'stream'; +import type { DeepPartial } from 'utility-types'; import { CancellationToken } from '../../../../common/cancellation_token'; import { UI_SETTINGS_CSV_QUOTE_VALUES, UI_SETTINGS_CSV_SEPARATOR, UI_SETTINGS_DATEFORMAT_TZ, } from '../../../../common/constants'; +import { ReportingConfigType } from '../../../config'; import { createMockConfig, createMockConfigSchema } from '../../../test_helpers'; import { JobParamsCSV } from '../types'; import { CsvGenerator } from './generate_csv'; @@ -39,7 +40,7 @@ const createMockJob = (baseObj: any = {}): JobParamsCSV => ({ let mockEsClient: IScopedClusterClient; let mockDataClient: IScopedSearchClient; -let mockConfig: ReportingConfig; +let mockConfig: ReportingConfigType['csv']; let mockLogger: jest.Mocked; let uiSettingsClient: IUiSettingsClient; let stream: jest.Mocked; @@ -79,6 +80,11 @@ const mockFieldFormatsRegistry = { .mockImplementation(() => ({ id: 'string', convert: jest.fn().mockImplementation(identity) })), } as unknown as FieldFormatsRegistry; +const getMockConfig = (properties: DeepPartial = {}) => { + const config = createMockConfig(createMockConfigSchema(properties)); + return config.get('csv'); +}; + beforeEach(async () => { content = ''; stream = { write: jest.fn((chunk) => (content += chunk)) } as unknown as typeof stream; @@ -100,16 +106,14 @@ beforeEach(async () => { } }); - mockConfig = createMockConfig( - createMockConfigSchema({ - csv: { - checkForFormulas: true, - escapeFormulaValues: true, - maxSizeBytes: 180000, - scroll: { size: 500, duration: '30s' }, - }, - }) - ); + mockConfig = getMockConfig({ + csv: { + checkForFormulas: true, + escapeFormulaValues: true, + maxSizeBytes: 180000, + scroll: { size: 500, duration: '30s' }, + }, + }); searchSourceMock.getField = jest.fn((key: string) => { switch (key) { @@ -231,17 +235,14 @@ it('calculates the bytes of the content', async () => { it('warns if max size was reached', async () => { const TEST_MAX_SIZE = 500; - - mockConfig = createMockConfig( - createMockConfigSchema({ - csv: { - checkForFormulas: true, - escapeFormulaValues: true, - maxSizeBytes: TEST_MAX_SIZE, - scroll: { size: 500, duration: '30s' }, - }, - }) - ); + mockConfig = getMockConfig({ + csv: { + checkForFormulas: true, + escapeFormulaValues: true, + maxSizeBytes: TEST_MAX_SIZE, + scroll: { size: 500, duration: '30s' }, + }, + }); mockDataClient.search = jest.fn().mockImplementation(() => Rx.of({ @@ -300,6 +301,7 @@ it('uses the scrollId to page all the data', async () => { }, }) ); + mockEsClient.asCurrentUser.scroll = jest.fn().mockResolvedValue({ hits: { hits: range(0, HITS_TOTAL / 10).map(() => ({ @@ -335,7 +337,7 @@ it('uses the scrollId to page all the data', async () => { expect(mockDataClient.search).toHaveBeenCalledTimes(1); expect(mockDataClient.search).toBeCalledWith( { params: { body: {}, ignore_throttled: undefined, scroll: '30s', size: 500 } }, - { strategy: 'es' } + { strategy: 'es', transport: { maxRetries: 0, requestTimeout: '30s' } } ); // `scroll` and `clearScroll` must be called with scroll ID in the post body! @@ -729,16 +731,14 @@ describe('formulas', () => { }); it('can check for formulas, without escaping them', async () => { - mockConfig = createMockConfig( - createMockConfigSchema({ - csv: { - checkForFormulas: true, - escapeFormulaValues: false, - maxSizeBytes: 180000, - scroll: { size: 500, duration: '30s' }, - }, - }) - ); + mockConfig = getMockConfig({ + csv: { + checkForFormulas: true, + escapeFormulaValues: false, + maxSizeBytes: 180000, + scroll: { size: 500, duration: '30s' }, + }, + }); mockDataClient.search = jest.fn().mockImplementation(() => Rx.of({ rawResponse: { @@ -804,8 +804,15 @@ it('can override ignoring frozen indices', async () => { await generateCsv.generateData(); expect(mockDataClient.search).toBeCalledWith( - { params: { body: {}, ignore_throttled: false, scroll: '30s', size: 500 } }, - { strategy: 'es' } + { + params: { + body: {}, + ignore_throttled: false, + scroll: '30s', + size: 500, + }, + }, + { strategy: 'es', transport: { maxRetries: 0, requestTimeout: '30s' } } ); }); diff --git a/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.ts b/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.ts index bbb8fee7cd01db..c72fce0f12bca6 100644 --- a/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.ts +++ b/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.ts @@ -24,11 +24,11 @@ import type { } from '@kbn/field-formats-plugin/common'; import { lastValueFrom } from 'rxjs'; import type { Writable } from 'stream'; -import type { ReportingConfig } from '../../..'; import type { CancellationToken } from '../../../../common/cancellation_token'; import { CONTENT_TYPE_CSV } from '../../../../common/constants'; import { AuthenticationExpiredError, ReportingError } from '../../../../common/errors'; import { byteSizeValueToNumber } from '../../../../common/schema_utils'; +import { ReportingConfigType } from '../../../config'; import type { TaskRunResult } from '../../../lib/tasks'; import type { JobParamsCSV } from '../types'; import { CsvExportSettings, getExportSettings } from './get_export_settings'; @@ -53,7 +53,7 @@ export class CsvGenerator { constructor( private job: Omit, - private config: ReportingConfig, + private config: ReportingConfigType['csv'], private clients: Clients, private dependencies: Dependencies, private cancellationToken: CancellationToken, @@ -84,7 +84,13 @@ export class CsvGenerator { try { results = ( await lastValueFrom( - this.clients.data.search(searchParams, { strategy: ES_SEARCH_STRATEGY }) + this.clients.data.search(searchParams, { + strategy: ES_SEARCH_STRATEGY, + transport: { + maxRetries: 0, // retrying reporting jobs is handled in the task manager scheduling logic + requestTimeout: this.config.scroll.duration, + }, + }) ) ).rawResponse as estypes.SearchResponse; } catch (err) { diff --git a/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/get_export_settings.test.ts b/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/get_export_settings.test.ts index 863425822d7dd5..96bde310b2c056 100644 --- a/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/get_export_settings.test.ts +++ b/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/get_export_settings.test.ts @@ -22,7 +22,7 @@ import { getExportSettings } from './get_export_settings'; describe('getExportSettings', () => { let uiSettingsClient: IUiSettingsClient; - const config = createMockConfig(createMockConfigSchema({})); + const config = createMockConfig(createMockConfigSchema({})).get('csv'); const logger = loggingSystemMock.createLogger(); beforeEach(() => { @@ -55,8 +55,8 @@ describe('getExportSettings', () => { "includeFrozen": false, "maxSizeBytes": undefined, "scroll": Object { - "duration": undefined, - "size": undefined, + "duration": "30s", + "size": 500, }, "separator": ",", "timezone": "UTC", diff --git a/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/get_export_settings.ts b/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/get_export_settings.ts index dff80970dff74e..1c5dc1983ab74b 100644 --- a/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/get_export_settings.ts +++ b/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/get_export_settings.ts @@ -8,7 +8,6 @@ import { ByteSizeValue } from '@kbn/config-schema'; import type { IUiSettingsClient, Logger } from '@kbn/core/server'; import { createEscapeValue } from '@kbn/data-plugin/common'; -import { ReportingConfig } from '../../..'; import { CSV_BOM_CHARS, UI_SETTINGS_CSV_QUOTE_VALUES, @@ -16,6 +15,7 @@ import { UI_SETTINGS_DATEFORMAT_TZ, UI_SETTINGS_SEARCH_INCLUDE_FROZEN, } from '../../../../common/constants'; +import { ReportingConfigType } from '../../../config'; export interface CsvExportSettings { timezone: string; @@ -34,7 +34,7 @@ export interface CsvExportSettings { export const getExportSettings = async ( client: IUiSettingsClient, - config: ReportingConfig, + config: ReportingConfigType['csv'], timezone: string | undefined, logger: Logger ): Promise => { @@ -60,21 +60,21 @@ export const getExportSettings = async ( client.get(UI_SETTINGS_CSV_QUOTE_VALUES), ]); - const escapeFormulaValues = config.get('csv', 'escapeFormulaValues'); + const escapeFormulaValues = config.escapeFormulaValues; const escapeValue = createEscapeValue(quoteValues, escapeFormulaValues); - const bom = config.get('csv', 'useByteOrderMarkEncoding') ? CSV_BOM_CHARS : ''; + const bom = config.useByteOrderMarkEncoding ? CSV_BOM_CHARS : ''; return { timezone: setTimezone, scroll: { - size: config.get('csv', 'scroll', 'size'), - duration: config.get('csv', 'scroll', 'duration'), + size: config.scroll.size, + duration: config.scroll.duration, }, bom, includeFrozen, separator, - maxSizeBytes: config.get('csv', 'maxSizeBytes'), - checkForFormulas: config.get('csv', 'checkForFormulas'), + maxSizeBytes: config.maxSizeBytes, + checkForFormulas: config.checkForFormulas, escapeFormulaValues, escapeValue, }; diff --git a/x-pack/plugins/reporting/server/export_types/csv_searchsource_immediate/execute_job.ts b/x-pack/plugins/reporting/server/export_types/csv_searchsource_immediate/execute_job.ts index 31924d0d89cf58..7887c55b14b63e 100644 --- a/x-pack/plugins/reporting/server/export_types/csv_searchsource_immediate/execute_job.ts +++ b/x-pack/plugins/reporting/server/export_types/csv_searchsource_immediate/execute_job.ts @@ -30,7 +30,7 @@ export const runTaskFnFactory: RunTaskFnFactory = function e reporting, parentLogger ) { - const config = reporting.getConfig(); + const config = reporting.getConfig().get('csv'); const logger = parentLogger.get('execute-job'); return async function runTask(_jobId, immediateJobParams, context, stream, req) { @@ -39,9 +39,9 @@ export const runTaskFnFactory: RunTaskFnFactory = function e ...immediateJobParams, }; + const dataPluginStart = await reporting.getDataService(); const savedObjectsClient = (await context.core).savedObjects.client; const uiSettings = await reporting.getUiSettingsServiceFactory(savedObjectsClient); - const dataPluginStart = await reporting.getDataService(); const fieldFormatsRegistry = await getFieldFormats().fieldFormatServiceFactory(uiSettings); const [es, searchSourceStart] = await Promise.all([ diff --git a/x-pack/plugins/reporting/server/test_helpers/create_mock_reportingplugin.ts b/x-pack/plugins/reporting/server/test_helpers/create_mock_reportingplugin.ts index cdb0c7ac44d70d..aa1640274e4ce9 100644 --- a/x-pack/plugins/reporting/server/test_helpers/create_mock_reportingplugin.ts +++ b/x-pack/plugins/reporting/server/test_helpers/create_mock_reportingplugin.ts @@ -113,6 +113,7 @@ export const createMockConfigSchema = ( ...overrides.queue, }, csv: { + scroll: { size: 500, duration: '30s' }, ...overrides.csv, }, roles: { diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/rule_schemas.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/rule_schemas.ts index 46186479bf7268..08e609938938c6 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/rule_schemas.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/rule_schemas.ts @@ -284,7 +284,7 @@ const { patch: threatMatchPatchParams, response: threatMatchResponseParams, } = buildAPISchemas(threatMatchRuleParams); -export { threatMatchCreateParams }; +export { threatMatchCreateParams, threatMatchResponseParams }; const queryRuleParams = { required: { @@ -307,7 +307,7 @@ const { response: queryResponseParams, } = buildAPISchemas(queryRuleParams); -export { queryCreateParams }; +export { queryCreateParams, queryResponseParams }; const savedQueryRuleParams = { required: { @@ -332,7 +332,7 @@ const { response: savedQueryResponseParams, } = buildAPISchemas(savedQueryRuleParams); -export { savedQueryCreateParams }; +export { savedQueryCreateParams, savedQueryResponseParams }; const thresholdRuleParams = { required: { @@ -356,7 +356,7 @@ const { response: thresholdResponseParams, } = buildAPISchemas(thresholdRuleParams); -export { thresholdCreateParams }; +export { thresholdCreateParams, thresholdResponseParams }; const machineLearningRuleParams = { required: { @@ -373,7 +373,7 @@ const { response: machineLearningResponseParams, } = buildAPISchemas(machineLearningRuleParams); -export { machineLearningCreateParams }; +export { machineLearningCreateParams, machineLearningResponseParams }; const newTermsRuleParams = { required: { @@ -397,7 +397,7 @@ const { response: newTermsResponseParams, } = buildAPISchemas(newTermsRuleParams); -export { newTermsCreateParams }; +export { newTermsCreateParams, newTermsResponseParams }; // --------------------------------------- // END type specific parameter definitions @@ -503,14 +503,27 @@ const responseOptionalFields = { execution_summary: RuleExecutionSummary, }; -export const fullResponseSchema = t.intersection([ +const sharedResponseSchema = t.intersection([ baseResponseParams, - responseTypeSpecific, t.exact(t.type(responseRequiredFields)), t.exact(t.partial(responseOptionalFields)), ]); +export type SharedResponseSchema = t.TypeOf; +export const fullResponseSchema = t.intersection([sharedResponseSchema, responseTypeSpecific]); export type FullResponseSchema = t.TypeOf; +// Convenience types for type specific responses +type ResponseSchema = SharedResponseSchema & T; +export type EqlResponseSchema = ResponseSchema>; +export type ThreatMatchResponseSchema = ResponseSchema>; +export type QueryResponseSchema = ResponseSchema>; +export type SavedQueryResponseSchema = ResponseSchema>; +export type ThresholdResponseSchema = ResponseSchema>; +export type MachineLearningResponseSchema = ResponseSchema< + t.TypeOf +>; +export type NewTermsResponseSchema = ResponseSchema>; + export interface RulePreviewLogs { errors: string[]; warnings: string[]; diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/index.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/index.ts index e12fbf29183029..5c934b0d2e0408 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/index.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/index.ts @@ -12,5 +12,3 @@ export * from './import_rules_schema'; export * from './prepackaged_rules_schema'; export * from './prepackaged_rules_status_schema'; export * from './rules_bulk_schema'; -export * from './rules_schema'; -export * from './type_timeline_only_schema'; diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_bulk_schema.test.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_bulk_schema.test.ts index 00800b94747168..69e31522ef40a2 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_bulk_schema.test.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_bulk_schema.test.ts @@ -10,12 +10,12 @@ import { pipe } from 'fp-ts/lib/pipeable'; import type { RulesBulkSchema } from './rules_bulk_schema'; import { rulesBulkSchema } from './rules_bulk_schema'; -import type { RulesSchema } from './rules_schema'; import type { ErrorSchema } from './error_schema'; import { exactCheck, foldLeftRight, getPaths } from '@kbn/securitysolution-io-ts-utils'; import { getRulesSchemaMock } from './rules_schema.mocks'; import { getErrorSchemaMock } from './error_schema.mocks'; +import type { FullResponseSchema } from '../request'; describe('prepackaged_rule_schema', () => { test('it should validate a regular message and and error together with a uuid', () => { @@ -73,15 +73,14 @@ describe('prepackaged_rule_schema', () => { const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); - expect(getPaths(left(message.errors))).toEqual([ - 'Invalid value "undefined" supplied to "type"', - 'Invalid value "undefined" supplied to "error"', - ]); + expect(getPaths(left(message.errors))).toContain( + 'Invalid value "undefined" supplied to "error"' + ); expect(message.schema).toEqual({}); }); test('it should NOT validate a type of "query" when it has extra data', () => { - const rule: RulesSchema & { invalid_extra_data?: string } = getRulesSchemaMock(); + const rule: FullResponseSchema & { invalid_extra_data?: string } = getRulesSchemaMock(); rule.invalid_extra_data = 'invalid_extra_data'; const payload: RulesBulkSchema = [rule]; const decoded = rulesBulkSchema.decode(payload); @@ -93,7 +92,7 @@ describe('prepackaged_rule_schema', () => { }); test('it should NOT validate a type of "query" when it has extra data next to a valid error', () => { - const rule: RulesSchema & { invalid_extra_data?: string } = getRulesSchemaMock(); + const rule: FullResponseSchema & { invalid_extra_data?: string } = getRulesSchemaMock(); rule.invalid_extra_data = 'invalid_extra_data'; const payload: RulesBulkSchema = [getErrorSchemaMock(), rule]; const decoded = rulesBulkSchema.decode(payload); diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_bulk_schema.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_bulk_schema.ts index 57d812645ed385..65c55f356c44bf 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_bulk_schema.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_bulk_schema.ts @@ -7,8 +7,8 @@ import * as t from 'io-ts'; -import { rulesSchema } from './rules_schema'; +import { fullResponseSchema } from '../request'; import { errorSchema } from './error_schema'; -export const rulesBulkSchema = t.array(t.union([rulesSchema, errorSchema])); +export const rulesBulkSchema = t.array(t.union([fullResponseSchema, errorSchema])); export type RulesBulkSchema = t.TypeOf; diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.mocks.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.mocks.ts index c3fbec8a6d7b31..bf6583a6855f08 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.mocks.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.mocks.ts @@ -6,13 +6,19 @@ */ import { DEFAULT_INDICATOR_SOURCE_PATH } from '../../../constants'; +import type { + EqlResponseSchema, + MachineLearningResponseSchema, + QueryResponseSchema, + SavedQueryResponseSchema, + SharedResponseSchema, + ThreatMatchResponseSchema, +} from '../request'; import { getListArrayMock } from '../types/lists.mock'; -import type { RulesSchema } from './rules_schema'; - export const ANCHOR_DATE = '2020-02-20T03:57:54.037Z'; -export const getRulesSchemaMock = (anchorDate: string = ANCHOR_DATE): RulesSchema => ({ +const getResponseBaseParams = (anchorDate: string = ANCHOR_DATE): SharedResponseSchema => ({ author: [], id: '7a7065d7-6e8b-4aae-8d20-c93613dec9f9', created_at: new Date(anchorDate).toISOString(), @@ -24,45 +30,83 @@ export const getRulesSchemaMock = (anchorDate: string = ANCHOR_DATE): RulesSchem from: 'now-6m', immutable: false, name: 'Query with a rule id', - query: 'user.name: root or user.name: admin', references: ['test 1', 'test 2'], - severity: 'high', + severity: 'high' as const, severity_mapping: [], updated_by: 'elastic_kibana', tags: ['some fake tag 1', 'some fake tag 2'], to: 'now', - type: 'query', threat: [], version: 1, output_index: '.siem-signals-default', max_signals: 100, risk_score: 55, risk_score_mapping: [], - language: 'kuery', rule_id: 'query-rule-id', interval: '5m', exceptions_list: getListArrayMock(), related_integrations: [], required_fields: [], setup: '', + throttle: 'no_actions', + actions: [], + building_block_type: undefined, + note: undefined, + license: undefined, + outcome: undefined, + alias_target_id: undefined, + alias_purpose: undefined, + timeline_id: undefined, + timeline_title: undefined, + meta: undefined, + rule_name_override: undefined, + timestamp_override: undefined, + timestamp_override_fallback_disabled: undefined, + namespace: undefined, }); -export const getRulesMlSchemaMock = (anchorDate: string = ANCHOR_DATE): RulesSchema => { - const basePayload = getRulesSchemaMock(anchorDate); - const { filters, index, query, language, ...rest } = basePayload; +export const getRulesSchemaMock = (anchorDate: string = ANCHOR_DATE): QueryResponseSchema => ({ + ...getResponseBaseParams(anchorDate), + query: 'user.name: root or user.name: admin', + type: 'query', + language: 'kuery', + index: undefined, + data_view_id: undefined, + filters: undefined, + saved_id: undefined, +}); +export const getSavedQuerySchemaMock = ( + anchorDate: string = ANCHOR_DATE +): SavedQueryResponseSchema => ({ + ...getResponseBaseParams(anchorDate), + query: 'user.name: root or user.name: admin', + type: 'saved_query', + saved_id: 'save id 123', + language: 'kuery', + index: undefined, + data_view_id: undefined, + filters: undefined, +}); +export const getRulesMlSchemaMock = ( + anchorDate: string = ANCHOR_DATE +): MachineLearningResponseSchema => { return { - ...rest, + ...getResponseBaseParams(anchorDate), type: 'machine_learning', anomaly_threshold: 59, machine_learning_job_id: 'some_machine_learning_job_id', }; }; -export const getThreatMatchingSchemaMock = (anchorDate: string = ANCHOR_DATE): RulesSchema => { +export const getThreatMatchingSchemaMock = ( + anchorDate: string = ANCHOR_DATE +): ThreatMatchResponseSchema => { return { - ...getRulesSchemaMock(anchorDate), + ...getResponseBaseParams(anchorDate), type: 'threat_match', + query: 'user.name: root or user.name: admin', + language: 'kuery', threat_index: ['index-123'], threat_mapping: [{ entries: [{ field: 'host.name', type: 'mapping', value: 'host.name' }] }], threat_query: '*:*', @@ -84,6 +128,14 @@ export const getThreatMatchingSchemaMock = (anchorDate: string = ANCHOR_DATE): R }, }, ], + index: undefined, + data_view_id: undefined, + filters: undefined, + saved_id: undefined, + threat_indicator_path: undefined, + threat_language: undefined, + concurrent_searches: undefined, + items_per_search: undefined, }; }; @@ -91,7 +143,9 @@ export const getThreatMatchingSchemaMock = (anchorDate: string = ANCHOR_DATE): R * Useful for e2e backend tests where it doesn't have date time and other * server side properties attached to it. */ -export const getThreatMatchingSchemaPartialMock = (enabled = false): Partial => { +export const getThreatMatchingSchemaPartialMock = ( + enabled = false +): Partial => { return { author: [], created_by: 'elastic', @@ -160,11 +214,17 @@ export const getThreatMatchingSchemaPartialMock = (enabled = false): Partial { +export const getRulesEqlSchemaMock = (anchorDate: string = ANCHOR_DATE): EqlResponseSchema => { return { - ...getRulesSchemaMock(anchorDate), + ...getResponseBaseParams(anchorDate), language: 'eql', type: 'eql', query: 'process where true', + index: undefined, + data_view_id: undefined, + filters: undefined, + timestamp_field: undefined, + event_category_override: undefined, + tiebreaker_field: undefined, }; }; diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.test.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.test.ts index bac55c85109291..0a337eb28bc1c8 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.test.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.test.ts @@ -7,35 +7,23 @@ import { left } from 'fp-ts/lib/Either'; import { pipe } from 'fp-ts/lib/pipeable'; -import type * as t from 'io-ts'; -import type { RulesSchema } from './rules_schema'; -import { - rulesSchema, - checkTypeDependents, - getDependents, - addSavedId, - addQueryFields, - addTimelineTitle, - addMlFields, - addThreatMatchFields, - addEqlFields, -} from './rules_schema'; import { exactCheck, foldLeftRight, getPaths } from '@kbn/securitysolution-io-ts-utils'; -import type { TypeAndTimelineOnly } from './type_timeline_only_schema'; import { getRulesSchemaMock, getRulesMlSchemaMock, + getSavedQuerySchemaMock, getThreatMatchingSchemaMock, getRulesEqlSchemaMock, } from './rules_schema.mocks'; -import type { ListArray } from '@kbn/securitysolution-io-ts-list-types'; +import { fullResponseSchema } from '../request'; +import type { FullResponseSchema } from '../request'; describe('rules_schema', () => { test('it should validate a type of "query" without anything extra', () => { const payload = getRulesSchemaMock(); - const decoded = rulesSchema.decode(payload); + const decoded = fullResponseSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); const expected = getRulesSchemaMock(); @@ -45,10 +33,10 @@ describe('rules_schema', () => { }); test('it should NOT validate a type of "query" when it has extra data', () => { - const payload: RulesSchema & { invalid_extra_data?: string } = getRulesSchemaMock(); + const payload: FullResponseSchema & { invalid_extra_data?: string } = getRulesSchemaMock(); payload.invalid_extra_data = 'invalid_extra_data'; - const decoded = rulesSchema.decode(payload); + const decoded = fullResponseSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); @@ -57,55 +45,48 @@ describe('rules_schema', () => { }); test('it should NOT validate invalid_data for the type', () => { - const payload: Omit & { type: string } = getRulesSchemaMock(); + const payload: Omit & { type: string } = getRulesSchemaMock(); payload.type = 'invalid_data'; - const decoded = rulesSchema.decode(payload); + const decoded = fullResponseSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); - expect(getPaths(left(message.errors))).toEqual([ - 'Invalid value "invalid_data" supplied to "type"', - ]); + expect(getPaths(left(message.errors))).toHaveLength(1); expect(message.schema).toEqual({}); }); - test('it should NOT validate a type of "query" with a saved_id together', () => { - const payload = getRulesSchemaMock(); + test('it should validate a type of "query" with a saved_id together', () => { + const payload: FullResponseSchema & { saved_id?: string } = getRulesSchemaMock(); payload.type = 'query'; payload.saved_id = 'save id 123'; - const decoded = rulesSchema.decode(payload); + const decoded = fullResponseSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); - expect(getPaths(left(message.errors))).toEqual(['invalid keys "saved_id"']); - expect(message.schema).toEqual({}); + expect(getPaths(left(message.errors))).toEqual([]); + expect(message.schema).toEqual(payload); }); test('it should validate a type of "saved_query" with a "saved_id" dependent', () => { - const payload = getRulesSchemaMock(); - payload.type = 'saved_query'; - payload.saved_id = 'save id 123'; + const payload = getSavedQuerySchemaMock(); - const decoded = rulesSchema.decode(payload); + const decoded = fullResponseSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); - const expected = getRulesSchemaMock(); - - expected.type = 'saved_query'; - expected.saved_id = 'save id 123'; + const expected = getSavedQuerySchemaMock(); expect(getPaths(left(message.errors))).toEqual([]); expect(message.schema).toEqual(expected); }); test('it should NOT validate a type of "saved_query" without a "saved_id" dependent', () => { - const payload = getRulesSchemaMock(); - payload.type = 'saved_query'; + const payload: FullResponseSchema & { saved_id?: string } = getSavedQuerySchemaMock(); + // @ts-expect-error delete payload.saved_id; - const decoded = rulesSchema.decode(payload); + const decoded = fullResponseSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); @@ -116,12 +97,11 @@ describe('rules_schema', () => { }); test('it should NOT validate a type of "saved_query" when it has extra data', () => { - const payload: RulesSchema & { invalid_extra_data?: string } = getRulesSchemaMock(); - payload.type = 'saved_query'; - payload.saved_id = 'save id 123'; + const payload: FullResponseSchema & { saved_id?: string; invalid_extra_data?: string } = + getSavedQuerySchemaMock(); payload.invalid_extra_data = 'invalid_extra_data'; - const decoded = rulesSchema.decode(payload); + const decoded = fullResponseSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); @@ -134,7 +114,7 @@ describe('rules_schema', () => { payload.timeline_id = 'some timeline id'; payload.timeline_title = 'some timeline title'; - const decoded = rulesSchema.decode(payload); + const decoded = fullResponseSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); const expected = getRulesSchemaMock(); @@ -146,12 +126,12 @@ describe('rules_schema', () => { }); test('it should NOT validate a type of "timeline_id" if there is "timeline_title" dependent when it has extra invalid data', () => { - const payload: RulesSchema & { invalid_extra_data?: string } = getRulesSchemaMock(); + const payload: FullResponseSchema & { invalid_extra_data?: string } = getRulesSchemaMock(); payload.timeline_id = 'some timeline id'; payload.timeline_title = 'some timeline title'; payload.invalid_extra_data = 'invalid_extra_data'; - const decoded = rulesSchema.decode(payload); + const decoded = fullResponseSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); @@ -159,575 +139,11 @@ describe('rules_schema', () => { expect(message.schema).toEqual({}); }); - test('it should NOT validate a type of "timeline_id" if there is NOT a "timeline_title" dependent', () => { - const payload = getRulesSchemaMock(); - payload.timeline_id = 'some timeline id'; - - const decoded = rulesSchema.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual([ - 'Invalid value "undefined" supplied to "timeline_title"', - ]); - expect(message.schema).toEqual({}); - }); - - test('it should NOT validate a type of "timeline_title" if there is NOT a "timeline_id" dependent', () => { - const payload = getRulesSchemaMock(); - payload.timeline_title = 'some timeline title'; - - const decoded = rulesSchema.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual(['invalid keys "timeline_title"']); - expect(message.schema).toEqual({}); - }); - - test('it should NOT validate a type of "saved_query" with a "saved_id" dependent and a "timeline_title" but there is NOT a "timeline_id"', () => { - const payload = getRulesSchemaMock(); - payload.saved_id = 'some saved id'; - payload.type = 'saved_query'; - payload.timeline_title = 'some timeline title'; - - const decoded = rulesSchema.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual(['invalid keys "timeline_title"']); - expect(message.schema).toEqual({}); - }); - - test('it should NOT validate a type of "saved_query" with a "saved_id" dependent and a "timeline_id" but there is NOT a "timeline_title"', () => { - const payload = getRulesSchemaMock(); - payload.saved_id = 'some saved id'; - payload.type = 'saved_query'; - payload.timeline_id = 'some timeline id'; - - const decoded = rulesSchema.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual([ - 'Invalid value "undefined" supplied to "timeline_title"', - ]); - expect(message.schema).toEqual({}); - }); - - describe('checkTypeDependents', () => { - test('it should validate a type of "query" without anything extra', () => { - const payload = getRulesSchemaMock(); - - const decoded = checkTypeDependents(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - const expected = getRulesSchemaMock(); - - expect(getPaths(left(message.errors))).toEqual([]); - expect(message.schema).toEqual(expected); - }); - - test('it should NOT validate invalid_data for the type', () => { - const payload: Omit & { type: string } = getRulesSchemaMock(); - payload.type = 'invalid_data'; - - const decoded = checkTypeDependents(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual([ - 'Invalid value "invalid_data" supplied to "type"', - ]); - expect(message.schema).toEqual({}); - }); - - test('it should NOT validate a type of "query" with a saved_id together', () => { - const payload = getRulesSchemaMock(); - payload.type = 'query'; - payload.saved_id = 'save id 123'; - - const decoded = checkTypeDependents(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual(['invalid keys "saved_id"']); - expect(message.schema).toEqual({}); - }); - - test('it should validate a type of "saved_query" with a "saved_id" dependent', () => { - const payload = getRulesSchemaMock(); - payload.type = 'saved_query'; - payload.saved_id = 'save id 123'; - - const decoded = checkTypeDependents(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - const expected = getRulesSchemaMock(); - - expected.type = 'saved_query'; - expected.saved_id = 'save id 123'; - - expect(getPaths(left(message.errors))).toEqual([]); - expect(message.schema).toEqual(expected); - }); - - test('it should NOT validate a type of "saved_query" without a "saved_id" dependent', () => { - const payload = getRulesSchemaMock(); - payload.type = 'saved_query'; - delete payload.saved_id; - - const decoded = checkTypeDependents(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual([ - 'Invalid value "undefined" supplied to "saved_id"', - ]); - expect(message.schema).toEqual({}); - }); - - test('it should NOT validate a type of "saved_query" when it has extra data', () => { - const payload: RulesSchema & { invalid_extra_data?: string } = getRulesSchemaMock(); - payload.type = 'saved_query'; - payload.saved_id = 'save id 123'; - payload.invalid_extra_data = 'invalid_extra_data'; - - const decoded = checkTypeDependents(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual(['invalid keys "invalid_extra_data"']); - expect(message.schema).toEqual({}); - }); - - test('it should validate a type of "timeline_id" if there is a "timeline_title" dependent', () => { - const payload = getRulesSchemaMock(); - payload.timeline_id = 'some timeline id'; - payload.timeline_title = 'some timeline title'; - - const decoded = checkTypeDependents(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - const expected = getRulesSchemaMock(); - expected.timeline_id = 'some timeline id'; - expected.timeline_title = 'some timeline title'; - - expect(getPaths(left(message.errors))).toEqual([]); - expect(message.schema).toEqual(expected); - }); - - test('it should NOT validate a type of "timeline_id" if there is "timeline_title" dependent when it has extra invalid data', () => { - const payload: RulesSchema & { invalid_extra_data?: string } = getRulesSchemaMock(); - payload.timeline_id = 'some timeline id'; - payload.timeline_title = 'some timeline title'; - payload.invalid_extra_data = 'invalid_extra_data'; - - const decoded = checkTypeDependents(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual(['invalid keys "invalid_extra_data"']); - expect(message.schema).toEqual({}); - }); - - test('it should NOT validate a type of "timeline_id" if there is NOT a "timeline_title" dependent', () => { - const payload = getRulesSchemaMock(); - payload.timeline_id = 'some timeline id'; - - const decoded = checkTypeDependents(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual([ - 'Invalid value "undefined" supplied to "timeline_title"', - ]); - expect(message.schema).toEqual({}); - }); - - test('it should NOT validate a type of "timeline_title" if there is NOT a "timeline_id" dependent', () => { - const payload = getRulesSchemaMock(); - payload.timeline_title = 'some timeline title'; - - const decoded = checkTypeDependents(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual(['invalid keys "timeline_title"']); - expect(message.schema).toEqual({}); - }); - - test('it should NOT validate a type of "saved_query" with a "saved_id" dependent and a "timeline_title" but there is NOT a "timeline_id"', () => { - const payload = getRulesSchemaMock(); - payload.saved_id = 'some saved id'; - payload.type = 'saved_query'; - payload.timeline_title = 'some timeline title'; - - const decoded = checkTypeDependents(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual(['invalid keys "timeline_title"']); - expect(message.schema).toEqual({}); - }); - - test('it should NOT validate a type of "saved_query" with a "saved_id" dependent and a "timeline_id" but there is NOT a "timeline_title"', () => { - const payload = getRulesSchemaMock(); - payload.saved_id = 'some saved id'; - payload.type = 'saved_query'; - payload.timeline_id = 'some timeline id'; - - const decoded = checkTypeDependents(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual([ - 'Invalid value "undefined" supplied to "timeline_title"', - ]); - expect(message.schema).toEqual({}); - }); - }); - - describe('getDependents', () => { - test('it should validate a type of "query" without anything extra', () => { - const payload = getRulesSchemaMock(); - - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - const expected = getRulesSchemaMock(); - - expect(getPaths(left(message.errors))).toEqual([]); - expect(message.schema).toEqual(expected); - }); - - test('it should validate a namespace as string', () => { - const payload = { - ...getRulesSchemaMock(), - namespace: 'a namespace', - }; - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - expect(getPaths(left(message.errors))).toEqual([]); - expect(message.schema).toEqual(payload); - }); - - test('it should NOT validate invalid_data for the type', () => { - const payload: Omit & { type: string } = getRulesSchemaMock(); - payload.type = 'invalid_data'; - - const dependents = getDependents(payload as unknown as TypeAndTimelineOnly); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual([ - 'Invalid value "invalid_data" supplied to "type"', - ]); - expect(message.schema).toEqual({}); - }); - - test('it should NOT validate a type of "query" with a saved_id together', () => { - const payload = getRulesSchemaMock(); - payload.type = 'query'; - payload.saved_id = 'save id 123'; - - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual(['invalid keys "saved_id"']); - expect(message.schema).toEqual({}); - }); - - test('it should validate a type of "saved_query" with a "saved_id" dependent', () => { - const payload = getRulesSchemaMock(); - payload.type = 'saved_query'; - payload.saved_id = 'save id 123'; - - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - const expected = getRulesSchemaMock(); - - expected.type = 'saved_query'; - expected.saved_id = 'save id 123'; - - expect(getPaths(left(message.errors))).toEqual([]); - expect(message.schema).toEqual(expected); - }); - - test('it should NOT validate a type of "saved_query" without a "saved_id" dependent', () => { - const payload = getRulesSchemaMock(); - payload.type = 'saved_query'; - delete payload.saved_id; - - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual([ - 'Invalid value "undefined" supplied to "saved_id"', - ]); - expect(message.schema).toEqual({}); - }); - - test('it should NOT validate a type of "saved_query" when it has extra data', () => { - const payload: RulesSchema & { invalid_extra_data?: string } = getRulesSchemaMock(); - payload.type = 'saved_query'; - payload.saved_id = 'save id 123'; - payload.invalid_extra_data = 'invalid_extra_data'; - - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual(['invalid keys "invalid_extra_data"']); - expect(message.schema).toEqual({}); - }); - - test('it should validate a type of "timeline_id" if there is a "timeline_title" dependent', () => { - const payload = getRulesSchemaMock(); - payload.timeline_id = 'some timeline id'; - payload.timeline_title = 'some timeline title'; - - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - const expected = getRulesSchemaMock(); - expected.timeline_id = 'some timeline id'; - expected.timeline_title = 'some timeline title'; - - expect(getPaths(left(message.errors))).toEqual([]); - expect(message.schema).toEqual(expected); - }); - - test('it should NOT validate a type of "timeline_id" if there is "timeline_title" dependent when it has extra invalid data', () => { - const payload: RulesSchema & { invalid_extra_data?: string } = getRulesSchemaMock(); - payload.timeline_id = 'some timeline id'; - payload.timeline_title = 'some timeline title'; - payload.invalid_extra_data = 'invalid_extra_data'; - - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual(['invalid keys "invalid_extra_data"']); - expect(message.schema).toEqual({}); - }); - - test('it should NOT validate a type of "timeline_id" if there is NOT a "timeline_title" dependent', () => { - const payload = getRulesSchemaMock(); - payload.timeline_id = 'some timeline id'; - - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual([ - 'Invalid value "undefined" supplied to "timeline_title"', - ]); - expect(message.schema).toEqual({}); - }); - - test('it should NOT validate a type of "timeline_title" if there is NOT a "timeline_id" dependent', () => { - const payload = getRulesSchemaMock(); - payload.timeline_title = 'some timeline title'; - - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual(['invalid keys "timeline_title"']); - expect(message.schema).toEqual({}); - }); - - test('it should NOT validate a type of "saved_query" with a "saved_id" dependent and a "timeline_title" but there is NOT a "timeline_id"', () => { - const payload = getRulesSchemaMock(); - payload.saved_id = 'some saved id'; - payload.type = 'saved_query'; - payload.timeline_title = 'some timeline title'; - - const decoded = checkTypeDependents(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual(['invalid keys "timeline_title"']); - expect(message.schema).toEqual({}); - }); - - test('it should NOT validate a type of "saved_query" with a "saved_id" dependent and a "timeline_id" but there is NOT a "timeline_title"', () => { - const payload = getRulesSchemaMock(); - payload.saved_id = 'some saved id'; - payload.type = 'saved_query'; - payload.timeline_id = 'some timeline id'; - - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual([ - 'Invalid value "undefined" supplied to "timeline_title"', - ]); - expect(message.schema).toEqual({}); - }); - - test('it validates an ML rule response', () => { - const payload = getRulesMlSchemaMock(); - - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - const expected = getRulesMlSchemaMock(); - - expect(getPaths(left(message.errors))).toEqual([]); - expect(message.schema).toEqual(expected); - }); - - test('it rejects a response with both ML and query properties', () => { - const payload = { - ...getRulesSchemaMock(), - ...getRulesMlSchemaMock(), - }; - - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual(['invalid keys "query,language"']); - expect(message.schema).toEqual({}); - }); - - test('it validates a threat_match response', () => { - const payload = getThreatMatchingSchemaMock(); - - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - const expected = getThreatMatchingSchemaMock(); - - expect(getPaths(left(message.errors))).toEqual([]); - expect(message.schema).toEqual(expected); - }); - - test('it rejects a response with threat_match properties but type of "query"', () => { - const payload: RulesSchema = { - ...getThreatMatchingSchemaMock(), - type: 'query', - }; - - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual([ - 'invalid keys "threat_index,["index-123"],threat_mapping,[{"entries":[{"field":"host.name","type":"mapping","value":"host.name"}]}],threat_query,threat_filters,[{"bool":{"must":[{"query_string":{"query":"host.name: linux","analyze_wildcard":true,"time_zone":"Zulu"}}],"filter":[],"should":[],"must_not":[]}}]"', - ]); - expect(message.schema).toEqual({}); - }); - - test('it validates an eql rule response', () => { - const payload = getRulesEqlSchemaMock(); - - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - const expected = getRulesEqlSchemaMock(); - - expect(getPaths(left(message.errors))).toEqual([]); - expect(message.schema).toEqual(expected); - }); - }); - - describe('addSavedId', () => { - test('should return empty array if not given a type of "saved_query"', () => { - const emptyArray = addSavedId({ type: 'query' }); - const expected: t.Mixed[] = []; - expect(emptyArray).toEqual(expected); - }); - - test('should array of size 2 given a "saved_query"', () => { - const array = addSavedId({ type: 'saved_query' }); - expect(array.length).toEqual(2); - }); - }); - - describe('addTimelineTitle', () => { - test('should return empty array if not given a timeline_id', () => { - const emptyArray = addTimelineTitle({ type: 'query' }); - const expected: t.Mixed[] = []; - expect(emptyArray).toEqual(expected); - }); - - test('should array of size 2 given a "timeline_id" that is not null', () => { - const array = addTimelineTitle({ type: 'query', timeline_id: 'some id' }); - expect(array.length).toEqual(2); - }); - }); - - describe('addQueryFields', () => { - test('should return empty array if type is not "query"', () => { - const fields = addQueryFields({ type: 'machine_learning' }); - const expected: t.Mixed[] = []; - expect(fields).toEqual(expected); - }); - - test('should return two fields for a rule of type "query"', () => { - const fields = addQueryFields({ type: 'query' }); - expect(fields.length).toEqual(3); - }); - - test('should return two fields for a rule of type "threshold"', () => { - const fields = addQueryFields({ type: 'threshold' }); - expect(fields.length).toEqual(3); - }); - - test('should return two fields for a rule of type "saved_query"', () => { - const fields = addQueryFields({ type: 'saved_query' }); - expect(fields.length).toEqual(3); - }); - - test('should return two fields for a rule of type "threat_match"', () => { - const fields = addQueryFields({ type: 'threat_match' }); - expect(fields.length).toEqual(3); - }); - }); - - describe('addMlFields', () => { - test('should return empty array if type is not "machine_learning"', () => { - const fields = addMlFields({ type: 'query' }); - const expected: t.Mixed[] = []; - expect(fields).toEqual(expected); - }); - - test('should return two fields for a rule of type "machine_learning"', () => { - const fields = addMlFields({ type: 'machine_learning' }); - expect(fields.length).toEqual(2); - }); - }); - describe('exceptions_list', () => { test('it should validate an empty array for "exceptions_list"', () => { const payload = getRulesSchemaMock(); payload.exceptions_list = []; - const decoded = rulesSchema.decode(payload); + const decoded = fullResponseSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); const expected = getRulesSchemaMock(); @@ -737,11 +153,11 @@ describe('rules_schema', () => { }); test('it should NOT validate when "exceptions_list" is not expected type', () => { - const payload: Omit & { + const payload: Omit & { exceptions_list?: string; } = { ...getRulesSchemaMock(), exceptions_list: 'invalid_data' }; - const decoded = rulesSchema.decode(payload); + const decoded = fullResponseSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); @@ -750,53 +166,13 @@ describe('rules_schema', () => { ]); expect(message.schema).toEqual({}); }); - - test('it should default to empty array if "exceptions_list" is undefined ', () => { - const payload: Omit & { - exceptions_list?: ListArray; - } = getRulesSchemaMock(); - payload.exceptions_list = undefined; - - const decoded = rulesSchema.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual([]); - expect(message.schema).toEqual({ ...payload, exceptions_list: [] }); - }); - }); - - describe('addThreatMatchFields', () => { - test('should return empty array if type is not "threat_match"', () => { - const fields = addThreatMatchFields({ type: 'query' }); - const expected: t.Mixed[] = []; - expect(fields).toEqual(expected); - }); - - test('should return nine (9) fields for a rule of type "threat_match"', () => { - const fields = addThreatMatchFields({ type: 'threat_match' }); - expect(fields.length).toEqual(10); - }); - }); - - describe('addEqlFields', () => { - test('should return empty array if type is not "eql"', () => { - const fields = addEqlFields({ type: 'query' }); - const expected: t.Mixed[] = []; - expect(fields).toEqual(expected); - }); - - test('should return 3 fields for a rule of type "eql"', () => { - const fields = addEqlFields({ type: 'eql' }); - expect(fields.length).toEqual(6); - }); }); describe('data_view_id', () => { test('it should validate a type of "query" with "data_view_id" defined', () => { const payload = { ...getRulesSchemaMock(), data_view_id: 'logs-*' }; - const decoded = rulesSchema.decode(payload); + const decoded = fullResponseSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); const expected = { ...getRulesSchemaMock(), data_view_id: 'logs-*' }; @@ -806,18 +182,16 @@ describe('rules_schema', () => { }); test('it should validate a type of "saved_query" with "data_view_id" defined', () => { - const payload = getRulesSchemaMock(); - payload.type = 'saved_query'; - payload.saved_id = 'save id 123'; + const payload: FullResponseSchema & { saved_id?: string; data_view_id?: string } = + getSavedQuerySchemaMock(); payload.data_view_id = 'logs-*'; - const decoded = rulesSchema.decode(payload); + const decoded = fullResponseSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); - const expected = getRulesSchemaMock(); + const expected: FullResponseSchema & { saved_id?: string; data_view_id?: string } = + getSavedQuerySchemaMock(); - expected.type = 'saved_query'; - expected.saved_id = 'save id 123'; expected.data_view_id = 'logs-*'; expect(getPaths(left(message.errors))).toEqual([]); @@ -827,8 +201,7 @@ describe('rules_schema', () => { test('it should validate a type of "eql" with "data_view_id" defined', () => { const payload = { ...getRulesEqlSchemaMock(), data_view_id: 'logs-*' }; - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); + const decoded = fullResponseSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); const expected = { ...getRulesEqlSchemaMock(), data_view_id: 'logs-*' }; @@ -840,8 +213,7 @@ describe('rules_schema', () => { test('it should validate a type of "threat_match" with "data_view_id" defined', () => { const payload = { ...getThreatMatchingSchemaMock(), data_view_id: 'logs-*' }; - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); + const decoded = fullResponseSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); const expected = { ...getThreatMatchingSchemaMock(), data_view_id: 'logs-*' }; @@ -853,8 +225,7 @@ describe('rules_schema', () => { test('it should NOT validate a type of "machine_learning" with "data_view_id" defined', () => { const payload = { ...getRulesMlSchemaMock(), data_view_id: 'logs-*' }; - const dependents = getDependents(payload); - const decoded = dependents.decode(payload); + const decoded = fullResponseSchema.decode(payload); const checked = exactCheck(payload, decoded); const message = pipe(checked, foldLeftRight); diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.ts deleted file mode 100644 index 794ef71bf05362..00000000000000 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.ts +++ /dev/null @@ -1,366 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import * as t from 'io-ts'; -import { isObject } from 'lodash/fp'; -import type { Either } from 'fp-ts/lib/Either'; -import { left, fold } from 'fp-ts/lib/Either'; -import { pipe } from 'fp-ts/lib/pipeable'; - -import { - actions, - from, - machine_learning_job_id, - risk_score, - DefaultRiskScoreMappingArray, - DefaultSeverityMappingArray, - threat_index, - concurrent_searches, - items_per_search, - threat_query, - threat_filters, - threat_mapping, - threat_language, - threat_indicator_path, - threats, - type, - language, - severity, - throttle, - max_signals, -} from '@kbn/securitysolution-io-ts-alerting-types'; -import { DefaultStringArray, version } from '@kbn/securitysolution-io-ts-types'; -import { DefaultListArray } from '@kbn/securitysolution-io-ts-list-types'; - -import { isMlRule } from '../../../machine_learning/helpers'; -import { isThresholdRule } from '../../utils'; -import { RuleExecutionSummary } from '../../rule_monitoring'; -import { - anomaly_threshold, - data_view_id, - description, - enabled, - timestamp_field, - event_category_override, - tiebreaker_field, - false_positives, - id, - immutable, - index, - interval, - rule_id, - name, - output_index, - query, - references, - updated_by, - tags, - to, - created_at, - created_by, - updated_at, - saved_id, - timeline_id, - timeline_title, - threshold, - filters, - meta, - outcome, - alias_target_id, - alias_purpose, - note, - building_block_type, - license, - rule_name_override, - timestamp_override, - namespace, - RelatedIntegrationArray, - RequiredFieldArray, - SetupGuide, -} from '../common'; - -import type { TypeAndTimelineOnly } from './type_timeline_only_schema'; -import { typeAndTimelineOnlySchema } from './type_timeline_only_schema'; - -/** - * This is the required fields for the rules schema response. Put all required properties on - * this base for schemas such as create_rules, update_rules, for the correct validation of the - * output schema. - */ -export const requiredRulesSchema = t.type({ - author: DefaultStringArray, - description, - enabled, - false_positives, - from, - id, - immutable, - interval, - rule_id, - output_index, - max_signals, - risk_score, - risk_score_mapping: DefaultRiskScoreMappingArray, - name, - references, - severity, - severity_mapping: DefaultSeverityMappingArray, - updated_by, - tags, - to, - type, - threat: threats, - created_at, - updated_at, - created_by, - version, - exceptions_list: DefaultListArray, - related_integrations: RelatedIntegrationArray, - required_fields: RequiredFieldArray, - setup: SetupGuide, -}); - -export type RequiredRulesSchema = t.TypeOf; - -/** - * If you have type dependents or exclusive or situations add them here AND update the - * check_type_dependents file for whichever REST flow it is going through. - */ -export const dependentRulesSchema = t.partial({ - // All but ML - data_view_id, - - // query fields - language, - query, - - // eql only fields - timestamp_field, - event_category_override, - tiebreaker_field, - - // when type = saved_query, saved_id is required - saved_id, - - // These two are required together or not at all. - timeline_id, - timeline_title, - - // ML fields - anomaly_threshold, - machine_learning_job_id, - - // Threshold fields - threshold, - - // Threat Match fields - threat_filters, - threat_index, - threat_query, - concurrent_searches, - items_per_search, - threat_mapping, - threat_language, - threat_indicator_path, -}); - -/** - * This is the partial or optional fields for the rules schema. Put all optional - * properties on this. DO NOT PUT type dependents such as xor relationships here. - * Instead use dependentRulesSchema and check_type_dependents for how to do those. - */ -export const partialRulesSchema = t.partial({ - actions, - building_block_type, - license, - throttle, - rule_name_override, - timestamp_override, - filters, - meta, - outcome, - alias_target_id, - alias_purpose, - index, - namespace, - note, - uuid: id, // Move to 'required' post-migration - execution_summary: RuleExecutionSummary, -}); - -/** - * This is the rules schema WITHOUT typeDependents. You don't normally want to use this for a decode - */ -export const rulesWithoutTypeDependentsSchema = t.intersection([ - t.exact(dependentRulesSchema), - t.exact(partialRulesSchema), - t.exact(requiredRulesSchema), -]); -export type RulesWithoutTypeDependentsSchema = t.TypeOf; - -/** - * This is the rulesSchema you want to use for checking type dependents and all the properties - * through: rulesSchema.decode(someJSONObject) - */ -export const rulesSchema = new t.Type< - RulesWithoutTypeDependentsSchema, - RulesWithoutTypeDependentsSchema, - unknown ->( - 'RulesSchema', - (input: unknown): input is RulesWithoutTypeDependentsSchema => isObject(input), - (input): Either => { - return checkTypeDependents(input); - }, - t.identity -); - -/** - * This is the correct type you want to use for Rules that are outputted from the - * REST interface. This has all base and all optional properties merged together. - */ -export type RulesSchema = t.TypeOf; - -export const addSavedId = (typeAndTimelineOnly: TypeAndTimelineOnly): t.Mixed[] => { - if (typeAndTimelineOnly.type === 'saved_query') { - return [ - t.exact(t.type({ saved_id: dependentRulesSchema.props.saved_id })), - t.exact(t.partial({ data_view_id: dependentRulesSchema.props.data_view_id })), - ]; - } else { - return []; - } -}; - -export const addTimelineTitle = (typeAndTimelineOnly: TypeAndTimelineOnly): t.Mixed[] => { - if (typeAndTimelineOnly.timeline_id != null) { - return [ - t.exact(t.type({ timeline_title: dependentRulesSchema.props.timeline_title })), - t.exact(t.type({ timeline_id: dependentRulesSchema.props.timeline_id })), - ]; - } else { - return []; - } -}; - -export const addQueryFields = (typeAndTimelineOnly: TypeAndTimelineOnly): t.Mixed[] => { - if (['query', 'saved_query', 'threshold', 'threat_match'].includes(typeAndTimelineOnly.type)) { - return [ - t.exact(t.type({ query: dependentRulesSchema.props.query })), - t.exact(t.type({ language: dependentRulesSchema.props.language })), - t.exact(t.partial({ data_view_id: dependentRulesSchema.props.data_view_id })), - ]; - } else { - return []; - } -}; - -export const addMlFields = (typeAndTimelineOnly: TypeAndTimelineOnly): t.Mixed[] => { - if (isMlRule(typeAndTimelineOnly.type)) { - return [ - t.exact(t.type({ anomaly_threshold: dependentRulesSchema.props.anomaly_threshold })), - t.exact( - t.type({ machine_learning_job_id: dependentRulesSchema.props.machine_learning_job_id }) - ), - ]; - } else { - return []; - } -}; - -export const addThresholdFields = (typeAndTimelineOnly: TypeAndTimelineOnly): t.Mixed[] => { - if (isThresholdRule(typeAndTimelineOnly.type)) { - return [ - t.exact(t.type({ threshold: dependentRulesSchema.props.threshold })), - t.exact(t.partial({ saved_id: dependentRulesSchema.props.saved_id })), - t.exact(t.partial({ data_view_id: dependentRulesSchema.props.data_view_id })), - ]; - } else { - return []; - } -}; - -export const addEqlFields = (typeAndTimelineOnly: TypeAndTimelineOnly): t.Mixed[] => { - if (typeAndTimelineOnly.type === 'eql') { - return [ - t.exact(t.partial({ timestamp_field: dependentRulesSchema.props.timestamp_field })), - t.exact( - t.partial({ event_category_override: dependentRulesSchema.props.event_category_override }) - ), - t.exact(t.partial({ tiebreaker_field: dependentRulesSchema.props.tiebreaker_field })), - t.exact(t.type({ query: dependentRulesSchema.props.query })), - t.exact(t.type({ language: dependentRulesSchema.props.language })), - t.exact(t.partial({ data_view_id: dependentRulesSchema.props.data_view_id })), - ]; - } else { - return []; - } -}; - -export const addThreatMatchFields = (typeAndTimelineOnly: TypeAndTimelineOnly): t.Mixed[] => { - if (typeAndTimelineOnly.type === 'threat_match') { - return [ - t.exact(t.partial({ data_view_id: dependentRulesSchema.props.data_view_id })), - t.exact(t.type({ threat_query: dependentRulesSchema.props.threat_query })), - t.exact(t.type({ threat_index: dependentRulesSchema.props.threat_index })), - t.exact(t.type({ threat_mapping: dependentRulesSchema.props.threat_mapping })), - t.exact(t.partial({ threat_language: dependentRulesSchema.props.threat_language })), - t.exact(t.partial({ threat_filters: dependentRulesSchema.props.threat_filters })), - t.exact( - t.partial({ threat_indicator_path: dependentRulesSchema.props.threat_indicator_path }) - ), - t.exact(t.partial({ saved_id: dependentRulesSchema.props.saved_id })), - t.exact(t.partial({ concurrent_searches: dependentRulesSchema.props.concurrent_searches })), - t.exact( - t.partial({ - items_per_search: dependentRulesSchema.props.items_per_search, - }) - ), - ]; - } else { - return []; - } -}; - -export const getDependents = (typeAndTimelineOnly: TypeAndTimelineOnly): t.Mixed => { - const dependents: t.Mixed[] = [ - t.exact(requiredRulesSchema), - t.exact(partialRulesSchema), - ...addSavedId(typeAndTimelineOnly), - ...addTimelineTitle(typeAndTimelineOnly), - ...addQueryFields(typeAndTimelineOnly), - ...addMlFields(typeAndTimelineOnly), - ...addThresholdFields(typeAndTimelineOnly), - ...addEqlFields(typeAndTimelineOnly), - ...addThreatMatchFields(typeAndTimelineOnly), - ]; - - if (dependents.length > 1) { - // This unsafe cast is because t.intersection does not use an array but rather a set of - // tuples and really does not look like they expected us to ever dynamically build up - // intersections, but here we are doing that. Looking at their code, although they limit - // the array elements to 5, it looks like you have N number of intersections - const unsafeCast: [t.Mixed, t.Mixed] = dependents as [t.Mixed, t.Mixed]; - return t.intersection(unsafeCast); - } else { - // We are not allowed to call t.intersection with a single value so we return without - // it here normally. - return dependents[0]; - } -}; - -export const checkTypeDependents = (input: unknown): Either => { - const typeOnlyDecoded = typeAndTimelineOnlySchema.decode(input); - const onLeft = (errors: t.Errors): Either => left(errors); - const onRight = ( - typeAndTimelineOnly: TypeAndTimelineOnly - ): Either => { - const intersections = getDependents(typeAndTimelineOnly); - return intersections.decode(input); - }; - return pipe(typeOnlyDecoded, fold(onLeft, onRight)); -}; diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/type_timeline_only_schema.test.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/type_timeline_only_schema.test.ts deleted file mode 100644 index 8026d99713214e..00000000000000 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/type_timeline_only_schema.test.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { left } from 'fp-ts/lib/Either'; -import { pipe } from 'fp-ts/lib/pipeable'; - -import type { TypeAndTimelineOnly } from './type_timeline_only_schema'; -import { typeAndTimelineOnlySchema } from './type_timeline_only_schema'; -import { exactCheck, foldLeftRight, getPaths } from '@kbn/securitysolution-io-ts-utils'; - -describe('prepackaged_rule_schema', () => { - test('it should validate a a type and timeline_id together', () => { - const payload: TypeAndTimelineOnly = { - type: 'query', - timeline_id: 'some id', - }; - const decoded = typeAndTimelineOnlySchema.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual([]); - expect(message.schema).toEqual(payload); - }); - - test('it should validate just a type without a timeline_id of type query', () => { - const payload: TypeAndTimelineOnly = { - type: 'query', - }; - const decoded = typeAndTimelineOnlySchema.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual([]); - expect(message.schema).toEqual(payload); - }); - - test('it should validate just a type of saved_query', () => { - const payload: TypeAndTimelineOnly = { - type: 'saved_query', - }; - const decoded = typeAndTimelineOnlySchema.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual([]); - expect(message.schema).toEqual(payload); - }); - - test('it should NOT validate an invalid type', () => { - const payload: Omit & { type: string } = { - type: 'some other type', - }; - const decoded = typeAndTimelineOnlySchema.decode(payload); - const checked = exactCheck(payload, decoded); - const message = pipe(checked, foldLeftRight); - - expect(getPaths(left(message.errors))).toEqual([ - 'Invalid value "some other type" supplied to "type"', - ]); - expect(message.schema).toEqual({}); - }); -}); diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/type_timeline_only_schema.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/type_timeline_only_schema.ts deleted file mode 100644 index b164ab9b44e4fd..00000000000000 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/type_timeline_only_schema.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import * as t from 'io-ts'; - -import { type } from '@kbn/securitysolution-io-ts-alerting-types'; -import { timeline_id } from '../common/schemas'; - -/** - * Special schema type that is only the type and the timeline_id. - * This is used for dependent type checking only. - */ -export const typeAndTimelineOnlySchema = t.intersection([ - t.exact(t.type({ type })), - t.exact(t.partial({ timeline_id })), -]); -export type TypeAndTimelineOnly = t.TypeOf; diff --git a/x-pack/plugins/security_solution/cypress/README.md b/x-pack/plugins/security_solution/cypress/README.md index 44f1fa63d732b1..5124e8d5c06858 100644 --- a/x-pack/plugins/security_solution/cypress/README.md +++ b/x-pack/plugins/security_solution/cypress/README.md @@ -83,7 +83,7 @@ This configuration runs cypress tests against an arbitrary host. #### integration-test (CI) -This configuration is driven by [elastic/integration-test](https://github.com/elastic/integration-test) which, as part of a bigger set of tests, provisions one VM with two instances configured in CCS mode and runs the [CCS Cypress test specs](./ccs_integration). +This configuration is driven by [elastic/integration-test](https://github.com/elastic/integration-test) which, as part of a bigger set of tests, provisions one VM with two instances configured in CCS mode and runs the [CCS Cypress test specs](./ccs_e2e). The two clusters are named `admin` and `data` and are reachable as follows: @@ -280,13 +280,13 @@ If you are debugging a flaky test, a good tip is to insert a `cy.wait( { deleteRuleFromDetailsPage(); + // @ts-expect-error update types cy.waitFor('@deleteRule').then(() => { cy.get(RULES_TABLE).should('exist'); cy.get(RULES_TABLE) diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/custom_query_rule_data_view.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/custom_query_rule_data_view.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/detection_rules/custom_query_rule_data_view.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/detection_rules/custom_query_rule_data_view.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/event_correlation_rule.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/event_correlation_rule.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/detection_rules/event_correlation_rule.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/detection_rules/event_correlation_rule.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/export_rule.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/export_rule.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/detection_rules/export_rule.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/detection_rules/export_rule.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/import_rules.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/import_rules.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/detection_rules/import_rules.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/detection_rules/import_rules.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/indicator_match_rule.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/indicator_match_rule.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/detection_rules/indicator_match_rule.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/detection_rules/indicator_match_rule.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/links.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/links.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/detection_rules/links.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/detection_rules/links.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/machine_learning_rule.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/machine_learning_rule.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/detection_rules/machine_learning_rule.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/detection_rules/machine_learning_rule.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/new_terms_rule.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/new_terms_rule.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/detection_rules/new_terms_rule.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/detection_rules/new_terms_rule.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/override.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/override.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/detection_rules/override.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/detection_rules/override.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/prebuilt_rules.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/prebuilt_rules.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/detection_rules/prebuilt_rules.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/detection_rules/prebuilt_rules.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/related_integrations.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/related_integrations.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/detection_rules/related_integrations.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/detection_rules/related_integrations.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/rules_selection.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/rules_selection.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/detection_rules/rules_selection.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/detection_rules/rules_selection.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/rules_table_auto_refresh.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/rules_table_auto_refresh.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/detection_rules/rules_table_auto_refresh.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/detection_rules/rules_table_auto_refresh.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/sorting.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/sorting.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/detection_rules/sorting.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/detection_rules/sorting.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/threshold_rule.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/threshold_rule.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/detection_rules/threshold_rule.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/detection_rules/threshold_rule.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/exceptions/alerts_table_flow/add_exception.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/exceptions/alerts_table_flow/add_exception.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/exceptions/alerts_table_flow/add_exception.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/exceptions/alerts_table_flow/add_exception.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/exceptions/exceptions_flyout.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/exceptions/exceptions_flyout.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/exceptions/exceptions_flyout.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/exceptions/exceptions_flyout.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/exceptions/exceptions_management_flow/all_exception_lists_read_only.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/exceptions/exceptions_management_flow/all_exception_lists_read_only.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/exceptions/exceptions_management_flow/all_exception_lists_read_only.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/exceptions/exceptions_management_flow/all_exception_lists_read_only.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/exceptions/exceptions_table.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/exceptions/exceptions_table.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/exceptions/exceptions_table.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/exceptions/exceptions_table.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/exceptions/rule_details_flow/add_exception.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/exceptions/rule_details_flow/add_exception.spec.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/exceptions/rule_details_flow/add_exception.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/exceptions/rule_details_flow/add_exception.spec.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/exceptions/rule_details_flow/add_exception_data_view.spect.ts b/x-pack/plugins/security_solution/cypress/e2e/exceptions/rule_details_flow/add_exception_data_view.spect.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/exceptions/rule_details_flow/add_exception_data_view.spect.ts rename to x-pack/plugins/security_solution/cypress/e2e/exceptions/rule_details_flow/add_exception_data_view.spect.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/exceptions/rule_details_flow/edit_exception.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/exceptions/rule_details_flow/edit_exception.spec.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/exceptions/rule_details_flow/edit_exception.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/exceptions/rule_details_flow/edit_exception.spec.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/exceptions/rule_details_flow/edit_exception_data_view.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/exceptions/rule_details_flow/edit_exception_data_view.spec.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/exceptions/rule_details_flow/edit_exception_data_view.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/exceptions/rule_details_flow/edit_exception_data_view.spec.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/exceptions/rule_details_flow/read_only_view.spect.ts b/x-pack/plugins/security_solution/cypress/e2e/exceptions/rule_details_flow/read_only_view.spect.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/exceptions/rule_details_flow/read_only_view.spect.ts rename to x-pack/plugins/security_solution/cypress/e2e/exceptions/rule_details_flow/read_only_view.spect.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/filters/pinned_filters.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/filters/pinned_filters.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/filters/pinned_filters.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/filters/pinned_filters.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/guided_onboarding/tour.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/guided_onboarding/tour.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/guided_onboarding/tour.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/guided_onboarding/tour.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/header/navigation.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/header/navigation.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/header/navigation.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/header/navigation.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/header/search_bar.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/header/search_bar.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/header/search_bar.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/header/search_bar.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/host_details/risk_tab.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/host_details/risk_tab.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/host_details/risk_tab.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/host_details/risk_tab.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/hosts/events_viewer.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/hosts/events_viewer.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/hosts/events_viewer.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/hosts/events_viewer.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/hosts/host_risk_tab.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/hosts/host_risk_tab.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/hosts/host_risk_tab.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/hosts/host_risk_tab.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/hosts/hosts_risk_column.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/hosts/hosts_risk_column.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/hosts/hosts_risk_column.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/hosts/hosts_risk_column.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/hosts/inspect.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/hosts/inspect.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/hosts/inspect.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/hosts/inspect.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/ml/ml_conditional_links.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/ml/ml_conditional_links.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/ml/ml_conditional_links.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/ml/ml_conditional_links.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/network/hover_actions.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/network/hover_actions.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/network/hover_actions.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/network/hover_actions.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/network/inspect.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/network/inspect.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/network/inspect.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/network/inspect.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/network/overflow_items.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/network/overflow_items.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/network/overflow_items.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/network/overflow_items.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/overview/cti_link_panel.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/overview/cti_link_panel.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/overview/cti_link_panel.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/overview/cti_link_panel.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/overview/overview.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/overview/overview.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/overview/overview.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/overview/overview.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/pagination/pagination.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/pagination/pagination.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/pagination/pagination.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/pagination/pagination.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timeline_templates/creation.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timeline_templates/creation.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timeline_templates/creation.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timeline_templates/creation.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timeline_templates/export.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timeline_templates/export.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timeline_templates/export.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timeline_templates/export.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timelines/creation.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timelines/creation.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timelines/creation.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timelines/creation.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timelines/data_providers.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timelines/data_providers.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timelines/data_providers.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timelines/data_providers.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timelines/export.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timelines/export.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timelines/export.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timelines/export.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timelines/fields_browser.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timelines/fields_browser.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timelines/fields_browser.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timelines/fields_browser.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timelines/flyout_button.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timelines/flyout_button.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timelines/flyout_button.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timelines/flyout_button.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timelines/full_screen.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timelines/full_screen.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timelines/full_screen.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timelines/full_screen.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timelines/inspect.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timelines/inspect.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timelines/inspect.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timelines/inspect.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timelines/local_storage.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timelines/local_storage.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timelines/local_storage.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timelines/local_storage.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timelines/notes_tab.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timelines/notes_tab.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timelines/notes_tab.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timelines/notes_tab.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timelines/open_timeline.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timelines/open_timeline.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timelines/open_timeline.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timelines/open_timeline.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timelines/overview.tsx b/x-pack/plugins/security_solution/cypress/e2e/timelines/overview.cy.tsx similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timelines/overview.tsx rename to x-pack/plugins/security_solution/cypress/e2e/timelines/overview.cy.tsx diff --git a/x-pack/plugins/security_solution/cypress/integration/timelines/pagination.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timelines/pagination.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timelines/pagination.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timelines/pagination.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timelines/query_tab.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timelines/query_tab.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timelines/query_tab.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timelines/query_tab.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timelines/row_renderers.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timelines/row_renderers.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timelines/row_renderers.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timelines/row_renderers.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timelines/search_or_filter.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timelines/search_or_filter.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timelines/search_or_filter.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timelines/search_or_filter.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/timelines/toggle_column.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/timelines/toggle_column.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/timelines/toggle_column.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/timelines/toggle_column.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/urls/compatibility.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/urls/compatibility.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/urls/compatibility.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/urls/compatibility.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/urls/not_found.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/urls/not_found.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/urls/not_found.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/urls/not_found.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/urls/state.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/urls/state.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/urls/state.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/urls/state.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/users/inspect.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/users/inspect.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/users/inspect.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/users/inspect.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/users/user_details.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/users/user_details.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/users/user_details.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/users/user_details.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/users/users_tabs.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/users/users_tabs.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/users/users_tabs.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/users/users_tabs.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/integration/value_lists/value_lists.spec.ts b/x-pack/plugins/security_solution/cypress/e2e/value_lists/value_lists.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/integration/value_lists/value_lists.spec.ts rename to x-pack/plugins/security_solution/cypress/e2e/value_lists/value_lists.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/objects/rule.ts b/x-pack/plugins/security_solution/cypress/objects/rule.ts index 0a5d5170473fb3..6b0051f12bc298 100644 --- a/x-pack/plugins/security_solution/cypress/objects/rule.ts +++ b/x-pack/plugins/security_solution/cypress/objects/rule.ts @@ -5,11 +5,11 @@ * 2.0. */ -import type { RulesSchema } from '../../common/detection_engine/schemas/response'; import { rawRules } from '../../server/lib/detection_engine/rules/prepackaged_rules'; import { getMockThreatData } from '../../public/detections/mitre/mitre_tactics_techniques'; import type { CompleteTimeline } from './timeline'; import { getTimeline, getIndicatorMatchTimelineTemplate } from './timeline'; +import type { FullResponseSchema } from '../../common/detection_engine/schemas/request'; export const totalNumberOfPrebuiltRules = rawRules.length; @@ -488,7 +488,9 @@ export const getEditedRule = (): CustomRule => ({ tags: [...getExistingRule().tags, 'edited'], }); -export const expectedExportedRule = (ruleResponse: Cypress.Response): string => { +export const expectedExportedRule = ( + ruleResponse: Cypress.Response +): string => { const { id, updated_at: updatedAt, @@ -498,14 +500,20 @@ export const expectedExportedRule = (ruleResponse: Cypress.Response name, risk_score: riskScore, severity, - query, tags, timeline_id: timelineId, timeline_title: timelineTitle, } = ruleResponse.body; + let query: string | undefined; + if (ruleResponse.body.type === 'query') { + query = ruleResponse.body.query; + } + // NOTE: Order of the properties in this object matters for the tests to work. - const rule: RulesSchema = { + // TODO: Follow up https://github.com/elastic/kibana/pull/137628 and add an explicit type to this object + // without using Partial + const rule: Partial = { id, updated_at: updatedAt, updated_by: updatedBy, diff --git a/x-pack/plugins/security_solution/cypress/screens/create_new_rule.ts b/x-pack/plugins/security_solution/cypress/screens/create_new_rule.ts index e80e8c210c7c99..4bf39a8bf1d797 100644 --- a/x-pack/plugins/security_solution/cypress/screens/create_new_rule.ts +++ b/x-pack/plugins/security_solution/cypress/screens/create_new_rule.ts @@ -170,7 +170,9 @@ export const RISK_OVERRIDE = export const RULES_CREATION_FORM = '[data-test-subj="stepDefineRule"]'; -export const RULES_CREATION_PREVIEW = '[data-test-subj="rule-preview"]'; +export const RULES_CREATION_PREVIEW_BUTTON = '[data-test-subj="preview-flyout"]'; + +export const RULES_CREATION_PREVIEW_REFRESH_BUTTON = '[data-test-subj="previewSubmitButton"]'; export const RULE_DESCRIPTION_INPUT = '[data-test-subj="detectionEngineStepAboutRuleDescription"] [data-test-subj="input"]'; diff --git a/x-pack/plugins/security_solution/cypress/support/index.js b/x-pack/plugins/security_solution/cypress/support/e2e.js similarity index 100% rename from x-pack/plugins/security_solution/cypress/support/index.js rename to x-pack/plugins/security_solution/cypress/support/e2e.js diff --git a/x-pack/plugins/security_solution/cypress/tasks/create_new_rule.ts b/x-pack/plugins/security_solution/cypress/tasks/create_new_rule.ts index a229693ed9f201..bd9c549eb0f40d 100644 --- a/x-pack/plugins/security_solution/cypress/tasks/create_new_rule.ts +++ b/x-pack/plugins/security_solution/cypress/tasks/create_new_rule.ts @@ -65,7 +65,8 @@ import { RULE_STATUS, RULE_TIMESTAMP_OVERRIDE, RULES_CREATION_FORM, - RULES_CREATION_PREVIEW, + RULES_CREATION_PREVIEW_BUTTON, + RULES_CREATION_PREVIEW_REFRESH_BUTTON, RUNS_EVERY_INTERVAL, RUNS_EVERY_TIME_TYPE, SCHEDULE_CONTINUE_BUTTON, @@ -336,15 +337,13 @@ export const fillDefineEqlRuleAndContinue = (rule: CustomRule) => { cy.get(RULES_CREATION_FORM).find(EQL_QUERY_INPUT).should('be.visible'); cy.get(RULES_CREATION_FORM).find(EQL_QUERY_INPUT).type(rule.customQuery); cy.get(RULES_CREATION_FORM).find(EQL_QUERY_VALIDATION_SPINNER).should('not.exist'); - cy.get(RULES_CREATION_PREVIEW) - .find(QUERY_PREVIEW_BUTTON) - .should('not.be.disabled') - .click({ force: true }); + cy.get(RULES_CREATION_PREVIEW_BUTTON).should('not.be.disabled').click({ force: true }); + cy.get(RULES_CREATION_PREVIEW_REFRESH_BUTTON).should('not.be.disabled').click({ force: true }); cy.get(PREVIEW_HISTOGRAM) .invoke('text') .then((text) => { if (text !== 'Rule Preview') { - cy.get(RULES_CREATION_PREVIEW).find(QUERY_PREVIEW_BUTTON).click({ force: true }); + cy.get(RULES_CREATION_PREVIEW_REFRESH_BUTTON).click({ force: true }); cy.get(PREVIEW_HISTOGRAM).should('contain.text', 'Rule Preview'); } }); diff --git a/x-pack/plugins/security_solution/cypress/upgrade_integration/detections/detection_rules/custom_query_rule.spec.ts b/x-pack/plugins/security_solution/cypress/upgrade_e2e/detections/detection_rules/custom_query_rule.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/upgrade_integration/detections/detection_rules/custom_query_rule.spec.ts rename to x-pack/plugins/security_solution/cypress/upgrade_e2e/detections/detection_rules/custom_query_rule.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/upgrade_integration/detections/detection_rules/threshold_rule.spec.ts b/x-pack/plugins/security_solution/cypress/upgrade_e2e/detections/detection_rules/threshold_rule.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/upgrade_integration/detections/detection_rules/threshold_rule.spec.ts rename to x-pack/plugins/security_solution/cypress/upgrade_e2e/detections/detection_rules/threshold_rule.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/upgrade_integration/threat_hunting/cases/import_case.spec.ts b/x-pack/plugins/security_solution/cypress/upgrade_e2e/threat_hunting/cases/import_case.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/upgrade_integration/threat_hunting/cases/import_case.spec.ts rename to x-pack/plugins/security_solution/cypress/upgrade_e2e/threat_hunting/cases/import_case.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/upgrade_integration/threat_hunting/timeline/import_timeline.spec.ts b/x-pack/plugins/security_solution/cypress/upgrade_e2e/threat_hunting/timeline/import_timeline.cy.ts similarity index 100% rename from x-pack/plugins/security_solution/cypress/upgrade_integration/threat_hunting/timeline/import_timeline.spec.ts rename to x-pack/plugins/security_solution/cypress/upgrade_e2e/threat_hunting/timeline/import_timeline.cy.ts diff --git a/x-pack/plugins/security_solution/package.json b/x-pack/plugins/security_solution/package.json index 92a934f2dd674d..987bcdbe271938 100644 --- a/x-pack/plugins/security_solution/package.json +++ b/x-pack/plugins/security_solution/package.json @@ -8,21 +8,20 @@ "extract-mitre-attacks": "node scripts/extract_tactics_techniques_mitre.js && node ../../../scripts/eslint ./public/detections/mitre/mitre_tactics_techniques.ts --fix", "build-beat-doc": "node scripts/beat_docs/build.js && node ../../../scripts/eslint ../timelines/server/utils/beat_schema/fields.ts --fix", "cypress": "../../../node_modules/.bin/cypress", - "cypress:open": "yarn cypress open --config-file ./cypress/cypress.json", - "cypress:open:ccs": "yarn cypress:open --config integrationFolder=./cypress/ccs_integration", + "cypress:open": "yarn cypress open --config-file ./cypress/cypress.config.ts", + "cypress:open:ccs": "yarn cypress:open --config specPattern=./cypress/ccs_e2e/**/*.cy.ts", "cypress:open-as-ci": "node ../../../scripts/functional_tests --config ../../test/security_solution_cypress/visual_config.ts", - "cypress:open:upgrade": "yarn cypress:open --config integrationFolder=./cypress/upgrade_integration", - "cypress:run": "yarn cypress:run:reporter --browser chrome --spec './cypress/integration/**/*.spec.ts'; status=$?; yarn junit:merge && exit $status", - "cypress:run:spec": "yarn cypress:run:reporter --browser chrome --spec ${SPEC_LIST:-'./cypress/integration/**/*.spec.ts'}; status=$?; yarn junit:merge && exit $status", - "cypress:run:cases": "yarn cypress:run:reporter --browser chrome --spec './cypress/integration/cases/*.spec.ts'; status=$?; yarn junit:merge && exit $status", - "cypress:run:firefox": "yarn cypress:run:reporter --browser firefox --spec './cypress/integration/**/*.spec.ts'; status=$?; yarn junit:merge && exit $status", - "cypress:run:reporter": "yarn cypress run --config-file ./cypress/cypress_ci.json --reporter ../../../node_modules/cypress-multi-reporters --reporter-options configFile=./cypress/reporter_config.json", - "cypress:run:respops": "yarn cypress:run:reporter --browser chrome --spec ./cypress/integration/detection_alerts/*.spec.ts,./cypress/integration/detection_rules/*.spec.ts,./cypress/integration/exceptions/*.spec.ts; status=$?; yarn junit:merge && exit $status", - "cypress:run:ccs": "yarn cypress:run:reporter --browser chrome --config integrationFolder=./cypress/ccs_integration; status=$?; yarn junit:merge && exit $status", + "cypress:open:upgrade": "yarn cypress:open --config specPattern=./cypress/upgrade_e2e/**/*.cy.ts", + "cypress:run": "yarn cypress:run:reporter --browser chrome --spec './cypress/e2e/**/*.cy.ts'; status=$?; yarn junit:merge && exit $status", + "cypress:run:spec": "yarn cypress:run:reporter --browser chrome --spec ${SPEC_LIST:-'./cypress/e2e/**/*.cy.ts'}; status=$?; yarn junit:merge && exit $status", + "cypress:run:cases": "yarn cypress:run:reporter --browser chrome --spec './cypress/e2e/cases/*.cy.ts'; status=$?; yarn junit:merge && exit $status", + "cypress:run:firefox": "yarn cypress:run:reporter --browser firefox --spec './cypress/e2e/**/*.cy.ts'; status=$?; yarn junit:merge && exit $status", + "cypress:run:reporter": "yarn cypress run --config-file ./cypress/cypress_ci.config.ts --reporter ../../../node_modules/cypress-multi-reporters --reporter-options configFile=./cypress/reporter_config.json", + "cypress:run:respops": "yarn cypress:run:reporter --browser chrome --spec ./cypress/e2e/detection_alerts/*.cy.ts,./cypress/e2e/detection_rules/*.cy.ts,./cypress/e2e/exceptions/*.cy.ts; status=$?; yarn junit:merge && exit $status", + "cypress:run:ccs": "yarn cypress:run:reporter --browser chrome --config specPattern=./cypress/ccs_e2e/**/*.cy.ts; status=$?; yarn junit:merge && exit $status", "cypress:run-as-ci": "node --max-old-space-size=2048 ../../../scripts/functional_tests --config ../../test/security_solution_cypress/cli_config_parallel.ts", "cypress:run-as-ci:firefox": "node --max-old-space-size=2048 ../../../scripts/functional_tests --config ../../test/security_solution_cypress/config.firefox.ts", - "cypress:run:upgrade": "yarn cypress:run:reporter --browser chrome --config integrationFolder=./cypress/upgrade_integration", - "cypress:run:upgrade:old": "yarn cypress:run:reporter --browser chrome --config integrationFolder=./cypress/upgrade_integration --spec ./cypress/upgrade_integration/threat_hunting/**/*.spec.ts,./cypress/upgrade_integration/detections/**/custom_query_rule.spec.ts; status=$?; yarn junit:merge && exit $status", + "cypress:run:upgrade": "yarn cypress:run:reporter --browser chrome --config specPattern=./cypress/upgrade_e2e/**/*.cy.ts", "junit:merge": "../../../node_modules/.bin/mochawesome-merge ../../../target/kibana-security-solution/cypress/results/mochawesome*.json > ../../../target/kibana-security-solution/cypress/results/output.json && ../../../node_modules/.bin/marge ../../../target/kibana-security-solution/cypress/results/output.json --reportDir ../../../target/kibana-security-solution/cypress/results && mkdir -p ../../../target/junit && cp ../../../target/kibana-security-solution/cypress/results/*.xml ../../../target/junit/", "test:generate": "node scripts/endpoint/resolver_generator" } diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.test.ts b/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.test.ts index deee988052ef27..8433dbb2fbf876 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.test.ts +++ b/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.test.ts @@ -5,6 +5,7 @@ * 2.0. */ +import moment from 'moment'; import { DataSourceType } from '../../../pages/detection_engine/rules/types'; import { isNoisy, @@ -14,51 +15,75 @@ import { } from './helpers'; describe('query_preview/helpers', () => { + const timeframeEnd = moment(); + const startHourAgo = timeframeEnd.clone().subtract(1, 'hour'); + const startDayAgo = timeframeEnd.clone().subtract(1, 'day'); + const startMonthAgo = timeframeEnd.clone().subtract(1, 'month'); + + const lastHourTimeframe = { + timeframeStart: startHourAgo, + timeframeEnd, + interval: '5m', + lookback: '1m', + }; + const lastDayTimeframe = { + timeframeStart: startDayAgo, + timeframeEnd, + interval: '1h', + lookback: '5m', + }; + const lastMonthTimeframe = { + timeframeStart: startMonthAgo, + timeframeEnd, + interval: '1d', + lookback: '1h', + }; + describe('isNoisy', () => { test('returns true if timeframe selection is "Last hour" and average hits per hour is greater than one execution duration', () => { - const isItNoisy = isNoisy(30, 'h'); + const isItNoisy = isNoisy(30, lastHourTimeframe); expect(isItNoisy).toBeTruthy(); }); test('returns false if timeframe selection is "Last hour" and average hits per hour is less than one execution duration', () => { - const isItNoisy = isNoisy(0, 'h'); + const isItNoisy = isNoisy(0, lastHourTimeframe); expect(isItNoisy).toBeFalsy(); }); test('returns true if timeframe selection is "Last day" and average hits per hour is greater than one execution duration', () => { - const isItNoisy = isNoisy(50, 'd'); + const isItNoisy = isNoisy(50, lastDayTimeframe); expect(isItNoisy).toBeTruthy(); }); test('returns false if timeframe selection is "Last day" and average hits per hour is equal to one execution duration', () => { - const isItNoisy = isNoisy(24, 'd'); + const isItNoisy = isNoisy(24, lastDayTimeframe); expect(isItNoisy).toBeFalsy(); }); test('returns false if timeframe selection is "Last day" and hits is 0', () => { - const isItNoisy = isNoisy(0, 'd'); + const isItNoisy = isNoisy(0, lastDayTimeframe); expect(isItNoisy).toBeFalsy(); }); test('returns true if timeframe selection is "Last month" and average hits per hour is greater than one execution duration', () => { - const isItNoisy = isNoisy(50, 'M'); + const isItNoisy = isNoisy(750, lastMonthTimeframe); expect(isItNoisy).toBeTruthy(); }); test('returns false if timeframe selection is "Last month" and average hits per hour is equal to one execution duration', () => { - const isItNoisy = isNoisy(30, 'M'); + const isItNoisy = isNoisy(30, lastMonthTimeframe); expect(isItNoisy).toBeFalsy(); }); test('returns false if timeframe selection is "Last month" and hits is 0', () => { - const isItNoisy = isNoisy(0, 'M'); + const isItNoisy = isNoisy(0, lastMonthTimeframe); expect(isItNoisy).toBeFalsy(); }); diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts b/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts index 266c0185745af2..6acd2e4db8f947 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts +++ b/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts @@ -9,7 +9,6 @@ import { isEmpty } from 'lodash'; import { Position, ScaleType } from '@elastic/charts'; import type { EuiSelectOption } from '@elastic/eui'; import type { Type, Language, ThreatMapping } from '@kbn/securitysolution-io-ts-alerting-types'; -import type { Unit } from '@kbn/datemath'; import type { Filter } from '@kbn/es-query'; import * as i18n from './translations'; import { histogramDateTimeFormatter } from '../../../../common/components/utils'; @@ -17,6 +16,7 @@ import type { ChartSeriesConfigs } from '../../../../common/components/charts/co import { getQueryFilter } from '../../../../../common/detection_engine/get_query_filter'; import type { FieldValueQueryBar } from '../query_bar'; import type { ESQuery } from '../../../../../common/typed_json'; +import type { TimeframePreviewOptions } from '../../../pages/detection_engine/rules/types'; import { DataSourceType } from '../../../pages/detection_engine/rules/types'; /** @@ -25,18 +25,13 @@ import { DataSourceType } from '../../../pages/detection_engine/rules/types'; * @param hits Total query search hits * @param timeframe Range selected by user (last hour, day...) */ -export const isNoisy = (hits: number, timeframe: Unit): boolean => { - if (timeframe === 'h') { - return hits > 1; - } else if (timeframe === 'd') { - return hits / 24 > 1; - } else if (timeframe === 'w') { - return hits / 168 > 1; - } else if (timeframe === 'M') { - return hits / 30 > 1; - } - - return false; +export const isNoisy = (hits: number, timeframe: TimeframePreviewOptions): boolean => { + const oneHour = 1000 * 60 * 60; + const durationInHours = Math.max( + (timeframe.timeframeEnd.valueOf() - timeframe.timeframeStart.valueOf()) / oneHour, + 1.0 + ); + return hits / durationInHours > 1; }; /** diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/index.test.tsx index 3b635796edd64b..de0d2458a5cfa6 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/index.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/index.test.tsx @@ -7,17 +7,22 @@ import React from 'react'; import { render } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; import type { DataViewBase } from '@kbn/es-query'; import { fields } from '@kbn/data-plugin/common/mocks'; import { TestProviders } from '../../../../common/mock'; import type { RulePreviewProps } from '.'; -import { RulePreview } from '.'; +import { RulePreview, REASONABLE_INVOCATION_COUNT } from '.'; import { usePreviewRoute } from './use_preview_route'; import { usePreviewHistogram } from './use_preview_histogram'; import { DataSourceType } from '../../../pages/detection_engine/rules/types'; +import { + getStepScheduleDefaultValue, + stepAboutDefaultValue, + stepDefineDefaultValue, +} from '../../../pages/detection_engine/rules/utils'; +import { usePreviewInvocationCount } from '../../../containers/detection_engine/rules/use_preview_invocation_count'; jest.mock('../../../../common/lib/kibana'); jest.mock('./use_preview_route'); @@ -30,6 +35,7 @@ jest.mock('../../../../common/containers/use_global_time', () => ({ setQuery: jest.fn(), }), })); +jest.mock('../../../containers/detection_engine/rules/use_preview_invocation_count'); const getMockIndexPattern = (): DataViewBase => ({ fields, @@ -38,42 +44,46 @@ const getMockIndexPattern = (): DataViewBase => ({ }); const defaultProps: RulePreviewProps = { - ruleType: 'threat_match', - index: ['test-*'], - indexPattern: getMockIndexPattern(), - dataSourceType: DataSourceType.IndexPatterns, - threatIndex: ['threat-*'], - threatMapping: [ - { - entries: [ - { field: 'file.hash.md5', value: 'threat.indicator.file.hash.md5', type: 'mapping' }, - ], + defineRuleData: { + ...stepDefineDefaultValue, + ruleType: 'threat_match', + index: ['test-*'], + indexPattern: getMockIndexPattern(), + dataSourceType: DataSourceType.IndexPatterns, + threatIndex: ['threat-*'], + threatMapping: [ + { + entries: [ + { field: 'file.hash.md5', value: 'threat.indicator.file.hash.md5', type: 'mapping' }, + ], + }, + ], + queryBar: { + filters: [], + query: { query: 'file.hash.md5:*', language: 'kuery' }, + saved_id: null, }, - ], - isDisabled: false, - query: { - filters: [], - query: { query: 'file.hash.md5:*', language: 'kuery' }, - saved_id: null, - }, - threatQuery: { - filters: [], - query: { query: 'threat.indicator.file.hash.md5:*', language: 'kuery' }, - saved_id: null, - }, - threshold: { - field: ['agent.hostname'], - value: '200', - cardinality: { - field: ['user.name'], - value: '2', + threatQueryBar: { + filters: [], + query: { query: 'threat.indicator.file.hash.md5:*', language: 'kuery' }, + saved_id: null, + }, + threshold: { + field: ['agent.hostname'], + value: '200', + cardinality: { + field: ['user.name'], + value: '2', + }, }, + anomalyThreshold: 50, + machineLearningJobId: ['test-ml-job-id'], + eqlOptions: {}, + newTermsFields: ['host.ip'], + historyWindowSize: '7d', }, - anomalyThreshold: 50, - machineLearningJobId: ['test-ml-job-id'], - eqlOptions: {}, - newTermsFields: ['host.ip'], - historyWindowSize: '7d', + aboutRuleData: stepAboutDefaultValue, + scheduleRuleData: getStepScheduleDefaultValue('threat_match'), }; describe('PreviewQuery', () => { @@ -98,6 +108,8 @@ describe('PreviewQuery', () => { isPreviewRequestInProgress: false, previewId: undefined, }); + + (usePreviewInvocationCount as jest.Mock).mockReturnValue({ invocationCount: 500 }); }); afterEach(() => { @@ -115,26 +127,6 @@ describe('PreviewQuery', () => { expect(await wrapper.findByTestId('preview-time-frame')).toBeTruthy(); }); - test('it renders preview button disabled if "isDisabled" is true', async () => { - const wrapper = render( - - - - ); - - expect(await wrapper.getByTestId('queryPreviewButton').closest('button')).toBeDisabled(); - }); - - test('it renders preview button enabled if "isDisabled" is false', async () => { - const wrapper = render( - - - - ); - - expect(await wrapper.getByTestId('queryPreviewButton').closest('button')).not.toBeDisabled(); - }); - test('does not render histogram when there is no previewId', async () => { const wrapper = render( @@ -145,40 +137,9 @@ describe('PreviewQuery', () => { expect(await wrapper.queryByTestId('[data-test-subj="preview-histogram-panel"]')).toBeNull(); }); - test('it renders quick/advanced query toggle button', async () => { - const wrapper = render( - - - - ); - - expect(await wrapper.findByTestId('quickAdvancedToggleButtonGroup')).toBeTruthy(); - }); - - test('it renders timeframe, interval and look-back buttons when advanced query is selected', async () => { - const wrapper = render( - - - - ); - - expect(await wrapper.findByTestId('quickAdvancedToggleButtonGroup')).toBeTruthy(); - const advancedQueryButton = await wrapper.findByTestId('advancedQuery'); - userEvent.click(advancedQueryButton); - expect(await wrapper.findByTestId('detectionEnginePreviewRuleInterval')).toBeTruthy(); - expect(await wrapper.findByTestId('detectionEnginePreviewRuleLookback')).toBeTruthy(); - }); - - test('it renders invocation count warning when advanced query is selected and warning flag is set to true', async () => { - (usePreviewRoute as jest.Mock).mockReturnValue({ - hasNoiseWarning: false, - addNoiseWarning: jest.fn(), - createPreview: jest.fn(), - clearPreview: jest.fn(), - logs: [], - isPreviewRequestInProgress: false, - previewId: undefined, - showInvocationCountWarning: true, + test('it renders invocation count warning when invocation count is bigger then "REASONABLE_INVOCATION_COUNT"', async () => { + (usePreviewInvocationCount as jest.Mock).mockReturnValue({ + invocationCount: REASONABLE_INVOCATION_COUNT + 1, }); const wrapper = render( @@ -187,8 +148,6 @@ describe('PreviewQuery', () => { ); - const advancedQueryButton = await wrapper.findByTestId('advancedQuery'); - userEvent.click(advancedQueryButton); expect(await wrapper.findByTestId('previewInvocationCountWarning')).toBeTruthy(); }); }); diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/index.tsx index 0639fda39ca4da..a5532e176b3c33 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/index.tsx @@ -5,53 +5,38 @@ * 2.0. */ -import React, { useState, useEffect, useMemo, useCallback } from 'react'; +import React, { useState, useEffect, useCallback, useMemo } from 'react'; import dateMath from '@kbn/datemath'; -import type { Unit } from '@kbn/datemath'; -import type { ThreatMapping, Type } from '@kbn/securitysolution-io-ts-alerting-types'; -import styled from 'styled-components'; -import type { DataViewBase } from '@kbn/es-query'; -import type { EuiButtonGroupOptionProps, OnTimeChangeProps } from '@elastic/eui'; +import type { OnTimeChangeProps } from '@elastic/eui'; import { - EuiButtonGroup, EuiCallOut, EuiFlexGroup, EuiFlexItem, - EuiSelect, EuiFormRow, - EuiButton, EuiSpacer, EuiSuperDatePicker, + EuiSuperUpdateButton, } from '@elastic/eui'; import moment from 'moment'; -import { useSecurityJobs } from '../../../../common/components/ml_popover/hooks/use_security_jobs'; -import type { FieldValueQueryBar } from '../query_bar'; +import type { List } from '@kbn/securitysolution-io-ts-list-types'; +import { isEqual } from 'lodash'; import * as i18n from './translations'; import { usePreviewRoute } from './use_preview_route'; import { PreviewHistogram } from './preview_histogram'; -import { getTimeframeOptions } from './helpers'; import { PreviewLogsComponent } from './preview_logs'; import { useKibana } from '../../../../common/lib/kibana'; import { LoadingHistogram } from './loading_histogram'; -import type { FieldValueThreshold } from '../threshold_input'; -import { isJobStarted } from '../../../../../common/machine_learning/helpers'; -import type { EqlOptionsSelected } from '../../../../../common/search_strategy'; import { useStartTransaction } from '../../../../common/lib/apm/use_start_transaction'; import { SINGLE_RULE_ACTIONS } from '../../../../common/lib/apm/user_actions'; -import { Form, UseField, useForm, useFormData } from '../../../../shared_imports'; -import { ScheduleItem } from '../schedule_item_form'; import type { - AdvancedPreviewForm, - DataSourceType, + AboutStepRule, + DefineStepRule, + ScheduleStepRule, + TimeframePreviewOptions, } from '../../../pages/detection_engine/rules/types'; -import { schema } from './schema'; +import { usePreviewInvocationCount } from '../../../containers/detection_engine/rules/use_preview_invocation_count'; -const HelpTextComponent = ( - - {i18n.QUERY_PREVIEW_HELP_TEXT} - {i18n.QUERY_PREVIEW_DISCLAIMER} - -); +export const REASONABLE_INVOCATION_COUNT = 200; const timeRanges = [ { start: 'now/d', end: 'now', label: 'Today' }, @@ -64,42 +49,20 @@ const timeRanges = [ { start: 'now-30d', end: 'now', label: 'Last 30 days' }, ]; -const QUICK_QUERY_SELECT_ID = 'quickQuery'; -const ADVANCED_QUERY_SELECT_ID = 'advancedQuery'; - -const advancedOptionsDefaultValue = { - interval: '5m', - lookback: '1m', -}; - export interface RulePreviewProps { - index: string[]; - indexPattern: DataViewBase; - isDisabled: boolean; - query: FieldValueQueryBar; - dataViewId?: string; - dataSourceType: DataSourceType; - ruleType: Type; - threatIndex: string[]; - threatMapping: ThreatMapping; - threatQuery: FieldValueQueryBar; - threshold: FieldValueThreshold; - machineLearningJobId: string[]; - anomalyThreshold: number; - eqlOptions: EqlOptionsSelected; - newTermsFields: string[]; - historyWindowSize: string; + isDisabled?: boolean; + defineRuleData: DefineStepRule; + aboutRuleData: AboutStepRule; + scheduleRuleData: ScheduleStepRule; + exceptionsList?: List[]; } -const Select = styled(EuiSelect)` - width: ${({ theme }) => theme.eui.euiSuperDatePickerWidth}; -`; - -const PreviewButton = styled(EuiButton)` - margin-left: 0; -`; - -const defaultTimeRange: Unit = 'h'; +interface RulePreviewState { + defineRuleData?: DefineStepRule; + aboutRuleData?: AboutStepRule; + scheduleRuleData?: ScheduleStepRule; + timeframeOptions: TimeframePreviewOptions; +} const refreshedTimeframe = (startDate: string, endDate: string) => { return { @@ -109,25 +72,14 @@ const refreshedTimeframe = (startDate: string, endDate: string) => { }; const RulePreviewComponent: React.FC = ({ - index, - indexPattern, - dataViewId, - dataSourceType, isDisabled, - query, - ruleType, - threatIndex, - threatQuery, - threatMapping, - threshold, - machineLearningJobId, - anomalyThreshold, - eqlOptions, - newTermsFields, - historyWindowSize, + defineRuleData, + aboutRuleData, + scheduleRuleData, + exceptionsList, }) => { + const { indexPattern, ruleType } = defineRuleData; const { spaces } = useKibana().services; - const { loading: isMlLoading, jobs } = useSecurityJobs(false); const [spaceId, setSpaceId] = useState(''); useEffect(() => { @@ -144,107 +96,50 @@ const RulePreviewComponent: React.FC = ({ const [timeframeStart, setTimeframeStart] = useState(moment().subtract(1, 'hour')); const [timeframeEnd, setTimeframeEnd] = useState(moment()); + const [isDateRangeInvalid, setIsDateRangeInvalid] = useState(false); + useEffect(() => { const { start, end } = refreshedTimeframe(startDate, endDate); setTimeframeStart(start); setTimeframeEnd(end); }, [startDate, endDate]); - const { form } = useForm({ - defaultValue: advancedOptionsDefaultValue, - options: { stripEmptyFields: false }, - schema, + // The data state that we used for the last preview results + const [previewData, setPreviewData] = useState({ + timeframeOptions: { + timeframeStart, + timeframeEnd, + interval: '5m', + lookback: '1m', + }, }); - const [{ interval: formInterval, lookback: formLookback }] = useFormData({ - form, - watch: ['interval', 'lookback'], + const { invocationCount } = usePreviewInvocationCount({ + timeframeOptions: { + timeframeStart, + timeframeEnd, + interval: scheduleRuleData.interval, + lookback: scheduleRuleData.from, + }, }); + const showInvocationCountWarning = invocationCount > REASONABLE_INVOCATION_COUNT; - const areRelaventMlJobsRunning = useMemo(() => { - if (ruleType !== 'machine_learning') { - return true; // Don't do the expensive logic if we don't need it - } - if (isMlLoading) { - return false; - } - const selectedJobs = jobs.filter(({ id }) => machineLearningJobId.includes(id)); - return selectedJobs.every((job) => isJobStarted(job.jobState, job.datafeedState)); - }, [jobs, machineLearningJobId, ruleType, isMlLoading]); - - const [queryPreviewIdSelected, setQueryPreviewRadioIdSelected] = useState(QUICK_QUERY_SELECT_ID); - - // Callback for when user toggles between Quick query and Advanced query preview - const onChangeDataSource = (optionId: string) => { - setQueryPreviewRadioIdSelected(optionId); - }; - - const quickAdvancedToggleButtonOptions: EuiButtonGroupOptionProps[] = useMemo( - () => [ - { - id: QUICK_QUERY_SELECT_ID, - label: i18n.QUICK_PREVIEW_TOGGLE_BUTTON, - 'data-test-subj': `rule-preview-toggle-${QUICK_QUERY_SELECT_ID}`, - }, - { - id: ADVANCED_QUERY_SELECT_ID, - label: i18n.ADVANCED_PREVIEW_TOGGLE_BUTTON, - 'data-test-subj': `rule-index-toggle-${ADVANCED_QUERY_SELECT_ID}`, - }, - ], - [] - ); - - const showAdvancedOptions = queryPreviewIdSelected === ADVANCED_QUERY_SELECT_ID; - const advancedOptions = useMemo( - () => - showAdvancedOptions && formInterval && formLookback - ? { - timeframeStart, - timeframeEnd, - interval: formInterval, - lookback: formLookback, - } - : undefined, - [formInterval, formLookback, showAdvancedOptions, timeframeEnd, timeframeStart] - ); - - const [timeFrame, setTimeFrame] = useState(defaultTimeRange); const { addNoiseWarning, createPreview, - clearPreview, isPreviewRequestInProgress, previewId, logs, hasNoiseWarning, isAborted, - showInvocationCountWarning, } = usePreviewRoute({ - index, - isDisabled, - dataViewId, - dataSourceType, - query, - threatIndex, - threatQuery, - timeFrame, - ruleType, - threatMapping, - threshold, - machineLearningJobId, - anomalyThreshold, - eqlOptions, - newTermsFields, - historyWindowSize, - advancedOptions, + defineRuleData: previewData.defineRuleData, + aboutRuleData: previewData.aboutRuleData, + scheduleRuleData: previewData.scheduleRuleData, + exceptionsList, + timeframeOptions: previewData.timeframeOptions, }); - // Resets the timeFrame to default when rule type is changed because not all time frames are supported by all rule types - useEffect(() => { - setTimeFrame(defaultTimeRange); - }, [ruleType]); - const { startTransaction } = useStartTransaction(); const [isRefreshing, setIsRefreshing] = useState(false); @@ -256,21 +151,15 @@ const RulePreviewComponent: React.FC = ({ setIsRefreshing(false); }, [isRefreshing, createPreview]); - const handlePreviewClick = useCallback(() => { - startTransaction({ name: SINGLE_RULE_ACTIONS.PREVIEW }); - if (showAdvancedOptions) { - // Refresh timeframe on Preview button click to make sure that relative times recalculated based on current time - const { start, end } = refreshedTimeframe(startDate, endDate); - setTimeframeStart(start); - setTimeframeEnd(end); - } else { - clearPreview(); - } - setIsRefreshing(true); - }, [clearPreview, endDate, showAdvancedOptions, startDate, startTransaction]); + useEffect(() => { + const { start, end } = refreshedTimeframe(startDate, endDate); + setTimeframeStart(start); + setTimeframeEnd(end); + }, [endDate, startDate]); const onTimeChange = useCallback( ({ start: newStart, end: newEnd, isInvalid }: OnTimeChangeProps) => { + setIsDateRangeInvalid(isInvalid); if (!isInvalid) { setStartDate(newStart); setEndDate(newEnd); @@ -279,18 +168,50 @@ const RulePreviewComponent: React.FC = ({ [] ); + const onTimeframeRefresh = useCallback(() => { + startTransaction({ name: SINGLE_RULE_ACTIONS.PREVIEW }); + const { start, end } = refreshedTimeframe(startDate, endDate); + setTimeframeStart(start); + setTimeframeEnd(end); + setPreviewData({ + defineRuleData, + aboutRuleData, + scheduleRuleData, + timeframeOptions: { + timeframeStart: start, + timeframeEnd: end, + interval: scheduleRuleData.interval, + lookback: scheduleRuleData.from, + }, + }); + setIsRefreshing(true); + }, [aboutRuleData, defineRuleData, endDate, scheduleRuleData, startDate, startTransaction]); + + const isDirty = useMemo( + () => + !timeframeStart.isSame(previewData.timeframeOptions.timeframeStart) || + !timeframeEnd.isSame(previewData.timeframeOptions.timeframeEnd) || + !isEqual(defineRuleData, previewData.defineRuleData) || + !isEqual(aboutRuleData, previewData.aboutRuleData) || + !isEqual(scheduleRuleData, previewData.scheduleRuleData), + [ + aboutRuleData, + defineRuleData, + previewData.aboutRuleData, + previewData.defineRuleData, + previewData.scheduleRuleData, + previewData.timeframeOptions.timeframeEnd, + previewData.timeframeOptions.timeframeStart, + scheduleRuleData, + timeframeEnd, + timeframeStart, + ] + ); + return ( <> - - {showAdvancedOptions && showInvocationCountWarning && ( + {showInvocationCountWarning && ( <> = ({ )} - - - {showAdvancedOptions ? ( - - ) : ( -