From 51f6ebbf113729eec85c6f583a9cb92eb96492aa Mon Sep 17 00:00:00 2001
From: Tomasz Ciecierski
Date: Thu, 23 Nov 2023 14:03:20 +0100
Subject: [PATCH 01/24] [EDR Workflows] Sync project controller (#171765)
---
.../project_controller_security_roles.yml | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/x-pack/test_serverless/shared/lib/security/kibana_roles/project_controller_security_roles.yml b/x-pack/test_serverless/shared/lib/security/kibana_roles/project_controller_security_roles.yml
index a8f7adfc85777..8b0627d960a49 100644
--- a/x-pack/test_serverless/shared/lib/security/kibana_roles/project_controller_security_roles.yml
+++ b/x-pack/test_serverless/shared/lib/security/kibana_roles/project_controller_security_roles.yml
@@ -240,6 +240,7 @@ t3_analyst:
privileges:
- read
- write
+ - maintenance
- names:
- .lists*
- .items*
@@ -293,12 +294,16 @@ threat_intelligence_analyst:
- endgame-*
- filebeat-*
- logs-*
- - .lists*
- - .items*
- packetbeat-*
- winlogbeat-*
privileges:
- read
+ - names:
+ - .lists*
+ - .items*
+ privileges:
+ - read
+ - write
- names:
- .alerts-security*
- .siem-signals-*
@@ -317,8 +322,7 @@ threat_intelligence_analyst:
- application: "kibana-.kibana"
privileges:
- feature_ml.read
- - feature_siem.read
- - feature_siem.read_alerts
+ - feature_siem.all
- feature_siem.endpoint_list_read
- feature_siem.blocklist_all
- feature_securitySolutionCases.all
@@ -603,6 +607,7 @@ endpoint_operations_analyst:
privileges:
- read
- write
+ - maintenance
applications:
- application: "kibana-.kibana"
privileges:
@@ -653,11 +658,15 @@ endpoint_policy_manager:
- logs-*
- packetbeat-*
- winlogbeat-*
+ - risk-score.risk-score-*
+ privileges:
+ - read
+ - names:
- .lists*
- .items*
- - risk-score.risk-score-*
privileges:
- read
+ - write
- names:
- .alerts-security*
- .siem-signals-*
From 0c5e9fdb5a21d5ed3f7491dde38a4cb1fac37dea Mon Sep 17 00:00:00 2001
From: Marco Antonio Ghiani
Date: Thu, 23 Nov 2023 14:07:24 +0100
Subject: [PATCH 02/24] [Log Explorer] Add cloud provider and service icons on
Log detail (#171642)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## 📓 Summary
Closes #170721
These changes add icons for the cloud provider and service fields in the
Log detail flyout.
Regarding the Package Icon next to the dataset field, it should require
a remote request to determine what package is part of the current
dataset. We haven't determined this part yet, so we'll keep it for an
upcoming implementation.
https://github.com/elastic/kibana/assets/34506779/fc882810-6b0f-40ee-9727-762f57ad01cc
---------
Co-authored-by: Marco Antonio Ghiani
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Achyut Jhunjhunwala
---
.../flyout_detail/flyout_highlights.tsx | 107 ++++++++++--------
.../sub_components/highlight_field.tsx | 38 +++++--
.../sub_components/hover_action.tsx | 23 +---
x-pack/plugins/log_explorer/tsconfig.json | 4 +-
4 files changed, 98 insertions(+), 74 deletions(-)
diff --git a/x-pack/plugins/log_explorer/public/components/flyout_detail/flyout_highlights.tsx b/x-pack/plugins/log_explorer/public/components/flyout_detail/flyout_highlights.tsx
index 74d65d73f23b8..e74ee0a4b8130 100644
--- a/x-pack/plugins/log_explorer/public/components/flyout_detail/flyout_highlights.tsx
+++ b/x-pack/plugins/log_explorer/public/components/flyout_detail/flyout_highlights.tsx
@@ -7,7 +7,10 @@
import React from 'react';
import { FlyoutContentActions } from '@kbn/discover-plugin/public';
import { DataTableRecord } from '@kbn/discover-utils/src/types';
+import { AgentIcon, CloudProvider, CloudProviderIcon } from '@kbn/custom-icons';
import { useMeasure } from 'react-use/lib';
+import { AgentName } from '@kbn/elastic-agent-utils';
+import { first } from 'lodash';
import { FlyoutDoc } from './types';
import * as constants from '../../../common/constants';
import { HighlightField } from './sub_components/highlight_field';
@@ -47,156 +50,170 @@ export function FlyoutHighlights({
}) {
const [ref, dimensions] = useMeasure();
const { columns, fieldWidth } = useFlyoutColumnWidth(dimensions.width);
+
return (
+ {/* Service highlight */}
{formattedDoc[constants.SERVICE_NAME_FIELD] && (
+ }
+ label={flyoutServiceLabel}
+ value={flattenedDoc[constants.SERVICE_NAME_FIELD]}
width={fieldWidth}
/>
)}
{formattedDoc[constants.TRACE_ID_FIELD] && (
)}
-
+ {/* Infrastructure highlight */}
{formattedDoc[constants.HOST_NAME_FIELD] && (
)}
{formattedDoc[constants.ORCHESTRATOR_CLUSTER_NAME_FIELD] && (
)}
{formattedDoc[constants.ORCHESTRATOR_RESOURCE_ID_FIELD] && (
)}
-
+ {/* Cloud highlight */}
{formattedDoc[constants.CLOUD_PROVIDER_FIELD] && (
+ }
+ label={flyoutCloudProviderLabel}
+ value={flattenedDoc[constants.CLOUD_PROVIDER_FIELD]}
width={fieldWidth}
/>
)}
{formattedDoc[constants.CLOUD_REGION_FIELD] && (
)}
{formattedDoc[constants.CLOUD_AVAILABILITY_ZONE_FIELD] && (
)}
{formattedDoc[constants.CLOUD_PROJECT_ID_FIELD] && (
)}
{formattedDoc[constants.CLOUD_INSTANCE_ID_FIELD] && (
)}
-
+ {/* Other highlights */}
{formattedDoc[constants.LOG_FILE_PATH_FIELD] && (
)}
{formattedDoc[constants.DATASTREAM_NAMESPACE_FIELD] && (
)}
{formattedDoc[constants.DATASTREAM_DATASET_FIELD] && (
)}
{formattedDoc[constants.AGENT_NAME_FIELD] && (
)}
diff --git a/x-pack/plugins/log_explorer/public/components/flyout_detail/sub_components/highlight_field.tsx b/x-pack/plugins/log_explorer/public/components/flyout_detail/sub_components/highlight_field.tsx
index ca47b10548236..1034a3015cc89 100644
--- a/x-pack/plugins/log_explorer/public/components/flyout_detail/sub_components/highlight_field.tsx
+++ b/x-pack/plugins/log_explorer/public/components/flyout_detail/sub_components/highlight_field.tsx
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { EuiFlexGroup, EuiFlexItem, EuiText, copyToClipboard } from '@elastic/eui';
+import { EuiFlexGroup, EuiFlexItem, EuiText, copyToClipboard, EuiTextTruncate } from '@elastic/eui';
import React, { ReactNode, useMemo, useState } from 'react';
import { HoverAction, HoverActionType } from './hover_action';
import {
@@ -18,21 +18,22 @@ import {
import { useDiscoverActionsContext } from '../../../hooks/use_discover_action';
interface HighlightFieldProps {
- label: string | ReactNode;
field: string;
- value: unknown;
formattedValue: string;
- dataTestSubj: string;
+ icon?: ReactNode;
+ label: string | ReactNode;
+ value: unknown;
width: number;
}
export function HighlightField({
- label,
field,
- value,
formattedValue,
- dataTestSubj,
+ icon,
+ label,
+ value,
width,
+ ...props
}: HighlightFieldProps) {
const filterForText = flyoutHoverActionFilterForText(value);
const filterOutText = flyoutHoverActionFilterOutText(value);
@@ -89,14 +90,33 @@ export function HighlightField({
[filterForText, filterOutText, actions, field, value, columnAdded]
);
return formattedValue ? (
-
+
{label}
-
+
+
+ {icon && {icon}}
+
+
+ {(truncatedText: string) => (
+
+ )}
+
+
+
+
) : null;
diff --git a/x-pack/plugins/log_explorer/public/components/flyout_detail/sub_components/hover_action.tsx b/x-pack/plugins/log_explorer/public/components/flyout_detail/sub_components/hover_action.tsx
index 5ed25be2b36d9..1b5883ed082e5 100644
--- a/x-pack/plugins/log_explorer/public/components/flyout_detail/sub_components/hover_action.tsx
+++ b/x-pack/plugins/log_explorer/public/components/flyout_detail/sub_components/hover_action.tsx
@@ -7,14 +7,7 @@
import React from 'react';
-import {
- EuiFlexGroup,
- EuiToolTip,
- EuiButtonIcon,
- useEuiTheme,
- EuiTextTruncate,
- EuiText,
-} from '@elastic/eui';
+import { EuiFlexGroup, EuiToolTip, EuiButtonIcon, useEuiTheme, EuiFlexItem } from '@elastic/eui';
import type { IconType } from '@elastic/eui';
export interface HoverActionType {
@@ -26,12 +19,11 @@ export interface HoverActionType {
}
interface HoverActionProps {
- displayText: string;
+ children: React.ReactNode;
actions: HoverActionType[];
- width: number;
}
-export const HoverAction = ({ displayText, actions, width }: HoverActionProps) => {
+export const HoverAction = ({ children, actions }: HoverActionProps) => {
const { euiTheme } = useEuiTheme();
return (
@@ -49,14 +41,7 @@ export const HoverAction = ({ displayText, actions, width }: HoverActionProps) =
},
}}
>
-
- {(truncatedText: string) => (
-
- )}
-
+ {children}
Date: Thu, 23 Nov 2023 14:14:55 +0100
Subject: [PATCH 03/24] [telemetry] fetcher.validateConnectivity: don't kill
the server on error (#171713)
## Summary
Fix https://github.com/elastic/kibana/issues/170994
---
src/plugins/telemetry/server/fetcher.test.ts | 55 ++++++++++++++++++++
src/plugins/telemetry/server/fetcher.ts | 24 ++++++++-
2 files changed, 78 insertions(+), 1 deletion(-)
diff --git a/src/plugins/telemetry/server/fetcher.test.ts b/src/plugins/telemetry/server/fetcher.test.ts
index e1da374dc7239..5a61de1a0d83e 100644
--- a/src/plugins/telemetry/server/fetcher.test.ts
+++ b/src/plugins/telemetry/server/fetcher.test.ts
@@ -195,6 +195,61 @@ describe('FetcherTask', () => {
})
);
+ test(
+ 'Retries when `getCurrentConfigs` rejects',
+ fakeSchedulers(async (advance) => {
+ expect(fetcherTask['isOnline$'].value).toBe(false);
+ getCurrentConfigs.mockRejectedValueOnce(new Error('SomeError')).mockResolvedValue({
+ telemetryOptIn: true,
+ telemetrySendUsageFrom: 'server',
+ failureCount: 0,
+ telemetryUrl: 'test-url',
+ });
+ fetchMock.mockResolvedValue({});
+
+ const subscription = fetcherTask['validateConnectivity']();
+
+ // need to advance / await twice for retry
+ advance(5 * 60 * 1000);
+ await new Promise((resolve) => process.nextTick(resolve)); // Wait for the initial promise to fulfill
+ advance(1 * 60 * 1000);
+ await new Promise((resolve) => process.nextTick(resolve)); // Wait for the retry promise to fulfill
+
+ expect(getCurrentConfigs).toHaveBeenCalledTimes(2);
+ expect(fetchMock).toHaveBeenCalledTimes(1);
+ expect(updateReportFailure).toHaveBeenCalledTimes(0);
+ expect(fetcherTask['isOnline$'].value).toBe(true);
+
+ subscription.unsubscribe();
+ })
+ );
+
+ test(
+ 'logs a message when retries are exceeded',
+ fakeSchedulers(async (advance) => {
+ expect(fetcherTask['isOnline$'].value).toBe(false);
+ getCurrentConfigs.mockRejectedValue(new Error('SomeError'));
+
+ const subscription = fetcherTask['validateConnectivity']();
+
+ const wait = async () => {
+ advance(5 * 60 * 1000);
+ await new Promise((resolve) => process.nextTick(resolve)); // Wait for the initial promise to fulfill
+ };
+
+ for (let i = 0; i < 7; i++) {
+ await wait();
+ }
+
+ expect(fetcherTask['logger'].error).toBeCalledTimes(1);
+ expect(fetcherTask['logger'].error).toHaveBeenCalledWith(
+ `Cannot get the current config: SomeError`
+ );
+
+ subscription.unsubscribe();
+ })
+ );
+
test(
'Should not retry if it hit the max number of failures for this version',
fakeSchedulers(async (advance) => {
diff --git a/src/plugins/telemetry/server/fetcher.ts b/src/plugins/telemetry/server/fetcher.ts
index a79e043551775..756c9f49ded62 100644
--- a/src/plugins/telemetry/server/fetcher.ts
+++ b/src/plugins/telemetry/server/fetcher.ts
@@ -18,6 +18,10 @@ import {
Subscription,
takeUntil,
timer,
+ catchError,
+ defer,
+ EMPTY,
+ retry,
} from 'rxjs';
import fetch from 'node-fetch';
import type { TelemetryCollectionManagerPluginStart } from '@kbn/telemetry-collection-manager-plugin/server';
@@ -105,7 +109,25 @@ export class FetcherTask {
// Skip any further processing if already online
filter(() => !this.isOnline$.value),
// Fetch current state and configs
- exhaustMap(async () => await this.getCurrentConfigs()),
+ exhaustMap(() => {
+ return defer(() => {
+ return this.getCurrentConfigs();
+ }).pipe(
+ // exp-backoff retries in case of errors fetching the config
+ retry({
+ count: 5,
+ delay: (error, retryIndex) => {
+ const retryDelay = 1000 * Math.min(Math.pow(2, retryIndex + 2), 64); // 5 retries -> 8s, 16s, 32s, 64s, 64s
+ return timer(retryDelay);
+ },
+ }),
+ // shallow errors if all retry failed, next time tick will continue the emission
+ catchError((err) => {
+ this.logger.error(`Cannot get the current config: ${err.message}`);
+ return EMPTY;
+ })
+ );
+ }),
// Skip if opted-out, or should only send from the browser
filter(
({ telemetryOptIn, telemetrySendUsageFrom }) =>
From a30b18d2138b5dc1b5926bbd5e0ac8f410623027 Mon Sep 17 00:00:00 2001
From: Gloria Hornero
Date: Thu, 23 Nov 2023 14:44:22 +0100
Subject: [PATCH 04/24] [Security Solution] API calls refactor on Cypress
(#171506)
---
.../detection_alerts/alert_status.cy.ts | 2 +-
.../detection_alerts/alert_tags.cy.ts | 2 +-
.../prebuilt_rules/install_via_fleet.cy.ts | 3 +-
.../prebuilt_rules/install_workflow.cy.ts | 3 +-
.../prebuilt_rules/management.cy.ts | 2 +-
.../prebuilt_rules/notifications.cy.ts | 7 +-
.../prebuilt_rules_preview.cy.ts | 12 +-
.../prebuilt_rules/update_workflow.ts | 3 +-
.../rule_actions/rule_actions.cy.ts | 6 +-
.../rule_actions_pli_complete.cy.ts | 2 +-
.../rule_actions_pli_essentials.cy.ts | 2 +-
.../rule_creation/common_flows.cy.ts | 2 +-
.../rule_creation/custom_query_rule.cy.ts | 2 +-
.../custom_query_rule_data_view.cy.ts | 6 +-
.../custom_saved_query_rule.cy.ts | 2 +-
.../rule_creation/esql_rule_ess.cy.ts | 2 +-
.../event_correlation_rule.cy.ts | 2 +-
.../rule_creation/indicator_match_rule.cy.ts | 2 +-
.../rule_creation/new_terms_rule.cy.ts | 2 +-
.../rule_creation/override.cy.ts | 2 +-
.../rule_creation/threshold_rule.cy.ts | 2 +-
.../rule_details/common_flows.cy.ts | 2 +-
.../rule_details/esql_rule.cy.ts | 2 +-
.../rule_edit/custom_query_rule.cy.ts | 2 +-
.../rule_edit/esql_rule.cy.ts | 2 +-
.../related_integrations.cy.ts | 4 +-
.../bulk_actions/bulk_duplicate_rules.cy.ts | 3 +-
.../bulk_actions/bulk_edit_rules.cy.ts | 3 +-
.../bulk_edit_rules_actions.cy.ts | 2 +-
.../bulk_edit_rules_data_view.cy.ts | 6 +-
.../rule_actions/deletion/rule_delete.cy.ts | 2 +-
.../import_export/export_rule.cy.ts | 3 +-
.../import_export/import_rules.cy.ts | 2 +-
.../rule_actions/snoozing/rule_snoozing.cy.ts | 2 +-
.../rules_table/rules_table_filtering.cy.ts | 3 +-
.../rules_table/rules_table_links.cy.ts | 2 +-
.../sourcerer/create_runtime_field.cy.ts | 2 +-
.../sourcerer/sourcerer.cy.ts | 2 +-
.../sourcerer/sourcerer_permissions.cy.ts | 2 +-
.../e2e/entity_analytics/enrichments.cy.ts | 2 +-
.../endpoint_exceptions.cy.ts | 2 +-
.../auto_populate_with_alert_data.cy.ts | 2 +-
.../closing_all_matching_alerts.cy.ts | 2 +-
.../exceptions/entry/flyout_validation.cy.ts | 3 +-
.../e2e/exceptions/entry/match_any.cy.ts | 2 +-
.../entry/multiple_conditions.cy.ts | 2 +-
.../add_edit_endpoint_exception.cy.ts | 2 +-
.../add_edit_exception.cy.ts | 2 +-
.../add_edit_exception_data_view.cy.ts | 2 +-
.../rule_details_flow/read_only_view.cy.ts | 2 +-
.../manage_exceptions.cy.ts | 2 +-
.../duplicate_lists.cy.ts | 2 +-
.../e2e/explore/cases/attach_timeline.cy.ts | 2 +-
.../e2e/explore/cases/connectors.cy.ts | 2 +-
.../e2e/explore/cases/privileges.cy.ts | 2 +-
.../explore/dashboards/entity_analytics.cy.ts | 2 +-
.../e2e/explore/filters/pinned_filters.cy.ts | 2 +-
.../e2e/explore/inspect/inspect_button.cy.ts | 3 +-
.../alerts/alerts_details.cy.ts | 2 +-
.../alerts/changing_alert_status.cy.ts | 2 +-
.../alerts/detection_page_filters.cy.ts | 2 +-
.../alert_details_right_panel.cy.ts | 2 +-
...ert_details_right_panel_overview_tab.cy.ts | 2 +-
.../alert_details_right_panel_table_tab.cy.ts | 2 +-
.../alerts/ransomware_prevention.cy.ts | 2 +-
.../dasbhoards/detection_response.cy.ts | 2 +-
.../timeline_templates/creation.cy.ts | 2 +-
.../timelines/correlation_tab.cy.ts | 2 +-
.../investigations/timelines/creation.cy.ts | 2 +-
.../timelines/row_renderers.cy.ts | 3 +-
.../cypress/support/setup_users.ts | 2 +-
.../cypress/tasks/api_calls/alerts.ts | 2 +-
.../cypress/tasks/api_calls/common.ts | 264 +++++++++++++++++
.../cypress/tasks/api_calls/elasticsearch.ts | 37 +--
.../cypress/tasks/api_calls/exceptions.ts | 37 +--
.../cypress/tasks/api_calls/fleet.ts | 32 +--
.../tasks/{ => api_calls}/integrations.ts | 15 -
.../api_calls/kibana_advanced_settings.ts | 3 +-
.../tasks/api_calls/machine_learning.ts | 7 +-
.../cypress/tasks/api_calls/prebuilt_rules.ts | 29 +-
.../cypress/tasks/api_calls/rules.ts | 26 +-
.../cypress/tasks/api_calls/saved_queries.ts | 6 +-
.../cypress/tasks/api_calls/sourcerer.ts | 18 ++
.../cypress/tasks/api_calls/timelines.ts | 10 +-
.../cypress/tasks/common.ts | 266 ------------------
.../cypress/tasks/login.ts | 2 +-
.../cypress/tasks/sourcerer.ts | 12 -
87 files changed, 402 insertions(+), 545 deletions(-)
create mode 100644 x-pack/test/security_solution_cypress/cypress/tasks/api_calls/common.ts
rename x-pack/test/security_solution_cypress/cypress/tasks/{ => api_calls}/integrations.ts (83%)
create mode 100644 x-pack/test/security_solution_cypress/cypress/tasks/api_calls/sourcerer.ts
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_alerts/alert_status.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_alerts/alert_status.cy.ts
index e7f17ddcc8cb2..927e1f58a1be3 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_alerts/alert_status.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_alerts/alert_status.cy.ts
@@ -30,7 +30,7 @@ import {
openFirstAlert,
} from '../../../tasks/alerts';
import { createRule } from '../../../tasks/api_calls/rules';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
import { login } from '../../../tasks/login';
import { visit } from '../../../tasks/navigation';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_alerts/alert_tags.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_alerts/alert_tags.cy.ts
index 162c63ad3ce48..4fb4d50e7c6d9 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_alerts/alert_tags.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_alerts/alert_tags.cy.ts
@@ -13,7 +13,7 @@ import {
updateAlertTags,
} from '../../../tasks/alerts';
import { createRule } from '../../../tasks/api_calls/rules';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import { login } from '../../../tasks/login';
import { visitWithTimeRange } from '../../../tasks/navigation';
import { ALERTS_URL } from '../../../urls/navigation';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/install_via_fleet.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/install_via_fleet.cy.ts
index 630bd099a1d0c..6da3d58c0530d 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/install_via_fleet.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/install_via_fleet.cy.ts
@@ -8,12 +8,13 @@
import type { BulkInstallPackageInfo } from '@kbn/fleet-plugin/common';
import type { Rule } from '@kbn/security-solution-plugin/public/detection_engine/rule_management/logic/types';
-import { resetRulesTableState, deleteAlertsAndRules } from '../../../tasks/common';
+import { resetRulesTableState } from '../../../tasks/common';
import { INSTALL_ALL_RULES_BUTTON, TOASTER } from '../../../screens/alerts_detection_rules';
import { getRuleAssets } from '../../../tasks/api_calls/prebuilt_rules';
import { login } from '../../../tasks/login';
import { clickAddElasticRulesButton } from '../../../tasks/prebuilt_rules';
import { visitRulesManagementTable } from '../../../tasks/rules_management';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
describe(
'Detection rules, Prebuilt Rules Installation and Update workflow',
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/install_workflow.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/install_workflow.cy.ts
index 15e77fad28d03..ec4615bcf59e4 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/install_workflow.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/install_workflow.cy.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { resetRulesTableState, deleteAlertsAndRules } from '../../../tasks/common';
+import { resetRulesTableState } from '../../../tasks/common';
import { createRuleAssetSavedObject } from '../../../helpers/rules';
import {
getInstallSingleRuleButtonByRuleId,
@@ -28,6 +28,7 @@ import {
clickAddElasticRulesButton,
} from '../../../tasks/prebuilt_rules';
import { visitRulesManagementTable } from '../../../tasks/rules_management';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
describe(
'Detection rules, Prebuilt Rules Installation and Update workflow',
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/management.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/management.cy.ts
index d5a3f3bb85326..f3101f513915f 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/management.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/management.cy.ts
@@ -35,7 +35,7 @@ import {
getAvailablePrebuiltRulesCount,
preventPrebuiltRulesPackageInstallation,
} from '../../../tasks/api_calls/prebuilt_rules';
-import { deleteAlertsAndRules, deletePrebuiltRulesAssets } from '../../../tasks/common';
+import { deleteAlertsAndRules, deletePrebuiltRulesAssets } from '../../../tasks/api_calls/common';
import { login } from '../../../tasks/login';
import { visit } from '../../../tasks/navigation';
import { RULES_MANAGEMENT_URL } from '../../../urls/rules_management';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/notifications.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/notifications.cy.ts
index 180c435c10213..92bf9e7f1471c 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/notifications.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/notifications.cy.ts
@@ -12,16 +12,13 @@ import {
RULES_UPDATES_TAB,
} from '../../../screens/alerts_detection_rules';
import { deleteFirstRule } from '../../../tasks/alerts_detection_rules';
+import { deleteAlertsAndRules, deletePrebuiltRulesAssets } from '../../../tasks/api_calls/common';
import {
installAllPrebuiltRulesRequest,
installPrebuiltRuleAssets,
createAndInstallMockedPrebuiltRules,
} from '../../../tasks/api_calls/prebuilt_rules';
-import {
- resetRulesTableState,
- deleteAlertsAndRules,
- deletePrebuiltRulesAssets,
-} from '../../../tasks/common';
+import { resetRulesTableState } from '../../../tasks/common';
import { login } from '../../../tasks/login';
import { visitRulesManagementTable } from '../../../tasks/rules_management';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/prebuilt_rules_preview.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/prebuilt_rules_preview.cy.ts
index 0b49fe4bb1dec..6deeb6f5202c0 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/prebuilt_rules_preview.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/prebuilt_rules_preview.cy.ts
@@ -26,12 +26,7 @@ import {
} from '../../../tasks/api_calls/prebuilt_rules';
import { createSavedQuery, deleteSavedQueries } from '../../../tasks/api_calls/saved_queries';
import { fetchMachineLearningModules } from '../../../tasks/api_calls/machine_learning';
-import {
- resetRulesTableState,
- deleteAlertsAndRules,
- postDataView,
- deleteDataView,
-} from '../../../tasks/common';
+import { resetRulesTableState } from '../../../tasks/common';
import { login } from '../../../tasks/login';
import {
assertRuleInstallationSuccessToastShown,
@@ -62,6 +57,11 @@ import {
openRuleUpdatePreview,
} from '../../../tasks/prebuilt_rules_preview';
import { visitRulesManagementTable } from '../../../tasks/rules_management';
+import {
+ deleteAlertsAndRules,
+ deleteDataView,
+ postDataView,
+} from '../../../tasks/api_calls/common';
const TEST_ENV_TAGS = ['@ess', '@serverless'];
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/update_workflow.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/update_workflow.ts
index 2e38b4782b433..edeb8ac98623b 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/update_workflow.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/prebuilt_rules/update_workflow.ts
@@ -15,11 +15,12 @@ import {
UPGRADE_SELECTED_RULES_BUTTON,
} from '../../../screens/alerts_detection_rules';
import { selectRulesByName } from '../../../tasks/alerts_detection_rules';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import {
installPrebuiltRuleAssets,
createAndInstallMockedPrebuiltRules,
} from '../../../tasks/api_calls/prebuilt_rules';
-import { resetRulesTableState, deleteAlertsAndRules } from '../../../tasks/common';
+import { resetRulesTableState } from '../../../tasks/common';
import { login } from '../../../tasks/login';
import {
assertRulesNotPresentInRuleUpdatesTable,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_actions/rule_actions.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_actions/rule_actions.cy.ts
index 98080cb3b47e8..3053f8e5c5698 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_actions/rule_actions.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_actions/rule_actions.cy.ts
@@ -10,7 +10,11 @@ import { getSimpleCustomQueryRule } from '../../../objects/rule';
import { goToRuleDetailsOf } from '../../../tasks/alerts_detection_rules';
import { deleteIndex, waitForNewDocumentToBeIndexed } from '../../../tasks/api_calls/elasticsearch';
-import { deleteAlertsAndRules, deleteConnectors, deleteDataView } from '../../../tasks/common';
+import {
+ deleteAlertsAndRules,
+ deleteConnectors,
+ deleteDataView,
+} from '../../../tasks/api_calls/common';
import {
createAndEnableRule,
fillAboutRuleAndContinue,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_actions/rule_actions_pli_complete.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_actions/rule_actions_pli_complete.cy.ts
index 23421b218bcb6..13c35a3cce6c4 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_actions/rule_actions_pli_complete.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_actions/rule_actions_pli_complete.cy.ts
@@ -18,7 +18,7 @@ import {
import { createRule } from '../../../tasks/api_calls/rules';
import { RULES_MANAGEMENT_URL } from '../../../urls/rules_management';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import { goToActionsStepTab } from '../../../tasks/create_new_rule';
import { login } from '../../../tasks/login';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_actions/rule_actions_pli_essentials.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_actions/rule_actions_pli_essentials.cy.ts
index 83503ea98738d..d36cdc7137de6 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_actions/rule_actions_pli_essentials.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_actions/rule_actions_pli_essentials.cy.ts
@@ -18,7 +18,7 @@ import {
import { createRule } from '../../../tasks/api_calls/rules';
import { RULES_MANAGEMENT_URL } from '../../../urls/rules_management';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import { goToActionsStepTab } from '../../../tasks/create_new_rule';
import { login } from '../../../tasks/login';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/common_flows.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/common_flows.cy.ts
index e8780d8696d29..9628f03f2d102 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/common_flows.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/common_flows.cy.ts
@@ -19,7 +19,7 @@ import {
} from '../../../screens/create_new_rule';
import { RULE_NAME_HEADER } from '../../../screens/rule_details';
import { createTimeline } from '../../../tasks/api_calls/timelines';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import {
createAndEnableRule,
expandAdvancedSettings,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_query_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_query_rule.cy.ts
index e4bb4b2bfba83..5e41440f48f4e 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_query_rule.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_query_rule.cy.ts
@@ -8,7 +8,7 @@
import { getNewRule } from '../../../objects/rule';
import { RULE_NAME_HEADER } from '../../../screens/rule_details';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import {
fillScheduleRuleAndContinue,
fillAboutRuleMinimumAndContinue,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_query_rule_data_view.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_query_rule_data_view.cy.ts
index d13a676e84253..7a6d1fa889e58 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_query_rule_data_view.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_query_rule_data_view.cy.ts
@@ -52,7 +52,11 @@ import {
getRulesManagementTableRows,
goToRuleDetailsOf,
} from '../../../tasks/alerts_detection_rules';
-import { deleteAlertsAndRules, deleteDataView, postDataView } from '../../../tasks/common';
+import {
+ deleteAlertsAndRules,
+ deleteDataView,
+ postDataView,
+} from '../../../tasks/api_calls/common';
import {
createAndEnableRule,
createRuleWithoutEnabling,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_saved_query_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_saved_query_rule.cy.ts
index 03ba3db7f25ff..f55a51d8e4f64 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_saved_query_rule.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/custom_saved_query_rule.cy.ts
@@ -24,7 +24,7 @@ import {
import { editFirstRule, goToRuleDetailsOf } from '../../../tasks/alerts_detection_rules';
import { createSavedQuery, deleteSavedQueries } from '../../../tasks/api_calls/saved_queries';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import {
createAndEnableRule,
fillAboutRuleAndContinue,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/esql_rule_ess.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/esql_rule_ess.cy.ts
index 2fa97e4f76e40..e543589bb44ce 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/esql_rule_ess.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/esql_rule_ess.cy.ts
@@ -18,7 +18,7 @@ import { ESQL_TYPE, ESQL_QUERY_BAR } from '../../../screens/create_new_rule';
import { getDetails, goBackToRulesTable } from '../../../tasks/rule_details';
import { expectNumberOfRules } from '../../../tasks/alerts_detection_rules';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import {
fillAboutRuleAndContinue,
fillDefineEsqlRuleAndContinue,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/event_correlation_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/event_correlation_rule.cy.ts
index b895460661858..0966ae2709113 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/event_correlation_rule.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/event_correlation_rule.cy.ts
@@ -43,7 +43,7 @@ import {
import { getDetails, waitForTheRuleToBeExecuted } from '../../../tasks/rule_details';
import { expectNumberOfRules, goToRuleDetailsOf } from '../../../tasks/alerts_detection_rules';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import {
createAndEnableRule,
fillAboutRuleAndContinue,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/indicator_match_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/indicator_match_rule.cy.ts
index 6dbe81076c91e..2b83c938b9473 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/indicator_match_rule.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/indicator_match_rule.cy.ts
@@ -111,7 +111,7 @@ import {
import { CREATE_RULE_URL } from '../../../urls/navigation';
import { RULES_MANAGEMENT_URL } from '../../../urls/rules_management';
import { openRuleManagementPageViaBreadcrumbs } from '../../../tasks/rules_management';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
const DEFAULT_THREAT_MATCH_QUERY = '@timestamp >= "now-30d/d"';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/new_terms_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/new_terms_rule.cy.ts
index 8b8c6fe4e1457..570f19f3f72e1 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/new_terms_rule.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/new_terms_rule.cy.ts
@@ -45,7 +45,7 @@ import {
import { getDetails, waitForTheRuleToBeExecuted } from '../../../tasks/rule_details';
import { expectNumberOfRules, goToRuleDetailsOf } from '../../../tasks/alerts_detection_rules';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import {
createAndEnableRule,
fillAboutRuleAndContinue,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/override.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/override.cy.ts
index 585cd9187f3e0..9bb9f569c4dd1 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/override.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/override.cy.ts
@@ -47,7 +47,7 @@ import {
TIMESTAMP_OVERRIDE_DETAILS,
} from '../../../screens/rule_details';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import { expectNumberOfRules, goToRuleDetailsOf } from '../../../tasks/alerts_detection_rules';
import {
createAndEnableRule,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/threshold_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/threshold_rule.cy.ts
index 503b40f568303..62fdb9121c9c5 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/threshold_rule.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_creation/threshold_rule.cy.ts
@@ -45,7 +45,7 @@ import {
import { getDetails, waitForTheRuleToBeExecuted } from '../../../tasks/rule_details';
import { expectNumberOfRules, goToRuleDetailsOf } from '../../../tasks/alerts_detection_rules';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import {
createAndEnableRule,
fillAboutRuleAndContinue,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_details/common_flows.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_details/common_flows.cy.ts
index 5e5af0e6ad4a7..f5704122d9e33 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_details/common_flows.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_details/common_flows.cy.ts
@@ -45,7 +45,7 @@ import {
} from '../../../screens/rule_details';
import { createTimeline } from '../../../tasks/api_calls/timelines';
-import { deleteAlertsAndRules, deleteConnectors } from '../../../tasks/common';
+import { deleteAlertsAndRules, deleteConnectors } from '../../../tasks/api_calls/common';
import { login } from '../../../tasks/login';
import { visit } from '../../../tasks/navigation';
import { ruleDetailsUrl } from '../../../urls/rule_details';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_details/esql_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_details/esql_rule.cy.ts
index 93100216692a4..7d1419e911e33 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_details/esql_rule.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_details/esql_rule.cy.ts
@@ -17,7 +17,7 @@ import {
import { createRule } from '../../../tasks/api_calls/rules';
import { getDetails } from '../../../tasks/rule_details';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import { login } from '../../../tasks/login';
import { visit } from '../../../tasks/navigation';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_edit/custom_query_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_edit/custom_query_rule.cy.ts
index ca6d6c56adcf7..e9497851d4cb0 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_edit/custom_query_rule.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_edit/custom_query_rule.cy.ts
@@ -42,7 +42,7 @@ import {
} from '../../../screens/rule_details';
import { createRule } from '../../../tasks/api_calls/rules';
-import { deleteAlertsAndRules, deleteConnectors } from '../../../tasks/common';
+import { deleteAlertsAndRules, deleteConnectors } from '../../../tasks/api_calls/common';
import { addEmailConnectorAndRuleAction } from '../../../tasks/common/rule_actions';
import {
fillAboutRule,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_edit/esql_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_edit/esql_rule.cy.ts
index eb16d89a6af8c..20d48b211995e 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_edit/esql_rule.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_edit/esql_rule.cy.ts
@@ -15,7 +15,7 @@ import { createRule } from '../../../tasks/api_calls/rules';
import { RULES_MANAGEMENT_URL } from '../../../urls/rules_management';
import { getDetails } from '../../../tasks/rule_details';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import {
clearEsqlQueryBar,
fillEsqlQueryBar,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/related_integrations/related_integrations.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/related_integrations/related_integrations.cy.ts
index 1376e486790b7..51aa3f406b8ed 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/related_integrations/related_integrations.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/related_integrations/related_integrations.cy.ts
@@ -26,14 +26,14 @@ import {
disableRelatedIntegrations,
enableRelatedIntegrations,
} from '../../../../tasks/api_calls/kibana_advanced_settings';
-import { deleteAlertsAndRules } from '../../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../../tasks/api_calls/common';
import { login } from '../../../../tasks/login';
import { visitRulesManagementTable } from '../../../../tasks/rules_management';
import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule';
import {
installIntegrations,
PackagePolicyWithoutAgentPolicyId,
-} from '../../../../tasks/integrations';
+} from '../../../../tasks/api_calls/integrations';
import {
disableAutoRefresh,
openIntegrationsPopover,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_duplicate_rules.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_duplicate_rules.cy.ts
index fd6b28fbe57ec..dd053ab958aab 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_duplicate_rules.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_duplicate_rules.cy.ts
@@ -5,6 +5,7 @@
* 2.0.
*/
+import { deleteAlertsAndRules } from '../../../../../tasks/api_calls/common';
import {
goToRuleDetailsOf,
expectManagementTableRules,
@@ -21,7 +22,7 @@ import { login } from '../../../../../tasks/login';
import { visitRulesManagementTable } from '../../../../../tasks/rules_management';
import { createRule } from '../../../../../tasks/api_calls/rules';
-import { resetRulesTableState, deleteAlertsAndRules } from '../../../../../tasks/common';
+import { resetRulesTableState } from '../../../../../tasks/common';
import { getNewRule } from '../../../../../objects/rule';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules.cy.ts
index 920c03529c112..94b6804b31193 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules.cy.ts
@@ -5,6 +5,7 @@
* 2.0.
*/
+import { deleteAlertsAndRules } from '../../../../../tasks/api_calls/common';
import {
MODAL_CONFIRMATION_BTN,
MODAL_CONFIRMATION_BODY,
@@ -79,7 +80,7 @@ import { login } from '../../../../../tasks/login';
import { visitRulesManagementTable } from '../../../../../tasks/rules_management';
import { createRule } from '../../../../../tasks/api_calls/rules';
import { loadPrepackagedTimelineTemplates } from '../../../../../tasks/api_calls/timelines';
-import { resetRulesTableState, deleteAlertsAndRules } from '../../../../../tasks/common';
+import { resetRulesTableState } from '../../../../../tasks/common';
import {
getEqlRule,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules_actions.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules_actions.cy.ts
index ac6c723dbc0c6..62acef933f032 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules_actions.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules_actions.cy.ts
@@ -20,7 +20,7 @@ import {
} from '../../../../../screens/rules_bulk_actions';
import { actionFormSelector } from '../../../../../screens/common/rule_actions';
-import { deleteAlertsAndRules, deleteConnectors } from '../../../../../tasks/common';
+import { deleteAlertsAndRules, deleteConnectors } from '../../../../../tasks/api_calls/common';
import type { RuleActionCustomFrequency } from '../../../../../tasks/common/rule_actions';
import {
addSlackRuleAction,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules_data_view.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules_data_view.cy.ts
index 21adb447d2ce3..3b9ddf73ad3c7 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules_data_view.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/bulk_actions/bulk_edit_rules_data_view.cy.ts
@@ -39,7 +39,11 @@ import { login } from '../../../../../tasks/login';
import { visitRulesManagementTable } from '../../../../../tasks/rules_management';
import { createRule } from '../../../../../tasks/api_calls/rules';
-import { deleteAlertsAndRules, deleteDataView, postDataView } from '../../../../../tasks/common';
+import {
+ deleteAlertsAndRules,
+ deleteDataView,
+ postDataView,
+} from '../../../../../tasks/api_calls/common';
import {
getEqlRule,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/deletion/rule_delete.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/deletion/rule_delete.cy.ts
index 0896438e275e3..4c9168744920d 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/deletion/rule_delete.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/deletion/rule_delete.cy.ts
@@ -18,7 +18,7 @@ import {
} from '../../../../../tasks/alerts_detection_rules';
import { deleteSelectedRules } from '../../../../../tasks/rules_bulk_actions';
import { createRule, findAllRules } from '../../../../../tasks/api_calls/rules';
-import { deleteAlertsAndRules } from '../../../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../../../tasks/api_calls/common';
import { login } from '../../../../../tasks/login';
describe('Rule deletion', { tags: ['@ess', '@serverless'] }, () => {
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/import_export/export_rule.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/import_export/export_rule.cy.ts
index 0fb3d6f08613f..0cfcc43714497 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/import_export/export_rule.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/import_export/export_rule.cy.ts
@@ -7,6 +7,7 @@
import path from 'path';
+import { deleteAlertsAndRules } from '../../../../../tasks/api_calls/common';
import { expectedExportedRule, getNewRule } from '../../../../../objects/rule';
import {
TOASTER_BODY,
@@ -29,7 +30,7 @@ import {
} from '../../../../../tasks/api_calls/exceptions';
import { getExceptionList } from '../../../../../objects/exception';
import { createRule } from '../../../../../tasks/api_calls/rules';
-import { resetRulesTableState, deleteAlertsAndRules } from '../../../../../tasks/common';
+import { resetRulesTableState } from '../../../../../tasks/common';
import { login } from '../../../../../tasks/login';
import { visit } from '../../../../../tasks/navigation';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/import_export/import_rules.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/import_export/import_rules.cy.ts
index 197ad5a9a82f5..4b8fe5b5312b0 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/import_export/import_rules.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/import_export/import_rules.cy.ts
@@ -11,7 +11,7 @@ import {
importRules,
importRulesWithOverwriteAll,
} from '../../../../../tasks/alerts_detection_rules';
-import { deleteAlertsAndRules } from '../../../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../../../tasks/api_calls/common';
import { deleteExceptionList } from '../../../../../tasks/api_calls/exceptions';
import { login } from '../../../../../tasks/login';
import { visit } from '../../../../../tasks/navigation';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/snoozing/rule_snoozing.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/snoozing/rule_snoozing.cy.ts
index 025aff9510d9d..7e753d42b6b6d 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/snoozing/rule_snoozing.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/snoozing/rule_snoozing.cy.ts
@@ -9,7 +9,7 @@ import { INTERNAL_ALERTING_API_FIND_RULES_PATH } from '@kbn/alerting-plugin/comm
import type { RuleResponse } from '@kbn/security-solution-plugin/common/api/detection_engine';
import { createRule, snoozeRule as snoozeRuleViaAPI } from '../../../../../tasks/api_calls/rules';
-import { deleteAlertsAndRules, deleteConnectors } from '../../../../../tasks/common';
+import { deleteAlertsAndRules, deleteConnectors } from '../../../../../tasks/api_calls/common';
import { login } from '../../../../../tasks/login';
import { visitRulesManagementTable } from '../../../../../tasks/rules_management';
import { getNewRule } from '../../../../../objects/rule';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_filtering.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_filtering.cy.ts
index b76b862c70d02..117fc0eee632b 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_filtering.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_filtering.cy.ts
@@ -5,7 +5,8 @@
* 2.0.
*/
-import { resetRulesTableState, deleteAlertsAndRules } from '../../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../../tasks/api_calls/common';
+import { resetRulesTableState } from '../../../../tasks/common';
import { login } from '../../../../tasks/login';
import { visitRulesManagementTable } from '../../../../tasks/rules_management';
import {
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_links.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_links.cy.ts
index cf81271c1ad33..ace4406b1c22a 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_links.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_links.cy.ts
@@ -8,7 +8,7 @@
import { getNewRule } from '../../../../objects/rule';
import { RULES_MONITORING_TAB, RULE_NAME } from '../../../../screens/alerts_detection_rules';
import { createRule } from '../../../../tasks/api_calls/rules';
-import { deleteAlertsAndRules } from '../../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../../tasks/api_calls/common';
import { login } from '../../../../tasks/login';
import { visit } from '../../../../tasks/navigation';
import { RULES_MANAGEMENT_URL } from '../../../../urls/rules_management';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/sourcerer/create_runtime_field.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/sourcerer/create_runtime_field.cy.ts
index 2fd13f8b6696d..6838532d55938 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/sourcerer/create_runtime_field.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/sourcerer/create_runtime_field.cy.ts
@@ -19,9 +19,9 @@ import { refreshPage } from '../../../tasks/security_header';
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
import { createField } from '../../../tasks/create_runtime_field';
import { openAlertsFieldBrowser } from '../../../tasks/alerts';
-import { deleteRuntimeField } from '../../../tasks/sourcerer';
import { GET_DATA_GRID_HEADER } from '../../../screens/common/data_grid';
import { GET_TIMELINE_HEADER } from '../../../screens/timeline';
+import { deleteRuntimeField } from '../../../tasks/api_calls/sourcerer';
const alertRunTimeField = 'field.name.alert.page';
const timelineRuntimeField = 'field.name.timeline';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/sourcerer/sourcerer.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/sourcerer/sourcerer.cy.ts
index dbf5a5975f666..d27444e3d9a82 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/sourcerer/sourcerer.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/sourcerer/sourcerer.cy.ts
@@ -26,7 +26,7 @@ import {
resetSourcerer,
saveSourcerer,
} from '../../../tasks/sourcerer';
-import { postDataView } from '../../../tasks/common';
+import { postDataView } from '../../../tasks/api_calls/common';
import { SOURCERER } from '../../../screens/sourcerer';
const siemDataViewTitle = 'Security Default Data View';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/sourcerer/sourcerer_permissions.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/sourcerer/sourcerer_permissions.cy.ts
index 52b8ccee82156..ce6b7e753d108 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/sourcerer/sourcerer_permissions.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/sourcerer/sourcerer_permissions.cy.ts
@@ -9,7 +9,7 @@ import { loginWithUser } from '../../../tasks/login';
import { visitWithUser } from '../../../tasks/navigation';
import { hostsUrl } from '../../../urls/navigation';
-import { postDataView } from '../../../tasks/common';
+import { postDataView } from '../../../tasks/api_calls/common';
import {
createUsersAndRoles,
secReadCasesAll,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/enrichments.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/enrichments.cy.ts
index fe8d51cae795c..60b93650048d9 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/enrichments.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/entity_analytics/enrichments.cy.ts
@@ -17,7 +17,7 @@ import {
import { ENRICHED_DATA_ROW } from '../../screens/alerts_details';
import { createRule } from '../../tasks/api_calls/rules';
-import { deleteAlertsAndRules } from '../../tasks/common';
+import { deleteAlertsAndRules } from '../../tasks/api_calls/common';
import { waitForAlertsToPopulate } from '../../tasks/create_new_rule';
import {
expandFirstAlert,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/alerts_table_flow/endpoint_exceptions.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/alerts_table_flow/endpoint_exceptions.cy.ts
index 8914b0c98076b..c4b605b85dcb6 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/alerts_table_flow/endpoint_exceptions.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/alerts_table_flow/endpoint_exceptions.cy.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import {
expandFirstAlert,
goToClosedAlertsOnRuleDetailsPage,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/alerts_table_flow/rule_exceptions/auto_populate_with_alert_data.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/alerts_table_flow/rule_exceptions/auto_populate_with_alert_data.cy.ts
index ee10a2e702b0e..8dccaa04bdc87 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/alerts_table_flow/rule_exceptions/auto_populate_with_alert_data.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/alerts_table_flow/rule_exceptions/auto_populate_with_alert_data.cy.ts
@@ -26,7 +26,7 @@ import {
import { login } from '../../../../tasks/login';
import { goToExceptionsTab, visitRuleDetailsPage } from '../../../../tasks/rule_details';
-import { deleteAlertsAndRules } from '../../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../../tasks/api_calls/common';
import {
ADD_AND_BTN,
ENTRY_DELETE_BTN,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/alerts_table_flow/rule_exceptions/closing_all_matching_alerts.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/alerts_table_flow/rule_exceptions/closing_all_matching_alerts.cy.ts
index 986bcb107124d..93e79ba9fa53e 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/alerts_table_flow/rule_exceptions/closing_all_matching_alerts.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/alerts_table_flow/rule_exceptions/closing_all_matching_alerts.cy.ts
@@ -10,7 +10,7 @@ import {
goToClosedAlertsOnRuleDetailsPage,
waitForAlerts,
} from '../../../../tasks/alerts';
-import { deleteAlertsAndRules, postDataView } from '../../../../tasks/common';
+import { deleteAlertsAndRules, postDataView } from '../../../../tasks/api_calls/common';
import { login } from '../../../../tasks/login';
import { visitRuleDetailsPage } from '../../../../tasks/rule_details';
import { createRule } from '../../../../tasks/api_calls/rules';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/entry/flyout_validation.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/entry/flyout_validation.cy.ts
index 3c613f32d2c73..72c18b27a9b2a 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/entry/flyout_validation.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/entry/flyout_validation.cy.ts
@@ -47,7 +47,7 @@ import {
FIELD_INPUT_PARENT,
} from '../../../screens/exceptions';
-import { deleteAlertsAndRules, reload } from '../../../tasks/common';
+import { reload } from '../../../tasks/common';
import {
createExceptionList,
createExceptionListItem,
@@ -55,6 +55,7 @@ import {
deleteExceptionList,
} from '../../../tasks/api_calls/exceptions';
import { getExceptionList } from '../../../objects/exception';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
// TODO: https://github.com/elastic/kibana/issues/161539
// Test Skipped until we fix the Flyout rerendering issue
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/entry/match_any.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/entry/match_any.cy.ts
index f18b056c4e254..282e8d3c81223 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/entry/match_any.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/entry/match_any.cy.ts
@@ -26,7 +26,7 @@ import {
submitNewExceptionItem,
} from '../../../tasks/exceptions';
import { CONFIRM_BTN } from '../../../screens/exceptions';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import { ALERTS_COUNT } from '../../../screens/alerts';
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/entry/multiple_conditions.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/entry/multiple_conditions.cy.ts
index 136038f641ec9..511343abc8a76 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/entry/multiple_conditions.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/entry/multiple_conditions.cy.ts
@@ -25,7 +25,7 @@ import {
EXCEPTION_ITEM_VIEWER_CONTAINER,
} from '../../../screens/exceptions';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
describe(
'Add multiple conditions and validate the generated exceptions',
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/rule_details_flow/add_edit_endpoint_exception.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/rule_details_flow/add_edit_endpoint_exception.cy.ts
index 8ec40a0e36436..e75c0eb8d81b0 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/rule_details_flow/add_edit_endpoint_exception.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/rule_details_flow/add_edit_endpoint_exception.cy.ts
@@ -30,7 +30,7 @@ import {
deleteAlertsAndRules,
deleteEndpointExceptionList,
deleteExceptionLists,
-} from '../../../tasks/common';
+} from '../../../tasks/api_calls/common';
import {
NO_EXCEPTIONS_EXIST_PROMPT,
EXCEPTION_ITEM_VIEWER_CONTAINER,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/rule_details_flow/add_edit_exception.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/rule_details_flow/add_edit_exception.cy.ts
index 6cc022873aea5..a06b76455dfbc 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/rule_details_flow/add_edit_exception.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/rule_details_flow/add_edit_exception.cy.ts
@@ -37,7 +37,7 @@ import {
submitEditedExceptionItem,
submitNewExceptionItem,
} from '../../../tasks/exceptions';
-import { deleteAlertsAndRules, deleteExceptionLists } from '../../../tasks/common';
+import { deleteAlertsAndRules, deleteExceptionLists } from '../../../tasks/api_calls/common';
import {
NO_EXCEPTIONS_EXIST_PROMPT,
EXCEPTION_ITEM_VIEWER_CONTAINER,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/rule_details_flow/add_edit_exception_data_view.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/rule_details_flow/add_edit_exception_data_view.cy.ts
index 79f6638e6c0f7..a4f0daa190e49 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/rule_details_flow/add_edit_exception_data_view.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/rule_details_flow/add_edit_exception_data_view.cy.ts
@@ -28,7 +28,7 @@ import {
waitForTheRuleToBeExecuted,
} from '../../../tasks/rule_details';
-import { postDataView, deleteAlertsAndRules } from '../../../tasks/common';
+import { postDataView, deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import {
NO_EXCEPTIONS_EXIST_PROMPT,
EXCEPTION_ITEM_VIEWER_CONTAINER,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/rule_details_flow/read_only_view.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/rule_details_flow/read_only_view.cy.ts
index 935668db1a5a6..9002e9569b4fd 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/rule_details_flow/read_only_view.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/rule_details_flow/read_only_view.cy.ts
@@ -13,7 +13,7 @@ import { login } from '../../../tasks/login';
import { visitRulesManagementTable } from '../../../tasks/rules_management';
import { goToExceptionsTab, goToAlertsTab } from '../../../tasks/rule_details';
import { goToRuleDetailsOf } from '../../../tasks/alerts_detection_rules';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import {
NO_EXCEPTIONS_EXIST_PROMPT,
EXCEPTION_ITEM_VIEWER_CONTAINER,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/manage_exceptions.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/manage_exceptions.cy.ts
index 9f64fac5f1512..2b9b200ae6c26 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/manage_exceptions.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/manage_exceptions.cy.ts
@@ -40,7 +40,7 @@ import {
findSharedExceptionListItemsByName,
} from '../../../tasks/exceptions_table';
import { visitRuleDetailsPage } from '../../../tasks/rule_details';
-import { deleteEndpointExceptionList, deleteExceptionLists } from '../../../tasks/common';
+import { deleteEndpointExceptionList, deleteExceptionLists } from '../../../tasks/api_calls/common';
// https://github.com/elastic/kibana/issues/171235
// FLAKY: https://github.com/elastic/kibana/issues/171242
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/shared_exception_list_page/duplicate_lists.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/shared_exception_list_page/duplicate_lists.cy.ts
index af8edaa017b81..a4c251617b5f8 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/shared_exception_list_page/duplicate_lists.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/shared_exception_list_page/duplicate_lists.cy.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { deleteAlertsAndRules, deleteExceptionLists } from '../../../../tasks/common';
+import { deleteAlertsAndRules, deleteExceptionLists } from '../../../../tasks/api_calls/common';
import { createRule } from '../../../../tasks/api_calls/rules';
import { getExceptionList } from '../../../../objects/exception';
import { assertNumberOfExceptionItemsExists } from '../../../../tasks/exceptions';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/attach_timeline.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/attach_timeline.cy.ts
index e040c98730986..c0a2295887a1f 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/attach_timeline.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/attach_timeline.cy.ts
@@ -17,7 +17,7 @@ import { DESCRIPTION_INPUT, ADD_COMMENT_INPUT } from '../../../screens/create_ne
import { getCase1 } from '../../../objects/case';
import { getTimeline } from '../../../objects/timeline';
import { createTimeline } from '../../../tasks/api_calls/timelines';
-import { deleteTimelines } from '../../../tasks/common';
+import { deleteTimelines } from '../../../tasks/api_calls/common';
import { createCase } from '../../../tasks/api_calls/cases';
describe('attach timeline to case', { tags: ['@ess', '@serverless'] }, () => {
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/connectors.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/connectors.cy.ts
index aaa785cc8f392..31c2068b49db0 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/connectors.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/connectors.cy.ts
@@ -10,7 +10,7 @@ import { getServiceNowConnector, getServiceNowITSMHealthResponse } from '../../.
import { SERVICE_NOW_MAPPING } from '../../../screens/configure_cases';
import { goToEditExternalConnection } from '../../../tasks/all_cases';
-import { deleteAllCasesItems, deleteConnectors } from '../../../tasks/common';
+import { deleteAllCasesItems, deleteConnectors } from '../../../tasks/api_calls/common';
import {
addServiceNowConnector,
openAddNewConnectorOption,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/privileges.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/privileges.cy.ts
index f1cdbc0d7af90..341a75fe4b6f1 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/privileges.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/explore/cases/privileges.cy.ts
@@ -9,7 +9,7 @@ import type { TestCaseWithoutTimeline } from '../../../objects/case';
import { ALL_CASES_CREATE_NEW_CASE_BTN, ALL_CASES_NAME } from '../../../screens/all_cases';
import { goToCreateNewCase } from '../../../tasks/all_cases';
-import { deleteAllCasesItems } from '../../../tasks/common';
+import { deleteAllCasesItems } from '../../../tasks/api_calls/common';
import {
backToCases,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/explore/dashboards/entity_analytics.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/explore/dashboards/entity_analytics.cy.ts
index 7210bacd1aa77..e849e0408c073 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/explore/dashboards/entity_analytics.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/explore/dashboards/entity_analytics.cy.ts
@@ -11,7 +11,7 @@ import { visitWithTimeRange } from '../../../tasks/navigation';
import { ALERTS_URL, ENTITY_ANALYTICS_URL } from '../../../urls/navigation';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import {
ANOMALIES_TABLE,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/explore/filters/pinned_filters.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/explore/filters/pinned_filters.cy.ts
index a9615f27984ea..516b776a86e3d 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/explore/filters/pinned_filters.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/explore/filters/pinned_filters.cy.ts
@@ -21,7 +21,7 @@ import {
openKibanaNavigation,
} from '../../../tasks/kibana_navigation';
import { ALERTS_PAGE } from '../../../screens/kibana_navigation';
-import { postDataView } from '../../../tasks/common';
+import { postDataView } from '../../../tasks/api_calls/common';
import { navigateToAlertsPageInServerless } from '../../../tasks/serverless/navigation';
describe('ESS - pinned filters', { tags: ['@ess'] }, () => {
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/explore/inspect/inspect_button.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/explore/inspect/inspect_button.cy.ts
index 9095a0a6f6e29..86309e80fd7e9 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/explore/inspect/inspect_button.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/explore/inspect/inspect_button.cy.ts
@@ -18,8 +18,9 @@ import {
} from '../../../tasks/inspect';
import { login } from '../../../tasks/login';
import { visitWithTimeRange } from '../../../tasks/navigation';
-import { postDataView, waitForWelcomePanelToBeLoaded } from '../../../tasks/common';
+import { waitForWelcomePanelToBeLoaded } from '../../../tasks/common';
import { selectDataView } from '../../../tasks/sourcerer';
+import { postDataView } from '../../../tasks/api_calls/common';
const DATA_VIEW = 'auditbeat-*';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alerts_details.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alerts_details.cy.ts
index 9ab0d07569421..7e5e19b464c4a 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alerts_details.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/alerts_details.cy.ts
@@ -25,7 +25,7 @@ import {
openTable,
} from '../../../tasks/alerts_details';
import { createRule } from '../../../tasks/api_calls/rules';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
import { login } from '../../../tasks/login';
import { visit, visitWithTimeRange } from '../../../tasks/navigation';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/changing_alert_status.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/changing_alert_status.cy.ts
index f06fad0cd43ee..2dc4a360134b2 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/changing_alert_status.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/changing_alert_status.cy.ts
@@ -32,7 +32,7 @@ import {
parseAlertsCountToInt,
} from '../../../tasks/alerts';
import { createRule } from '../../../tasks/api_calls/rules';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
import { login } from '../../../tasks/login';
import { visit } from '../../../tasks/navigation';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/detection_page_filters.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/detection_page_filters.cy.ts
index dd29284f6c0ce..0f8bcdd5a4693 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/detection_page_filters.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/detection_page_filters.cy.ts
@@ -51,7 +51,7 @@ import {
import { TOASTER } from '../../../screens/alerts_detection_rules';
import { setEndDate, setStartDate } from '../../../tasks/date_picker';
import { fillAddFilterForm, openAddFilterPopover } from '../../../tasks/search_bar';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
const customFilters = [
{
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel.cy.ts
index 6e0b437f2e2e6..aaa8806362d06 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel.cy.ts
@@ -51,7 +51,7 @@ import {
openTakeActionButtonAndSelectItem,
selectTakeActionItem,
} from '../../../../tasks/expandable_flyout/alert_details_right_panel';
-import { deleteAlertsAndRules } from '../../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../../tasks/api_calls/common';
import { login } from '../../../../tasks/login';
import { visit } from '../../../../tasks/navigation';
import { createRule } from '../../../../tasks/api_calls/rules';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts
index 33bcb93caacf0..fb2af6a16b022 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { deleteAlertsAndRules } from '../../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../../tasks/api_calls/common';
import { collapseDocumentDetailsExpandableFlyoutLeftSection } from '../../../../tasks/expandable_flyout/alert_details_right_panel';
import {
createNewCaseFromExpandableFlyout,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_table_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_table_tab.cy.ts
index aa320000a256c..c855beca9fdb6 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_table_tab.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_table_tab.cy.ts
@@ -25,7 +25,7 @@ import {
filterTableTabTable,
toggleColumnTableTabTable,
} from '../../../../tasks/expandable_flyout/alert_details_right_panel_table_tab';
-import { deleteAlertsAndRules } from '../../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../../tasks/api_calls/common';
import { login } from '../../../../tasks/login';
import { visit } from '../../../../tasks/navigation';
import { createRule } from '../../../../tasks/api_calls/rules';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/ransomware_prevention.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/ransomware_prevention.cy.ts
index 98d76d984512d..b90413cdfe751 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/ransomware_prevention.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/ransomware_prevention.cy.ts
@@ -12,7 +12,7 @@ import { ALERTS_URL } from '../../../urls/navigation';
import { ALERTS_HISTOGRAM_SERIES, ALERT_RULE_NAME, MESSAGE } from '../../../screens/alerts';
import { TIMELINE_VIEW_IN_ANALYZER } from '../../../screens/timeline';
import { selectAlertsHistogram } from '../../../tasks/alerts';
-import { deleteTimelines } from '../../../tasks/common';
+import { deleteTimelines } from '../../../tasks/api_calls/common';
import { createTimeline } from '../../../tasks/api_calls/timelines';
import { getTimeline } from '../../../objects/timeline';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/dasbhoards/detection_response.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/dasbhoards/detection_response.cy.ts
index e19e4ca043b3c..eb3881f8123a5 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/dasbhoards/detection_response.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/dasbhoards/detection_response.cy.ts
@@ -31,7 +31,7 @@ import {
import { QUERY_TAB_BUTTON, TIMELINE_DATA_PROVIDERS_CONTAINER } from '../../../screens/timeline';
import { waitForAlerts } from '../../../tasks/alerts';
import { createRule } from '../../../tasks/api_calls/rules';
-import { deleteAlertsAndRules } from '../../../tasks/common';
+import { deleteAlertsAndRules } from '../../../tasks/api_calls/common';
import { investigateDashboardItemInTimeline } from '../../../tasks/dashboards/common';
import { waitToNavigateAwayFrom } from '../../../tasks/kibana_navigation';
import { login } from '../../../tasks/login';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timeline_templates/creation.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timeline_templates/creation.cy.ts
index b3ed43ffe9d8a..bb1e0f372e33c 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timeline_templates/creation.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timeline_templates/creation.cy.ts
@@ -26,7 +26,7 @@ import {
TIMELINES_FAVORITE,
} from '../../../screens/timelines';
import { createTimeline } from '../../../tasks/api_calls/timelines';
-import { deleteTimelines } from '../../../tasks/common';
+import { deleteTimelines } from '../../../tasks/api_calls/common';
import { login } from '../../../tasks/login';
import { visit } from '../../../tasks/navigation';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/correlation_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/correlation_tab.cy.ts
index a50dbe08b0637..96b30a29d23d2 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/correlation_tab.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/correlation_tab.cy.ts
@@ -21,7 +21,7 @@ import { addEqlToTimeline, saveTimeline } from '../../../tasks/timeline';
import { TIMELINES_URL } from '../../../urls/navigation';
import { EQL_QUERY_VALIDATION_ERROR } from '../../../screens/create_new_rule';
-import { deleteTimelines } from '../../../tasks/common';
+import { deleteTimelines } from '../../../tasks/api_calls/common';
describe('Correlation tab', { tags: ['@ess', '@serverless'] }, () => {
const eql = 'any where process.name == "zsh"';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/creation.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/creation.cy.ts
index 546cdaa6b64c1..e324dede796f3 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/creation.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/creation.cy.ts
@@ -24,7 +24,7 @@ import {
} from '../../../screens/timeline';
import { createTimelineTemplate } from '../../../tasks/api_calls/timelines';
-import { deleteTimelines } from '../../../tasks/common';
+import { deleteTimelines } from '../../../tasks/api_calls/common';
import { login } from '../../../tasks/login';
import { visit, visitWithTimeRange } from '../../../tasks/navigation';
import { openTimelineUsingToggle } from '../../../tasks/security_main';
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/row_renderers.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/row_renderers.cy.ts
index ba20f89defef7..80d4a9780c6e7 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/row_renderers.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/row_renderers.cy.ts
@@ -16,7 +16,8 @@ import {
TIMELINE_ROW_RENDERERS_SURICATA_LINK_TOOLTIP,
TIMELINE_ROW_RENDERERS_MODAL_CLOSE_BUTTON,
} from '../../../screens/timeline';
-import { deleteTimelines, waitForWelcomePanelToBeLoaded } from '../../../tasks/common';
+import { deleteTimelines } from '../../../tasks/api_calls/common';
+import { waitForWelcomePanelToBeLoaded } from '../../../tasks/common';
import { waitForAllHostsToBeLoaded } from '../../../tasks/hosts/all_hosts';
import { login } from '../../../tasks/login';
diff --git a/x-pack/test/security_solution_cypress/cypress/support/setup_users.ts b/x-pack/test/security_solution_cypress/cypress/support/setup_users.ts
index e1dc4c952eac7..02ebebb6c10ea 100644
--- a/x-pack/test/security_solution_cypress/cypress/support/setup_users.ts
+++ b/x-pack/test/security_solution_cypress/cypress/support/setup_users.ts
@@ -6,7 +6,7 @@
*/
import { Role } from '@kbn/security-plugin/common';
-import { rootRequest } from '../tasks/common';
+import { rootRequest } from '../tasks/api_calls/common';
/**
* Utility function creates roles and corresponding users per each role with names
diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/alerts.ts b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/alerts.ts
index 43d9952b9b376..3b9c0612a0724 100644
--- a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/alerts.ts
+++ b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/alerts.ts
@@ -9,7 +9,7 @@ import {
RuleObjectId,
RuleSignatureId,
} from '@kbn/security-solution-plugin/common/api/detection_engine';
-import { rootRequest } from '../common';
+import { rootRequest } from './common';
export const DEFAULT_ALERTS_INDEX_PATTERN = '.alerts-security.alerts-*';
diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/common.ts b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/common.ts
new file mode 100644
index 0000000000000..775b4c5a8964b
--- /dev/null
+++ b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/common.ts
@@ -0,0 +1,264 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { DATA_VIEW_PATH, INITIAL_REST_VERSION } from '@kbn/data-views-plugin/server/constants';
+import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common';
+import { ELASTICSEARCH_PASSWORD, ELASTICSEARCH_USERNAME } from '../../env_var_names_constants';
+import { deleteAllDocuments } from './elasticsearch';
+import { DEFAULT_ALERTS_INDEX_PATTERN } from './alerts';
+
+export const API_AUTH = Object.freeze({
+ user: Cypress.env(ELASTICSEARCH_USERNAME),
+ pass: Cypress.env(ELASTICSEARCH_PASSWORD),
+});
+
+export const API_HEADERS = Object.freeze({
+ 'kbn-xsrf': 'cypress-creds',
+ 'x-elastic-internal-origin': 'security-solution',
+ [ELASTIC_HTTP_VERSION_HEADER]: [INITIAL_REST_VERSION],
+});
+
+export const rootRequest = ({
+ headers: optionHeaders,
+ ...restOptions
+}: Partial): Cypress.Chainable> =>
+ cy.request({
+ auth: API_AUTH,
+ headers: {
+ ...API_HEADERS,
+ ...(optionHeaders || {}),
+ },
+ ...restOptions,
+ });
+
+export const deleteAlertsAndRules = () => {
+ cy.log('Delete all alerts and rules');
+ const kibanaIndexUrl = `${Cypress.env('ELASTICSEARCH_URL')}/.kibana_\*`;
+
+ rootRequest({
+ method: 'POST',
+ url: '/api/detection_engine/rules/_bulk_action',
+ body: {
+ query: '',
+ action: 'delete',
+ },
+ failOnStatusCode: false,
+ timeout: 300000,
+ });
+
+ rootRequest({
+ method: 'POST',
+ url: `${kibanaIndexUrl}/_delete_by_query?conflicts=proceed&refresh`,
+ body: {
+ query: {
+ bool: {
+ filter: [
+ {
+ match: {
+ type: 'alert',
+ },
+ },
+ ],
+ },
+ },
+ },
+ });
+
+ deleteAllDocuments(`.lists-*,.items-*,${DEFAULT_ALERTS_INDEX_PATTERN}`);
+};
+
+export const deleteExceptionLists = () => {
+ const kibanaIndexUrl = `${Cypress.env('ELASTICSEARCH_URL')}/.kibana_\*`;
+ rootRequest({
+ method: 'POST',
+ url: `${kibanaIndexUrl}/_delete_by_query?conflicts=proceed&refresh`,
+ body: {
+ query: {
+ bool: {
+ filter: [
+ {
+ match: {
+ type: 'exception-list',
+ },
+ },
+ ],
+ },
+ },
+ },
+ });
+};
+
+export const deleteEndpointExceptionList = () => {
+ const kibanaIndexUrl = `${Cypress.env('ELASTICSEARCH_URL')}/.kibana_\*`;
+ rootRequest({
+ method: 'POST',
+ url: `${kibanaIndexUrl}/_delete_by_query?conflicts=proceed&refresh`,
+ body: {
+ query: {
+ bool: {
+ filter: [
+ {
+ match: {
+ type: 'exception-list-agnostic',
+ },
+ },
+ ],
+ },
+ },
+ },
+ });
+};
+
+export const deleteTimelines = () => {
+ const kibanaIndexUrl = `${Cypress.env('ELASTICSEARCH_URL')}/.kibana_\*`;
+ rootRequest({
+ method: 'POST',
+ url: `${kibanaIndexUrl}/_delete_by_query?conflicts=proceed&refresh`,
+ body: {
+ query: {
+ bool: {
+ filter: [
+ {
+ match: {
+ type: 'siem-ui-timeline',
+ },
+ },
+ ],
+ },
+ },
+ },
+ });
+};
+
+export const deleteAlertsIndex = () => {
+ rootRequest({
+ method: 'POST',
+ url: '/api/index_management/indices/delete',
+ body: { indices: ['.internal.alerts-security.alerts-default-000001'] },
+ failOnStatusCode: false,
+ });
+};
+
+export const deleteAllCasesItems = () => {
+ const kibanaIndexUrl = `${Cypress.env('ELASTICSEARCH_URL')}/.kibana_alerting_cases_\*`;
+ rootRequest({
+ method: 'POST',
+ url: `${kibanaIndexUrl}/_delete_by_query?conflicts=proceed&refresh`,
+ body: {
+ query: {
+ bool: {
+ filter: [
+ {
+ bool: {
+ should: [
+ {
+ term: {
+ type: 'cases',
+ },
+ },
+ {
+ term: {
+ type: 'cases-configure',
+ },
+ },
+ {
+ term: {
+ type: 'cases-comments',
+ },
+ },
+ {
+ term: {
+ type: 'cases-user-action',
+ },
+ },
+ {
+ term: {
+ type: 'cases-connector-mappings',
+ },
+ },
+ ],
+ },
+ },
+ ],
+ },
+ },
+ },
+ });
+};
+
+export const deleteConnectors = () => {
+ const kibanaIndexUrl = `${Cypress.env('ELASTICSEARCH_URL')}/.kibana_alerting_cases_\*`;
+ rootRequest({
+ method: 'POST',
+ url: `${kibanaIndexUrl}/_delete_by_query?conflicts=proceed&refresh`,
+ body: {
+ query: {
+ bool: {
+ filter: [
+ {
+ match: {
+ type: 'action',
+ },
+ },
+ ],
+ },
+ },
+ },
+ });
+};
+
+export const deletePrebuiltRulesAssets = () => {
+ const kibanaIndexUrl = `${Cypress.env('ELASTICSEARCH_URL')}/.kibana_\*`;
+ rootRequest({
+ method: 'POST',
+ url: `${kibanaIndexUrl}/_delete_by_query?conflicts=proceed&refresh`,
+ body: {
+ query: {
+ bool: {
+ filter: [
+ {
+ match: {
+ type: 'security-rule',
+ },
+ },
+ ],
+ },
+ },
+ },
+ });
+};
+
+export const postDataView = (indexPattern: string, name?: string, id?: string) => {
+ rootRequest({
+ method: 'POST',
+ url: DATA_VIEW_PATH,
+ body: {
+ data_view: {
+ id: id || indexPattern,
+ name: name || indexPattern,
+ fieldAttrs: '{}',
+ title: indexPattern,
+ timeFieldName: '@timestamp',
+ },
+ },
+ failOnStatusCode: false,
+ });
+};
+
+export const deleteDataView = (dataViewId: string) => {
+ rootRequest({
+ method: 'POST',
+ url: 'api/content_management/rpc/delete',
+ body: {
+ contentTypeId: 'index-pattern',
+ id: dataViewId,
+ options: { force: true },
+ version: 1,
+ },
+ failOnStatusCode: false,
+ });
+};
diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/elasticsearch.ts b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/elasticsearch.ts
index d94049f14c8a1..6dc3622f72a03 100644
--- a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/elasticsearch.ts
+++ b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/elasticsearch.ts
@@ -4,17 +4,12 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
-import { rootRequest } from '../common';
+import { rootRequest } from './common';
export const deleteIndex = (index: string) => {
rootRequest({
method: 'DELETE',
url: `${Cypress.env('ELASTICSEARCH_URL')}/${index}`,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
failOnStatusCode: false,
});
};
@@ -23,11 +18,6 @@ export const deleteDataStream = (dataStreamName: string) => {
rootRequest({
method: 'DELETE',
url: `${Cypress.env('ELASTICSEARCH_URL')}/_data_stream/${dataStreamName}`,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
failOnStatusCode: false,
});
};
@@ -40,11 +30,6 @@ export const deleteAllDocuments = (target: string) => {
url: `${Cypress.env(
'ELASTICSEARCH_URL'
)}/${target}/_delete_by_query?conflicts=proceed&scroll_size=10000&refresh`,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
body: {
query: {
match_all: {},
@@ -57,11 +42,6 @@ export const createIndex = (indexName: string, properties: Record({
method: 'GET',
url: `${Cypress.env('ELASTICSEARCH_URL')}/${index}/_search`,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
failOnStatusCode: false,
}).then((response) => {
if (response.status !== 200) {
@@ -110,11 +80,6 @@ export const refreshIndex = (index: string) => {
rootRequest({
method: 'POST',
url: `${Cypress.env('ELASTICSEARCH_URL')}/${index}/_refresh`,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
failOnStatusCode: false,
}).then((response) => {
if (response.status !== 200) {
diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/exceptions.ts b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/exceptions.ts
index 8b7d85b7ebf4d..4e0afa7416da0 100644
--- a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/exceptions.ts
+++ b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/exceptions.ts
@@ -13,17 +13,12 @@ import type {
} from '@kbn/securitysolution-io-ts-list-types';
import { ENDPOINT_LIST_ITEM_URL, ENDPOINT_LIST_URL } from '@kbn/securitysolution-list-constants';
import type { ExceptionList, ExceptionListItem, RuleExceptionItem } from '../../objects/exception';
-import { rootRequest } from '../common';
+import { rootRequest } from './common';
export const createEndpointExceptionList = () =>
rootRequest({
method: 'POST',
url: ENDPOINT_LIST_URL,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
});
export const createEndpointExceptionListItem = (item: CreateEndpointListItemSchema) =>
@@ -31,11 +26,6 @@ export const createEndpointExceptionListItem = (item: CreateEndpointListItemSche
method: 'POST',
url: ENDPOINT_LIST_ITEM_URL,
body: item,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
});
export const createExceptionList = (
@@ -51,11 +41,6 @@ export const createExceptionList = (
name: exceptionList.name,
type: exceptionList.type,
},
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
failOnStatusCode: false,
});
@@ -88,11 +73,6 @@ export const createExceptionListItem = (
],
expire_time: exceptionListItem?.expire_time,
},
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
failOnStatusCode: false,
});
@@ -103,11 +83,6 @@ export const createRuleExceptionItem = (ruleId: string, exceptionListItems: Rule
body: {
items: exceptionListItems,
},
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
failOnStatusCode: false,
});
@@ -122,11 +97,6 @@ export const updateExceptionListItem = (
item_id: exceptionListItemId,
...exceptionListItemUpdate,
},
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
failOnStatusCode: false,
});
@@ -134,10 +104,5 @@ export const deleteExceptionList = (listId: string, namespaceType: string) =>
rootRequest({
method: 'DELETE',
url: `/api/exception_lists?list_id=${listId}&namespace_type=${namespaceType}`,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
failOnStatusCode: false,
});
diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/fleet.ts b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/fleet.ts
index 5295b033fc7cf..d77361c95ebdd 100644
--- a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/fleet.ts
+++ b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/fleet.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { rootRequest } from '../common';
+import { rootRequest } from './common';
/**
* Deletes all existing Fleet packages, package policies and agent policies.
@@ -25,21 +25,11 @@ const deleteAgentPolicies = () => {
return rootRequest<{ items: Array<{ id: string }> }>({
method: 'GET',
url: 'api/fleet/agent_policies',
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
}).then((response) => {
response.body.items.forEach((item: { id: string }) => {
rootRequest({
method: 'POST',
url: `api/fleet/agent_policies/delete`,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
body: {
agentPolicyId: item.id,
},
@@ -52,20 +42,10 @@ const deletePackagePolicies = () => {
return rootRequest<{ items: Array<{ id: string }> }>({
method: 'GET',
url: 'api/fleet/package_policies',
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
}).then((response) => {
rootRequest({
method: 'POST',
url: `api/fleet/package_policies/delete`,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
body: {
packagePolicyIds: response.body.items.map((item: { id: string }) => item.id),
},
@@ -77,22 +57,12 @@ const deletePackages = () => {
return rootRequest<{ items: Array<{ status: string; name: string; version: string }> }>({
method: 'GET',
url: 'api/fleet/epm/packages',
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
}).then((response) => {
response.body.items.forEach((item) => {
if (item.status === 'installed') {
rootRequest({
method: 'DELETE',
url: `api/fleet/epm/packages/${item.name}/${item.version}`,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
});
}
});
diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/integrations.ts b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/integrations.ts
similarity index 83%
rename from x-pack/test/security_solution_cypress/cypress/tasks/integrations.ts
rename to x-pack/test/security_solution_cypress/cypress/tasks/api_calls/integrations.ts
index eeef97682b9c7..4e212d4b8eb34 100644
--- a/x-pack/test/security_solution_cypress/cypress/tasks/integrations.ts
+++ b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/integrations.ts
@@ -56,11 +56,6 @@ export function installIntegrations({
packages,
force: true,
},
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
});
// Install agent and package policies
@@ -68,11 +63,6 @@ export function installIntegrations({
method: 'POST',
url: `${AGENT_POLICY_API_ROUTES.CREATE_PATTERN}?sys_monitoring=true`,
body: agentPolicy,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
}).then((response) => {
const packagePolicyWithAgentPolicyId: PackagePolicy = {
...packagePolicy,
@@ -83,11 +73,6 @@ export function installIntegrations({
method: 'POST',
url: PACKAGE_POLICY_API_ROUTES.CREATE_PATTERN,
body: packagePolicyWithAgentPolicyId,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
});
});
}
diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/kibana_advanced_settings.ts b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/kibana_advanced_settings.ts
index 2c982adad5275..27d5063ce30df 100644
--- a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/kibana_advanced_settings.ts
+++ b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/kibana_advanced_settings.ts
@@ -7,14 +7,13 @@
import { SECURITY_SOLUTION_SHOW_RELATED_INTEGRATIONS_ID } from '@kbn/management-settings-ids';
import { ENABLE_EXPANDABLE_FLYOUT_SETTING } from '@kbn/security-solution-plugin/common/constants';
-import { rootRequest } from '../common';
+import { rootRequest } from './common';
export const setKibanaSetting = (key: string, value: boolean | number | string) => {
rootRequest({
method: 'POST',
url: 'internal/kibana/settings',
body: { changes: { [key]: value } },
- headers: { 'kbn-xsrf': 'cypress-creds', 'x-elastic-internal-origin': 'security-solution' },
});
};
diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/machine_learning.ts b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/machine_learning.ts
index afb468876c5f1..f03d6edadbc18 100644
--- a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/machine_learning.ts
+++ b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/machine_learning.ts
@@ -7,17 +7,12 @@
import { ML_INTERNAL_BASE_PATH } from '@kbn/ml-plugin/common/constants/app';
import type { Module } from '@kbn/ml-plugin/common/types/modules';
-import { rootRequest } from '../common';
+import { rootRequest } from './common';
export const fetchMachineLearningModules = () => {
return rootRequest({
method: 'GET',
url: `${ML_INTERNAL_BASE_PATH}/modules/get_module`,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': 1,
- },
failOnStatusCode: false,
});
};
diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/prebuilt_rules.ts b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/prebuilt_rules.ts
index 98b9a884e683a..273491ebd2efe 100644
--- a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/prebuilt_rules.ts
+++ b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/prebuilt_rules.ts
@@ -13,17 +13,12 @@ import { ELASTIC_SECURITY_RULE_ID } from '@kbn/security-solution-plugin/common/d
import type { PrePackagedRulesStatusResponse } from '@kbn/security-solution-plugin/public/detection_engine/rule_management/logic/types';
import { getPrebuiltRuleWithExceptionsMock } from '@kbn/security-solution-plugin/server/lib/detection_engine/prebuilt_rules/mocks';
import { createRuleAssetSavedObject } from '../../helpers/rules';
-import { rootRequest } from '../common';
+import { rootRequest } from './common';
export const getPrebuiltRulesStatus = () => {
return rootRequest({
method: 'GET',
url: 'api/detection_engine/rules/prepackaged/_status',
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
});
};
@@ -43,14 +38,12 @@ export const installAllPrebuiltRulesRequest = () =>
rootRequest({
method: 'POST',
url: PERFORM_RULE_INSTALLATION_URL,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '1',
- },
body: {
mode: 'ALL_RULES',
},
+ headers: {
+ 'elastic-api-version': '1',
+ },
});
/* Install specific prebuilt rules. Should be available as security-rule saved objects
@@ -63,11 +56,6 @@ export const installSpecificPrebuiltRulesRequest = (rules: Array({
method: 'POST',
url: PERFORM_RULE_INSTALLATION_URL,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '1',
- },
body: {
mode: 'SPECIFIC_RULES',
rules: rules.map((rule) => ({
@@ -75,6 +63,9 @@ export const installSpecificPrebuiltRulesRequest = (rules: Array {
@@ -128,8 +119,6 @@ export const createNewRuleAsset = ({
method: 'PUT',
url,
headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
'Content-Type': 'application/json',
},
failOnStatusCode: false,
@@ -182,7 +171,7 @@ export const bulkCreateRuleAssets = ({
return rootRequest({
method: 'POST',
url,
- headers: { 'kbn-xsrf': 'cypress-creds', 'Content-Type': 'application/json' },
+ headers: { 'Content-Type': 'application/json' },
failOnStatusCode: false,
body: bulkIndexRequestBody,
}).then((response) => response.status === 200);
@@ -197,8 +186,6 @@ export const getRuleAssets = (index: string | undefined = '.kibana_security_solu
method: 'GET',
url,
headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
'Content-Type': 'application/json',
},
failOnStatusCode: false,
diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/rules.ts b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/rules.ts
index 254d93cac5078..5f89e57ff81c6 100644
--- a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/rules.ts
+++ b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/rules.ts
@@ -16,16 +16,11 @@ import type {
} from '@kbn/security-solution-plugin/common/api/detection_engine';
import type { FetchRulesResponse } from '@kbn/security-solution-plugin/public/detection_engine/rule_management/logic/types';
import { internalAlertingSnoozeRule } from '../../urls/routes';
-import { rootRequest } from '../common';
+import { rootRequest } from './common';
export const findAllRules = () => {
return rootRequest({
url: DETECTION_ENGINE_RULES_URL_FIND,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
});
};
@@ -36,11 +31,6 @@ export const createRule = (
method: 'POST',
url: DETECTION_ENGINE_RULES_URL,
body: rule,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
failOnStatusCode: false,
});
};
@@ -52,7 +42,7 @@ export const createRule = (
* @param duration Snooze duration in milliseconds, -1 for indefinite
*/
export const snoozeRule = (id: string, duration: number): Cypress.Chainable =>
- cy.request({
+ rootRequest({
method: 'POST',
url: internalAlertingSnoozeRule(id),
body: {
@@ -61,7 +51,6 @@ export const snoozeRule = (id: string, duration: number): Cypress.Chainable =>
rRule: { dtstart: new Date().toISOString(), count: 1, tzid: moment().format('zz') },
},
},
- headers: { 'kbn-xsrf': 'cypress-creds', 'x-elastic-internal-origin': 'security-solution' },
failOnStatusCode: false,
});
@@ -69,11 +58,6 @@ export const deleteCustomRule = (ruleId = '1') => {
rootRequest({
method: 'DELETE',
url: `api/detection_engine/rules?rule_id=${ruleId}`,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
failOnStatusCode: false,
});
};
@@ -89,10 +73,7 @@ export const importRule = (ndjsonPath: string) => {
url: 'api/detection_engine/rules/_import',
method: 'POST',
headers: {
- 'kbn-xsrf': 'cypress-creds',
'content-type': 'multipart/form-data',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
},
body: formdata,
})
@@ -108,10 +89,7 @@ export const waitForRulesToFinishExecution = (ruleIds: string[], afterDate?: Dat
method: 'GET',
url: DETECTION_ENGINE_RULES_URL_FIND,
headers: {
- 'kbn-xsrf': 'cypress-creds',
'content-type': 'multipart/form-data',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
},
}).then((response) => {
const areAllRulesFinished = ruleIds.every((ruleId) =>
diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/saved_queries.ts b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/saved_queries.ts
index 88049b20d6d5b..0ec356e83727c 100644
--- a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/saved_queries.ts
+++ b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/saved_queries.ts
@@ -5,10 +5,10 @@
* 2.0.
*/
-import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common';
import type { SavedQuery } from '@kbn/data-plugin/public';
import { SAVED_QUERY_BASE_URL } from '@kbn/data-plugin/common/constants';
-import { rootRequest } from '../common';
+import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common';
+import { rootRequest } from './common';
export const createSavedQuery = (
title: string,
@@ -37,9 +37,7 @@ export const createSavedQuery = (
],
},
headers: {
- 'kbn-xsrf': 'cypress-creds',
[ELASTIC_HTTP_VERSION_HEADER]: '1',
- 'x-elastic-internal-origin': 'security-solution',
},
});
diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/sourcerer.ts b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/sourcerer.ts
new file mode 100644
index 0000000000000..a266678ee95d9
--- /dev/null
+++ b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/sourcerer.ts
@@ -0,0 +1,18 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { rootRequest } from './common';
+
+export const deleteRuntimeField = (dataView: string, fieldName: string) => {
+ const deleteRuntimeFieldPath = `/api/data_views/data_view/${dataView}/runtime_field/${fieldName}`;
+
+ rootRequest({
+ url: deleteRuntimeFieldPath,
+ method: 'DELETE',
+ failOnStatusCode: false,
+ });
+};
diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/timelines.ts b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/timelines.ts
index 9b6a0c98db40c..a4edcc54752de 100644
--- a/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/timelines.ts
+++ b/x-pack/test/security_solution_cypress/cypress/tasks/api_calls/timelines.ts
@@ -7,7 +7,7 @@
import type { TimelineResponse } from '@kbn/security-solution-plugin/common/api/timeline';
import type { CompleteTimeline } from '../../objects/timeline';
-import { rootRequest } from '../common';
+import { rootRequest } from './common';
export const createTimeline = (timeline: CompleteTimeline) =>
rootRequest({
@@ -56,11 +56,6 @@ export const createTimeline = (timeline: CompleteTimeline) =>
: {}),
},
},
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- 'elastic-api-version': '2023-10-31',
- },
});
export const createTimelineTemplate = (timeline: CompleteTimeline) =>
@@ -106,14 +101,12 @@ export const createTimelineTemplate = (timeline: CompleteTimeline) =>
savedQueryId: null,
},
},
- headers: { 'kbn-xsrf': 'cypress-creds', 'x-elastic-internal-origin': 'security-solution' },
});
export const loadPrepackagedTimelineTemplates = () =>
rootRequest({
method: 'POST',
url: 'api/timeline/_prepackaged',
- headers: { 'kbn-xsrf': 'cypress-creds', 'x-elastic-internal-origin': 'security-solution' },
});
export const favoriteTimeline = ({
@@ -136,5 +129,4 @@ export const favoriteTimeline = ({
templateTimelineId: templateTimelineId || null,
templateTimelineVersion: templateTimelineVersion || null,
},
- headers: { 'kbn-xsrf': 'cypress-creds', 'x-elastic-internal-origin': 'security-solution' },
});
diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/common.ts b/x-pack/test/security_solution_cypress/cypress/tasks/common.ts
index a9b019fc1f6f6..b7d0062cd5d02 100644
--- a/x-pack/test/security_solution_cypress/cypress/tasks/common.ts
+++ b/x-pack/test/security_solution_cypress/cypress/tasks/common.ts
@@ -5,13 +5,8 @@
* 2.0.
*/
-import { DATA_VIEW_PATH, INITIAL_REST_VERSION } from '@kbn/data-views-plugin/server/constants';
-import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common';
import { KIBANA_LOADING_ICON } from '../screens/security_header';
import { EUI_BASIC_TABLE_LOADING } from '../screens/common/controls';
-import { deleteAllDocuments } from './api_calls/elasticsearch';
-import { DEFAULT_ALERTS_INDEX_PATTERN } from './api_calls/alerts';
-import { ELASTICSEARCH_PASSWORD, ELASTICSEARCH_USERNAME } from '../env_var_names_constants';
const primaryButton = 0;
@@ -21,30 +16,6 @@ const primaryButton = 0;
*/
const dndSloppyClickDetectionThreshold = 5;
-export const API_AUTH = Object.freeze({
- user: Cypress.env(ELASTICSEARCH_USERNAME),
- pass: Cypress.env(ELASTICSEARCH_PASSWORD),
-});
-
-export const API_HEADERS = Object.freeze({
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- [ELASTIC_HTTP_VERSION_HEADER]: [INITIAL_REST_VERSION],
-});
-
-export const rootRequest = ({
- headers: optionHeaders,
- ...restOptions
-}: Partial): Cypress.Chainable> =>
- cy.request({
- auth: API_AUTH,
- headers: {
- ...API_HEADERS,
- ...(optionHeaders || {}),
- },
- ...restOptions,
- });
-
/** Starts dragging the subject */
export const drag = (subject: JQuery) => {
const subjectLocation = subject[0].getBoundingClientRect();
@@ -99,243 +70,6 @@ export const resetRulesTableState = () => {
clearSessionStorage();
};
-export const deleteAlertsAndRules = () => {
- cy.log('Delete all alerts and rules');
- const kibanaIndexUrl = `${Cypress.env('ELASTICSEARCH_URL')}/.kibana_\*`;
-
- rootRequest({
- method: 'POST',
- url: '/api/detection_engine/rules/_bulk_action',
- body: {
- query: '',
- action: 'delete',
- },
- failOnStatusCode: false,
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- },
- timeout: 300000,
- });
-
- rootRequest({
- method: 'POST',
- url: `${kibanaIndexUrl}/_delete_by_query?conflicts=proceed&refresh`,
- body: {
- query: {
- bool: {
- filter: [
- {
- match: {
- type: 'alert',
- },
- },
- ],
- },
- },
- },
- });
-
- deleteAllDocuments(`.lists-*,.items-*,${DEFAULT_ALERTS_INDEX_PATTERN}`);
-};
-
-export const deleteExceptionLists = () => {
- const kibanaIndexUrl = `${Cypress.env('ELASTICSEARCH_URL')}/.kibana_\*`;
- rootRequest({
- method: 'POST',
- url: `${kibanaIndexUrl}/_delete_by_query?conflicts=proceed&refresh`,
- body: {
- query: {
- bool: {
- filter: [
- {
- match: {
- type: 'exception-list',
- },
- },
- ],
- },
- },
- },
- });
-};
-
-export const deleteEndpointExceptionList = () => {
- const kibanaIndexUrl = `${Cypress.env('ELASTICSEARCH_URL')}/.kibana_\*`;
- rootRequest({
- method: 'POST',
- url: `${kibanaIndexUrl}/_delete_by_query?conflicts=proceed&refresh`,
- body: {
- query: {
- bool: {
- filter: [
- {
- match: {
- type: 'exception-list-agnostic',
- },
- },
- ],
- },
- },
- },
- });
-};
-
-export const deleteTimelines = () => {
- const kibanaIndexUrl = `${Cypress.env('ELASTICSEARCH_URL')}/.kibana_\*`;
- rootRequest({
- method: 'POST',
- url: `${kibanaIndexUrl}/_delete_by_query?conflicts=proceed&refresh`,
- body: {
- query: {
- bool: {
- filter: [
- {
- match: {
- type: 'siem-ui-timeline',
- },
- },
- ],
- },
- },
- },
- });
-};
-
-export const deleteAlertsIndex = () => {
- rootRequest({
- method: 'POST',
- url: '/api/index_management/indices/delete',
- body: { indices: ['.internal.alerts-security.alerts-default-000001'] },
- failOnStatusCode: false,
- });
-};
-
-export const deleteAllCasesItems = () => {
- const kibanaIndexUrl = `${Cypress.env('ELASTICSEARCH_URL')}/.kibana_alerting_cases_\*`;
- rootRequest({
- method: 'POST',
- url: `${kibanaIndexUrl}/_delete_by_query?conflicts=proceed&refresh`,
- body: {
- query: {
- bool: {
- filter: [
- {
- bool: {
- should: [
- {
- term: {
- type: 'cases',
- },
- },
- {
- term: {
- type: 'cases-configure',
- },
- },
- {
- term: {
- type: 'cases-comments',
- },
- },
- {
- term: {
- type: 'cases-user-action',
- },
- },
- {
- term: {
- type: 'cases-connector-mappings',
- },
- },
- ],
- },
- },
- ],
- },
- },
- },
- });
-};
-
-export const deleteConnectors = () => {
- const kibanaIndexUrl = `${Cypress.env('ELASTICSEARCH_URL')}/.kibana_alerting_cases_\*`;
- rootRequest({
- method: 'POST',
- url: `${kibanaIndexUrl}/_delete_by_query?conflicts=proceed&refresh`,
- body: {
- query: {
- bool: {
- filter: [
- {
- match: {
- type: 'action',
- },
- },
- ],
- },
- },
- },
- });
-};
-
-export const deletePrebuiltRulesAssets = () => {
- const kibanaIndexUrl = `${Cypress.env('ELASTICSEARCH_URL')}/.kibana_\*`;
- rootRequest({
- method: 'POST',
- url: `${kibanaIndexUrl}/_delete_by_query?conflicts=proceed&refresh`,
- body: {
- query: {
- bool: {
- filter: [
- {
- match: {
- type: 'security-rule',
- },
- },
- ],
- },
- },
- },
- });
-};
-
-export const postDataView = (indexPattern: string, name?: string, id?: string) => {
- rootRequest({
- method: 'POST',
- url: DATA_VIEW_PATH,
- body: {
- data_view: {
- id: id || indexPattern,
- name: name || indexPattern,
- fieldAttrs: '{}',
- title: indexPattern,
- timeFieldName: '@timestamp',
- },
- },
- headers: {
- 'kbn-xsrf': 'cypress-creds',
- 'x-elastic-internal-origin': 'security-solution',
- },
- failOnStatusCode: false,
- });
-};
-
-export const deleteDataView = (dataViewId: string) => {
- rootRequest({
- method: 'POST',
- url: 'api/content_management/rpc/delete',
- headers: { 'kbn-xsrf': 'cypress-creds', 'x-elastic-internal-origin': 'security-solution' },
- body: {
- contentTypeId: 'index-pattern',
- id: dataViewId,
- options: { force: true },
- version: 1,
- },
- failOnStatusCode: false,
- });
-};
-
export const scrollToBottom = () => cy.scrollTo('bottom');
export const waitForWelcomePanelToBeLoaded = () => {
diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/login.ts b/x-pack/test/security_solution_cypress/cypress/tasks/login.ts
index 4bf71413f8a57..4df97fd86461d 100644
--- a/x-pack/test/security_solution_cypress/cypress/tasks/login.ts
+++ b/x-pack/test/security_solution_cypress/cypress/tasks/login.ts
@@ -12,13 +12,13 @@ import { LoginState } from '@kbn/security-plugin/common/login_state';
import type { SecurityRoleName } from '@kbn/security-solution-plugin/common/test';
import { KNOWN_SERVERLESS_ROLE_DEFINITIONS } from '@kbn/security-solution-plugin/common/test';
import { LOGOUT_URL } from '../urls/navigation';
-import { API_HEADERS, rootRequest } from './common';
import {
CLOUD_SERVERLESS,
ELASTICSEARCH_PASSWORD,
ELASTICSEARCH_USERNAME,
IS_SERVERLESS,
} from '../env_var_names_constants';
+import { API_HEADERS, rootRequest } from './api_calls/common';
/**
* Credentials in the `kibana.dev.yml` config file will be used to authenticate
diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/sourcerer.ts b/x-pack/test/security_solution_cypress/cypress/tasks/sourcerer.ts
index 39a6ed99b1b2e..a534fb3e6d3d8 100644
--- a/x-pack/test/security_solution_cypress/cypress/tasks/sourcerer.ts
+++ b/x-pack/test/security_solution_cypress/cypress/tasks/sourcerer.ts
@@ -9,7 +9,6 @@ import { DEFAULT_ALERTS_INDEX } from '@kbn/security-solution-plugin/common/const
import { HOSTS_STAT, SOURCERER } from '../screens/sourcerer';
import { hostsUrl } from '../urls/navigation';
import { openTimelineUsingToggle } from './security_main';
-import { rootRequest } from './common';
import { visitWithTimeRange } from './navigation';
export const openSourcerer = (sourcererScope?: string) => {
@@ -130,14 +129,3 @@ export const refreshUntilAlertsIndexExists = async () => {
{ interval: 500, timeout: 12000 }
);
};
-
-export const deleteRuntimeField = (dataView: string, fieldName: string) => {
- const deleteRuntimeFieldPath = `/api/data_views/data_view/${dataView}/runtime_field/${fieldName}`;
-
- rootRequest({
- url: deleteRuntimeFieldPath,
- method: 'DELETE',
- headers: { 'kbn-xsrf': 'cypress-creds', 'x-elastic-internal-origin': 'security-solution' },
- failOnStatusCode: false,
- });
-};
From 21fc4cc3079db00d9898ec510049df03309b3faa Mon Sep 17 00:00:00 2001
From: Shahzad
Date: Thu, 23 Nov 2023 14:46:47 +0100
Subject: [PATCH 05/24] [SLO] Implement card view (#171422)
Co-authored-by: Kevin Delemme
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
---
.../slo_active_alerts_badge.tsx | 13 +-
.../slo_status_badge/slo_group_by_badge.tsx | 9 +-
.../public/locators/slo_list.test.ts | 4 +-
.../components/badges/slo_badges.stories.tsx | 4 +-
.../slos/components/badges/slo_badges.tsx | 63 +++--
.../badges/slo_indicator_type_badge.tsx | 11 +-
.../components/badges/slo_rules_badge.tsx | 2 +-
.../badges/slo_time_window_badge.tsx | 9 +-
.../components/card_view/cards_per_row.tsx | 49 ++++
.../components/card_view/slo_card_item.tsx | 181 ++++++++++++++
.../card_view/slo_card_item_actions.tsx | 61 +++++
.../card_view/slo_card_item_badges.tsx | 60 +++++
.../components/card_view/slos_card_view.tsx | 86 +++++++
.../common/burn_rate_rule_flyout.tsx | 51 ++++
.../slos/components/slo_item_actions.tsx | 217 +++++++++++++++++
.../public/pages/slos/components/slo_list.tsx | 19 +-
.../pages/slos/components/slo_list_item.tsx | 225 ++----------------
.../components/slo_list_items.stories.tsx | 4 +-
.../pages/slos/components/slo_list_items.tsx | 27 +--
.../pages/slos/components/slo_summary.tsx | 26 +-
.../pages/slos/components/slos_view.tsx | 63 +++++
.../pages/slos/components/toggle_slo_view.tsx | 97 ++++++++
.../pages/slos/hooks/use_slo_list_actions.ts | 42 ++++
.../pages/slos/hooks/use_slo_summary.ts | 50 ++++
.../pages/slos/hooks/use_url_search_state.ts | 3 +
.../public/pages/slos/slos.test.tsx | 17 +-
26 files changed, 1094 insertions(+), 299 deletions(-)
create mode 100644 x-pack/plugins/observability/public/pages/slos/components/card_view/cards_per_row.tsx
create mode 100644 x-pack/plugins/observability/public/pages/slos/components/card_view/slo_card_item.tsx
create mode 100644 x-pack/plugins/observability/public/pages/slos/components/card_view/slo_card_item_actions.tsx
create mode 100644 x-pack/plugins/observability/public/pages/slos/components/card_view/slo_card_item_badges.tsx
create mode 100644 x-pack/plugins/observability/public/pages/slos/components/card_view/slos_card_view.tsx
create mode 100644 x-pack/plugins/observability/public/pages/slos/components/common/burn_rate_rule_flyout.tsx
create mode 100644 x-pack/plugins/observability/public/pages/slos/components/slo_item_actions.tsx
create mode 100644 x-pack/plugins/observability/public/pages/slos/components/slos_view.tsx
create mode 100644 x-pack/plugins/observability/public/pages/slos/components/toggle_slo_view.tsx
create mode 100644 x-pack/plugins/observability/public/pages/slos/hooks/use_slo_list_actions.ts
create mode 100644 x-pack/plugins/observability/public/pages/slos/hooks/use_slo_summary.ts
diff --git a/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_active_alerts_badge.tsx b/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_active_alerts_badge.tsx
index 485355a278721..76a1a0efef112 100644
--- a/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_active_alerts_badge.tsx
+++ b/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_active_alerts_badge.tsx
@@ -14,11 +14,12 @@ import { paths } from '../../../../common/locators/paths';
import { useKibana } from '../../../utils/kibana_react';
export interface Props {
+ viewMode?: 'compact' | 'default';
activeAlerts?: number;
slo: SLOWithSummaryResponse;
}
-export function SloActiveAlertsBadge({ slo, activeAlerts }: Props) {
+export function SloActiveAlertsBadge({ slo, activeAlerts, viewMode = 'default' }: Props) {
const {
application: { navigateToUrl },
http: { basePath },
@@ -50,10 +51,12 @@ export function SloActiveAlertsBadge({ slo, activeAlerts }: Props) {
)}
data-test-subj="o11ySloActiveAlertsBadge"
>
- {i18n.translate('xpack.observability.slo.slo.activeAlertsBadge.label', {
- defaultMessage: '{count, plural, one {# alert} other {# alerts}}',
- values: { count: activeAlerts },
- })}
+ {viewMode !== 'default'
+ ? activeAlerts
+ : i18n.translate('xpack.observability.slo.slo.activeAlertsBadge.label', {
+ defaultMessage: '{count, plural, one {# alert} other {# alerts}}',
+ values: { count: activeAlerts },
+ })}
);
diff --git a/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_group_by_badge.tsx b/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_group_by_badge.tsx
index 455d6d9d24ed3..f79b700ed9be5 100644
--- a/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_group_by_badge.tsx
+++ b/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_group_by_badge.tsx
@@ -5,24 +5,25 @@
* 2.0.
*/
-import { EuiBadge, EuiFlexItem, EuiToolTip } from '@elastic/eui';
+import { EuiBadge, EuiBadgeProps, EuiFlexItem, EuiToolTip } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { ALL_VALUE, SLOWithSummaryResponse } from '@kbn/slo-schema';
-import { euiLightVars } from '@kbn/ui-theme';
import React from 'react';
+import { euiLightVars } from '@kbn/ui-theme';
export interface Props {
+ color?: EuiBadgeProps['color'];
slo: SLOWithSummaryResponse;
}
-export function SloGroupByBadge({ slo }: Props) {
+export function SloGroupByBadge({ slo, color }: Props) {
if (!slo.groupBy || slo.groupBy === ALL_VALUE) {
return null;
}
return (
-
+
{
const location = await locator.getLocation({});
expect(location.app).toEqual('observability');
expect(location.path).toEqual(
- "/slos?search=(kqlQuery:'',page:0,sort:(by:status,direction:desc))"
+ "/slos?search=(kqlQuery:'',page:0,sort:(by:status,direction:desc),viewMode:compact)"
);
});
@@ -24,7 +24,7 @@ describe('SloListLocator', () => {
});
expect(location.app).toEqual('observability');
expect(location.path).toEqual(
- "/slos?search=(kqlQuery:'slo.name:%20%22Service%20Availability%22%20and%20slo.indicator.type%20:%20%22sli.kql.custom%22',page:0,sort:(by:status,direction:desc))"
+ "/slos?search=(kqlQuery:'slo.name:%20%22Service%20Availability%22%20and%20slo.indicator.type%20:%20%22sli.kql.custom%22',page:0,sort:(by:status,direction:desc),viewMode:compact)"
);
});
});
diff --git a/x-pack/plugins/observability/public/pages/slos/components/badges/slo_badges.stories.tsx b/x-pack/plugins/observability/public/pages/slos/components/badges/slo_badges.stories.tsx
index 267ebac0ce9b4..67869e7f0e76e 100644
--- a/x-pack/plugins/observability/public/pages/slos/components/badges/slo_badges.stories.tsx
+++ b/x-pack/plugins/observability/public/pages/slos/components/badges/slo_badges.stories.tsx
@@ -11,7 +11,7 @@ import { ComponentStory } from '@storybook/react';
import { EuiFlexGroup } from '@elastic/eui';
import { buildForecastedSlo } from '../../../../data/slo/slo';
import { KibanaReactStorybookDecorator } from '../../../../utils/kibana_react.storybook_decorator';
-import { SloBadges as Component, Props } from './slo_badges';
+import { SloBadges as Component, SloBadgesProps } from './slo_badges';
export default {
component: Component,
@@ -19,7 +19,7 @@ export default {
decorators: [KibanaReactStorybookDecorator],
};
-const Template: ComponentStory = (props: Props) => (
+const Template: ComponentStory = (props: SloBadgesProps) => (
diff --git a/x-pack/plugins/observability/public/pages/slos/components/badges/slo_badges.tsx b/x-pack/plugins/observability/public/pages/slos/components/badges/slo_badges.tsx
index deccd010205a0..9ff1e3c14a2b2 100644
--- a/x-pack/plugins/observability/public/pages/slos/components/badges/slo_badges.tsx
+++ b/x-pack/plugins/observability/public/pages/slos/components/badges/slo_badges.tsx
@@ -17,8 +17,9 @@ import { SloTimeWindowBadge } from './slo_time_window_badge';
import { SloRulesBadge } from './slo_rules_badge';
import type { SloRule } from '../../../../hooks/slo/use_fetch_rules_for_slo';
import { SloGroupByBadge } from '../../../../components/slo/slo_status_badge/slo_group_by_badge';
+export type ViewMode = 'default' | 'compact';
-export interface Props {
+export interface SloBadgesProps {
activeAlerts?: number;
isLoading: boolean;
rules: Array> | undefined;
@@ -26,33 +27,17 @@ export interface Props {
onClickRuleBadge: () => void;
}
-export function SloBadges({ activeAlerts, isLoading, rules, slo, onClickRuleBadge }: Props) {
+export function SloBadges({
+ activeAlerts,
+ isLoading,
+ rules,
+ slo,
+ onClickRuleBadge,
+}: SloBadgesProps) {
return (
{isLoading ? (
- <>
-
-
-
- >
+
) : (
<>
@@ -66,3 +51,31 @@ export function SloBadges({ activeAlerts, isLoading, rules, slo, onClickRuleBadg
);
}
+
+export function LoadingBadges() {
+ return (
+ <>
+
+
+
+ >
+ );
+}
diff --git a/x-pack/plugins/observability/public/pages/slos/components/badges/slo_indicator_type_badge.tsx b/x-pack/plugins/observability/public/pages/slos/components/badges/slo_indicator_type_badge.tsx
index ad73af3d73bfa..c85eb6776680b 100644
--- a/x-pack/plugins/observability/public/pages/slos/components/badges/slo_indicator_type_badge.tsx
+++ b/x-pack/plugins/observability/public/pages/slos/components/badges/slo_indicator_type_badge.tsx
@@ -6,21 +6,22 @@
*/
import React from 'react';
-import { EuiBadge, EuiFlexItem, EuiToolTip } from '@elastic/eui';
+import { EuiBadge, EuiFlexItem, EuiToolTip, EuiBadgeProps } from '@elastic/eui';
import { SLOWithSummaryResponse } from '@kbn/slo-schema';
-import { euiLightVars } from '@kbn/ui-theme';
import { i18n } from '@kbn/i18n';
+import { euiLightVars } from '@kbn/ui-theme';
import { useKibana } from '../../../../utils/kibana_react';
import { convertSliApmParamsToApmAppDeeplinkUrl } from '../../../../utils/slo/convert_sli_apm_params_to_apm_app_deeplink_url';
import { isApmIndicatorType } from '../../../../utils/slo/indicator';
import { toIndicatorTypeLabel } from '../../../../utils/slo/labels';
export interface Props {
+ color?: EuiBadgeProps['color'];
slo: SLOWithSummaryResponse;
}
-export function SloIndicatorTypeBadge({ slo }: Props) {
+export function SloIndicatorTypeBadge({ slo, color }: Props) {
const {
application: { navigateToUrl },
http: { basePath },
@@ -54,7 +55,7 @@ export function SloIndicatorTypeBadge({ slo }: Props) {
return (
<>
-
+
{toIndicatorTypeLabel(slo.indicator.type)}
@@ -68,7 +69,7 @@ export function SloIndicatorTypeBadge({ slo }: Props) {
})}
>
-
+
);
diff --git a/x-pack/plugins/observability/public/pages/slos/components/badges/slo_time_window_badge.tsx b/x-pack/plugins/observability/public/pages/slos/components/badges/slo_time_window_badge.tsx
index d218eeda7f0ed..b5d4ecd0224fe 100644
--- a/x-pack/plugins/observability/public/pages/slos/components/badges/slo_time_window_badge.tsx
+++ b/x-pack/plugins/observability/public/pages/slos/components/badges/slo_time_window_badge.tsx
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { EuiBadge, EuiFlexItem } from '@elastic/eui';
+import { EuiBadge, EuiBadgeProps, EuiFlexItem } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { rollingTimeWindowTypeSchema, SLOWithSummaryResponse } from '@kbn/slo-schema';
import { euiLightVars } from '@kbn/ui-theme';
@@ -15,16 +15,17 @@ import { toCalendarAlignedMomentUnitOfTime } from '../../../../utils/slo/duratio
import { toDurationLabel } from '../../../../utils/slo/labels';
export interface Props {
+ color?: EuiBadgeProps['color'];
slo: SLOWithSummaryResponse;
}
-export function SloTimeWindowBadge({ slo }: Props) {
+export function SloTimeWindowBadge({ slo, color }: Props) {
const unit = slo.timeWindow.duration.slice(-1);
if (rollingTimeWindowTypeSchema.is(slo.timeWindow.type)) {
return (
@@ -45,7 +46,7 @@ export function SloTimeWindowBadge({ slo }: Props) {
return (
-
+
{i18n.translate('xpack.observability.slo.slo.timeWindow.calendar', {
defaultMessage: '{elapsed}/{total} days',
values: {
diff --git a/x-pack/plugins/observability/public/pages/slos/components/card_view/cards_per_row.tsx b/x-pack/plugins/observability/public/pages/slos/components/card_view/cards_per_row.tsx
new file mode 100644
index 0000000000000..04e787d7b3536
--- /dev/null
+++ b/x-pack/plugins/observability/public/pages/slos/components/card_view/cards_per_row.tsx
@@ -0,0 +1,49 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import React, { useEffect } from 'react';
+import { FormattedMessage } from '@kbn/i18n-react';
+import { EuiFormRow, EuiSelect } from '@elastic/eui';
+import useLocalStorage from 'react-use/lib/useLocalStorage';
+
+export const SLO_CARD_VIEW_PER_ROW_SIZE = 'slo-card-view-per-row-size';
+
+export function CardsPerRow({
+ setCardsPerRow,
+}: {
+ setCardsPerRow: (cardsPerRow?: string) => void;
+}) {
+ const [value, setValue] = useLocalStorage(SLO_CARD_VIEW_PER_ROW_SIZE, '3');
+
+ useEffect(() => {
+ setCardsPerRow(value);
+ }, [setCardsPerRow, value]);
+
+ const options = [
+ { value: '3', text: '3' },
+ { value: '4', text: '4' },
+ ];
+
+ return (
+
+ }
+ >
+ setValue(e.target.value)}
+ />
+
+ );
+}
diff --git a/x-pack/plugins/observability/public/pages/slos/components/card_view/slo_card_item.tsx b/x-pack/plugins/observability/public/pages/slos/components/card_view/slo_card_item.tsx
new file mode 100644
index 0000000000000..07ad3caf1fd00
--- /dev/null
+++ b/x-pack/plugins/observability/public/pages/slos/components/card_view/slo_card_item.tsx
@@ -0,0 +1,181 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license 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 { FormattedMessage } from '@kbn/i18n-react';
+import {
+ Chart,
+ isMetricElementEvent,
+ Metric,
+ Settings,
+ DARK_THEME,
+ MetricTrendShape,
+} from '@elastic/charts';
+import { EuiIcon, EuiPanel, useEuiBackgroundColor } from '@elastic/eui';
+import { SLOWithSummaryResponse, HistoricalSummaryResponse, ALL_VALUE } from '@kbn/slo-schema';
+import { Rule } from '@kbn/triggers-actions-ui-plugin/public';
+import { i18n } from '@kbn/i18n';
+import { useSloListActions } from '../../hooks/use_slo_list_actions';
+import { BurnRateRuleFlyout } from '../common/burn_rate_rule_flyout';
+import { formatHistoricalData } from '../../../../utils/slo/chart_data_formatter';
+import { useKibana } from '../../../../utils/kibana_react';
+import { useSloFormattedSummary } from '../../hooks/use_slo_summary';
+import { SloCardItemActions } from './slo_card_item_actions';
+import { SloRule } from '../../../../hooks/slo/use_fetch_rules_for_slo';
+import { SloDeleteConfirmationModal } from '../../../../components/slo/delete_confirmation_modal/slo_delete_confirmation_modal';
+import { SloCardItemBadges } from './slo_card_item_badges';
+
+export interface Props {
+ slo: SLOWithSummaryResponse;
+ rules: Array> | undefined;
+ historicalSummary?: HistoricalSummaryResponse[];
+ historicalSummaryLoading: boolean;
+ activeAlerts?: number;
+ loading: boolean;
+ error: boolean;
+ cardsPerRow: number;
+}
+
+const useCardColor = (status?: SLOWithSummaryResponse['summary']['status']) => {
+ const colors = {
+ DEGRADING: useEuiBackgroundColor('warning'),
+ VIOLATED: useEuiBackgroundColor('danger'),
+ HEALTHY: useEuiBackgroundColor('success'),
+ NO_DATA: useEuiBackgroundColor('subdued'),
+ };
+
+ return colors[status ?? 'NO_DATA'];
+};
+
+const getSubTitle = (slo: SLOWithSummaryResponse, cardsPerRow: number) => {
+ const subTitle =
+ slo.groupBy && slo.groupBy !== ALL_VALUE ? `${slo.groupBy}: ${slo.instanceId}` : '';
+ if (cardsPerRow === 4) {
+ return subTitle.substring(0, 30) + (subTitle.length > 30 ? '..' : '');
+ }
+ return subTitle.substring(0, 40) + (subTitle.length > 40 ? '..' : '');
+};
+
+export function SloCardItem({ slo, rules, activeAlerts, historicalSummary, cardsPerRow }: Props) {
+ const {
+ application: { navigateToUrl },
+ } = useKibana().services;
+
+ const [isMouseOver, setIsMouseOver] = useState(false);
+ const [isActionsPopoverOpen, setIsActionsPopoverOpen] = useState(false);
+ const [isAddRuleFlyoutOpen, setIsAddRuleFlyoutOpen] = useState(false);
+ const [isDeleteConfirmationModalOpen, setDeleteConfirmationModalOpen] = useState(false);
+
+ const { sliValue, sloTarget, sloDetailsUrl } = useSloFormattedSummary(slo);
+
+ const cardColor = useCardColor(slo.summary.status);
+
+ const subTitle = getSubTitle(slo, cardsPerRow);
+
+ const historicalSliData = formatHistoricalData(historicalSummary, 'sli_value');
+
+ const { handleCreateRule, handleDeleteCancel, handleDeleteConfirm } = useSloListActions({
+ slo,
+ setDeleteConfirmationModalOpen,
+ setIsActionsPopoverOpen,
+ setIsAddRuleFlyoutOpen,
+ });
+
+ return (
+ <>
+ {
+ if (!isMouseOver) {
+ setIsMouseOver(true);
+ }
+ }}
+ onMouseLeave={() => {
+ if (isMouseOver) {
+ setIsMouseOver(false);
+ }
+ }}
+ paddingSize="none"
+ style={{
+ height: '182px',
+ overflow: 'hidden',
+ position: 'relative',
+ }}
+ title={slo.summary.status}
+ >
+
+ {
+ if (isMetricElementEvent(d)) {
+ navigateToUrl(sloDetailsUrl);
+ }
+ }}
+ locale={i18n.getLocale()}
+ />
+ ({
+ x: d.key as number,
+ y: d.value as number,
+ })),
+ extra: (
+
+ ),
+ icon: () => ,
+ color: cardColor,
+ },
+ ],
+ ]}
+ />
+
+
+ {(isMouseOver || isActionsPopoverOpen) && (
+
+ )}
+
+
+
+
+ {isDeleteConfirmationModalOpen ? (
+
+ ) : null}
+ >
+ );
+}
diff --git a/x-pack/plugins/observability/public/pages/slos/components/card_view/slo_card_item_actions.tsx b/x-pack/plugins/observability/public/pages/slos/components/card_view/slo_card_item_actions.tsx
new file mode 100644
index 0000000000000..51d1887d433fb
--- /dev/null
+++ b/x-pack/plugins/observability/public/pages/slos/components/card_view/slo_card_item_actions.tsx
@@ -0,0 +1,61 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+import React from 'react';
+import { SLOWithSummaryResponse } from '@kbn/slo-schema';
+import styled from 'styled-components';
+import { useEuiShadow } from '@elastic/eui';
+import { SloItemActions } from '../slo_item_actions';
+
+type PopoverPosition = 'relative' | 'default';
+
+interface ActionContainerProps {
+ boxShadow: string;
+ position: PopoverPosition;
+}
+
+const Container = styled.div`
+ ${({ position }) =>
+ position === 'relative'
+ ? // custom styles used to overlay the popover button on `MetricItem`
+ `
+ display: inline-block;
+ position: relative;
+ bottom: 42px;
+ left: 12px;
+ z-index: 1;
+`
+ : // otherwise, no custom position needed
+ ''}
+
+ border-radius: ${({ theme }) => theme.eui.euiBorderRadius};
+ ${({ boxShadow, position }) => (position === 'relative' ? boxShadow : '')}
+`;
+
+interface Props {
+ slo: SLOWithSummaryResponse;
+ isActionsPopoverOpen: boolean;
+ setIsActionsPopoverOpen: (value: boolean) => void;
+ setDeleteConfirmationModalOpen: (value: boolean) => void;
+ setIsAddRuleFlyoutOpen: (value: boolean) => void;
+}
+
+export function SloCardItemActions(props: Props) {
+ const euiShadow = useEuiShadow('l');
+
+ return (
+
+
+
+ );
+}
diff --git a/x-pack/plugins/observability/public/pages/slos/components/card_view/slo_card_item_badges.tsx b/x-pack/plugins/observability/public/pages/slos/components/card_view/slo_card_item_badges.tsx
new file mode 100644
index 0000000000000..06bc6cf19e0c9
--- /dev/null
+++ b/x-pack/plugins/observability/public/pages/slos/components/card_view/slo_card_item_badges.tsx
@@ -0,0 +1,60 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { SLOWithSummaryResponse } from '@kbn/slo-schema';
+import React from 'react';
+import { Rule } from '@kbn/triggers-actions-ui-plugin/public';
+import styled from 'styled-components';
+import { EuiFlexGroup } from '@elastic/eui';
+import { LoadingBadges } from '../badges/slo_badges';
+import { SloIndicatorTypeBadge } from '../badges/slo_indicator_type_badge';
+import { SloTimeWindowBadge } from '../badges/slo_time_window_badge';
+import { SloActiveAlertsBadge } from '../../../../components/slo/slo_status_badge/slo_active_alerts_badge';
+import { SloRulesBadge } from '../badges/slo_rules_badge';
+import { SloRule } from '../../../../hooks/slo/use_fetch_rules_for_slo';
+
+interface Props {
+ hasGroupBy: boolean;
+ activeAlerts?: number;
+ slo: SLOWithSummaryResponse;
+ rules: Array> | undefined;
+ handleCreateRule: () => void;
+}
+
+const Container = styled.div<{ hasGroupBy: boolean }>`
+ position: absolute;
+ display: inline-block;
+ top: ${({ hasGroupBy }) => (hasGroupBy ? '55px' : '35px')};
+ left: 7px;
+ z-index: 1;
+ border-radius: ${({ theme }) => theme.eui.euiBorderRadius};
+`;
+
+export function SloCardItemBadges({
+ slo,
+ activeAlerts,
+ rules,
+ handleCreateRule,
+ hasGroupBy,
+}: Props) {
+ return (
+
+
+ {!slo.summary ? (
+
+ ) : (
+ <>
+
+
+
+
+ >
+ )}
+
+
+ );
+}
diff --git a/x-pack/plugins/observability/public/pages/slos/components/card_view/slos_card_view.tsx b/x-pack/plugins/observability/public/pages/slos/components/card_view/slos_card_view.tsx
new file mode 100644
index 0000000000000..3768bdbb7dac3
--- /dev/null
+++ b/x-pack/plugins/observability/public/pages/slos/components/card_view/slos_card_view.tsx
@@ -0,0 +1,86 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import React from 'react';
+import { EuiFlexGrid, EuiFlexItem, EuiPanel, EuiSkeletonText } from '@elastic/eui';
+import { SLOWithSummaryResponse, ALL_VALUE } from '@kbn/slo-schema';
+import { EuiFlexGridProps } from '@elastic/eui/src/components/flex/flex_grid';
+import { ActiveAlerts } from '../../../../hooks/slo/use_fetch_active_alerts';
+import type { UseFetchRulesForSloResponse } from '../../../../hooks/slo/use_fetch_rules_for_slo';
+import { useFetchHistoricalSummary } from '../../../../hooks/slo/use_fetch_historical_summary';
+import { SloCardItem } from './slo_card_item';
+
+export interface Props {
+ sloList: SLOWithSummaryResponse[];
+ loading: boolean;
+ error: boolean;
+ cardsPerRow?: string;
+ activeAlertsBySlo: ActiveAlerts;
+ rulesBySlo?: UseFetchRulesForSloResponse['data'];
+}
+
+export function SloListCardView({
+ sloList,
+ loading,
+ error,
+ cardsPerRow,
+ rulesBySlo,
+ activeAlertsBySlo,
+}: Props) {
+ const { isLoading: historicalSummaryLoading, data: historicalSummaries = [] } =
+ useFetchHistoricalSummary({
+ list: sloList.map((slo) => ({ sloId: slo.id, instanceId: slo.instanceId ?? ALL_VALUE })),
+ });
+
+ if (loading && sloList.length === 0) {
+ return ;
+ }
+
+ return (
+
+ {sloList.map((slo) => (
+
+
+ historicalSummary.sloId === slo.id &&
+ historicalSummary.instanceId === (slo.instanceId ?? ALL_VALUE)
+ )?.data
+ }
+ historicalSummaryLoading={historicalSummaryLoading}
+ cardsPerRow={Number(cardsPerRow)}
+ />
+
+ ))}
+
+ );
+}
+
+function LoadingSloGrid({ gridSize }: { gridSize: number }) {
+ const ROWS = 4;
+ const COLUMNS = gridSize;
+ const loaders = Array(ROWS * COLUMNS).fill(null);
+ return (
+ <>
+
+ {loaders.map((_, i) => (
+
+
+
+ {' '}
+
+ ))}
+
+ >
+ );
+}
diff --git a/x-pack/plugins/observability/public/pages/slos/components/common/burn_rate_rule_flyout.tsx b/x-pack/plugins/observability/public/pages/slos/components/common/burn_rate_rule_flyout.tsx
new file mode 100644
index 0000000000000..a02730231ae5f
--- /dev/null
+++ b/x-pack/plugins/observability/public/pages/slos/components/common/burn_rate_rule_flyout.tsx
@@ -0,0 +1,51 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import React from 'react';
+import { SLOWithSummaryResponse } from '@kbn/slo-schema';
+import { useQueryClient } from '@tanstack/react-query';
+import { useGetFilteredRuleTypes } from '../../../../hooks/use_get_filtered_rule_types';
+import { sloKeys } from '../../../../hooks/slo/query_key_factory';
+import { useKibana } from '../../../../utils/kibana_react';
+import { SLO_BURN_RATE_RULE_TYPE_ID } from '../../../../../common/constants';
+import { sloFeatureId } from '../../../../../common';
+
+export function BurnRateRuleFlyout({
+ slo,
+ isAddRuleFlyoutOpen,
+ setIsAddRuleFlyoutOpen,
+}: {
+ slo: SLOWithSummaryResponse;
+ isAddRuleFlyoutOpen: boolean;
+ setIsAddRuleFlyoutOpen: (value: boolean) => void;
+}) {
+ const {
+ triggersActionsUi: { getAddRuleFlyout: AddRuleFlyout },
+ } = useKibana().services;
+
+ const filteredRuleTypes = useGetFilteredRuleTypes();
+
+ const queryClient = useQueryClient();
+
+ const handleSavedRule = async () => {
+ queryClient.invalidateQueries({ queryKey: sloKeys.rules(), exact: false });
+ };
+
+ return isAddRuleFlyoutOpen ? (
+ {
+ setIsAddRuleFlyoutOpen(false);
+ }}
+ useRuleProducer
+ />
+ ) : null;
+}
diff --git a/x-pack/plugins/observability/public/pages/slos/components/slo_item_actions.tsx b/x-pack/plugins/observability/public/pages/slos/components/slo_item_actions.tsx
new file mode 100644
index 0000000000000..4fb03968d40a0
--- /dev/null
+++ b/x-pack/plugins/observability/public/pages/slos/components/slo_item_actions.tsx
@@ -0,0 +1,217 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+import {
+ EuiButtonIcon,
+ EuiContextMenuItem,
+ EuiContextMenuPanel,
+ EuiPopover,
+ EuiButtonIconProps,
+ useEuiShadow,
+ EuiPanel,
+} from '@elastic/eui';
+import { i18n } from '@kbn/i18n';
+import React from 'react';
+import { ALL_VALUE, SLOWithSummaryResponse } from '@kbn/slo-schema';
+import styled from 'styled-components';
+import { useCapabilities } from '../../../hooks/slo/use_capabilities';
+import { useCloneSlo } from '../../../hooks/slo/use_clone_slo';
+import { useKibana } from '../../../utils/kibana_react';
+import { paths } from '../../../../common/locators/paths';
+import { RulesParams } from '../../../locators/rules';
+import { rulesLocatorID } from '../../../../common';
+import {
+ transformCreateSLOFormToCreateSLOInput,
+ transformSloResponseToCreateSloForm,
+} from '../../slo_edit/helpers/process_slo_form_values';
+
+interface Props {
+ slo: SLOWithSummaryResponse;
+ isActionsPopoverOpen: boolean;
+ setIsActionsPopoverOpen: (value: boolean) => void;
+ setDeleteConfirmationModalOpen: (value: boolean) => void;
+ setIsAddRuleFlyoutOpen: (value: boolean) => void;
+ btnProps?: Partial;
+}
+const CustomShadowPanel = styled(EuiPanel)<{ shadow: string }>`
+ ${(props) => props.shadow}
+`;
+
+function IconPanel({ children, hasPanel }: { children: JSX.Element; hasPanel: boolean }) {
+ const shadow = useEuiShadow('s');
+ if (!hasPanel) return children;
+ return (
+
+ {children}
+
+ );
+}
+
+export function SloItemActions({
+ slo,
+ isActionsPopoverOpen,
+ setIsActionsPopoverOpen,
+ setIsAddRuleFlyoutOpen,
+ setDeleteConfirmationModalOpen,
+ btnProps,
+}: Props) {
+ const {
+ application: { navigateToUrl },
+ http: { basePath },
+ share: {
+ url: { locators },
+ },
+ } = useKibana().services;
+ const { hasWriteCapabilities } = useCapabilities();
+ const { mutate: cloneSlo } = useCloneSlo();
+
+ const sloDetailsUrl = basePath.prepend(
+ paths.observability.sloDetails(
+ slo.id,
+ slo.groupBy !== ALL_VALUE && slo.instanceId ? slo.instanceId : undefined
+ )
+ );
+
+ const handleClickActions = () => {
+ setIsActionsPopoverOpen(!isActionsPopoverOpen);
+ };
+
+ const handleViewDetails = () => {
+ navigateToUrl(sloDetailsUrl);
+ };
+
+ const handleEdit = () => {
+ navigateToUrl(basePath.prepend(paths.observability.sloEdit(slo.id)));
+ };
+
+ const handleNavigateToRules = async () => {
+ const locator = locators.get(rulesLocatorID);
+ locator?.navigate({ params: { sloId: slo.id } }, { replace: false });
+ };
+
+ const handleClone = () => {
+ const newSlo = transformCreateSLOFormToCreateSLOInput(
+ transformSloResponseToCreateSloForm({ ...slo, name: `[Copy] ${slo.name}` })!
+ );
+
+ cloneSlo({ slo: newSlo, originalSloId: slo.id });
+ setIsActionsPopoverOpen(false);
+ };
+
+ const handleDelete = () => {
+ setDeleteConfirmationModalOpen(true);
+ setIsActionsPopoverOpen(false);
+ };
+
+ const handleCreateRule = () => {
+ setIsActionsPopoverOpen(false);
+ setIsAddRuleFlyoutOpen(true);
+ };
+
+ const btn = (
+
+ );
+
+ return (
+ {btn} : btn}
+ panelPaddingSize="m"
+ closePopover={handleClickActions}
+ isOpen={isActionsPopoverOpen}
+ >
+
+ {i18n.translate('xpack.observability.slo.item.actions.details', {
+ defaultMessage: 'Details',
+ })}
+ ,
+
+ {i18n.translate('xpack.observability.slo.item.actions.edit', {
+ defaultMessage: 'Edit',
+ })}
+ ,
+
+ {i18n.translate('xpack.observability.slo.item.actions.createRule', {
+ defaultMessage: 'Create new alert rule',
+ })}
+ ,
+
+ {i18n.translate('xpack.observability.slo.item.actions.manageRules', {
+ defaultMessage: 'Manage rules',
+ })}
+ ,
+
+ {i18n.translate('xpack.observability.slo.item.actions.clone', {
+ defaultMessage: 'Clone',
+ })}
+ ,
+
+ {i18n.translate('xpack.observability.slo.item.actions.delete', {
+ defaultMessage: 'Delete',
+ })}
+ ,
+ ]}
+ />
+
+ );
+}
diff --git a/x-pack/plugins/observability/public/pages/slos/components/slo_list.tsx b/x-pack/plugins/observability/public/pages/slos/components/slo_list.tsx
index 380d0100db1a1..ee1fff8e17c1d 100644
--- a/x-pack/plugins/observability/public/pages/slos/components/slo_list.tsx
+++ b/x-pack/plugins/observability/public/pages/slos/components/slo_list.tsx
@@ -8,9 +8,12 @@
import { EuiFlexGroup, EuiFlexItem, EuiPagination } from '@elastic/eui';
import { useIsMutating } from '@tanstack/react-query';
import React, { useState } from 'react';
+import useLocalStorage from 'react-use/lib/useLocalStorage';
+import { SlosView } from './slos_view';
+import { SLO_CARD_VIEW_PER_ROW_SIZE } from './card_view/cards_per_row';
+import { SLOViewType, ToggleSLOView } from './toggle_slo_view';
import { useFetchSloList } from '../../../hooks/slo/use_fetch_slo_list';
import { useUrlSearchState } from '../hooks/use_url_search_state';
-import { SloListItems } from './slo_list_items';
import { SloListSearchBar, SortField } from './slo_list_search_bar';
export interface Props {
@@ -24,6 +27,8 @@ export function SloList({ autoRefresh }: Props) {
const [sort, setSort] = useState(state.sort.by);
const [direction] = useState<'asc' | 'desc'>(state.sort.direction);
+ const [sloView, setSLOView] = useState('cardView');
+
const {
isLoading,
isRefetching,
@@ -43,6 +48,7 @@ export function SloList({ autoRefresh }: Props) {
const isCloningSlo = Boolean(useIsMutating(['cloningSlo']));
const isUpdatingSlo = Boolean(useIsMutating(['updatingSlo']));
const isDeletingSlo = Boolean(useIsMutating(['deleteSlo']));
+ const [cardsPerRow, setCardsPerRow] = useLocalStorage(SLO_CARD_VIEW_PER_ROW_SIZE, '4');
const handlePageClick = (pageNumber: number) => {
setPage(pageNumber);
@@ -71,9 +77,16 @@ export function SloList({ autoRefresh }: Props) {
initialState={state}
/>
-
-
+
+
+
{total > 0 ? (
diff --git a/x-pack/plugins/observability/public/pages/slos/components/slo_list_item.tsx b/x-pack/plugins/observability/public/pages/slos/components/slo_list_item.tsx
index ae843977a0ee7..90757be5dc7a9 100644
--- a/x-pack/plugins/observability/public/pages/slos/components/slo_list_item.tsx
+++ b/x-pack/plugins/observability/public/pages/slos/components/slo_list_item.tsx
@@ -5,37 +5,16 @@
* 2.0.
*/
-import {
- EuiButtonIcon,
- EuiContextMenuItem,
- EuiContextMenuPanel,
- EuiFlexGroup,
- EuiFlexItem,
- EuiPanel,
- EuiPopover,
- EuiText,
-} from '@elastic/eui';
-import { i18n } from '@kbn/i18n';
-import { ALL_VALUE, HistoricalSummaryResponse, SLOWithSummaryResponse } from '@kbn/slo-schema';
+import { EuiFlexGroup, EuiFlexItem, EuiPanel, EuiText } from '@elastic/eui';
+import { HistoricalSummaryResponse, SLOWithSummaryResponse } from '@kbn/slo-schema';
import type { Rule } from '@kbn/triggers-actions-ui-plugin/public';
-import { useQueryClient } from '@tanstack/react-query';
import React, { useState } from 'react';
+import { useSloFormattedSummary } from '../hooks/use_slo_summary';
+import { BurnRateRuleFlyout } from './common/burn_rate_rule_flyout';
+import { useSloListActions } from '../hooks/use_slo_list_actions';
+import { SloItemActions } from './slo_item_actions';
import { SloDeleteConfirmationModal } from '../../../components/slo/delete_confirmation_modal/slo_delete_confirmation_modal';
-import { rulesLocatorID, sloFeatureId } from '../../../../common';
-import { SLO_BURN_RATE_RULE_TYPE_ID } from '../../../../common/constants';
-import { paths } from '../../../../common/locators/paths';
-import { sloKeys } from '../../../hooks/slo/query_key_factory';
-import { useCapabilities } from '../../../hooks/slo/use_capabilities';
-import { useCloneSlo } from '../../../hooks/slo/use_clone_slo';
-import { useDeleteSlo } from '../../../hooks/slo/use_delete_slo';
import type { SloRule } from '../../../hooks/slo/use_fetch_rules_for_slo';
-import { useGetFilteredRuleTypes } from '../../../hooks/use_get_filtered_rule_types';
-import type { RulesParams } from '../../../locators/rules';
-import { useKibana } from '../../../utils/kibana_react';
-import {
- transformCreateSLOFormToCreateSLOInput,
- transformSloResponseToCreateSloForm,
-} from '../../slo_edit/helpers/process_slo_form_values';
import { SloBadges } from './badges/slo_badges';
import { SloSummary } from './slo_summary';
@@ -54,80 +33,18 @@ export function SloListItem({
historicalSummaryLoading,
activeAlerts,
}: SloListItemProps) {
- const {
- application: { navigateToUrl },
- http: { basePath },
- share: {
- url: { locators },
- },
- triggersActionsUi: { getAddRuleFlyout: AddRuleFlyout },
- } = useKibana().services;
- const { hasWriteCapabilities } = useCapabilities();
- const queryClient = useQueryClient();
-
- const filteredRuleTypes = useGetFilteredRuleTypes();
-
- const { mutate: cloneSlo } = useCloneSlo();
- const { mutate: deleteSlo } = useDeleteSlo();
-
const [isActionsPopoverOpen, setIsActionsPopoverOpen] = useState(false);
const [isAddRuleFlyoutOpen, setIsAddRuleFlyoutOpen] = useState(false);
const [isDeleteConfirmationModalOpen, setDeleteConfirmationModalOpen] = useState(false);
- const handleClickActions = () => {
- setIsActionsPopoverOpen(!isActionsPopoverOpen);
- };
-
- const sloDetailsUrl = basePath.prepend(
- paths.observability.sloDetails(
- slo.id,
- slo.groupBy !== ALL_VALUE && slo.instanceId ? slo.instanceId : undefined
- )
- );
- const handleViewDetails = () => {
- navigateToUrl(sloDetailsUrl);
- };
-
- const handleEdit = () => {
- navigateToUrl(basePath.prepend(paths.observability.sloEdit(slo.id)));
- };
-
- const handleCreateRule = () => {
- setIsActionsPopoverOpen(false);
- setIsAddRuleFlyoutOpen(true);
- };
-
- const handleSavedRule = async () => {
- queryClient.invalidateQueries({ queryKey: sloKeys.rules(), exact: false });
- };
+ const { sloDetailsUrl } = useSloFormattedSummary(slo);
- const handleNavigateToRules = async () => {
- const locator = locators.get(rulesLocatorID);
- locator?.navigate({ params: { sloId: slo.id } }, { replace: false });
- };
-
- const handleClone = () => {
- const newSlo = transformCreateSLOFormToCreateSLOInput(
- transformSloResponseToCreateSloForm({ ...slo, name: `[Copy] ${slo.name}` })!
- );
-
- cloneSlo({ slo: newSlo, originalSloId: slo.id });
- setIsActionsPopoverOpen(false);
- };
-
- const handleDelete = () => {
- setDeleteConfirmationModalOpen(true);
- setIsActionsPopoverOpen(false);
- };
-
- const handleDeleteConfirm = () => {
- setDeleteConfirmationModalOpen(false);
- deleteSlo({ id: slo.id, name: slo.name });
- };
-
- const handleDeleteCancel = () => {
- setDeleteConfirmationModalOpen(false);
- };
+ const { handleCreateRule, handleDeleteCancel, handleDeleteConfirm } = useSloListActions({
+ slo,
+ setDeleteConfirmationModalOpen,
+ setIsActionsPopoverOpen,
+ setIsAddRuleFlyoutOpen,
+ });
return (
@@ -172,113 +89,21 @@ export function SloListItem({
{/* ACTIONS */}
-
- }
- panelPaddingSize="m"
- closePopover={handleClickActions}
- isOpen={isActionsPopoverOpen}
- >
-
- {i18n.translate('xpack.observability.slo.item.actions.details', {
- defaultMessage: 'Details',
- })}
- ,
-
- {i18n.translate('xpack.observability.slo.item.actions.edit', {
- defaultMessage: 'Edit',
- })}
- ,
-
- {i18n.translate('xpack.observability.slo.item.actions.createRule', {
- defaultMessage: 'Create new alert rule',
- })}
- ,
-
- {i18n.translate('xpack.observability.slo.item.actions.manageRules', {
- defaultMessage: 'Manage rules',
- })}
- ,
-
- {i18n.translate('xpack.observability.slo.item.actions.clone', {
- defaultMessage: 'Clone',
- })}
- ,
-
- {i18n.translate('xpack.observability.slo.item.actions.delete', {
- defaultMessage: 'Delete',
- })}
- ,
- ]}
- />
-
+
- {isAddRuleFlyoutOpen ? (
- {
- setIsAddRuleFlyoutOpen(false);
- }}
- useRuleProducer
- />
- ) : null}
+
{isDeleteConfirmationModalOpen ? (
= (props: Props) => [slo.id, slo.instanceId ?? ALL_VALUE] as [string, string]
- );
-
- const { data: activeAlertsBySlo } = useFetchActiveAlerts({ sloIdsAndInstanceIds });
- const { data: rulesBySlo } = useFetchRulesForSlo({
- sloIds: sloIdsAndInstanceIds.map((item) => item[0]),
- });
+export function SloListItems({ sloList, activeAlertsBySlo, rulesBySlo }: Props) {
const { isLoading: historicalSummaryLoading, data: historicalSummaries = [] } =
useFetchHistoricalSummary({
list: sloList.map((slo) => ({ sloId: slo.id, instanceId: slo.instanceId ?? ALL_VALUE })),
});
- if (!loading && !error && sloList.length === 0) {
- return ;
- }
- if (!loading && error) {
- return ;
- }
-
return (
{sloList.map((slo) => (
diff --git a/x-pack/plugins/observability/public/pages/slos/components/slo_summary.tsx b/x-pack/plugins/observability/public/pages/slos/components/slo_summary.tsx
index 401118e3c8dfc..77d23d6301aed 100644
--- a/x-pack/plugins/observability/public/pages/slos/components/slo_summary.tsx
+++ b/x-pack/plugins/observability/public/pages/slos/components/slo_summary.tsx
@@ -6,13 +6,11 @@
*/
import React from 'react';
import { EuiFlexGroup, EuiFlexItem, EuiStat } from '@elastic/eui';
-import numeral from '@elastic/numeral';
import { i18n } from '@kbn/i18n';
import { HistoricalSummaryResponse, SLOWithSummaryResponse } from '@kbn/slo-schema';
-import { useKibana } from '../../../utils/kibana_react';
+import { useSloFormattedSummary } from '../hooks/use_slo_summary';
import { formatHistoricalData } from '../../../utils/slo/chart_data_formatter';
-import { NOT_AVAILABLE_LABEL } from '../../../../common/i18n';
import { SloSparkline } from './slo_sparkline';
export interface Props {
@@ -22,18 +20,12 @@ export interface Props {
}
export function SloSummary({ slo, historicalSummary = [], historicalSummaryLoading }: Props) {
- const { uiSettings } = useKibana().services;
- const percentFormat = uiSettings.get('format:percent:defaultPattern');
+ const { sliValue, sloTarget, errorBudgetRemaining } = useSloFormattedSummary(slo);
const isSloFailed = slo.summary.status === 'VIOLATED' || slo.summary.status === 'DEGRADING';
const titleColor = isSloFailed ? 'danger' : '';
const errorBudgetBurnDownData = formatHistoricalData(historicalSummary, 'error_budget_remaining');
const historicalSliData = formatHistoricalData(historicalSummary, 'sli_value');
- const errorBudgetRemaining =
- slo.summary.errorBudget.remaining <= 0
- ? Math.trunc(slo.summary.errorBudget.remaining * 100) / 100
- : slo.summary.errorBudget.remaining;
-
return (
@@ -48,13 +40,9 @@ export function SloSummary({ slo, historicalSummary = [], historicalSummaryLoadi
[slo.id, slo.instanceId ?? ALL_VALUE] as [string, string]
+ );
+
+ const { data: activeAlertsBySlo } = useFetchActiveAlerts({ sloIdsAndInstanceIds });
+ const { data: rulesBySlo } = useFetchRulesForSlo({
+ sloIds: sloIdsAndInstanceIds.map((item) => item[0]),
+ });
+
+ if (!loading && !error && sloList.length === 0) {
+ return ;
+ }
+ if (!loading && error) {
+ return ;
+ }
+
+ return sloView === 'cardView' ? (
+
+
+
+ ) : (
+
+
+
+ );
+}
diff --git a/x-pack/plugins/observability/public/pages/slos/components/toggle_slo_view.tsx b/x-pack/plugins/observability/public/pages/slos/components/toggle_slo_view.tsx
new file mode 100644
index 0000000000000..43b5d849b2e0b
--- /dev/null
+++ b/x-pack/plugins/observability/public/pages/slos/components/toggle_slo_view.tsx
@@ -0,0 +1,97 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import React from 'react';
+import { FormattedMessage } from '@kbn/i18n-react';
+import { i18n } from '@kbn/i18n';
+import {
+ EuiButtonGroup,
+ EuiButtonIcon,
+ EuiFlexGroup,
+ EuiFlexItem,
+ EuiPopover,
+ EuiPopoverTitle,
+} from '@elastic/eui';
+import { CardsPerRow } from './card_view/cards_per_row';
+
+export type SLOViewType = 'cardView' | 'listView';
+
+interface Props {
+ setCardsPerRow: (gridSize?: string) => void;
+ setSLOView: (view: SLOViewType) => void;
+ sloView: SLOViewType;
+}
+const toggleButtonsIcons = [
+ {
+ id: `cardView`,
+ label: 'Card View',
+ iconType: 'visGauge',
+ 'data-test-subj': 'sloCardViewButton',
+ },
+ {
+ id: `listView`,
+ label: 'List View',
+ iconType: 'list',
+ 'data-test-subj': 'sloListViewButton',
+ },
+];
+
+export function ToggleSLOView({ sloView, setSLOView, setCardsPerRow }: Props) {
+ return (
+
+
+ setSLOView(id as SLOViewType)}
+ isIconOnly
+ />
+
+ {sloView === 'cardView' && (
+
+
+
+ )}
+
+ );
+}
+
+function ViewSettings({ setCardsPerRow }: { setCardsPerRow: (cardsPerRow?: string) => void }) {
+ const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);
+
+ return (
+ setIsPopoverOpen(!isPopoverOpen)}
+ />
+ }
+ isOpen={isPopoverOpen}
+ closePopover={() => setIsPopoverOpen(false)}
+ anchorPosition="downCenter"
+ >
+
+
+
+
+
+
+
+ );
+}
diff --git a/x-pack/plugins/observability/public/pages/slos/hooks/use_slo_list_actions.ts b/x-pack/plugins/observability/public/pages/slos/hooks/use_slo_list_actions.ts
new file mode 100644
index 0000000000000..169e1e54c5222
--- /dev/null
+++ b/x-pack/plugins/observability/public/pages/slos/hooks/use_slo_list_actions.ts
@@ -0,0 +1,42 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { SLOWithSummaryResponse } from '@kbn/slo-schema';
+import { useDeleteSlo } from '../../../hooks/slo/use_delete_slo';
+
+export function useSloListActions({
+ slo,
+ setIsAddRuleFlyoutOpen,
+ setIsActionsPopoverOpen,
+ setDeleteConfirmationModalOpen,
+}: {
+ slo: SLOWithSummaryResponse;
+ setIsActionsPopoverOpen: (val: boolean) => void;
+ setIsAddRuleFlyoutOpen: (val: boolean) => void;
+ setDeleteConfirmationModalOpen: (val: boolean) => void;
+}) {
+ const { mutate: deleteSlo } = useDeleteSlo();
+
+ const handleDeleteConfirm = () => {
+ setDeleteConfirmationModalOpen(false);
+ deleteSlo({ id: slo.id, name: slo.name });
+ };
+
+ const handleDeleteCancel = () => {
+ setDeleteConfirmationModalOpen(false);
+ };
+ const handleCreateRule = () => {
+ setIsActionsPopoverOpen(false);
+ setIsAddRuleFlyoutOpen(true);
+ };
+
+ return {
+ handleDeleteConfirm,
+ handleDeleteCancel,
+ handleCreateRule,
+ };
+}
diff --git a/x-pack/plugins/observability/public/pages/slos/hooks/use_slo_summary.ts b/x-pack/plugins/observability/public/pages/slos/hooks/use_slo_summary.ts
new file mode 100644
index 0000000000000..547bd41b4f5db
--- /dev/null
+++ b/x-pack/plugins/observability/public/pages/slos/hooks/use_slo_summary.ts
@@ -0,0 +1,50 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import numeral from '@elastic/numeral';
+import { ALL_VALUE, SLOWithSummaryResponse } from '@kbn/slo-schema';
+import { paths } from '../../../../common/locators/paths';
+import { useKibana } from '../../../utils/kibana_react';
+import { NOT_AVAILABLE_LABEL } from '../../../../common/i18n';
+
+export const useSloFormattedSummary = (slo: SLOWithSummaryResponse) => {
+ const {
+ http: { basePath },
+ } = useKibana().services;
+ const { uiSettings } = useKibana().services;
+ const percentFormat = uiSettings.get('format:percent:defaultPattern');
+
+ const sliValue =
+ slo.summary.status === 'NO_DATA'
+ ? NOT_AVAILABLE_LABEL
+ : numeral(slo.summary.sliValue).format(percentFormat);
+
+ const sloTarget = numeral(slo.objective.target).format(percentFormat);
+ const errorBudgetRemaining =
+ slo.summary.errorBudget.remaining <= 0
+ ? Math.trunc(slo.summary.errorBudget.remaining * 100) / 100
+ : slo.summary.errorBudget.remaining;
+
+ const errorBudgetRemainingTitle =
+ slo.summary.status === 'NO_DATA'
+ ? NOT_AVAILABLE_LABEL
+ : numeral(errorBudgetRemaining).format(percentFormat);
+
+ const sloDetailsUrl = basePath.prepend(
+ paths.observability.sloDetails(
+ slo.id,
+ slo.groupBy !== ALL_VALUE && slo.instanceId ? slo.instanceId : undefined
+ )
+ );
+
+ return {
+ sloDetailsUrl,
+ sliValue,
+ sloTarget,
+ errorBudgetRemaining: errorBudgetRemainingTitle,
+ };
+};
diff --git a/x-pack/plugins/observability/public/pages/slos/hooks/use_url_search_state.ts b/x-pack/plugins/observability/public/pages/slos/hooks/use_url_search_state.ts
index 7a0c03215fb91..aaa87cb921ae6 100644
--- a/x-pack/plugins/observability/public/pages/slos/hooks/use_url_search_state.ts
+++ b/x-pack/plugins/observability/public/pages/slos/hooks/use_url_search_state.ts
@@ -8,6 +8,7 @@
import { useHistory } from 'react-router-dom';
import { createKbnUrlStateStorage } from '@kbn/kibana-utils-plugin/public';
import deepmerge from 'deepmerge';
+import { ViewMode } from '../components/badges/slo_badges';
import type { SortField } from '../components/slo_list_search_bar';
export const SLO_LIST_SEARCH_URL_STORAGE_KEY = 'search';
@@ -19,12 +20,14 @@ export interface SearchState {
by: SortField;
direction: 'asc' | 'desc';
};
+ viewMode: ViewMode;
}
export const DEFAULT_STATE = {
kqlQuery: '',
page: 0,
sort: { by: 'status' as const, direction: 'desc' as const },
+ viewMode: 'compact' as const,
};
export function useUrlSearchState(): {
diff --git a/x-pack/plugins/observability/public/pages/slos/slos.test.tsx b/x-pack/plugins/observability/public/pages/slos/slos.test.tsx
index 3e19b7a466be5..6c63d270ef8e8 100644
--- a/x-pack/plugins/observability/public/pages/slos/slos.test.tsx
+++ b/x-pack/plugins/observability/public/pages/slos/slos.test.tsx
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { act, screen, waitFor } from '@testing-library/react';
+import { act, fireEvent, screen, waitFor } from '@testing-library/react';
import React from 'react';
import { waitForEuiPopoverOpen } from '@elastic/eui/lib/test/rtl';
@@ -211,6 +211,9 @@ describe('SLOs Page', () => {
await act(async () => {
render();
});
+ expect(await screen.findByTestId('sloListViewButton')).toBeTruthy();
+
+ fireEvent.click(screen.getByTestId('sloListViewButton'));
expect(screen.queryByTestId('slosPage')).toBeTruthy();
expect(screen.queryByTestId('sloList')).toBeTruthy();
@@ -229,6 +232,8 @@ describe('SLOs Page', () => {
await act(async () => {
render();
});
+ expect(await screen.findByTestId('sloListViewButton')).toBeTruthy();
+ fireEvent.click(screen.getByTestId('sloListViewButton'));
screen.getAllByLabelText('Actions').at(0)?.click();
@@ -256,7 +261,8 @@ describe('SLOs Page', () => {
await act(async () => {
render();
});
-
+ expect(await screen.findByTestId('sloListViewButton')).toBeTruthy();
+ fireEvent.click(screen.getByTestId('sloListViewButton'));
screen.getAllByLabelText('Actions').at(0)?.click();
await waitForEuiPopoverOpen();
@@ -281,7 +287,8 @@ describe('SLOs Page', () => {
await act(async () => {
render();
});
-
+ expect(await screen.findByTestId('sloListViewButton')).toBeTruthy();
+ fireEvent.click(screen.getByTestId('sloListViewButton'));
screen.getAllByLabelText('Actions').at(0)?.click();
await waitForEuiPopoverOpen();
@@ -307,6 +314,8 @@ describe('SLOs Page', () => {
render();
});
+ expect(await screen.findByTestId('sloListViewButton')).toBeTruthy();
+ fireEvent.click(screen.getByTestId('sloListViewButton'));
screen.getAllByLabelText('Actions').at(0)?.click();
await waitForEuiPopoverOpen();
@@ -337,6 +346,8 @@ describe('SLOs Page', () => {
render();
});
+ expect(await screen.findByTestId('sloListViewButton')).toBeTruthy();
+ fireEvent.click(screen.getByTestId('sloListViewButton'));
screen.getAllByLabelText('Actions').at(0)?.click();
await waitForEuiPopoverOpen();
From 5f9e70c7b111ae1fe1cccca3d618f7cf8cd851ea Mon Sep 17 00:00:00 2001
From: Thomas Watson
Date: Thu, 23 Nov 2023 15:09:30 +0100
Subject: [PATCH 06/24] [Ops] Tighten kibana-tests pipeline permissions
(#171538)
---
catalog-info.yaml | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/catalog-info.yaml b/catalog-info.yaml
index 96b4c146590a6..dbdc1dc24aa03 100644
--- a/catalog-info.yaml
+++ b/catalog-info.yaml
@@ -54,19 +54,9 @@ spec:
provider_settings:
trigger_mode: none
teams:
- kibana-release-operators:
- access_level: MANAGE_BUILD_AND_READ
kibana-operations:
access_level: MANAGE_BUILD_AND_READ
- appex-qa:
- access_level: BUILD_AND_READ
- security-engineering-productivity:
- access_level: BUILD_AND_READ
- fleet:
- access_level: BUILD_AND_READ
- kibana-tech-leads:
- access_level: BUILD_AND_READ
- kibana-core:
+ kibana-release-operators:
access_level: BUILD_AND_READ
cloud-tooling:
access_level: BUILD_AND_READ
From 6905a0fbf75bbc45392d66d07aa8d6b500979924 Mon Sep 17 00:00:00 2001
From: Steph Milovic
Date: Thu, 23 Nov 2023 07:38:35 -0700
Subject: [PATCH 07/24] [Security solution] Fix streaming on cloud (#171578)
---
.../server/lib/gen_ai_token_tracking.ts | 1 +
...get_token_count_from_invoke_stream.test.ts | 96 ++++++--
.../lib/get_token_count_from_invoke_stream.ts | 145 +++++++++++-
.../public/assistant/get_comments/index.tsx | 5 +
.../get_comments/stream/index.test.tsx | 1 +
.../assistant/get_comments/stream/index.tsx | 3 +
.../stream/stream_observable.test.ts | 208 ++++++++++++++++--
.../get_comments/stream/stream_observable.ts | 202 +++++++++++++++--
.../get_comments/stream/use_stream.test.tsx | 19 +-
.../get_comments/stream/use_stream.tsx | 9 +-
.../connector_types/bedrock/bedrock.test.ts | 31 +--
.../server/connector_types/bedrock/bedrock.ts | 30 +--
.../connector_types/openai/openai.test.ts | 49 +----
.../server/connector_types/openai/openai.ts | 47 +---
.../tests/actions/connector_types/bedrock.ts | 54 ++++-
15 files changed, 675 insertions(+), 225 deletions(-)
diff --git a/x-pack/plugins/actions/server/lib/gen_ai_token_tracking.ts b/x-pack/plugins/actions/server/lib/gen_ai_token_tracking.ts
index 7c104177ea36e..866580e8e7b3b 100644
--- a/x-pack/plugins/actions/server/lib/gen_ai_token_tracking.ts
+++ b/x-pack/plugins/actions/server/lib/gen_ai_token_tracking.ts
@@ -42,6 +42,7 @@ export const getGenAiTokenTracking = async ({
try {
const { total, prompt, completion } = await getTokenCountFromInvokeStream({
responseStream: result.data.pipe(new PassThrough()),
+ actionTypeId,
body: (validatedParams as { subActionParams: InvokeBody }).subActionParams,
logger,
});
diff --git a/x-pack/plugins/actions/server/lib/get_token_count_from_invoke_stream.test.ts b/x-pack/plugins/actions/server/lib/get_token_count_from_invoke_stream.test.ts
index 3c0dd66130f3a..2d8f86b881728 100644
--- a/x-pack/plugins/actions/server/lib/get_token_count_from_invoke_stream.test.ts
+++ b/x-pack/plugins/actions/server/lib/get_token_count_from_invoke_stream.test.ts
@@ -7,20 +7,15 @@
import { Transform } from 'stream';
import { getTokenCountFromInvokeStream } from './get_token_count_from_invoke_stream';
import { loggerMock } from '@kbn/logging-mocks';
+import { EventStreamCodec } from '@smithy/eventstream-codec';
+import { fromUtf8, toUtf8 } from '@smithy/util-utf8';
-interface StreamMock {
- write: (data: string) => void;
- fail: () => void;
- complete: () => void;
- transform: Transform;
-}
-
-function createStreamMock(): StreamMock {
+function createStreamMock() {
const transform: Transform = new Transform({});
return {
- write: (data: string) => {
- transform.push(`${data}\n`);
+ write: (data: unknown) => {
+ transform.push(data);
},
fail: () => {
transform.emit('error', new Error('Stream failed'));
@@ -34,7 +29,10 @@ function createStreamMock(): StreamMock {
}
const logger = loggerMock.create();
describe('getTokenCountFromInvokeStream', () => {
- let stream: StreamMock;
+ beforeEach(() => {
+ jest.resetAllMocks();
+ });
+ let stream: ReturnType;
const body = {
messages: [
{
@@ -48,36 +46,79 @@ describe('getTokenCountFromInvokeStream', () => {
],
};
+ const chunk = {
+ object: 'chat.completion.chunk',
+ choices: [
+ {
+ delta: {
+ content: 'Single.',
+ },
+ },
+ ],
+ };
+
const PROMPT_TOKEN_COUNT = 34;
const COMPLETION_TOKEN_COUNT = 2;
+ describe('OpenAI stream', () => {
+ beforeEach(() => {
+ stream = createStreamMock();
+ stream.write(`data: ${JSON.stringify(chunk)}`);
+ });
- beforeEach(() => {
- stream = createStreamMock();
- stream.write('Single');
- });
-
- describe('when a stream completes', () => {
- beforeEach(async () => {
+ it('counts the prompt + completion tokens for OpenAI response', async () => {
stream.complete();
- });
- it('counts the prompt tokens', async () => {
const tokens = await getTokenCountFromInvokeStream({
responseStream: stream.transform,
body,
logger,
+ actionTypeId: '.gen-ai',
});
expect(tokens.prompt).toBe(PROMPT_TOKEN_COUNT);
expect(tokens.completion).toBe(COMPLETION_TOKEN_COUNT);
expect(tokens.total).toBe(PROMPT_TOKEN_COUNT + COMPLETION_TOKEN_COUNT);
});
+ it('resolves the promise with the correct prompt tokens', async () => {
+ const tokenPromise = getTokenCountFromInvokeStream({
+ responseStream: stream.transform,
+ body,
+ logger,
+ actionTypeId: '.gen-ai',
+ });
+
+ stream.fail();
+
+ await expect(tokenPromise).resolves.toEqual({
+ prompt: PROMPT_TOKEN_COUNT,
+ total: PROMPT_TOKEN_COUNT + COMPLETION_TOKEN_COUNT,
+ completion: COMPLETION_TOKEN_COUNT,
+ });
+ expect(logger.error).toHaveBeenCalled();
+ });
});
+ describe('Bedrock stream', () => {
+ beforeEach(() => {
+ stream = createStreamMock();
+ stream.write(encodeBedrockResponse('Simple.'));
+ });
- describe('when a stream fails', () => {
+ it('counts the prompt + completion tokens for OpenAI response', async () => {
+ stream.complete();
+ const tokens = await getTokenCountFromInvokeStream({
+ responseStream: stream.transform,
+ body,
+ logger,
+ actionTypeId: '.bedrock',
+ });
+ expect(tokens.prompt).toBe(PROMPT_TOKEN_COUNT);
+ expect(tokens.completion).toBe(COMPLETION_TOKEN_COUNT);
+ expect(tokens.total).toBe(PROMPT_TOKEN_COUNT + COMPLETION_TOKEN_COUNT);
+ });
it('resolves the promise with the correct prompt tokens', async () => {
const tokenPromise = getTokenCountFromInvokeStream({
responseStream: stream.transform,
body,
logger,
+ actionTypeId: '.bedrock',
});
stream.fail();
@@ -91,3 +132,16 @@ describe('getTokenCountFromInvokeStream', () => {
});
});
});
+
+function encodeBedrockResponse(completion: string) {
+ return new EventStreamCodec(toUtf8, fromUtf8).encode({
+ headers: {},
+ body: Uint8Array.from(
+ Buffer.from(
+ JSON.stringify({
+ bytes: Buffer.from(JSON.stringify({ completion })).toString('base64'),
+ })
+ )
+ ),
+ });
+}
diff --git a/x-pack/plugins/actions/server/lib/get_token_count_from_invoke_stream.ts b/x-pack/plugins/actions/server/lib/get_token_count_from_invoke_stream.ts
index 594fec89d93c0..dfb4bae69f8cf 100644
--- a/x-pack/plugins/actions/server/lib/get_token_count_from_invoke_stream.ts
+++ b/x-pack/plugins/actions/server/lib/get_token_count_from_invoke_stream.ts
@@ -9,6 +9,8 @@ import { Logger } from '@kbn/logging';
import { encode } from 'gpt-tokenizer';
import { Readable } from 'stream';
import { finished } from 'stream/promises';
+import { EventStreamCodec } from '@smithy/eventstream-codec';
+import { fromUtf8, toUtf8 } from '@smithy/util-utf8';
export interface InvokeBody {
messages: Array<{
@@ -26,10 +28,12 @@ export interface InvokeBody {
* @param logger the logger
*/
export async function getTokenCountFromInvokeStream({
+ actionTypeId,
responseStream,
body,
logger,
}: {
+ actionTypeId: string;
responseStream: Readable;
body: InvokeBody;
logger: Logger;
@@ -47,9 +51,37 @@ export async function getTokenCountFromInvokeStream({
.join('\n')
).length;
- let responseBody: string = '';
+ const parser = actionTypeId === '.bedrock' ? parseBedrockStream : parseOpenAIStream;
+ const parsedResponse = await parser(responseStream, logger);
+
+ const completionTokens = encode(parsedResponse).length;
+ return {
+ prompt: promptTokens,
+ completion: completionTokens,
+ total: promptTokens + completionTokens,
+ };
+}
+
+type StreamParser = (responseStream: Readable, logger: Logger) => Promise;
- responseStream.on('data', (chunk: string) => {
+const parseBedrockStream: StreamParser = async (responseStream, logger) => {
+ const responseBuffer: Uint8Array[] = [];
+ responseStream.on('data', (chunk) => {
+ // special encoding for bedrock, do not attempt to convert to string
+ responseBuffer.push(chunk);
+ });
+ try {
+ await finished(responseStream);
+ } catch (e) {
+ logger.error('An error occurred while calculating streaming response tokens');
+ }
+ return parseBedrockBuffer(responseBuffer);
+};
+
+const parseOpenAIStream: StreamParser = async (responseStream, logger) => {
+ let responseBody: string = '';
+ responseStream.on('data', (chunk) => {
+ // no special encoding, can safely use toString and append to responseBody
responseBody += chunk.toString();
});
try {
@@ -57,12 +89,109 @@ export async function getTokenCountFromInvokeStream({
} catch (e) {
logger.error('An error occurred while calculating streaming response tokens');
}
+ return parseOpenAIResponse(responseBody);
+};
- const completionTokens = encode(responseBody).length;
+/**
+ * Parses a Bedrock buffer from an array of chunks.
+ *
+ * @param {Uint8Array[]} chunks - Array of Uint8Array chunks to be parsed.
+ * @returns {string} - Parsed string from the Bedrock buffer.
+ */
+const parseBedrockBuffer = (chunks: Uint8Array[]): string => {
+ // Initialize an empty Uint8Array to store the concatenated buffer.
+ let bedrockBuffer: Uint8Array = new Uint8Array(0);
- return {
- prompt: promptTokens,
- completion: completionTokens,
- total: promptTokens + completionTokens,
- };
+ // Map through each chunk to process the Bedrock buffer.
+ return chunks
+ .map((chunk) => {
+ // Concatenate the current chunk to the existing buffer.
+ bedrockBuffer = concatChunks(bedrockBuffer, chunk);
+ // Get the length of the next message in the buffer.
+ let messageLength = getMessageLength(bedrockBuffer);
+ // Initialize an array to store fully formed message chunks.
+ const buildChunks = [];
+ // Process the buffer until no complete messages are left.
+ while (bedrockBuffer.byteLength > 0 && bedrockBuffer.byteLength >= messageLength) {
+ // Extract a chunk of the specified length from the buffer.
+ const extractedChunk = bedrockBuffer.slice(0, messageLength);
+ // Add the extracted chunk to the array of fully formed message chunks.
+ buildChunks.push(extractedChunk);
+ // Remove the processed chunk from the buffer.
+ bedrockBuffer = bedrockBuffer.slice(messageLength);
+ // Get the length of the next message in the updated buffer.
+ messageLength = getMessageLength(bedrockBuffer);
+ }
+
+ const awsDecoder = new EventStreamCodec(toUtf8, fromUtf8);
+
+ // Decode and parse each message chunk, extracting the 'completion' property.
+ return buildChunks
+ .map((bChunk) => {
+ const event = awsDecoder.decode(bChunk);
+ const body = JSON.parse(
+ Buffer.from(JSON.parse(new TextDecoder().decode(event.body)).bytes, 'base64').toString()
+ );
+ return body.completion;
+ })
+ .join('');
+ })
+ .join('');
+};
+
+/**
+ * Concatenates two Uint8Array buffers.
+ *
+ * @param {Uint8Array} a - First buffer.
+ * @param {Uint8Array} b - Second buffer.
+ * @returns {Uint8Array} - Concatenated buffer.
+ */
+function concatChunks(a: Uint8Array, b: Uint8Array): Uint8Array {
+ const newBuffer = new Uint8Array(a.length + b.length);
+ // Copy the contents of the first buffer to the new buffer.
+ newBuffer.set(a);
+ // Copy the contents of the second buffer to the new buffer starting from the end of the first buffer.
+ newBuffer.set(b, a.length);
+ return newBuffer;
+}
+
+/**
+ * Gets the length of the next message from the buffer.
+ *
+ * @param {Uint8Array} buffer - Buffer containing the message.
+ * @returns {number} - Length of the next message.
+ */
+function getMessageLength(buffer: Uint8Array): number {
+ // If the buffer is empty, return 0.
+ if (buffer.byteLength === 0) return 0;
+ // Create a DataView to read the Uint32 value at the beginning of the buffer.
+ const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
+ // Read and return the Uint32 value (message length).
+ return view.getUint32(0, false);
}
+
+const parseOpenAIResponse = (responseBody: string) =>
+ responseBody
+ .split('\n')
+ .filter((line) => {
+ return line.startsWith('data: ') && !line.endsWith('[DONE]');
+ })
+ .map((line) => {
+ return JSON.parse(line.replace('data: ', ''));
+ })
+ .filter(
+ (
+ line
+ ): line is {
+ choices: Array<{
+ delta: { content?: string; function_call?: { name?: string; arguments: string } };
+ }>;
+ } => {
+ return 'object' in line && line.object === 'chat.completion.chunk';
+ }
+ )
+ .reduce((prev, line) => {
+ const msg = line.choices[0].delta!;
+ prev += msg.content || '';
+ return prev;
+ }, '');
diff --git a/x-pack/plugins/security_solution/public/assistant/get_comments/index.tsx b/x-pack/plugins/security_solution/public/assistant/get_comments/index.tsx
index 3b778013a42d1..d8cfc46ec5a22 100644
--- a/x-pack/plugins/security_solution/public/assistant/get_comments/index.tsx
+++ b/x-pack/plugins/security_solution/public/assistant/get_comments/index.tsx
@@ -66,6 +66,8 @@ export const getComments = ({
regenerateMessage(currentConversation.id);
};
+ const connectorTypeTitle = currentConversation.apiConfig.connectorTypeTitle ?? '';
+
const extraLoadingComment = isFetchingResponse
? [
{
@@ -75,6 +77,7 @@ export const getComments = ({
children: (
;
regenerateMessage: () => void;
transformMessage: (message: string) => ContentMessage;
@@ -29,6 +30,7 @@ interface Props {
export const StreamComment = ({
amendMessage,
content,
+ connectorTypeTitle,
index,
isError = false,
isFetching = false,
@@ -40,6 +42,7 @@ export const StreamComment = ({
const { error, isLoading, isStreaming, pendingMessage, setComplete } = useStream({
amendMessage,
content,
+ connectorTypeTitle,
reader,
isError,
});
diff --git a/x-pack/plugins/security_solution/public/assistant/get_comments/stream/stream_observable.test.ts b/x-pack/plugins/security_solution/public/assistant/get_comments/stream/stream_observable.test.ts
index 764db1b3990ae..54a5684d20442 100644
--- a/x-pack/plugins/security_solution/public/assistant/get_comments/stream/stream_observable.test.ts
+++ b/x-pack/plugins/security_solution/public/assistant/get_comments/stream/stream_observable.test.ts
@@ -9,6 +9,8 @@ import { API_ERROR } from '../translations';
import type { PromptObservableState } from './types';
import { Subject } from 'rxjs';
+import { EventStreamCodec } from '@smithy/eventstream-codec';
+import { fromUtf8, toUtf8 } from '@smithy/util-utf8';
describe('getStreamObservable', () => {
const mockReader = {
read: jest.fn(),
@@ -22,29 +24,102 @@ describe('getStreamObservable', () => {
beforeEach(() => {
jest.clearAllMocks();
});
+ it('should emit loading state and chunks for Bedrock', (done) => {
+ const completeSubject = new Subject();
+ const expectedStates: PromptObservableState[] = [
+ { chunks: [], loading: true },
+ {
+ // when i log the actual emit, chunks equal to message.split(''); test is wrong
+ chunks: ['My', ' new', ' message'],
+ message: 'My',
+ loading: true,
+ },
+ {
+ chunks: ['My', ' new', ' message'],
+ message: 'My new',
+ loading: true,
+ },
+ {
+ chunks: ['My', ' new', ' message'],
+ message: 'My new message',
+ loading: true,
+ },
+ {
+ chunks: ['My', ' new', ' message'],
+ message: 'My new message',
+ loading: false,
+ },
+ ];
- it('should emit loading state and chunks', (done) => {
+ mockReader.read
+ .mockResolvedValueOnce({
+ done: false,
+ value: encodeBedrockResponse('My'),
+ })
+ .mockResolvedValueOnce({
+ done: false,
+ value: encodeBedrockResponse(' new'),
+ })
+ .mockResolvedValueOnce({
+ done: false,
+ value: encodeBedrockResponse(' message'),
+ })
+ .mockResolvedValue({
+ done: true,
+ });
+
+ const source = getStreamObservable({
+ connectorTypeTitle: 'Amazon Bedrock',
+ isError: false,
+ reader: typedReader,
+ setLoading,
+ });
+ const emittedStates: PromptObservableState[] = [];
+
+ source.subscribe({
+ next: (state) => {
+ return emittedStates.push(state);
+ },
+ complete: () => {
+ expect(emittedStates).toEqual(expectedStates);
+ done();
+
+ completeSubject.subscribe({
+ next: () => {
+ expect(setLoading).toHaveBeenCalledWith(false);
+ expect(typedReader.cancel).toHaveBeenCalled();
+ done();
+ },
+ });
+ },
+ error: (err) => done(err),
+ });
+ });
+ it('should emit loading state and chunks for OpenAI', (done) => {
+ const chunk1 = `data: {"object":"chat.completion.chunk","choices":[{"delta":{"content":"My"}}]}\ndata: {"object":"chat.completion.chunk","choices":[{"delta":{"content":" new"}}]}`;
+ const chunk2 = `\ndata: {"object":"chat.completion.chunk","choices":[{"delta":{"content":" message"}}]}\ndata: [DONE]`;
const completeSubject = new Subject();
const expectedStates: PromptObservableState[] = [
{ chunks: [], loading: true },
{
- chunks: ['one chunk ', 'another chunk', ''],
- message: 'one chunk ',
+ // when i log the actual emit, chunks equal to message.split(''); test is wrong
+ chunks: ['My', ' new', ' message'],
+ message: 'My',
loading: true,
},
{
- chunks: ['one chunk ', 'another chunk', ''],
- message: 'one chunk another chunk',
+ chunks: ['My', ' new', ' message'],
+ message: 'My new',
loading: true,
},
{
- chunks: ['one chunk ', 'another chunk', ''],
- message: 'one chunk another chunk',
+ chunks: ['My', ' new', ' message'],
+ message: 'My new message',
loading: true,
},
{
- chunks: ['one chunk ', 'another chunk', ''],
- message: 'one chunk another chunk',
+ chunks: ['My', ' new', ' message'],
+ message: 'My new message',
loading: false,
},
];
@@ -52,11 +127,11 @@ describe('getStreamObservable', () => {
mockReader.read
.mockResolvedValueOnce({
done: false,
- value: new Uint8Array(new TextEncoder().encode(`one chunk `)),
+ value: new Uint8Array(new TextEncoder().encode(chunk1)),
})
.mockResolvedValueOnce({
done: false,
- value: new Uint8Array(new TextEncoder().encode(`another chunk`)),
+ value: new Uint8Array(new TextEncoder().encode(chunk2)),
})
.mockResolvedValueOnce({
done: false,
@@ -66,11 +141,91 @@ describe('getStreamObservable', () => {
done: true,
});
- const source = getStreamObservable(typedReader, setLoading, false);
+ const source = getStreamObservable({
+ connectorTypeTitle: 'OpenAI',
+ isError: false,
+ reader: typedReader,
+ setLoading,
+ });
const emittedStates: PromptObservableState[] = [];
source.subscribe({
- next: (state) => emittedStates.push(state),
+ next: (state) => {
+ return emittedStates.push(state);
+ },
+ complete: () => {
+ expect(emittedStates).toEqual(expectedStates);
+ done();
+
+ completeSubject.subscribe({
+ next: () => {
+ expect(setLoading).toHaveBeenCalledWith(false);
+ expect(typedReader.cancel).toHaveBeenCalled();
+ done();
+ },
+ });
+ },
+ error: (err) => done(err),
+ });
+ });
+ it('should emit loading state and chunks for partial response OpenAI', (done) => {
+ const chunk1 = `data: {"object":"chat.completion.chunk","choices":[{"delta":{"content":"My"}}]}\ndata: {"object":"chat.completion.chunk","choices":[{"delta":{"content":" new"`;
+ const chunk2 = `}}]}\ndata: {"object":"chat.completion.chunk","choices":[{"delta":{"content":" message"}}]}\ndata: [DONE]`;
+ const completeSubject = new Subject();
+ const expectedStates: PromptObservableState[] = [
+ { chunks: [], loading: true },
+ {
+ // when i log the actual emit, chunks equal to message.split(''); test is wrong
+ chunks: ['My', ' new', ' message'],
+ message: 'My',
+ loading: true,
+ },
+ {
+ chunks: ['My', ' new', ' message'],
+ message: 'My new',
+ loading: true,
+ },
+ {
+ chunks: ['My', ' new', ' message'],
+ message: 'My new message',
+ loading: true,
+ },
+ {
+ chunks: ['My', ' new', ' message'],
+ message: 'My new message',
+ loading: false,
+ },
+ ];
+
+ mockReader.read
+ .mockResolvedValueOnce({
+ done: false,
+ value: new Uint8Array(new TextEncoder().encode(chunk1)),
+ })
+ .mockResolvedValueOnce({
+ done: false,
+ value: new Uint8Array(new TextEncoder().encode(chunk2)),
+ })
+ .mockResolvedValueOnce({
+ done: false,
+ value: new Uint8Array(new TextEncoder().encode('')),
+ })
+ .mockResolvedValue({
+ done: true,
+ });
+
+ const source = getStreamObservable({
+ connectorTypeTitle: 'OpenAI',
+ isError: false,
+ reader: typedReader,
+ setLoading,
+ });
+ const emittedStates: PromptObservableState[] = [];
+
+ source.subscribe({
+ next: (state) => {
+ return emittedStates.push(state);
+ },
complete: () => {
expect(emittedStates).toEqual(expectedStates);
done();
@@ -112,7 +267,12 @@ describe('getStreamObservable', () => {
done: true,
});
- const source = getStreamObservable(typedReader, setLoading, true);
+ const source = getStreamObservable({
+ connectorTypeTitle: 'OpenAI',
+ isError: true,
+ reader: typedReader,
+ setLoading,
+ });
const emittedStates: PromptObservableState[] = [];
source.subscribe({
@@ -138,7 +298,12 @@ describe('getStreamObservable', () => {
const error = new Error('Test Error');
// Simulate an error
mockReader.read.mockRejectedValue(error);
- const source = getStreamObservable(typedReader, setLoading, false);
+ const source = getStreamObservable({
+ connectorTypeTitle: 'OpenAI',
+ isError: false,
+ reader: typedReader,
+ setLoading,
+ });
source.subscribe({
next: (state) => {},
@@ -157,3 +322,16 @@ describe('getStreamObservable', () => {
});
});
});
+
+function encodeBedrockResponse(completion: string) {
+ return new EventStreamCodec(toUtf8, fromUtf8).encode({
+ headers: {},
+ body: Uint8Array.from(
+ Buffer.from(
+ JSON.stringify({
+ bytes: Buffer.from(JSON.stringify({ completion })).toString('base64'),
+ })
+ )
+ ),
+ });
+}
diff --git a/x-pack/plugins/security_solution/public/assistant/get_comments/stream/stream_observable.ts b/x-pack/plugins/security_solution/public/assistant/get_comments/stream/stream_observable.ts
index b30be69b82cae..ce7a38811f229 100644
--- a/x-pack/plugins/security_solution/public/assistant/get_comments/stream/stream_observable.ts
+++ b/x-pack/plugins/security_solution/public/assistant/get_comments/stream/stream_observable.ts
@@ -7,10 +7,18 @@
import { concatMap, delay, finalize, Observable, of, scan, timestamp } from 'rxjs';
import type { Dispatch, SetStateAction } from 'react';
-import { API_ERROR } from '../translations';
+import { EventStreamCodec } from '@smithy/eventstream-codec';
+import { fromUtf8, toUtf8 } from '@smithy/util-utf8';
import type { PromptObservableState } from './types';
+import { API_ERROR } from '../translations';
const MIN_DELAY = 35;
+interface StreamObservable {
+ connectorTypeTitle: string;
+ reader: ReadableStreamDefaultReader;
+ setLoading: Dispatch>;
+ isError: boolean;
+}
/**
* Returns an Observable that reads data from a ReadableStream and emits values representing the state of the data processing.
*
@@ -19,52 +27,155 @@ const MIN_DELAY = 35;
* @param isError - indicates whether the reader response is an error message or not
* @returns {Observable} An Observable that emits PromptObservableState
*/
-export const getStreamObservable = (
- reader: ReadableStreamDefaultReader,
- setLoading: Dispatch>,
- isError: boolean
-): Observable =>
+export const getStreamObservable = ({
+ connectorTypeTitle,
+ isError,
+ reader,
+ setLoading,
+}: StreamObservable): Observable =>
new Observable((observer) => {
observer.next({ chunks: [], loading: true });
const decoder = new TextDecoder();
const chunks: string[] = [];
- function read() {
+ // Initialize an empty string to store the OpenAI buffer.
+ let openAIBuffer: string = '';
+
+ // Initialize an empty Uint8Array to store the Bedrock concatenated buffer.
+ let bedrockBuffer: Uint8Array = new Uint8Array(0);
+ function readOpenAI() {
reader
.read()
.then(({ done, value }: { done: boolean; value?: Uint8Array }) => {
try {
if (done) {
+ if (openAIBuffer) {
+ chunks.push(getOpenAIChunks([openAIBuffer])[0]);
+ }
observer.next({
chunks,
- message: getMessageFromChunks(chunks),
+ message: chunks.join(''),
loading: false,
});
observer.complete();
return;
}
+
const decoded = decoder.decode(value);
- const content = isError
- ? // we format errors as {message: string; status_code: number}
- `${API_ERROR}\n\n${JSON.parse(decoded).message}`
- : // all other responses are just strings (handled by subaction invokeStream)
- decoded;
- chunks.push(content);
- observer.next({
- chunks,
- message: getMessageFromChunks(chunks),
- loading: true,
+ let nextChunks;
+ if (isError) {
+ nextChunks = [`${API_ERROR}\n\n${JSON.parse(decoded).message}`];
+ } else {
+ const lines = decoded.split('\n');
+ lines[0] = openAIBuffer + lines[0];
+ openAIBuffer = lines.pop() || '';
+ nextChunks = getOpenAIChunks(lines);
+ }
+ nextChunks.forEach((chunk: string) => {
+ chunks.push(chunk);
+ observer.next({
+ chunks,
+ message: chunks.join(''),
+ loading: true,
+ });
});
} catch (err) {
observer.error(err);
return;
}
- read();
+ readOpenAI();
+ })
+ .catch((err) => {
+ observer.error(err);
+ });
+ }
+ function readBedrock() {
+ reader
+ .read()
+ .then(({ done, value }: { done: boolean; value?: Uint8Array }) => {
+ try {
+ if (done) {
+ observer.next({
+ chunks,
+ message: chunks.join(''),
+ loading: false,
+ });
+ observer.complete();
+ return;
+ }
+
+ let content;
+ if (isError) {
+ content = `${API_ERROR}\n\n${JSON.parse(decoder.decode(value)).message}`;
+ chunks.push(content);
+ observer.next({
+ chunks,
+ message: chunks.join(''),
+ loading: true,
+ });
+ } else if (value != null) {
+ const chunk: Uint8Array = value;
+
+ // Concatenate the current chunk to the existing buffer.
+ bedrockBuffer = concatChunks(bedrockBuffer, chunk);
+ // Get the length of the next message in the buffer.
+ let messageLength = getMessageLength(bedrockBuffer);
+
+ // Initialize an array to store fully formed message chunks.
+ const buildChunks = [];
+ // Process the buffer until no complete messages are left.
+ while (bedrockBuffer.byteLength > 0 && bedrockBuffer.byteLength >= messageLength) {
+ // Extract a chunk of the specified length from the buffer.
+ const extractedChunk = bedrockBuffer.slice(0, messageLength);
+ // Add the extracted chunk to the array of fully formed message chunks.
+ buildChunks.push(extractedChunk);
+ // Remove the processed chunk from the buffer.
+ bedrockBuffer = bedrockBuffer.slice(messageLength);
+ // Get the length of the next message in the updated buffer.
+ messageLength = getMessageLength(bedrockBuffer);
+ }
+
+ const awsDecoder = new EventStreamCodec(toUtf8, fromUtf8);
+ // Decode and parse each message chunk, extracting the 'completion' property.
+ buildChunks.forEach((bChunk) => {
+ const event = awsDecoder.decode(bChunk);
+ const body = JSON.parse(
+ Buffer.from(JSON.parse(decoder.decode(event.body)).bytes, 'base64').toString()
+ );
+ content = body.completion;
+ chunks.push(content);
+ observer.next({
+ chunks,
+ message: chunks.join(''),
+ loading: true,
+ });
+ });
+ }
+ } catch (err) {
+ observer.error(err);
+ return;
+ }
+ readBedrock();
})
.catch((err) => {
observer.error(err);
});
}
- read();
+ // this should never actually happen
+ function badConnector() {
+ observer.next({
+ chunks: [
+ `Invalid connector type - ${connectorTypeTitle} is not a supported GenAI connector.`,
+ ],
+ message: `Invalid connector type - ${connectorTypeTitle} is not a supported GenAI connector.`,
+ loading: false,
+ });
+ observer.complete();
+ }
+
+ if (connectorTypeTitle === 'Amazon Bedrock') readBedrock();
+ else if (connectorTypeTitle === 'OpenAI') readOpenAI();
+ else badConnector();
+
return () => {
reader.cancel();
};
@@ -99,8 +210,55 @@ export const getStreamObservable = (
finalize(() => setLoading(false))
);
-function getMessageFromChunks(chunks: string[]) {
- return chunks.join('');
+/**
+ * Parses an OpenAI response from a string.
+ * @param lines
+ * @returns {string[]} - Parsed string array from the OpenAI response.
+ */
+const getOpenAIChunks = (lines: string[]): string[] => {
+ const nextChunk = lines
+ .map((str) => str.substring(6))
+ .filter((str) => !!str && str !== '[DONE]')
+ .map((line) => {
+ try {
+ const openaiResponse = JSON.parse(line);
+ return openaiResponse.choices[0]?.delta.content ?? '';
+ } catch (err) {
+ return '';
+ }
+ });
+ return nextChunk;
+};
+
+/**
+ * Concatenates two Uint8Array buffers.
+ *
+ * @param {Uint8Array} a - First buffer.
+ * @param {Uint8Array} b - Second buffer.
+ * @returns {Uint8Array} - Concatenated buffer.
+ */
+function concatChunks(a: Uint8Array, b: Uint8Array): Uint8Array {
+ const newBuffer = new Uint8Array(a.length + b.length);
+ // Copy the contents of the first buffer to the new buffer.
+ newBuffer.set(a);
+ // Copy the contents of the second buffer to the new buffer starting from the end of the first buffer.
+ newBuffer.set(b, a.length);
+ return newBuffer;
+}
+
+/**
+ * Gets the length of the next message from the buffer.
+ *
+ * @param {Uint8Array} buffer - Buffer containing the message.
+ * @returns {number} - Length of the next message.
+ */
+function getMessageLength(buffer: Uint8Array): number {
+ // If the buffer is empty, return 0.
+ if (buffer.byteLength === 0) return 0;
+ // Create a DataView to read the Uint32 value at the beginning of the buffer.
+ const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
+ // Read and return the Uint32 value (message length).
+ return view.getUint32(0, false);
}
export const getPlaceholderObservable = () => new Observable();
diff --git a/x-pack/plugins/security_solution/public/assistant/get_comments/stream/use_stream.test.tsx b/x-pack/plugins/security_solution/public/assistant/get_comments/stream/use_stream.test.tsx
index efbc61999f2cc..c4f99884aa045 100644
--- a/x-pack/plugins/security_solution/public/assistant/get_comments/stream/use_stream.test.tsx
+++ b/x-pack/plugins/security_solution/public/assistant/get_comments/stream/use_stream.test.tsx
@@ -11,20 +11,22 @@ import { useStream } from './use_stream';
const amendMessage = jest.fn();
const reader = jest.fn();
const cancel = jest.fn();
+const chunk1 = `data: {"object":"chat.completion.chunk","choices":[{"delta":{"content":"My"}}]}\ndata: {"object":"chat.completion.chunk","choices":[{"delta":{"content":" new"}}]}`;
+const chunk2 = `\ndata: {"object":"chat.completion.chunk","choices":[{"delta":{"content":" message"}}]}\ndata: [DONE]`;
const readerComplete = {
read: reader
.mockResolvedValueOnce({
done: false,
- value: new Uint8Array(new TextEncoder().encode('one chunk ')),
+ value: new Uint8Array(new TextEncoder().encode(chunk1)),
})
.mockResolvedValueOnce({
done: false,
- value: new Uint8Array(new TextEncoder().encode(`another chunk`)),
+ value: new Uint8Array(new TextEncoder().encode(chunk2)),
})
.mockResolvedValueOnce({
done: false,
- value: new Uint8Array(new TextEncoder().encode(``)),
+ value: new Uint8Array(new TextEncoder().encode('')),
})
.mockResolvedValue({
done: true,
@@ -34,7 +36,12 @@ const readerComplete = {
closed: jest.fn().mockResolvedValue(true),
} as unknown as ReadableStreamDefaultReader;
-const defaultProps = { amendMessage, reader: readerComplete, isError: false };
+const defaultProps = {
+ amendMessage,
+ reader: readerComplete,
+ isError: false,
+ connectorTypeTitle: 'OpenAI',
+};
describe('useStream', () => {
beforeEach(() => {
jest.clearAllMocks();
@@ -57,7 +64,7 @@ describe('useStream', () => {
error: undefined,
isLoading: true,
isStreaming: true,
- pendingMessage: 'one chunk ',
+ pendingMessage: 'My',
setComplete: expect.any(Function),
});
});
@@ -67,7 +74,7 @@ describe('useStream', () => {
error: undefined,
isLoading: false,
isStreaming: false,
- pendingMessage: 'one chunk another chunk',
+ pendingMessage: 'My new message',
setComplete: expect.any(Function),
});
});
diff --git a/x-pack/plugins/security_solution/public/assistant/get_comments/stream/use_stream.tsx b/x-pack/plugins/security_solution/public/assistant/get_comments/stream/use_stream.tsx
index 7de06589f87c7..9271758a8558e 100644
--- a/x-pack/plugins/security_solution/public/assistant/get_comments/stream/use_stream.tsx
+++ b/x-pack/plugins/security_solution/public/assistant/get_comments/stream/use_stream.tsx
@@ -7,13 +7,13 @@
import { useCallback, useEffect, useMemo, useState } from 'react';
import type { Subscription } from 'rxjs';
-import { share } from 'rxjs';
import { getPlaceholderObservable, getStreamObservable } from './stream_observable';
interface UseStreamProps {
amendMessage: (message: string) => void;
isError: boolean;
content?: string;
+ connectorTypeTitle: string;
reader?: ReadableStreamDefaultReader;
}
interface UseStream {
@@ -39,6 +39,7 @@ interface UseStream {
export const useStream = ({
amendMessage,
content,
+ connectorTypeTitle,
reader,
isError,
}: UseStreamProps): UseStream => {
@@ -49,9 +50,9 @@ export const useStream = ({
const observer$ = useMemo(
() =>
content == null && reader != null
- ? getStreamObservable(reader, setLoading, isError)
+ ? getStreamObservable({ connectorTypeTitle, reader, setLoading, isError })
: getPlaceholderObservable(),
- [content, isError, reader]
+ [content, isError, reader, connectorTypeTitle]
);
const onCompleteStream = useCallback(() => {
subscription?.unsubscribe();
@@ -66,7 +67,7 @@ export const useStream = ({
}
}, [complete, onCompleteStream]);
useEffect(() => {
- const newSubscription = observer$.pipe(share()).subscribe({
+ const newSubscription = observer$.subscribe({
next: ({ message, loading: isLoading }) => {
setLoading(isLoading);
setPendingMessage(message);
diff --git a/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.test.ts
index 708e8cd4e0364..0eeb309dd2257 100644
--- a/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.test.ts
+++ b/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.test.ts
@@ -5,13 +5,10 @@
* 2.0.
*/
import aws from 'aws4';
-import { Transform } from 'stream';
+import { PassThrough, Transform } from 'stream';
import { BedrockConnector } from './bedrock';
-import { waitFor } from '@testing-library/react';
import { actionsConfigMock } from '@kbn/actions-plugin/server/actions_config.mock';
import { loggingSystemMock } from '@kbn/core-logging-server-mocks';
-import { EventStreamCodec } from '@smithy/eventstream-codec';
-import { fromUtf8, toUtf8 } from '@smithy/util-utf8';
import { actionsMock } from '@kbn/actions-plugin/server/mocks';
import { RunActionResponseSchema, StreamingResponseSchema } from '../../../common/bedrock/schema';
import {
@@ -105,7 +102,7 @@ describe('BedrockConnector', () => {
let stream;
beforeEach(() => {
stream = createStreamMock();
- stream.write(encodeBedrockResponse(mockResponseString));
+ stream.write(new Uint8Array([1, 2, 3]));
mockRequest = jest.fn().mockResolvedValue({ ...mockResponse, data: stream.transform });
// @ts-ignore
connector.request = mockRequest;
@@ -199,16 +196,9 @@ describe('BedrockConnector', () => {
});
});
- it('transforms the response into a string', async () => {
+ it('responds with a readable stream', async () => {
const response = await connector.invokeStream(aiAssistantBody);
-
- let responseBody: string = '';
- response.on('data', (data: string) => {
- responseBody += data.toString();
- });
- await waitFor(() => {
- expect(responseBody).toEqual(mockResponseString);
- });
+ expect(response instanceof PassThrough).toEqual(true);
});
it('errors during API calls are properly handled', async () => {
@@ -364,16 +354,3 @@ function createStreamMock() {
},
};
}
-
-function encodeBedrockResponse(completion: string) {
- return new EventStreamCodec(toUtf8, fromUtf8).encode({
- headers: {},
- body: Uint8Array.from(
- Buffer.from(
- JSON.stringify({
- bytes: Buffer.from(JSON.stringify({ completion })).toString('base64'),
- })
- )
- ),
- });
-}
diff --git a/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.ts b/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.ts
index 70f8e121e1519..ade589e54dc14 100644
--- a/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.ts
+++ b/x-pack/plugins/stack_connectors/server/connector_types/bedrock/bedrock.ts
@@ -9,9 +9,7 @@ import { ServiceParams, SubActionConnector } from '@kbn/actions-plugin/server';
import aws from 'aws4';
import type { AxiosError } from 'axios';
import { IncomingMessage } from 'http';
-import { PassThrough, Transform } from 'stream';
-import { EventStreamCodec } from '@smithy/eventstream-codec';
-import { fromUtf8, toUtf8 } from '@smithy/util-utf8';
+import { PassThrough } from 'stream';
import {
RunActionParamsSchema,
RunActionResponseSchema,
@@ -178,12 +176,12 @@ export class BedrockConnector extends SubActionConnector {
* @param messages An array of messages to be sent to the API
* @param model Optional model to be used for the API request. If not provided, the default model from the connector will be used.
*/
- public async invokeStream({ messages, model }: InvokeAIActionParams): Promise {
+ public async invokeStream({ messages, model }: InvokeAIActionParams): Promise {
const res = (await this.streamApi({
body: JSON.stringify(formatBedrockBody({ messages })),
model,
})) as unknown as IncomingMessage;
- return res.pipe(transformToString());
+ return res;
}
/**
@@ -222,25 +220,3 @@ const formatBedrockBody = ({
stop_sequences: ['\n\nHuman:'],
};
};
-
-/**
- * Takes in a readable stream of data and returns a Transform stream that
- * uses the AWS proprietary codec to parse the proprietary bedrock response into
- * a string of the response text alone, returning the response string to the stream
- */
-const transformToString = () =>
- new Transform({
- transform(chunk, encoding, callback) {
- const encoder = new TextEncoder();
- const decoder = new EventStreamCodec(toUtf8, fromUtf8);
- const event = decoder.decode(chunk);
- const body = JSON.parse(
- Buffer.from(
- JSON.parse(new TextDecoder('utf-8').decode(event.body)).bytes,
- 'base64'
- ).toString()
- );
- const newChunk = encoder.encode(body.completion);
- callback(null, newChunk);
- },
- });
diff --git a/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.test.ts
index 7769dd8592faf..c7d6feb6887ad 100644
--- a/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.test.ts
+++ b/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.test.ts
@@ -17,8 +17,7 @@ import { loggingSystemMock } from '@kbn/core-logging-server-mocks';
import { actionsMock } from '@kbn/actions-plugin/server/mocks';
import { RunActionResponseSchema, StreamingResponseSchema } from '../../../common/openai/schema';
import { initDashboard } from './create_dashboard';
-import { Transform } from 'stream';
-import { waitFor } from '@testing-library/react';
+import { PassThrough, Transform } from 'stream';
jest.mock('./create_dashboard');
describe('OpenAIConnector', () => {
@@ -315,53 +314,11 @@ describe('OpenAIConnector', () => {
await expect(connector.invokeStream(sampleOpenAiBody)).rejects.toThrow('API Error');
});
- it('transforms the response into a string', async () => {
+ it('responds with a readable stream', async () => {
// @ts-ignore
connector.request = mockStream();
const response = await connector.invokeStream(sampleOpenAiBody);
-
- let responseBody: string = '';
- response.on('data', (data: string) => {
- responseBody += data.toString();
- });
- await waitFor(() => {
- expect(responseBody).toEqual('My new');
- });
- });
- it('correctly buffers stream of json lines', async () => {
- const chunk1 = `data: {"object":"chat.completion.chunk","choices":[{"delta":{"content":"My"}}]}\ndata: {"object":"chat.completion.chunk","choices":[{"delta":{"content":" new"}}]}`;
- const chunk2 = `\ndata: {"object":"chat.completion.chunk","choices":[{"delta":{"content":" message"}}]}\ndata: [DONE]`;
-
- // @ts-ignore
- connector.request = mockStream([chunk1, chunk2]);
-
- const response = await connector.invokeStream(sampleOpenAiBody);
-
- let responseBody: string = '';
- response.on('data', (data: string) => {
- responseBody += data.toString();
- });
- await waitFor(() => {
- expect(responseBody).toEqual('My new message');
- });
- });
- it('correctly buffers partial lines', async () => {
- const chunk1 = `data: {"object":"chat.completion.chunk","choices":[{"delta":{"content":"My"}}]}\ndata: {"object":"chat.completion.chunk","choices":[{"delta":{"content":" new"`;
-
- const chunk2 = `}}]}\ndata: {"object":"chat.completion.chunk","choices":[{"delta":{"content":" message"}}]}\ndata: [DONE]`;
-
- // @ts-ignore
- connector.request = mockStream([chunk1, chunk2]);
-
- const response = await connector.invokeStream(sampleOpenAiBody);
-
- let responseBody: string = '';
- response.on('data', (data: string) => {
- responseBody += data.toString();
- });
- await waitFor(() => {
- expect(responseBody).toEqual('My new message');
- });
+ expect(response instanceof PassThrough).toEqual(true);
});
});
diff --git a/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.ts b/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.ts
index 78fca4bd84198..8dfeac0be8502 100644
--- a/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.ts
+++ b/x-pack/plugins/stack_connectors/server/connector_types/openai/openai.ts
@@ -7,8 +7,8 @@
import { ServiceParams, SubActionConnector } from '@kbn/actions-plugin/server';
import type { AxiosError } from 'axios';
-import { PassThrough, Transform } from 'stream';
import { IncomingMessage } from 'http';
+import { PassThrough } from 'stream';
import {
RunActionParamsSchema,
RunActionResponseSchema,
@@ -198,13 +198,13 @@ export class OpenAIConnector extends SubActionConnector {
* the response from the streamApi method and returns the response string alone.
* @param body - the OpenAI Invoke request body
*/
- public async invokeStream(body: InvokeAIActionParams): Promise {
+ public async invokeStream(body: InvokeAIActionParams): Promise {
const res = (await this.streamApi({
body: JSON.stringify(body),
stream: true,
})) as unknown as IncomingMessage;
- return res.pipe(new PassThrough()).pipe(transformToString());
+ return res.pipe(new PassThrough());
}
/**
@@ -229,44 +229,3 @@ export class OpenAIConnector extends SubActionConnector {
};
}
}
-
-/**
- * Takes in a readable stream of data and returns a Transform stream that
- * parses the proprietary OpenAI response into a string of the response text alone,
- * returning the response string to the stream
- */
-const transformToString = () => {
- let lineBuffer: string = '';
- const decoder = new TextDecoder();
-
- return new Transform({
- transform(chunk, encoding, callback) {
- const chunks = decoder.decode(chunk);
- const lines = chunks.split('\n');
- lines[0] = lineBuffer + lines[0];
- lineBuffer = lines.pop() || '';
- callback(null, getNextChunk(lines));
- },
- flush(callback) {
- // Emit an additional chunk with the content of lineBuffer if it has length
- if (lineBuffer.length > 0) {
- callback(null, getNextChunk([lineBuffer]));
- } else {
- callback();
- }
- },
- });
-};
-
-const getNextChunk = (lines: string[]) => {
- const encoder = new TextEncoder();
- const nextChunk = lines
- .map((str) => str.substring(6))
- .filter((str) => !!str && str !== '[DONE]')
- .map((line) => {
- const openaiResponse = JSON.parse(line);
- return openaiResponse.choices[0]?.delta.content ?? '';
- })
- .join('');
- return encoder.encode(nextChunk);
-};
diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/actions/connector_types/bedrock.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/actions/connector_types/bedrock.ts
index 70cdc0f96dfdd..60eb8b6634a35 100644
--- a/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/actions/connector_types/bedrock.ts
+++ b/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/actions/connector_types/bedrock.ts
@@ -13,6 +13,8 @@ import {
} from '@kbn/actions-simulators-plugin/server/bedrock_simulation';
import { DEFAULT_TOKEN_LIMIT } from '@kbn/stack-connectors-plugin/common/bedrock/constants';
import { PassThrough } from 'stream';
+import { EventStreamCodec } from '@smithy/eventstream-codec';
+import { fromUtf8, toUtf8 } from '@smithy/util-utf8';
import { FtrProviderContext } from '../../../../../common/ftr_provider_context';
import { getUrlPrefix, ObjectRemover } from '../../../../../common/lib';
@@ -411,8 +413,6 @@ export default function bedrockTest({ getService }: FtrProviderContext) {
it('should invoke stream with assistant AI body argument formatted to bedrock expectations', async () => {
await new Promise((resolve, reject) => {
- let responseBody: string = '';
-
const passThrough = new PassThrough();
supertest
@@ -434,13 +434,14 @@ export default function bedrockTest({ getService }: FtrProviderContext) {
assistantLangChain: false,
})
.pipe(passThrough);
-
+ const responseBuffer: Uint8Array[] = [];
passThrough.on('data', (chunk) => {
- responseBody += chunk.toString();
+ responseBuffer.push(chunk);
});
passThrough.on('end', () => {
- expect(responseBody).to.eql('Hello world, what a unique string!');
+ const parsed = parseBedrockBuffer(responseBuffer);
+ expect(parsed).to.eql('Hello world, what a unique string!');
resolve();
});
});
@@ -517,3 +518,46 @@ export default function bedrockTest({ getService }: FtrProviderContext) {
});
});
}
+
+const parseBedrockBuffer = (chunks: Uint8Array[]): string => {
+ let bedrockBuffer: Uint8Array = new Uint8Array(0);
+
+ return chunks
+ .map((chunk) => {
+ bedrockBuffer = concatChunks(bedrockBuffer, chunk);
+ let messageLength = getMessageLength(bedrockBuffer);
+ const buildChunks = [];
+ while (bedrockBuffer.byteLength > 0 && bedrockBuffer.byteLength >= messageLength) {
+ const extractedChunk = bedrockBuffer.slice(0, messageLength);
+ buildChunks.push(extractedChunk);
+ bedrockBuffer = bedrockBuffer.slice(messageLength);
+ messageLength = getMessageLength(bedrockBuffer);
+ }
+
+ const awsDecoder = new EventStreamCodec(toUtf8, fromUtf8);
+
+ return buildChunks
+ .map((bChunk) => {
+ const event = awsDecoder.decode(bChunk);
+ const body = JSON.parse(
+ Buffer.from(JSON.parse(new TextDecoder().decode(event.body)).bytes, 'base64').toString()
+ );
+ return body.completion;
+ })
+ .join('');
+ })
+ .join('');
+};
+
+function concatChunks(a: Uint8Array, b: Uint8Array): Uint8Array {
+ const newBuffer = new Uint8Array(a.length + b.length);
+ newBuffer.set(a);
+ newBuffer.set(b, a.length);
+ return newBuffer;
+}
+
+function getMessageLength(buffer: Uint8Array): number {
+ if (buffer.byteLength === 0) return 0;
+ const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
+ return view.getUint32(0, false);
+}
From 0e3351cb1c1aa1687077aba1ca854ba447f54e03 Mon Sep 17 00:00:00 2001
From: Ignacio Rivas
Date: Thu, 23 Nov 2023 16:00:39 +0100
Subject: [PATCH 08/24] [Index Management] Fix bug with long http requests
coming from index actions (#171735)
---
.../common/constants/index.ts | 4 ++
.../store/actions/clear_cache_indices.js | 5 +-
.../store/actions/close_indices.js | 4 +-
.../store/actions/delete_indices.js | 4 +-
.../store/actions/flush_indices.js | 4 +-
.../store/actions/forcemerge_indices.js | 5 +-
.../application/store/actions/open_indices.js | 4 +-
.../store/actions/refresh_indices.js | 4 +-
.../server/routes/api/indices/helpers.test.ts | 54 +++++++++++++++++++
.../server/routes/api/indices/helpers.ts | 53 ++++++++++++++++++
.../api/indices/register_clear_cache_route.ts | 4 +-
.../api/indices/register_close_route.ts | 3 +-
.../api/indices/register_delete_route.ts | 6 ++-
.../api/indices/register_flush_route.ts | 4 +-
.../api/indices/register_forcemerge_route.ts | 4 +-
.../routes/api/indices/register_open_route.ts | 4 +-
.../api/indices/register_refresh_route.ts | 4 +-
.../api/indices/register_reload_route.ts | 24 ++++++++-
.../translations/translations/fr-FR.json | 7 ---
.../translations/translations/ja-JP.json | 7 ---
.../translations/translations/zh-CN.json | 7 ---
21 files changed, 171 insertions(+), 44 deletions(-)
create mode 100644 x-pack/plugins/index_management/server/routes/api/indices/helpers.test.ts
create mode 100644 x-pack/plugins/index_management/server/routes/api/indices/helpers.ts
diff --git a/x-pack/plugins/index_management/common/constants/index.ts b/x-pack/plugins/index_management/common/constants/index.ts
index a41f3d71bc6bc..efe9630a5f238 100644
--- a/x-pack/plugins/index_management/common/constants/index.ts
+++ b/x-pack/plugins/index_management/common/constants/index.ts
@@ -10,6 +10,10 @@ export { API_BASE_PATH, INTERNAL_API_BASE_PATH } from './api_base_path';
export { INVALID_INDEX_PATTERN_CHARS, INVALID_TEMPLATE_NAME_CHARS } from './invalid_characters';
export * from './index_statuses';
+// Since each index can have a max length or 255 characters and the max length of
+// the request is 4096 bytes we can fit a max of 16 indices in a single request.
+export const MAX_INDICES_PER_REQUEST = 16;
+
export {
UIM_APP_NAME,
UIM_APP_LOAD,
diff --git a/x-pack/plugins/index_management/public/application/store/actions/clear_cache_indices.js b/x-pack/plugins/index_management/public/application/store/actions/clear_cache_indices.js
index 09c4988fc27b1..f27c184afea68 100644
--- a/x-pack/plugins/index_management/public/application/store/actions/clear_cache_indices.js
+++ b/x-pack/plugins/index_management/public/application/store/actions/clear_cache_indices.js
@@ -27,8 +27,9 @@ export const clearCacheIndices =
dispatch(reloadIndices(indexNames));
notificationService.showSuccessToast(
i18n.translate('xpack.idxMgmt.clearCacheIndicesAction.successMessage', {
- defaultMessage: 'Successfully cleared cache: [{indexNames}]',
- values: { indexNames: indexNames.join(', ') },
+ defaultMessage:
+ 'Successfully cleared cache for {count, plural, one {# index} other {# indices} }',
+ values: { count: indexNames.length },
})
);
};
diff --git a/x-pack/plugins/index_management/public/application/store/actions/close_indices.js b/x-pack/plugins/index_management/public/application/store/actions/close_indices.js
index a9bedef283ec4..368298a67137e 100644
--- a/x-pack/plugins/index_management/public/application/store/actions/close_indices.js
+++ b/x-pack/plugins/index_management/public/application/store/actions/close_indices.js
@@ -25,8 +25,8 @@ export const closeIndices =
dispatch(reloadIndices(indexNames));
notificationService.showSuccessToast(
i18n.translate('xpack.idxMgmt.closeIndicesAction.successfullyClosedIndicesMessage', {
- defaultMessage: 'Successfully closed: [{indexNames}]',
- values: { indexNames: indexNames.join(', ') },
+ defaultMessage: 'Successfully closed {count, plural, one {# index} other {# indices} }',
+ values: { count: indexNames.length },
})
);
};
diff --git a/x-pack/plugins/index_management/public/application/store/actions/delete_indices.js b/x-pack/plugins/index_management/public/application/store/actions/delete_indices.js
index 2a2f8f0b41092..1b082594f085a 100644
--- a/x-pack/plugins/index_management/public/application/store/actions/delete_indices.js
+++ b/x-pack/plugins/index_management/public/application/store/actions/delete_indices.js
@@ -23,8 +23,8 @@ export const deleteIndices =
}
notificationService.showSuccessToast(
i18n.translate('xpack.idxMgmt.deleteIndicesAction.successfullyDeletedIndicesMessage', {
- defaultMessage: 'Successfully deleted: [{indexNames}]',
- values: { indexNames: indexNames.join(', ') },
+ defaultMessage: 'Successfully deleted {count, plural, one {# index} other {# indices} }',
+ values: { count: indexNames.length },
})
);
dispatch(deleteIndicesSuccess({ indexNames }));
diff --git a/x-pack/plugins/index_management/public/application/store/actions/flush_indices.js b/x-pack/plugins/index_management/public/application/store/actions/flush_indices.js
index 83d4d5d46a3ae..d033f5fbe343e 100644
--- a/x-pack/plugins/index_management/public/application/store/actions/flush_indices.js
+++ b/x-pack/plugins/index_management/public/application/store/actions/flush_indices.js
@@ -26,8 +26,8 @@ export const flushIndices =
dispatch(reloadIndices(indexNames));
notificationService.showSuccessToast(
i18n.translate('xpack.idxMgmt.flushIndicesAction.successfullyFlushedIndicesMessage', {
- defaultMessage: 'Successfully flushed: [{indexNames}]',
- values: { indexNames: indexNames.join(', ') },
+ defaultMessage: 'Successfully flushed {count, plural, one {# index} other {# indices} }',
+ values: { count: indexNames.length },
})
);
};
diff --git a/x-pack/plugins/index_management/public/application/store/actions/forcemerge_indices.js b/x-pack/plugins/index_management/public/application/store/actions/forcemerge_indices.js
index bb3af529f404a..d589ff6dd780f 100644
--- a/x-pack/plugins/index_management/public/application/store/actions/forcemerge_indices.js
+++ b/x-pack/plugins/index_management/public/application/store/actions/forcemerge_indices.js
@@ -28,8 +28,9 @@ export const forcemergeIndices =
i18n.translate(
'xpack.idxMgmt.forceMergeIndicesAction.successfullyForceMergedIndicesMessage',
{
- defaultMessage: 'Successfully force merged: [{indexNames}]',
- values: { indexNames: indexNames.join(', ') },
+ defaultMessage:
+ 'Successfully force merged {count, plural, one {# index} other {# indices} }',
+ values: { count: indexNames.length },
}
)
);
diff --git a/x-pack/plugins/index_management/public/application/store/actions/open_indices.js b/x-pack/plugins/index_management/public/application/store/actions/open_indices.js
index 8d4d0f728d160..53bb9186c2f94 100644
--- a/x-pack/plugins/index_management/public/application/store/actions/open_indices.js
+++ b/x-pack/plugins/index_management/public/application/store/actions/open_indices.js
@@ -26,8 +26,8 @@ export const openIndices =
dispatch(reloadIndices(indexNames));
notificationService.showSuccessToast(
i18n.translate('xpack.idxMgmt.openIndicesAction.successfullyOpenedIndicesMessage', {
- defaultMessage: 'Successfully opened: [{indexNames}]',
- values: { indexNames: indexNames.join(', ') },
+ defaultMessage: 'Successfully opened {count, plural, one {# index} other {# indices} }',
+ values: { count: indexNames.length },
})
);
};
diff --git a/x-pack/plugins/index_management/public/application/store/actions/refresh_indices.js b/x-pack/plugins/index_management/public/application/store/actions/refresh_indices.js
index 56fe892393ea4..574aa18c0282c 100644
--- a/x-pack/plugins/index_management/public/application/store/actions/refresh_indices.js
+++ b/x-pack/plugins/index_management/public/application/store/actions/refresh_indices.js
@@ -26,8 +26,8 @@ export const refreshIndices =
dispatch(reloadIndices(indexNames));
notificationService.showSuccessToast(
i18n.translate('xpack.idxMgmt.refreshIndicesAction.successfullyRefreshedIndicesMessage', {
- defaultMessage: 'Successfully refreshed: [{indexNames}]',
- values: { indexNames: indexNames.join(', ') },
+ defaultMessage: 'Successfully refreshed {count, plural, one {# index} other {# indices} }',
+ values: { count: indexNames.length },
})
);
};
diff --git a/x-pack/plugins/index_management/server/routes/api/indices/helpers.test.ts b/x-pack/plugins/index_management/server/routes/api/indices/helpers.test.ts
new file mode 100644
index 0000000000000..fd44742d26e4c
--- /dev/null
+++ b/x-pack/plugins/index_management/server/routes/api/indices/helpers.test.ts
@@ -0,0 +1,54 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import type { IScopedClusterClient } from '@kbn/core/server';
+
+import { executeAsyncByChunks } from './helpers';
+
+const generateIndices = (count: number) => {
+ const indices = [];
+
+ for (let i = 0; i < count; i++) {
+ indices.push(`index-${i}`);
+ }
+
+ return indices;
+};
+
+const mockClient = {
+ asCurrentUser: {
+ indices: {
+ delete: jest.fn(),
+ },
+ },
+} as unknown as IScopedClusterClient;
+
+describe('executeAsyncByChunks', () => {
+ beforeEach(() => {
+ jest.clearAllMocks();
+ });
+
+ it('should make just one request for one index', async () => {
+ const params = {
+ index: generateIndices(1),
+ };
+
+ await executeAsyncByChunks(params, mockClient, 'delete');
+
+ expect(mockClient.asCurrentUser.indices.delete).toHaveBeenCalledTimes(1);
+ });
+
+ it('should make 2 requests for 32 indices', async () => {
+ const params = {
+ index: generateIndices(32),
+ };
+
+ await executeAsyncByChunks(params, mockClient, 'delete');
+
+ expect(mockClient.asCurrentUser.indices.delete).toHaveBeenCalledTimes(2);
+ });
+});
diff --git a/x-pack/plugins/index_management/server/routes/api/indices/helpers.ts b/x-pack/plugins/index_management/server/routes/api/indices/helpers.ts
new file mode 100644
index 0000000000000..bb04cbd2c15c8
--- /dev/null
+++ b/x-pack/plugins/index_management/server/routes/api/indices/helpers.ts
@@ -0,0 +1,53 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { chunk } from 'lodash';
+
+import type { IScopedClusterClient } from '@kbn/core/server';
+import { MAX_INDICES_PER_REQUEST } from '../../../../common/constants';
+
+// To avoid having to to match method signatures with the client
+// type, we use a generic CallableFn type.
+type CallableFn = (args: Record) => Promise;
+
+export async function executeAsyncByChunks(
+ // Since we are using a key to access the index method, we need
+ // to use a generic type.
+ params: {
+ index: T[];
+ format?: string;
+ expand_wildcards?: string;
+ max_num_segments?: number;
+ },
+ dataClient: IScopedClusterClient,
+ methodName: keyof IScopedClusterClient['asCurrentUser']['indices']
+) {
+ const { index: indices, ...commonParams } = params;
+
+ // When the number of indices is small, we can execute in a single request
+ //
+ // Otherwise we need to split the indices into chunks and execute them in multiple requests because
+ // if we try to execute an action with too many indices that account for a long string in the request
+ // ES will throw an error saying that the HTTP line is too large.
+ if (indices.length <= MAX_INDICES_PER_REQUEST) {
+ await (dataClient.asCurrentUser.indices[methodName] as CallableFn)({
+ ...commonParams,
+ index: indices,
+ });
+ } else {
+ const chunks = chunk(indices, MAX_INDICES_PER_REQUEST);
+
+ await Promise.all(
+ chunks.map((chunkOfIndices) =>
+ (dataClient.asCurrentUser.indices[methodName] as CallableFn)({
+ ...commonParams,
+ index: chunkOfIndices,
+ })
+ )
+ );
+ }
+}
diff --git a/x-pack/plugins/index_management/server/routes/api/indices/register_clear_cache_route.ts b/x-pack/plugins/index_management/server/routes/api/indices/register_clear_cache_route.ts
index a46a23b8fe479..bfedf6f4cb0cf 100644
--- a/x-pack/plugins/index_management/server/routes/api/indices/register_clear_cache_route.ts
+++ b/x-pack/plugins/index_management/server/routes/api/indices/register_clear_cache_route.ts
@@ -9,6 +9,7 @@ import { schema } from '@kbn/config-schema';
import { RouteDependencies } from '../../../types';
import { addBasePath } from '..';
+import { executeAsyncByChunks } from './helpers';
const bodySchema = schema.object({
indices: schema.arrayOf(schema.string()),
@@ -28,7 +29,8 @@ export function registerClearCacheRoute({ router, lib: { handleEsError } }: Rout
};
try {
- await client.asCurrentUser.indices.clearCache(params);
+ await executeAsyncByChunks(params, client, 'clearCache');
+
return response.ok();
} catch (error) {
return handleEsError({ error, response });
diff --git a/x-pack/plugins/index_management/server/routes/api/indices/register_close_route.ts b/x-pack/plugins/index_management/server/routes/api/indices/register_close_route.ts
index 69d33b7fc7999..b83c781f6457d 100644
--- a/x-pack/plugins/index_management/server/routes/api/indices/register_close_route.ts
+++ b/x-pack/plugins/index_management/server/routes/api/indices/register_close_route.ts
@@ -9,6 +9,7 @@ import { schema } from '@kbn/config-schema';
import { RouteDependencies } from '../../../types';
import { addBasePath } from '..';
+import { executeAsyncByChunks } from './helpers';
const bodySchema = schema.object({
indices: schema.arrayOf(schema.string()),
@@ -28,7 +29,7 @@ export function registerCloseRoute({ router, lib: { handleEsError } }: RouteDepe
};
try {
- await client.asCurrentUser.indices.close(params);
+ await executeAsyncByChunks(params, client, 'close');
return response.ok();
} catch (error) {
return handleEsError({ error, response });
diff --git a/x-pack/plugins/index_management/server/routes/api/indices/register_delete_route.ts b/x-pack/plugins/index_management/server/routes/api/indices/register_delete_route.ts
index b72a2059beb1d..b3931c1d56172 100644
--- a/x-pack/plugins/index_management/server/routes/api/indices/register_delete_route.ts
+++ b/x-pack/plugins/index_management/server/routes/api/indices/register_delete_route.ts
@@ -9,6 +9,7 @@ import { schema } from '@kbn/config-schema';
import { RouteDependencies } from '../../../types';
import { addBasePath } from '..';
+import { executeAsyncByChunks } from './helpers';
const bodySchema = schema.object({
indices: schema.arrayOf(schema.string()),
@@ -22,13 +23,14 @@ export function registerDeleteRoute({ router, lib: { handleEsError } }: RouteDep
const { indices = [] } = request.body as typeof bodySchema.type;
const params = {
- expand_wildcards: 'none' as const,
format: 'json',
+ expand_wildcards: 'none' as const,
index: indices,
};
try {
- await client.asCurrentUser.indices.delete(params);
+ await executeAsyncByChunks(params, client, 'delete');
+
return response.ok();
} catch (error) {
return handleEsError({ error, response });
diff --git a/x-pack/plugins/index_management/server/routes/api/indices/register_flush_route.ts b/x-pack/plugins/index_management/server/routes/api/indices/register_flush_route.ts
index cc07b92e70907..6ba8000306fec 100644
--- a/x-pack/plugins/index_management/server/routes/api/indices/register_flush_route.ts
+++ b/x-pack/plugins/index_management/server/routes/api/indices/register_flush_route.ts
@@ -9,6 +9,7 @@ import { schema } from '@kbn/config-schema';
import { RouteDependencies } from '../../../types';
import { addBasePath } from '..';
+import { executeAsyncByChunks } from './helpers';
const bodySchema = schema.object({
indices: schema.arrayOf(schema.string()),
@@ -28,7 +29,8 @@ export function registerFlushRoute({ router, lib: { handleEsError } }: RouteDepe
};
try {
- await client.asCurrentUser.indices.flush(params);
+ await executeAsyncByChunks(params, client, 'flush');
+
return response.ok();
} catch (error) {
return handleEsError({ error, response });
diff --git a/x-pack/plugins/index_management/server/routes/api/indices/register_forcemerge_route.ts b/x-pack/plugins/index_management/server/routes/api/indices/register_forcemerge_route.ts
index af07a7371cf65..ffbe50598f197 100644
--- a/x-pack/plugins/index_management/server/routes/api/indices/register_forcemerge_route.ts
+++ b/x-pack/plugins/index_management/server/routes/api/indices/register_forcemerge_route.ts
@@ -9,6 +9,7 @@ import { schema } from '@kbn/config-schema';
import { RouteDependencies } from '../../../types';
import { addBasePath } from '..';
+import { executeAsyncByChunks } from './helpers';
const bodySchema = schema.object({
indices: schema.arrayOf(schema.string()),
@@ -36,7 +37,8 @@ export function registerForcemergeRoute({ router, lib: { handleEsError } }: Rout
}
try {
- await client.asCurrentUser.indices.forcemerge(params);
+ await executeAsyncByChunks(params, client, 'forcemerge');
+
return response.ok();
} catch (error) {
return handleEsError({ error, response });
diff --git a/x-pack/plugins/index_management/server/routes/api/indices/register_open_route.ts b/x-pack/plugins/index_management/server/routes/api/indices/register_open_route.ts
index dde9e72af39d7..9d0ae0a44b4ec 100644
--- a/x-pack/plugins/index_management/server/routes/api/indices/register_open_route.ts
+++ b/x-pack/plugins/index_management/server/routes/api/indices/register_open_route.ts
@@ -9,6 +9,7 @@ import { schema } from '@kbn/config-schema';
import { RouteDependencies } from '../../../types';
import { addBasePath } from '..';
+import { executeAsyncByChunks } from './helpers';
const bodySchema = schema.object({
indices: schema.arrayOf(schema.string()),
@@ -28,7 +29,8 @@ export function registerOpenRoute({ router, lib: { handleEsError } }: RouteDepen
};
try {
- await client.asCurrentUser.indices.open(params);
+ await executeAsyncByChunks(params, client, 'open');
+
return response.ok();
} catch (error) {
return handleEsError({ error, response });
diff --git a/x-pack/plugins/index_management/server/routes/api/indices/register_refresh_route.ts b/x-pack/plugins/index_management/server/routes/api/indices/register_refresh_route.ts
index 2483cd534b80e..c414a73cd73c1 100644
--- a/x-pack/plugins/index_management/server/routes/api/indices/register_refresh_route.ts
+++ b/x-pack/plugins/index_management/server/routes/api/indices/register_refresh_route.ts
@@ -9,6 +9,7 @@ import { schema } from '@kbn/config-schema';
import { RouteDependencies } from '../../../types';
import { addBasePath } from '..';
+import { executeAsyncByChunks } from './helpers';
const bodySchema = schema.object({
indices: schema.arrayOf(schema.string()),
@@ -28,7 +29,8 @@ export function registerRefreshRoute({ router, lib: { handleEsError } }: RouteDe
};
try {
- await client.asCurrentUser.indices.refresh(params);
+ await executeAsyncByChunks(params, client, 'refresh');
+
return response.ok();
} catch (error) {
return handleEsError({ error, response });
diff --git a/x-pack/plugins/index_management/server/routes/api/indices/register_reload_route.ts b/x-pack/plugins/index_management/server/routes/api/indices/register_reload_route.ts
index 91a04187fc238..d64c6b1013d66 100644
--- a/x-pack/plugins/index_management/server/routes/api/indices/register_reload_route.ts
+++ b/x-pack/plugins/index_management/server/routes/api/indices/register_reload_route.ts
@@ -5,8 +5,10 @@
* 2.0.
*/
+import { chunk } from 'lodash';
import { schema } from '@kbn/config-schema';
+import { MAX_INDICES_PER_REQUEST } from '../../../../common/constants';
import { RouteDependencies } from '../../../types';
import { fetchIndices } from '../../../lib/fetch_indices';
import { addBasePath } from '..';
@@ -30,7 +32,27 @@ export function registerReloadRoute({
const { indexNames = [] } = (request.body as typeof bodySchema.type) ?? {};
try {
- const indices = await fetchIndices({ client, indexDataEnricher, config, indexNames });
+ let indices;
+
+ // When the number of indices is small, we can execute in a single request
+ //
+ // Otherwise we need to split the indices into chunks and execute them in multiple requests because
+ // if we try to execute an action with too many indices that account for a long string in the request
+ // ES will throw an error saying that the HTTP line is too large.
+ if (indexNames.length <= MAX_INDICES_PER_REQUEST) {
+ indices = await fetchIndices({ client, indexDataEnricher, config, indexNames });
+ } else {
+ const chunks = chunk(indexNames, MAX_INDICES_PER_REQUEST);
+
+ indices = (
+ await Promise.all(
+ chunks.map((indexNamesChunk) =>
+ fetchIndices({ client, indexDataEnricher, config, indexNames: indexNamesChunk })
+ )
+ )
+ ).flat();
+ }
+
return response.ok({ body: indices });
} catch (error) {
return handleEsError({ error, response });
diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json
index 401e9b6d8e94e..9c0f8b699540a 100644
--- a/x-pack/plugins/translations/translations/fr-FR.json
+++ b/x-pack/plugins/translations/translations/fr-FR.json
@@ -18621,9 +18621,7 @@
"xpack.grokDebugger.unknownErrorTitle": "Un problème est survenu",
"xpack.idxMgmt.badgeAriaLabel": "{label}. Sélectionnez pour filtrer selon cet élément.",
"xpack.idxMgmt.clearCacheIndicesAction.indexCacheClearedMessage": "Le cache de l'index {indexNames} a été effacé.",
- "xpack.idxMgmt.clearCacheIndicesAction.successMessage": "Le cache a bien été effacé : [{indexNames}]",
"xpack.idxMgmt.closeIndicesAction.indexClosedMessage": "L'index {indexNames} a été fermé.",
- "xpack.idxMgmt.closeIndicesAction.successfullyClosedIndicesMessage": "Fermeture réussie : [{indexNames}]",
"xpack.idxMgmt.componentTemplateDetails.summaryTab.notInUseDescription": "{createLink} un modèle d'index ou {editLink}-en un existant.",
"xpack.idxMgmt.componentTemplateForm.stepLogistics.metaDescription": "Informations arbitraires sur le modèle stockées dans l'état du cluster. {learnMoreLink}",
"xpack.idxMgmt.componentTemplateForm.stepLogistics.metaHelpText": "Utiliser le format JSON : {code}",
@@ -18642,7 +18640,6 @@
"xpack.idxMgmt.deleteDataStreamsConfirmationModal.multipleErrorsNotificationMessageText": "Erreur lors de la suppression de {count} flux de données",
"xpack.idxMgmt.deleteDataStreamsConfirmationModal.successDeleteMultipleNotificationMessageText": "{numSuccesses, plural, one {# flux de données} many {# flux de données} other {# flux de données}} supprimé",
"xpack.idxMgmt.deleteIndicesAction.indexDeletedMessage": "L'index {indexNames} a été supprimé.",
- "xpack.idxMgmt.deleteIndicesAction.successfullyDeletedIndicesMessage": "Suppression réussie : [{indexNames}]",
"xpack.idxMgmt.deleteTemplatesModal.confirmButtonLabel": "Supprimer {numTemplatesToDelete, plural, one {modèle} many {modèles} other {modèles}}",
"xpack.idxMgmt.deleteTemplatesModal.deleteDescription": "Vous êtes sur le point de supprimer {numTemplatesToDelete, plural, one {ce modèle} many {ces modèles} other {ces modèles}} :",
"xpack.idxMgmt.deleteTemplatesModal.modalTitleText": "Supprimer {numTemplatesToDelete, plural, one {modèle} many {# modèles} other {# modèles}}",
@@ -18660,9 +18657,7 @@
"xpack.idxMgmt.enrichPolicyCreate.configurationStep.queryHelpText": "Valeur par défaut : requête {code}.",
"xpack.idxMgmt.enrichPolicyCreate.configurationStep.rangeTypePopOver": "{type} correspond à un nombre, une date ou une plage d'adresses IP.",
"xpack.idxMgmt.flushIndicesAction.indexFlushedMessage": "L'index {indexNames} a été vidé.",
- "xpack.idxMgmt.flushIndicesAction.successfullyFlushedIndicesMessage": "Vidage effectué avec succès : [{indexNames}]",
"xpack.idxMgmt.forceMergeIndicesAction.indexForcemergedMessage": "L'index {indexNames} a fait l'objet d'une fusion forcée.",
- "xpack.idxMgmt.forceMergeIndicesAction.successfullyForceMergedIndicesMessage": "Fusion forcée effectué avec succès : [{indexNames}]",
"xpack.idxMgmt.formWizard.stepAliases.aliasesEditorHelpText": "Utiliser le format JSON : {code}",
"xpack.idxMgmt.formWizard.stepSettings.settingsEditorHelpText": "Utiliser le format JSON : {code}",
"xpack.idxMgmt.goToDiscover.showIndexToolTip": "Afficher {indexName} dans Discover",
@@ -18759,9 +18754,7 @@
"xpack.idxMgmt.mappingsEditor.sourceFieldDescription": "Le champ _source contient le corps du document JSON d'origine qui a été fourni au moment de l'indexation. Vous pouvez nettoyer des champs individuels en définissant ceux à inclure ou exclure du champ _source. {docsLink}",
"xpack.idxMgmt.mappingsEditor.typeField.documentationLinkLabel": "Documentation de {typeName}",
"xpack.idxMgmt.openIndicesAction.indexOpenedMessage": "L'index {indexNames} a été ouvert.",
- "xpack.idxMgmt.openIndicesAction.successfullyOpenedIndicesMessage": "Ouverture réussie : [{indexNames}]",
"xpack.idxMgmt.refreshIndicesAction.indexRefreshedMessage": "L'index {indexNames} a été actualisé.",
- "xpack.idxMgmt.refreshIndicesAction.successfullyRefreshedIndicesMessage": "Actualisation réussie : [{indexNames}]",
"xpack.idxMgmt.templateDetails.summaryTab.indexPatternsDescriptionListTitle": "{numIndexPatterns, plural, one {Modèle} many {Modèles d''indexation manquants} other {Modèles}} d'index",
"xpack.idxMgmt.templateForm.stepLogistics.dataStreamDescription": "Le modèle crée des flux de données au lieu d'index. {docsLink}",
"xpack.idxMgmt.templateForm.stepLogistics.fieldIndexPatternsHelpText": "Les espaces et les caractères {invalidCharactersList} ne sont pas autorisés.",
diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json
index 02d57b484862e..564e643b52a7d 100644
--- a/x-pack/plugins/translations/translations/ja-JP.json
+++ b/x-pack/plugins/translations/translations/ja-JP.json
@@ -18634,9 +18634,7 @@
"xpack.grokDebugger.unknownErrorTitle": "問題が発生しました",
"xpack.idxMgmt.badgeAriaLabel": "{label}。選択すると、これをフィルタリングします。",
"xpack.idxMgmt.clearCacheIndicesAction.indexCacheClearedMessage": "インデックス{indexNames}のキャッシュがクリアされました。",
- "xpack.idxMgmt.clearCacheIndicesAction.successMessage": "キャッシュが削除されました:[{indexNames}]",
"xpack.idxMgmt.closeIndicesAction.indexClosedMessage": "インデックス{indexNames}は閉じられました。",
- "xpack.idxMgmt.closeIndicesAction.successfullyClosedIndicesMessage": "[{indexNames}] がクローズされました",
"xpack.idxMgmt.componentTemplateDetails.summaryTab.notInUseDescription": "インデックステンプレートを{createLink}するか、既存のテンプレートを{editLink}してください。",
"xpack.idxMgmt.componentTemplateForm.stepLogistics.metaDescription": "クラスター状態に格納された、テンプレートに関する任意の情報。{learnMoreLink}",
"xpack.idxMgmt.componentTemplateForm.stepLogistics.metaHelpText": "JSONフォーマットを使用:{code}",
@@ -18655,7 +18653,6 @@
"xpack.idxMgmt.deleteDataStreamsConfirmationModal.multipleErrorsNotificationMessageText": "{count}データストリームの削除エラー",
"xpack.idxMgmt.deleteDataStreamsConfirmationModal.successDeleteMultipleNotificationMessageText": "{numSuccesses, plural, other {#個のデータストリーム}}が削除されました",
"xpack.idxMgmt.deleteIndicesAction.indexDeletedMessage": "インデックス{indexNames}が削除されました。",
- "xpack.idxMgmt.deleteIndicesAction.successfullyDeletedIndicesMessage": "[{indexNames}] が削除されました",
"xpack.idxMgmt.deleteTemplatesModal.confirmButtonLabel": "{numTemplatesToDelete, plural, other {テンプレート}}削除",
"xpack.idxMgmt.deleteTemplatesModal.deleteDescription": "{numTemplatesToDelete, plural, other {これらのテンプレート}}を削除しようとしています:",
"xpack.idxMgmt.deleteTemplatesModal.modalTitleText": "{numTemplatesToDelete, plural, other {#個のテンプレート}}削除",
@@ -18673,9 +18670,7 @@
"xpack.idxMgmt.enrichPolicyCreate.configurationStep.queryHelpText": "デフォルトは{code}クエリです。",
"xpack.idxMgmt.enrichPolicyCreate.configurationStep.rangeTypePopOver": "{type}は、番号、日付、またはIPアドレスの範囲と一致します。",
"xpack.idxMgmt.flushIndicesAction.indexFlushedMessage": "インデックス{indexNames}がフラッシュされました。",
- "xpack.idxMgmt.flushIndicesAction.successfullyFlushedIndicesMessage": "[{indexNames}]がフラッシュされました",
"xpack.idxMgmt.forceMergeIndicesAction.indexForcemergedMessage": "インデックス{indexNames}は強制的にマージされました。",
- "xpack.idxMgmt.forceMergeIndicesAction.successfullyForceMergedIndicesMessage": "[{indexNames}]が強制結合されました",
"xpack.idxMgmt.formWizard.stepAliases.aliasesEditorHelpText": "JSONフォーマットを使用:{code}",
"xpack.idxMgmt.formWizard.stepSettings.settingsEditorHelpText": "JSONフォーマットを使用:{code}",
"xpack.idxMgmt.goToDiscover.showIndexToolTip": "Discoverで{indexName}を表示",
@@ -18772,9 +18767,7 @@
"xpack.idxMgmt.mappingsEditor.sourceFieldDescription": "_source フィールドには、インデックスの時点で指定された元の JSON ドキュメント本文が含まれています。_sourceフィールドに含めるか除外するフィールドを定義することで、_sourceフィールドから個別のフィールドを削除することができます。{docsLink}",
"xpack.idxMgmt.mappingsEditor.typeField.documentationLinkLabel": "{typeName} ドキュメント",
"xpack.idxMgmt.openIndicesAction.indexOpenedMessage": "インデックス{indexNames}は開かれました。",
- "xpack.idxMgmt.openIndicesAction.successfullyOpenedIndicesMessage": "[{indexNames}] が開かれました",
"xpack.idxMgmt.refreshIndicesAction.indexRefreshedMessage": "インデックス{indexNames}は更新されました。",
- "xpack.idxMgmt.refreshIndicesAction.successfullyRefreshedIndicesMessage": "[{indexNames}] が更新されました",
"xpack.idxMgmt.templateDetails.summaryTab.indexPatternsDescriptionListTitle": "インデックス{numIndexPatterns, plural, other {パターン}}",
"xpack.idxMgmt.templateForm.stepLogistics.dataStreamDescription": "テンプレートは、インデックスではなく、データストリームを作成します。{docsLink}",
"xpack.idxMgmt.templateForm.stepLogistics.fieldIndexPatternsHelpText": "スペースと{invalidCharactersList}文字は使用できません。",
diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json
index 3b8d3a72ec401..99db38f64c037 100644
--- a/x-pack/plugins/translations/translations/zh-CN.json
+++ b/x-pack/plugins/translations/translations/zh-CN.json
@@ -18634,9 +18634,7 @@
"xpack.grokDebugger.unknownErrorTitle": "出问题了",
"xpack.idxMgmt.badgeAriaLabel": "{label}。选择以基于其进行筛选。",
"xpack.idxMgmt.clearCacheIndicesAction.indexCacheClearedMessage": "已清除索引 {indexNames} 的缓存。",
- "xpack.idxMgmt.clearCacheIndicesAction.successMessage": "已成功清除缓存:[{indexNames}]",
"xpack.idxMgmt.closeIndicesAction.indexClosedMessage": "索引 {indexNames} 已关闭。",
- "xpack.idxMgmt.closeIndicesAction.successfullyClosedIndicesMessage": "已成功关闭:[{indexNames}]",
"xpack.idxMgmt.componentTemplateDetails.summaryTab.notInUseDescription": "{createLink}索引模板或{editLink}现有索引模板。",
"xpack.idxMgmt.componentTemplateForm.stepLogistics.metaDescription": "有关模板的任意信息,以集群状态存储。{learnMoreLink}",
"xpack.idxMgmt.componentTemplateForm.stepLogistics.metaHelpText": "使用 JSON 格式:{code}",
@@ -18655,7 +18653,6 @@
"xpack.idxMgmt.deleteDataStreamsConfirmationModal.multipleErrorsNotificationMessageText": "删除 {count} 个数据流时出错",
"xpack.idxMgmt.deleteDataStreamsConfirmationModal.successDeleteMultipleNotificationMessageText": "已删除 {numSuccesses, plural, other {# 个数据流}}",
"xpack.idxMgmt.deleteIndicesAction.indexDeletedMessage": "索引 {indexNames} 已删除。",
- "xpack.idxMgmt.deleteIndicesAction.successfullyDeletedIndicesMessage": "已成功删除:[{indexNames}]",
"xpack.idxMgmt.deleteTemplatesModal.confirmButtonLabel": "删除 {numTemplatesToDelete, plural, other {模板}}",
"xpack.idxMgmt.deleteTemplatesModal.deleteDescription": "您即将删除{numTemplatesToDelete, plural, other {以下模板}}:",
"xpack.idxMgmt.deleteTemplatesModal.modalTitleText": "删除 {numTemplatesToDelete, plural, other {# 个模板}}",
@@ -18673,9 +18670,7 @@
"xpack.idxMgmt.enrichPolicyCreate.configurationStep.queryHelpText": "默认为:{code} 查询。",
"xpack.idxMgmt.enrichPolicyCreate.configurationStep.rangeTypePopOver": "{type} 匹配一个数字、日期或 IP 地址范围。",
"xpack.idxMgmt.flushIndicesAction.indexFlushedMessage": "索引 {indexNames} 已清空。",
- "xpack.idxMgmt.flushIndicesAction.successfullyFlushedIndicesMessage": "已成功清空:[{indexNames}]",
"xpack.idxMgmt.forceMergeIndicesAction.indexForcemergedMessage": "已强制合并索引 {indexNames}。",
- "xpack.idxMgmt.forceMergeIndicesAction.successfullyForceMergedIndicesMessage": "已成功强制合并:[{indexNames}]",
"xpack.idxMgmt.formWizard.stepAliases.aliasesEditorHelpText": "使用 JSON 格式:{code}",
"xpack.idxMgmt.formWizard.stepSettings.settingsEditorHelpText": "使用 JSON 格式:{code}",
"xpack.idxMgmt.goToDiscover.showIndexToolTip": "在 Discover 中显示 {indexName}",
@@ -18772,9 +18767,7 @@
"xpack.idxMgmt.mappingsEditor.sourceFieldDescription": "_source 字段包含在索引时提供的原始 JSON 文档正文。单个字段可通过定义哪些字段可以在 _source 字段中包括或排除来进行修剪。{docsLink}",
"xpack.idxMgmt.mappingsEditor.typeField.documentationLinkLabel": "{typeName} 文档",
"xpack.idxMgmt.openIndicesAction.indexOpenedMessage": "索引 {indexNames} 已打开。",
- "xpack.idxMgmt.openIndicesAction.successfullyOpenedIndicesMessage": "已成功打开:[{indexNames}]",
"xpack.idxMgmt.refreshIndicesAction.indexRefreshedMessage": "索引 {indexNames} 已刷新。",
- "xpack.idxMgmt.refreshIndicesAction.successfullyRefreshedIndicesMessage": "已成功刷新:[{indexNames}]",
"xpack.idxMgmt.templateDetails.summaryTab.indexPatternsDescriptionListTitle": "索引{numIndexPatterns, plural, other {模式}}",
"xpack.idxMgmt.templateForm.stepLogistics.dataStreamDescription": "该模板创建数据流,而非索引。{docsLink}",
"xpack.idxMgmt.templateForm.stepLogistics.fieldIndexPatternsHelpText": "不允许使用空格和字符 {invalidCharactersList}。",
From 274b4f4a368673aa988e7e8001c20d626046602f Mon Sep 17 00:00:00 2001
From: Anton Dosov
Date: Thu, 23 Nov 2023 16:12:55 +0100
Subject: [PATCH 09/24] [Serverless] Fix truncation in breadcrumbs (#171770)
## Summary
Fix truncation in breadcrumbs when the header doesn't fit:
https://css-tricks.com/flexbox-truncated-text/
I noticed this issue while working on
https://github.com/elastic/kibana/issues/170758
(look at breadcrumbs)
https://github.com/elastic/kibana/assets/7784120/921339be-c018-4370-be2c-54ced982d0b2
Note: the root breadcrumb will be fixed with EUI update
https://github.com/elastic/eui/pull/7375
---
.../src/ui/project/header.tsx | 20 ++++++++++++++++---
.../impl/src/redirect_app_links.component.tsx | 2 ++
.../impl/src/redirect_app_links.container.tsx | 10 ++++++++--
.../impl/src/redirect_app_links.tsx | 12 +++++++----
.../link/redirect_app/types/index.d.ts | 6 +++++-
5 files changed, 40 insertions(+), 10 deletions(-)
diff --git a/packages/core/chrome/core-chrome-browser-internal/src/ui/project/header.tsx b/packages/core/chrome/core-chrome-browser-internal/src/ui/project/header.tsx
index 30fe35be0b551..80f108c8be784 100644
--- a/packages/core/chrome/core-chrome-browser-internal/src/ui/project/header.tsx
+++ b/packages/core/chrome/core-chrome-browser-internal/src/ui/project/header.tsx
@@ -62,6 +62,17 @@ const getHeaderCss = ({ size }: EuiThemeComputed) => ({
top: 2px;
`,
},
+ leftHeaderSection: css`
+ // needed to enable breadcrumbs truncation
+ min-width: 0;
+ flex-shrink: 1;
+ `,
+ breadcrumbsSectionItem: css`
+ min-width: 0; // needed to enable breadcrumbs truncation
+ `,
+ redirectAppLinksContainer: css`
+ min-width: 0; // needed to enable breadcrumbs truncation
+ `,
});
type HeaderCss = ReturnType;
@@ -181,7 +192,7 @@ export const ProjectHeader = ({
diff --git a/packages/shared-ux/link/redirect_app/impl/src/redirect_app_links.container.tsx b/packages/shared-ux/link/redirect_app/impl/src/redirect_app_links.container.tsx
index 9a069881b2128..da227ab023cbb 100644
--- a/packages/shared-ux/link/redirect_app/impl/src/redirect_app_links.container.tsx
+++ b/packages/shared-ux/link/redirect_app/impl/src/redirect_app_links.container.tsx
@@ -7,6 +7,7 @@
*/
import React, { FC } from 'react';
+import type { RedirectAppLinksComponentProps } from '@kbn/shared-ux-link-redirect-app-types';
import { useServices } from './services';
import { RedirectAppLinks as Component } from './redirect_app_links.component';
@@ -22,6 +23,11 @@ import { RedirectAppLinks as Component } from './redirect_app_links.component';
*
* ```
*/
-export const RedirectAppLinks: FC<{}> = ({ children }) => (
- {children}
+export const RedirectAppLinks: FC> = ({
+ children,
+ ...props
+}) => (
+
+ {children}
+
);
diff --git a/packages/shared-ux/link/redirect_app/impl/src/redirect_app_links.tsx b/packages/shared-ux/link/redirect_app/impl/src/redirect_app_links.tsx
index 2909dcdbda17d..89d8a61531e9b 100644
--- a/packages/shared-ux/link/redirect_app/impl/src/redirect_app_links.tsx
+++ b/packages/shared-ux/link/redirect_app/impl/src/redirect_app_links.tsx
@@ -25,10 +25,11 @@ const isKibanaContract = (services: any): services is RedirectAppLinksKibanaDepe
* with which consumers can wrap their components or solutions.
*/
export const RedirectAppLinks: FC = ({ children, ...props }) => {
- const container = {children};
-
if (isKibanaContract(props)) {
- const { coreStart } = props;
+ const { coreStart, ...containerProps } = props;
+ const container = (
+ {children}
+ );
return (
{container}
@@ -36,7 +37,10 @@ export const RedirectAppLinks: FC = ({ children, ...props
);
}
- const { navigateToUrl, currentAppId } = props;
+ const { navigateToUrl, currentAppId, ...containerProps } = props;
+ const container = (
+ {children}
+ );
return (
{container}
diff --git a/packages/shared-ux/link/redirect_app/types/index.d.ts b/packages/shared-ux/link/redirect_app/types/index.d.ts
index 186e86af89435..01899edea65d3 100644
--- a/packages/shared-ux/link/redirect_app/types/index.d.ts
+++ b/packages/shared-ux/link/redirect_app/types/index.d.ts
@@ -32,7 +32,11 @@ export interface RedirectAppLinksKibanaDependencies {
}
/** Props for the `RedirectAppLinks` component. */
-export type RedirectAppLinksProps = RedirectAppLinksServices | RedirectAppLinksKibanaDependencies;
+export type RedirectAppLinksProps = (
+ | RedirectAppLinksServices
+ | RedirectAppLinksKibanaDependencies
+) &
+ DetailedHTMLProps, HTMLDivElement>;
/** Props for the `RedirectAppLinksComponent`. */
export interface RedirectAppLinksComponentProps
From b2ca784f17411bd562c76766e6f7e56f2226130b Mon Sep 17 00:00:00 2001
From: Marco Liberati
Date: Thu, 23 Nov 2023 16:16:58 +0100
Subject: [PATCH 10/24] [UnifiedFieldList] Fix react errors on ESQL enabled
(#171867)
## Summary
This PR fix some react errors when opening the dataview dropdown due to
some missing keys in JSX.
---
.../unified_search/public/dataview_picker/change_dataview.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/plugins/unified_search/public/dataview_picker/change_dataview.tsx b/src/plugins/unified_search/public/dataview_picker/change_dataview.tsx
index e1565f1ff6b0d..8c35ed21568bb 100644
--- a/src/plugins/unified_search/public/dataview_picker/change_dataview.tsx
+++ b/src/plugins/unified_search/public/dataview_picker/change_dataview.tsx
@@ -215,7 +215,7 @@ export function ChangeDataView({
})}
) : (
-
+
),
);
@@ -336,7 +336,7 @@ export function ChangeDataView({
if (textBasedLanguages?.length) {
panelItems.push(
,
-
+
Date: Thu, 23 Nov 2023 16:39:23 +0100
Subject: [PATCH 11/24] [SecuritySolution] Remove `@kbn/subscription-tracking`
(#171801)
## Summary
The package data isn't needed anymore, so we can remove that package. On
top, it seems like the package was causing some issues.
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
---
.github/CODEOWNERS | 1 -
package.json | 1 -
packages/kbn-subscription-tracking/README.md | 35 ------
packages/kbn-subscription-tracking/index.ts | 17 ---
.../kbn-subscription-tracking/jest.config.js | 13 ---
.../kbn-subscription-tracking/kibana.jsonc | 5 -
packages/kbn-subscription-tracking/mocks.tsx | 28 -----
.../kbn-subscription-tracking/package.json | 6 -
.../src/helpers.test.ts | 45 --------
.../kbn-subscription-tracking/src/helpers.ts | 14 ---
.../src/services.tsx | 70 ------------
.../src/subscription_elements.test.tsx | 108 ------------------
.../src/subscription_elements.tsx | 79 -------------
.../src/use_go_to_subscription.ts | 35 ------
.../src/use_impression.ts | 57 ---------
.../kbn-subscription-tracking/tsconfig.json | 10 --
packages/kbn-subscription-tracking/types.ts | 47 --------
tsconfig.base.json | 8 +-
.../components/subscription_not_allowed.tsx | 13 +--
.../public/test/test_provider.tsx | 9 +-
.../cloud_security_posture/tsconfig.json | 1 -
.../plugins/licensing/public/plugin.test.ts | 65 -----------
x-pack/plugins/licensing/public/plugin.ts | 2 -
x-pack/plugins/licensing/tsconfig.json | 2 -
.../security_solution/public/app/index.tsx | 9 +-
.../security_solution/public/app/types.ts | 2 -
.../insights/related_alerts_upsell.tsx | 19 ++-
.../public/common/mock/test_providers.tsx | 95 ++++++++-------
.../security_solution/public/plugin.tsx | 6 -
.../plugins/security_solution/tsconfig.json | 3 +-
.../public/components/paywall.tsx | 30 +++--
.../public/mocks/story_providers.tsx | 5 +-
.../public/mocks/test_providers.tsx | 13 +--
.../threat_intelligence/public/plugin.tsx | 16 +--
.../plugins/threat_intelligence/tsconfig.json | 3 +-
yarn.lock | 4 -
36 files changed, 95 insertions(+), 781 deletions(-)
delete mode 100644 packages/kbn-subscription-tracking/README.md
delete mode 100644 packages/kbn-subscription-tracking/index.ts
delete mode 100644 packages/kbn-subscription-tracking/jest.config.js
delete mode 100644 packages/kbn-subscription-tracking/kibana.jsonc
delete mode 100644 packages/kbn-subscription-tracking/mocks.tsx
delete mode 100644 packages/kbn-subscription-tracking/package.json
delete mode 100644 packages/kbn-subscription-tracking/src/helpers.test.ts
delete mode 100644 packages/kbn-subscription-tracking/src/helpers.ts
delete mode 100644 packages/kbn-subscription-tracking/src/services.tsx
delete mode 100644 packages/kbn-subscription-tracking/src/subscription_elements.test.tsx
delete mode 100644 packages/kbn-subscription-tracking/src/subscription_elements.tsx
delete mode 100644 packages/kbn-subscription-tracking/src/use_go_to_subscription.ts
delete mode 100644 packages/kbn-subscription-tracking/src/use_impression.ts
delete mode 100644 packages/kbn-subscription-tracking/tsconfig.json
delete mode 100644 packages/kbn-subscription-tracking/types.ts
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 65a6381cb622c..2da7f440baf1e 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -753,7 +753,6 @@ test/server_integration/plugins/status_plugin_b @elastic/kibana-core
packages/kbn-std @elastic/kibana-core
packages/kbn-stdio-dev-helpers @elastic/kibana-operations
packages/kbn-storybook @elastic/kibana-operations
-packages/kbn-subscription-tracking @elastic/security-threat-hunting-investigations
x-pack/plugins/synthetics @elastic/obs-ux-infra_services-team
x-pack/test/alerting_api_integration/common/plugins/task_manager_fixture @elastic/response-ops
x-pack/test/plugin_api_perf/plugins/task_manager_performance @elastic/response-ops
diff --git a/package.json b/package.json
index e49f3041a2138..2f334f54c42e2 100644
--- a/package.json
+++ b/package.json
@@ -750,7 +750,6 @@
"@kbn/status-plugin-a-plugin": "link:test/server_integration/plugins/status_plugin_a",
"@kbn/status-plugin-b-plugin": "link:test/server_integration/plugins/status_plugin_b",
"@kbn/std": "link:packages/kbn-std",
- "@kbn/subscription-tracking": "link:packages/kbn-subscription-tracking",
"@kbn/synthetics-plugin": "link:x-pack/plugins/synthetics",
"@kbn/task-manager-fixture-plugin": "link:x-pack/test/alerting_api_integration/common/plugins/task_manager_fixture",
"@kbn/task-manager-performance-plugin": "link:x-pack/test/plugin_api_perf/plugins/task_manager_performance",
diff --git a/packages/kbn-subscription-tracking/README.md b/packages/kbn-subscription-tracking/README.md
deleted file mode 100644
index 4f84593980881..0000000000000
--- a/packages/kbn-subscription-tracking/README.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# @kbn/subscription-tracking
-
-This package leverages the `@kbn/analytics-client` package to send dedicated subscription tracking events.
-
-It provides a set of React components that automatically track `impression` and `click` events. Consumers of those components need to specify a `subscription context` that gives more details on the type of feature that is advertised and the location of the upsell.
-
-```typescript
-import { SubscriptionLink } from '@kbn/subscription-tracking';
-import type { SubscriptionContext } from '@kbn/subscription-tracking';
-
-const subscriptionContext: SubscriptionContext = {
- feature: 'threat-intelligence',
- source: 'security__threat-intelligence',
-};
-
-export const Paywall = () => {
- return (
-
-
- Upgrade to Platinum to get this feature
-
-
- );
-};
-```
-
-The example above uses a `SubscriptionLink` which is a wrapper of `EuiLink` . So it behaves just like a normal link. Alternatively, upsells can also use a `SubscriptionButton` or `SubscriptionButtonEmpty` which wrap `EuiButton` and `EuiButtonEmpty` respectively.
-
-When the link is mounted, it will send off an `impression` event with the given `subscriptionContext`. That piece of metadata consists of an identifier of the advertised feature (in this case `threat-intelligence`) and the `source` (aka location) of the impression (in this case the `threat-intelligence` page in the `security` solution). `source` follows the following format: `{solution-identifier}__location-identifier`.
-
-There are no special rules for how to name these identifiers but it's good practise to make sure that `feature` has the same value for all upsells advertising the same feature (e.g. use enums for features to prevent spelling mistakes).
-
-Upon interaction with the upsell link/button, a special `click` event is sent, which, again, contains the same subscription context.
-
-If you want to use the `subscription-tracking` elements in your app, you have to set up a `SubscriptionTrackingProvider` in your plugin setup and register the tracking events on startup. Have a look at https://github.com/elastic/kibana/pull/143910 for an example of an integration.
diff --git a/packages/kbn-subscription-tracking/index.ts b/packages/kbn-subscription-tracking/index.ts
deleted file mode 100644
index de17c595918d5..0000000000000
--- a/packages/kbn-subscription-tracking/index.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-
-export * from './src/subscription_elements';
-
-export {
- SubscriptionTrackingContext,
- SubscriptionTrackingProvider,
- registerEvents,
-} from './src/services';
-
-export * from './types';
diff --git a/packages/kbn-subscription-tracking/jest.config.js b/packages/kbn-subscription-tracking/jest.config.js
deleted file mode 100644
index edc1839850dae..0000000000000
--- a/packages/kbn-subscription-tracking/jest.config.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-
-module.exports = {
- preset: '@kbn/test',
- rootDir: '../..',
- roots: ['/packages/kbn-subscription-tracking'],
-};
diff --git a/packages/kbn-subscription-tracking/kibana.jsonc b/packages/kbn-subscription-tracking/kibana.jsonc
deleted file mode 100644
index e165baebfa76b..0000000000000
--- a/packages/kbn-subscription-tracking/kibana.jsonc
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "type": "shared-common",
- "id": "@kbn/subscription-tracking",
- "owner": "@elastic/security-threat-hunting-investigations"
-}
diff --git a/packages/kbn-subscription-tracking/mocks.tsx b/packages/kbn-subscription-tracking/mocks.tsx
deleted file mode 100644
index b918f9bba2828..0000000000000
--- a/packages/kbn-subscription-tracking/mocks.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-
-import React, { FC } from 'react';
-import { analyticsClientMock } from '@kbn/analytics-client/src/mocks';
-
-import { SubscriptionTrackingProvider } from './src/services';
-
-const analyticsClientMockInst = analyticsClientMock.create();
-
-/**
- * Mock for the external services provider. Only use in tests!
- */
-export const MockSubscriptionTrackingProvider: FC = ({ children }) => {
- return (
-
- {children}
-
- );
-};
diff --git a/packages/kbn-subscription-tracking/package.json b/packages/kbn-subscription-tracking/package.json
deleted file mode 100644
index e9dd11b56c81b..0000000000000
--- a/packages/kbn-subscription-tracking/package.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "name": "@kbn/subscription-tracking",
- "private": true,
- "version": "1.0.0",
- "license": "SSPL-1.0 OR Elastic License 2.0"
-}
\ No newline at end of file
diff --git a/packages/kbn-subscription-tracking/src/helpers.test.ts b/packages/kbn-subscription-tracking/src/helpers.test.ts
deleted file mode 100644
index fa000567d35d3..0000000000000
--- a/packages/kbn-subscription-tracking/src/helpers.test.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 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 { isValidContext } from './helpers';
-
-describe('tracking', () => {
- describe('isValidLocation', () => {
- it('identifies correct contexts', () => {
- expect(
- isValidContext({
- feature: 'test',
- source: 'security__test',
- })
- ).toBeTruthy();
- });
-
- it('identifies incorrect contexts', () => {
- expect(
- isValidContext({
- feature: '',
- source: 'security__',
- })
- ).toBeFalsy();
-
- expect(
- isValidContext({
- feature: 'test',
- source: 'security__',
- })
- ).toBeFalsy();
-
- expect(
- isValidContext({
- feature: '',
- source: 'security__test',
- })
- ).toBeFalsy();
- });
- });
-});
diff --git a/packages/kbn-subscription-tracking/src/helpers.ts b/packages/kbn-subscription-tracking/src/helpers.ts
deleted file mode 100644
index 251c0d1c04116..0000000000000
--- a/packages/kbn-subscription-tracking/src/helpers.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-
-import type { SubscriptionContextData } from '../types';
-
-const sourceStringRegEx = /^(\w[\w\-_]*)__(\w[\w\-_]*)$/;
-export function isValidContext(context: SubscriptionContextData): boolean {
- return context.feature.length > 0 && sourceStringRegEx.test(context.source);
-}
diff --git a/packages/kbn-subscription-tracking/src/services.tsx b/packages/kbn-subscription-tracking/src/services.tsx
deleted file mode 100644
index 857bd0b0dcd89..0000000000000
--- a/packages/kbn-subscription-tracking/src/services.tsx
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-
-import React, { FC, useContext } from 'react';
-import type { AnalyticsClient, EventTypeOpts } from '@kbn/analytics-client';
-import { EVENT_NAMES, Services, SubscriptionContextData } from '../types';
-
-export const SubscriptionTrackingContext = React.createContext(null);
-
-/**
- * External services provider
- */
-export const SubscriptionTrackingProvider: FC = ({ children, ...services }) => {
- return (
-
- {children}
-
- );
-};
-
-/**
- * React hook for accessing pre-wired services.
- */
-export function useServices() {
- const context = useContext(SubscriptionTrackingContext);
-
- if (!context) {
- throw new Error(
- 'SubscriptionTrackingContext is missing. Ensure your component or React root is wrapped with SubscriptionTrackingProvider.'
- );
- }
-
- return context;
-}
-
-const subscriptionContextSchema: EventTypeOpts['schema'] = {
- source: {
- type: 'keyword',
- _meta: {
- description:
- 'A human-readable identifier describing the location of the beginning of the subscription flow',
- },
- },
- feature: {
- type: 'keyword',
- _meta: {
- description: 'A human-readable identifier describing the feature that is being promoted',
- },
- },
-};
-
-/**
- * Registers the subscription-specific event types
- */
-export function registerEvents(analyticsClient: Pick) {
- analyticsClient.registerEventType({
- eventType: EVENT_NAMES.IMPRESSION,
- schema: subscriptionContextSchema,
- });
-
- analyticsClient.registerEventType({
- eventType: EVENT_NAMES.CLICK,
- schema: subscriptionContextSchema,
- });
-}
diff --git a/packages/kbn-subscription-tracking/src/subscription_elements.test.tsx b/packages/kbn-subscription-tracking/src/subscription_elements.test.tsx
deleted file mode 100644
index 1795bbf42dd0c..0000000000000
--- a/packages/kbn-subscription-tracking/src/subscription_elements.test.tsx
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-
-import React from 'react';
-import { render, screen } from '@testing-library/react';
-import {
- SubscriptionLink,
- SubscriptionButton,
- SubscriptionButtonEmpty,
-} from './subscription_elements';
-import { SubscriptionTrackingProvider } from './services';
-import { EVENT_NAMES, Services, SubscriptionContextData } from '../types';
-import { coolDownTimeMs, resetCoolDown } from './use_impression';
-
-const testServices: Services = {
- navigateToApp: jest.fn(),
- analyticsClient: {
- reportEvent: jest.fn(),
- registerEventType: jest.fn(),
- } as any,
-};
-const testContext: SubscriptionContextData = { feature: 'test', source: 'security__test' };
-
-const WithProviders: React.FC = ({ children }) => (
-
- {children}
-
-);
-
-const renderWithProviders = (children: React.ReactElement) =>
- render(children, { wrapper: WithProviders });
-
-const reset = () => {
- jest.resetAllMocks();
- resetCoolDown();
-};
-
-describe('SubscriptionElements', () => {
- beforeAll(() => {
- jest.useFakeTimers();
- });
-
- afterAll(() => {
- jest.useRealTimers();
- });
-
- [SubscriptionButton, SubscriptionLink, SubscriptionButtonEmpty].forEach((SubscriptionElement) => {
- describe(SubscriptionElement.name, () => {
- beforeEach(reset);
-
- it('renders the children correctly', () => {
- renderWithProviders(
- Hello
- );
- expect(screen.getByText('Hello')).toBeTruthy();
- });
-
- it('fires an impression event when rendered', () => {
- renderWithProviders();
- expect(testServices.analyticsClient.reportEvent).toHaveBeenCalledWith(
- EVENT_NAMES.IMPRESSION,
- testContext
- );
- });
-
- it('fires an impression event when rendered (but only once)', () => {
- const { unmount } = renderWithProviders(
-
- );
- expect(testServices.analyticsClient.reportEvent).toHaveBeenCalledTimes(1);
- unmount();
-
- // does not create an impression again when remounted
- const { unmount: unmountAgain } = renderWithProviders(
-
- );
- unmountAgain();
- expect(testServices.analyticsClient.reportEvent).toHaveBeenCalledTimes(1);
-
- // only creates anew impression when the cooldown time has passed
- jest.setSystemTime(Date.now() + coolDownTimeMs);
- renderWithProviders();
- expect(testServices.analyticsClient.reportEvent).toHaveBeenCalledTimes(2);
- });
-
- it('tracks a click when clicked and navigates to page', () => {
- renderWithProviders(
- hello
- );
-
- screen.getByText('hello').click();
- expect(testServices.analyticsClient.reportEvent).toHaveBeenCalledWith(
- EVENT_NAMES.CLICK,
- testContext
- );
- expect(testServices.navigateToApp).toHaveBeenCalled();
- });
- });
- });
-});
diff --git a/packages/kbn-subscription-tracking/src/subscription_elements.tsx b/packages/kbn-subscription-tracking/src/subscription_elements.tsx
deleted file mode 100644
index f29c58d8a0a41..0000000000000
--- a/packages/kbn-subscription-tracking/src/subscription_elements.tsx
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-
-import React from 'react';
-import { EuiLink, EuiButton, EuiButtonEmpty } from '@elastic/eui';
-import type { EuiLinkProps, EuiButtonEmptyProps, EuiButtonProps } from '@elastic/eui';
-import { useGoToSubscription } from './use_go_to_subscription';
-import { useImpression } from './use_impression';
-import type { SubscriptionContextData } from '../types';
-
-interface CommonProps {
- /** The context information for this subscription element */
- subscriptionContext: SubscriptionContextData;
-}
-
-export type SubscriptionLinkProps = EuiLinkProps & CommonProps;
-
-/**
- * Wrapper around `EuiLink` that provides subscription events
- */
-export function SubscriptionLink({
- subscriptionContext,
- children,
- ...restProps
-}: SubscriptionLinkProps) {
- const goToSubscription = useGoToSubscription({ subscriptionContext });
- useImpression(subscriptionContext);
-
- return (
-
- {children}
-
- );
-}
-
-export type SubscriptionButtonProps = EuiButtonProps & CommonProps;
-
-/**
- * Wrapper around `EuiButton` that provides subscription events
- */
-export function SubscriptionButton({
- subscriptionContext,
- children,
- ...restProps
-}: SubscriptionButtonProps) {
- const goToSubscription = useGoToSubscription({ subscriptionContext });
- useImpression(subscriptionContext);
-
- return (
-
- {children}
-
- );
-}
-
-export type SubscriptionButtonEmptyProps = EuiButtonEmptyProps & CommonProps;
-
-/**
- * Wrapper around `EuiButtonEmpty` that provides subscription events
- */
-export function SubscriptionButtonEmpty({
- subscriptionContext,
- children,
- ...restProps
-}: SubscriptionButtonEmptyProps) {
- const goToSubscription = useGoToSubscription({ subscriptionContext });
- useImpression(subscriptionContext);
-
- return (
-
- {children}
-
- );
-}
diff --git a/packages/kbn-subscription-tracking/src/use_go_to_subscription.ts b/packages/kbn-subscription-tracking/src/use_go_to_subscription.ts
deleted file mode 100644
index 6c93fb27ee9bd..0000000000000
--- a/packages/kbn-subscription-tracking/src/use_go_to_subscription.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 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 { useCallback } from 'react';
-import { isValidContext } from './helpers';
-import { useServices } from './services';
-import { EVENT_NAMES, SubscriptionContextData } from '../types';
-
-interface Options {
- subscriptionContext: SubscriptionContextData;
-}
-
-/**
- * Provides a navigation function that navigates to the subscription
- * management page. When the function executes, a click event with the
- * given context is emitted.
- */
-export const useGoToSubscription = ({ subscriptionContext }: Options) => {
- const { navigateToApp, analyticsClient } = useServices();
- const goToSubscription = useCallback(() => {
- if (isValidContext(subscriptionContext)) {
- analyticsClient.reportEvent(EVENT_NAMES.CLICK, subscriptionContext);
- } else {
- // eslint-disable-next-line no-console
- console.error('The provided subscription context is invalid', subscriptionContext);
- }
- navigateToApp('management', { path: 'stack/license_management' });
- }, [analyticsClient, navigateToApp, subscriptionContext]);
-
- return goToSubscription;
-};
diff --git a/packages/kbn-subscription-tracking/src/use_impression.ts b/packages/kbn-subscription-tracking/src/use_impression.ts
deleted file mode 100644
index eb8aa4c2e0ec5..0000000000000
--- a/packages/kbn-subscription-tracking/src/use_impression.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-
-import { useEffect } from 'react';
-import { isValidContext } from './helpers';
-import { useServices } from './services';
-import { EVENT_NAMES, SubscriptionContextData } from '../types';
-
-/**
- * Sends an impression event with the given context.
- *
- * Note: impression events are throttled and will not fire more
- * often than once every 30 seconds.
- */
-export const useImpression = (context: SubscriptionContextData) => {
- const { analyticsClient } = useServices();
-
- useEffect(() => {
- if (!isValidContext(context)) {
- // eslint-disable-next-line no-console
- console.error('The provided subscription context is invalid', context);
- return;
- }
- if (!isCoolingDown(context)) {
- analyticsClient.reportEvent(EVENT_NAMES.IMPRESSION, context);
- coolDown(context);
- }
- }, [analyticsClient, context]);
-};
-
-/**
- * Impressions from the same context should not fire more than once every 30 seconds.
- * This prevents logging too many impressions in case a page is reloaded often or
- * if the user is navigating back and forth rapidly.
- */
-export const coolDownTimeMs = 30 * 1000;
-let impressionCooldown = new WeakMap();
-
-function isCoolingDown(context: SubscriptionContextData) {
- const previousLog = impressionCooldown.get(context);
-
- // we logged before and we are in the cooldown period
- return previousLog && Date.now() - previousLog < coolDownTimeMs;
-}
-
-function coolDown(context: SubscriptionContextData) {
- impressionCooldown.set(context, Date.now());
-}
-
-export function resetCoolDown() {
- impressionCooldown = new WeakMap();
-}
diff --git a/packages/kbn-subscription-tracking/tsconfig.json b/packages/kbn-subscription-tracking/tsconfig.json
deleted file mode 100644
index 677e9db998bb7..0000000000000
--- a/packages/kbn-subscription-tracking/tsconfig.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "extends": "../../tsconfig.base.json",
- "compilerOptions": {
- "outDir": "target/types",
- "types": ["jest", "node", "react"]
- },
- "include": ["**/*.ts", "**/*.tsx"],
- "exclude": ["target/**/*"],
- "kbn_references": ["@kbn/analytics-client"]
-}
diff --git a/packages/kbn-subscription-tracking/types.ts b/packages/kbn-subscription-tracking/types.ts
deleted file mode 100644
index a2adf0c6d90c5..0000000000000
--- a/packages/kbn-subscription-tracking/types.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 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 { AnalyticsClient } from '@kbn/analytics-client';
-
-enum SolutionIdentifier {
- observability = 'observability',
- security = 'security',
-}
-type LocationString = string;
-type SourceIdentifier = `${SolutionIdentifier}__${LocationString}`;
-/**
- * A piece of metadata which consists of an identifier of the advertised feature and
- * the `source` (e.g. location) of the subscription element.
- */
-export interface SubscriptionContextData {
- /**
- * A human-readable identifier describing the location of the beginning of the
- * subscription flow.
- * Location identifiers are prefixed with a solution identifier, e.g. `security__`
- *
- * @example "security__host-overview" - the user is looking at an upsell button
- * on the host overview page in the security solution
- */
- source: SourceIdentifier;
-
- /**
- * A human-readable identifier describing the feature that is being promoted.
- *
- * @example "alerts-by-process-ancestry"
- */
- feature: string;
-}
-
-export interface Services {
- navigateToApp: (app: string, options: { path: string }) => void;
- analyticsClient: Pick;
-}
-
-export enum EVENT_NAMES {
- CLICK = 'subscription__upsell__click',
- IMPRESSION = 'subscription__upsell__impression',
-}
diff --git a/tsconfig.base.json b/tsconfig.base.json
index 860199a78c305..d21fd5f4359a1 100644
--- a/tsconfig.base.json
+++ b/tsconfig.base.json
@@ -1500,8 +1500,6 @@
"@kbn/stdio-dev-helpers/*": ["packages/kbn-stdio-dev-helpers/*"],
"@kbn/storybook": ["packages/kbn-storybook"],
"@kbn/storybook/*": ["packages/kbn-storybook/*"],
- "@kbn/subscription-tracking": ["packages/kbn-subscription-tracking"],
- "@kbn/subscription-tracking/*": ["packages/kbn-subscription-tracking/*"],
"@kbn/synthetics-plugin": ["x-pack/plugins/synthetics"],
"@kbn/synthetics-plugin/*": ["x-pack/plugins/synthetics/*"],
"@kbn/task-manager-fixture-plugin": ["x-pack/test/alerting_api_integration/common/plugins/task_manager_fixture"],
@@ -1680,9 +1678,7 @@
"@kbn/zod-helpers/*": ["packages/kbn-zod-helpers/*"],
// END AUTOMATED PACKAGE LISTING
// Allows for importing from `kibana` package for the exported types.
- "@emotion/core": [
- "typings/@emotion"
- ],
+ "@emotion/core": ["typings/@emotion"]
},
// Support .tsx files and transform JSX into calls to React.createElement
"jsx": "react",
@@ -1753,6 +1749,6 @@
"@kbn/ambient-ui-types",
"@kbn/ambient-common-types",
"@kbn/ambient-storybook-types"
- ],
+ ]
}
}
diff --git a/x-pack/plugins/cloud_security_posture/public/components/subscription_not_allowed.tsx b/x-pack/plugins/cloud_security_posture/public/components/subscription_not_allowed.tsx
index 644455e5a2a68..a2d8f4fe32c0b 100644
--- a/x-pack/plugins/cloud_security_posture/public/components/subscription_not_allowed.tsx
+++ b/x-pack/plugins/cloud_security_posture/public/components/subscription_not_allowed.tsx
@@ -6,15 +6,8 @@
*/
import React from 'react';
-import { EuiEmptyPrompt, EuiPageSection } from '@elastic/eui';
+import { EuiEmptyPrompt, EuiLink, EuiPageSection } from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n-react';
-import { SubscriptionLink } from '@kbn/subscription-tracking';
-import type { SubscriptionContextData } from '@kbn/subscription-tracking';
-
-const subscriptionContext: SubscriptionContextData = {
- feature: 'cloud-security-posture',
- source: 'security__cloud-security-posture',
-};
export const SubscriptionNotAllowed = ({
licenseManagementLocator,
@@ -41,12 +34,12 @@ export const SubscriptionNotAllowed = ({
defaultMessage="To use these cloud security features, you must {link}."
values={{
link: (
-
+
-
+
),
}}
/>
diff --git a/x-pack/plugins/cloud_security_posture/public/test/test_provider.tsx b/x-pack/plugins/cloud_security_posture/public/test/test_provider.tsx
index 3f89c934e5dd4..bdccb07851629 100755
--- a/x-pack/plugins/cloud_security_posture/public/test/test_provider.tsx
+++ b/x-pack/plugins/cloud_security_posture/public/test/test_provider.tsx
@@ -11,7 +11,6 @@ import { I18nProvider } from '@kbn/i18n-react';
// eslint-disable-next-line no-restricted-imports
import { Router } from 'react-router-dom';
import { Route, Routes } from '@kbn/shared-ux-router';
-import { MockSubscriptionTrackingProvider } from '@kbn/subscription-tracking/mocks';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { coreMock } from '@kbn/core/public/mocks';
import { dataPluginMock } from '@kbn/data-plugin/public/mocks';
@@ -52,11 +51,9 @@ export const TestProvider: React.FC> = ({
-
-
- <>{children}>} />
-
-
+
+ <>{children}>} />
+
diff --git a/x-pack/plugins/cloud_security_posture/tsconfig.json b/x-pack/plugins/cloud_security_posture/tsconfig.json
index 113ddcb92202a..0d70ed5c6be6c 100755
--- a/x-pack/plugins/cloud_security_posture/tsconfig.json
+++ b/x-pack/plugins/cloud_security_posture/tsconfig.json
@@ -50,7 +50,6 @@
"@kbn/share-plugin",
"@kbn/core-http-server",
"@kbn/core-http-browser",
- "@kbn/subscription-tracking",
"@kbn/discover-utils",
"@kbn/unified-data-table",
"@kbn/cell-actions",
diff --git a/x-pack/plugins/licensing/public/plugin.test.ts b/x-pack/plugins/licensing/public/plugin.test.ts
index 9804f1ba8e1b7..5c571d0c6a40b 100644
--- a/x-pack/plugins/licensing/public/plugin.test.ts
+++ b/x-pack/plugins/licensing/public/plugin.test.ts
@@ -16,7 +16,6 @@ import { License } from '../common/license';
import { licenseMock } from '../common/licensing.mock';
import { coreMock } from '@kbn/core/public/mocks';
import { HttpInterceptor } from '@kbn/core/public';
-import type { AnalyticsServiceSetup } from '@kbn/core-analytics-browser';
const coreStart = coreMock.createStart();
describe('licensing plugin', () => {
@@ -443,69 +442,5 @@ describe('licensing plugin', () => {
expect(removeInterceptorMock).toHaveBeenCalledTimes(1);
});
-
- it('registers the subscription upsell events', async () => {
- const sessionStorage = coreMock.createStorage();
- plugin = new LicensingPlugin(coreMock.createPluginInitializerContext(), sessionStorage);
-
- const coreSetup = coreMock.createSetup();
-
- await plugin.setup(coreSetup);
- await plugin.stop();
-
- expect(findRegisteredEventTypeByName('subscription__upsell__click', coreSetup.analytics))
- .toMatchInlineSnapshot(`
- Array [
- Object {
- "eventType": "subscription__upsell__click",
- "schema": Object {
- "feature": Object {
- "_meta": Object {
- "description": "A human-readable identifier describing the feature that is being promoted",
- },
- "type": "keyword",
- },
- "source": Object {
- "_meta": Object {
- "description": "A human-readable identifier describing the location of the beginning of the subscription flow",
- },
- "type": "keyword",
- },
- },
- },
- ]
- `);
- expect(findRegisteredEventTypeByName('subscription__upsell__impression', coreSetup.analytics))
- .toMatchInlineSnapshot(`
- Array [
- Object {
- "eventType": "subscription__upsell__impression",
- "schema": Object {
- "feature": Object {
- "_meta": Object {
- "description": "A human-readable identifier describing the feature that is being promoted",
- },
- "type": "keyword",
- },
- "source": Object {
- "_meta": Object {
- "description": "A human-readable identifier describing the location of the beginning of the subscription flow",
- },
- "type": "keyword",
- },
- },
- },
- ]
- `);
- });
});
});
-
-function findRegisteredEventTypeByName(
- eventTypeName: string,
- analyticsClientMock: jest.Mocked
-) {
- return analyticsClientMock.registerEventType.mock.calls.find(
- ([{ eventType }]) => eventType === eventTypeName
- )!;
-}
diff --git a/x-pack/plugins/licensing/public/plugin.ts b/x-pack/plugins/licensing/public/plugin.ts
index bc350675d7dd2..3953a29a08214 100644
--- a/x-pack/plugins/licensing/public/plugin.ts
+++ b/x-pack/plugins/licensing/public/plugin.ts
@@ -8,7 +8,6 @@
import { Observable, Subject, Subscription } from 'rxjs';
import { CoreSetup, CoreStart, Plugin, PluginInitializerContext } from '@kbn/core/public';
-import { registerEvents as registerSubscriptionTrackingEvents } from '@kbn/subscription-tracking';
import { ILicense } from '../common/types';
import { LicensingPluginSetup, LicensingPluginStart } from './types';
import { createLicenseUpdate } from '../common/license_update';
@@ -85,7 +84,6 @@ export class LicensingPlugin implements Plugin {
if (license.isAvailable) {
diff --git a/x-pack/plugins/licensing/tsconfig.json b/x-pack/plugins/licensing/tsconfig.json
index 1deb735f99466..804bf057afa6d 100644
--- a/x-pack/plugins/licensing/tsconfig.json
+++ b/x-pack/plugins/licensing/tsconfig.json
@@ -14,8 +14,6 @@
"@kbn/std",
"@kbn/i18n",
"@kbn/analytics-client",
- "@kbn/subscription-tracking",
- "@kbn/core-analytics-browser",
"@kbn/logging-mocks"
],
"exclude": ["target/**/*"]
diff --git a/x-pack/plugins/security_solution/public/app/index.tsx b/x-pack/plugins/security_solution/public/app/index.tsx
index 6f0fc3eb8d01c..3053590ae3d91 100644
--- a/x-pack/plugins/security_solution/public/app/index.tsx
+++ b/x-pack/plugins/security_solution/public/app/index.tsx
@@ -7,7 +7,6 @@
import React from 'react';
import { render, unmountComponentAtNode } from 'react-dom';
-import { SubscriptionTrackingProvider } from '@kbn/subscription-tracking';
import { SecurityApp } from './app';
import type { RenderAppProps } from './types';
import { AppRoutes } from './app_routes';
@@ -21,7 +20,6 @@ export const renderApp = ({
usageCollection,
subPluginRoutes,
theme$,
- subscriptionTrackingServices,
}: RenderAppProps): (() => void) => {
const ApplicationUsageTrackingProvider =
usageCollection?.components.ApplicationUsageTrackingProvider ?? React.Fragment;
@@ -34,12 +32,7 @@ export const renderApp = ({
theme$={theme$}
>
-
-
-
+
,
element
diff --git a/x-pack/plugins/security_solution/public/app/types.ts b/x-pack/plugins/security_solution/public/app/types.ts
index 66bab19c945fe..578a4800f7f64 100644
--- a/x-pack/plugins/security_solution/public/app/types.ts
+++ b/x-pack/plugins/security_solution/public/app/types.ts
@@ -19,7 +19,6 @@ import type { RouteProps } from 'react-router-dom';
import type { AppMountParameters } from '@kbn/core/public';
import type { UsageCollectionSetup } from '@kbn/usage-collection-plugin/public';
import type { TableState } from '@kbn/securitysolution-data-table';
-import type { Services as SubscriptionTrackingServices } from '@kbn/subscription-tracking';
import type { ExploreReducer, ExploreState } from '../explore';
import type { StartServices } from '../types';
@@ -30,7 +29,6 @@ export interface RenderAppProps extends AppMountParameters {
services: StartServices;
store: Store;
subPluginRoutes: RouteProps[];
- subscriptionTrackingServices: SubscriptionTrackingServices;
usageCollection?: UsageCollectionSetup;
}
diff --git a/x-pack/plugins/security_solution/public/common/components/event_details/insights/related_alerts_upsell.tsx b/x-pack/plugins/security_solution/public/common/components/event_details/insights/related_alerts_upsell.tsx
index 303e55ff66b97..10a9c872e3911 100644
--- a/x-pack/plugins/security_solution/public/common/components/event_details/insights/related_alerts_upsell.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/event_details/insights/related_alerts_upsell.tsx
@@ -6,17 +6,11 @@
*/
import React from 'react';
-import { EuiFlexGroup, EuiFlexItem, EuiIcon, EuiText } from '@elastic/eui';
+import { EuiFlexGroup, EuiFlexItem, EuiIcon, EuiLink, EuiText } from '@elastic/eui';
import { euiStyled } from '@kbn/kibana-react-plugin/common';
-import { SubscriptionLink } from '@kbn/subscription-tracking';
-import type { SubscriptionContextData } from '@kbn/subscription-tracking';
import { INSIGHTS_UPSELL } from './translations';
-
-const subscriptionContext: SubscriptionContextData = {
- feature: 'alert-details-insights',
- source: 'security__alert-details-flyout',
-};
+import { useKibana } from '../../../lib/kibana';
const UpsellContainer = euiStyled.div`
border: 1px solid ${({ theme }) => theme.eui.euiColorLightShade};
@@ -29,6 +23,7 @@ const StyledIcon = euiStyled(EuiIcon)`
`;
export const RelatedAlertsUpsell = React.memo(() => {
+ const { application } = useKibana().services;
return (
@@ -37,13 +32,15 @@ export const RelatedAlertsUpsell = React.memo(() => {
-
{INSIGHTS_UPSELL}
-
+
diff --git a/x-pack/plugins/security_solution/public/common/mock/test_providers.tsx b/x-pack/plugins/security_solution/public/common/mock/test_providers.tsx
index a6779272da763..03dc789a41ad1 100644
--- a/x-pack/plugins/security_solution/public/common/mock/test_providers.tsx
+++ b/x-pack/plugins/security_solution/public/common/mock/test_providers.tsx
@@ -21,7 +21,6 @@ import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import type { Action } from '@kbn/ui-actions-plugin/public';
import { CellActionsProvider } from '@kbn/cell-actions';
import { ExpandableFlyoutProvider } from '@kbn/expandable-flyout';
-import { MockSubscriptionTrackingProvider } from '@kbn/subscription-tracking/mocks';
import { useKibana } from '../lib/kibana';
import { UpsellingProvider } from '../components/upselling_provider';
import { MockAssistantProvider } from './mock_assistant_provider';
@@ -76,29 +75,27 @@ export const TestProvidersComponent: React.FC = ({
return (
-
-
-
- ({ eui: euiDarkVars, darkMode: true })}>
-
-
-
-
-
- Promise.resolve(cellActions)}
- >
- {children}
-
-
-
-
-
-
-
-
-
-
+
+
+ ({ eui: euiDarkVars, darkMode: true })}>
+
+
+
+
+
+ Promise.resolve(cellActions)}
+ >
+ {children}
+
+
+
+
+
+
+
+
+
);
@@ -130,33 +127,31 @@ const TestProvidersWithPrivilegesComponent: React.FC = ({
return (
-
-
- ({ eui: euiDarkVars, darkMode: true })}>
-
-
-
-
+ ({ eui: euiDarkVars, darkMode: true })}>
+
+
+
+
+ Promise.resolve(cellActions)}
>
- Promise.resolve(cellActions)}
- >
- {children}
-
-
-
-
-
-
-
-
+ {children}
+
+
+
+
+
+
+
);
diff --git a/x-pack/plugins/security_solution/public/plugin.tsx b/x-pack/plugins/security_solution/public/plugin.tsx
index c07273e59ed4a..e36dcd7991720 100644
--- a/x-pack/plugins/security_solution/public/plugin.tsx
+++ b/x-pack/plugins/security_solution/public/plugin.tsx
@@ -235,11 +235,6 @@ export class Plugin implements IPlugin {
+ const {
+ services: { application },
+ } = useKibana();
return (
}
@@ -52,12 +56,18 @@ export const Paywall: VFC = () => {
-
+
+ application.navigateToApp('management', {
+ path: 'stack/license_management/home',
+ })
+ }
+ >
-
+
diff --git a/x-pack/plugins/threat_intelligence/public/mocks/story_providers.tsx b/x-pack/plugins/threat_intelligence/public/mocks/story_providers.tsx
index d13c3f561e748..249a9d05afbc9 100644
--- a/x-pack/plugins/threat_intelligence/public/mocks/story_providers.tsx
+++ b/x-pack/plugins/threat_intelligence/public/mocks/story_providers.tsx
@@ -12,7 +12,6 @@ import { CoreStart, IUiSettingsClient } from '@kbn/core/public';
import { TimelinesUIStart } from '@kbn/timelines-plugin/public';
import { EuiThemeProvider } from '@kbn/kibana-react-plugin/common';
import { RequestAdapter } from '@kbn/inspector-plugin/common';
-import { MockSubscriptionTrackingProvider } from '@kbn/subscription-tracking/mocks';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import type { SettingsStart } from '@kbn/core-ui-settings-browser';
import { mockIndicatorsFiltersContext } from './mock_indicators_filters_context';
@@ -108,9 +107,7 @@ export const StoryProvidersComponent: VFC = ({
-
- {children}
-
+ {children}
diff --git a/x-pack/plugins/threat_intelligence/public/mocks/test_providers.tsx b/x-pack/plugins/threat_intelligence/public/mocks/test_providers.tsx
index 12c42052ee26f..37360284b6aa7 100644
--- a/x-pack/plugins/threat_intelligence/public/mocks/test_providers.tsx
+++ b/x-pack/plugins/threat_intelligence/public/mocks/test_providers.tsx
@@ -17,7 +17,6 @@ import { unifiedSearchPluginMock } from '@kbn/unified-search-plugin/public/mocks
import { createTGridMocks } from '@kbn/timelines-plugin/public/mock';
import { EuiThemeProvider } from '@kbn/kibana-react-plugin/common';
import { RequestAdapter } from '@kbn/inspector-plugin/common';
-import { MockSubscriptionTrackingProvider } from '@kbn/subscription-tracking/mocks';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { MemoryRouter } from 'react-router-dom';
import { casesPluginMock } from '@kbn/cases-plugin/public/mocks';
@@ -142,13 +141,11 @@ export const TestProvidersComponent: FC = ({ children }) => (
-
-
-
- {children}
-
-
-
+
+
+ {children}
+
+
diff --git a/x-pack/plugins/threat_intelligence/public/plugin.tsx b/x-pack/plugins/threat_intelligence/public/plugin.tsx
index e30e9f92c0a5b..49f6b3b7724bf 100755
--- a/x-pack/plugins/threat_intelligence/public/plugin.tsx
+++ b/x-pack/plugins/threat_intelligence/public/plugin.tsx
@@ -11,7 +11,6 @@ import { Provider as ReduxStoreProvider } from 'react-redux';
import React, { Suspense } from 'react';
import { __IntlProvider as IntlProvider } from '@kbn/i18n-react';
import { ExternalReferenceAttachmentType } from '@kbn/cases-plugin/public/client/attachment_framework/types';
-import { SubscriptionTrackingProvider } from '@kbn/subscription-tracking';
import { generateAttachmentType } from './modules/cases/utils/attachments';
import { KibanaContextProvider } from './hooks/use_kibana';
import {
@@ -44,16 +43,11 @@ export const createApp =
-
-
- }>
-
-
-
-
+
+ }>
+
+
+
diff --git a/x-pack/plugins/threat_intelligence/tsconfig.json b/x-pack/plugins/threat_intelligence/tsconfig.json
index 661186c943b54..2e390483ab22c 100644
--- a/x-pack/plugins/threat_intelligence/tsconfig.json
+++ b/x-pack/plugins/threat_intelligence/tsconfig.json
@@ -32,8 +32,7 @@
"@kbn/utility-types",
"@kbn/ui-theme",
"@kbn/securitysolution-io-ts-list-types",
- "@kbn/core-ui-settings-browser",
- "@kbn/subscription-tracking"
+ "@kbn/core-ui-settings-browser"
],
"exclude": ["target/**/*"]
}
diff --git a/yarn.lock b/yarn.lock
index f481f66307937..584c660603157 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5937,10 +5937,6 @@
version "0.0.0"
uid ""
-"@kbn/subscription-tracking@link:packages/kbn-subscription-tracking":
- version "0.0.0"
- uid ""
-
"@kbn/synthetics-plugin@link:x-pack/plugins/synthetics":
version "0.0.0"
uid ""
From 3240ab6d7c01bf5ccb3198fa4ec26ce8f0f8628a Mon Sep 17 00:00:00 2001
From: Ignacio Rivas
Date: Thu, 23 Nov 2023 17:00:00 +0100
Subject: [PATCH 12/24] [CCR] Fixes CCR accessibility tests (#171618)
---
.../client_integration/follower_indices_list.test.js | 6 +++---
.../components/remote_cluster_setup_trust/confirm_modal.tsx | 3 +++
x-pack/test/accessibility/config.ts | 3 +--
x-pack/test/functional/page_objects/remote_clusters_page.ts | 2 +-
4 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/x-pack/plugins/cross_cluster_replication/public/__jest__/client_integration/follower_indices_list.test.js b/x-pack/plugins/cross_cluster_replication/public/__jest__/client_integration/follower_indices_list.test.js
index e020950668a84..536c188b48369 100644
--- a/x-pack/plugins/cross_cluster_replication/public/__jest__/client_integration/follower_indices_list.test.js
+++ b/x-pack/plugins/cross_cluster_replication/public/__jest__/client_integration/follower_indices_list.test.js
@@ -309,8 +309,7 @@ describe('', () => {
});
});
- // FLAKY: https://github.com/elastic/kibana/issues/100951
- describe.skip('detail panel', () => {
+ describe('detail panel', () => {
test('should open a detail panel when clicking on a follower index', async () => {
expect(exists('followerIndexDetail')).toBe(false);
@@ -372,7 +371,8 @@ describe('', () => {
);
});
- test('should have a section to render the follower index shards stats', async () => {
+ // FLAKY: https://github.com/elastic/kibana/issues/100951
+ test.skip('should have a section to render the follower index shards stats', async () => {
await actions.clickFollowerIndexAt(0);
expect(exists('followerIndexDetail.shardsStatsSection')).toBe(true);
diff --git a/x-pack/plugins/remote_clusters/public/application/sections/components/remote_cluster_setup_trust/confirm_modal.tsx b/x-pack/plugins/remote_clusters/public/application/sections/components/remote_cluster_setup_trust/confirm_modal.tsx
index 08ef4377338d1..1d9e9f1900f09 100644
--- a/x-pack/plugins/remote_clusters/public/application/sections/components/remote_cluster_setup_trust/confirm_modal.tsx
+++ b/x-pack/plugins/remote_clusters/public/application/sections/components/remote_cluster_setup_trust/confirm_modal.tsx
@@ -70,6 +70,9 @@ export const ConfirmTrustSetupModal = ({ closeModal, onSubmit }: ModalProps) =>
label={i18n.translate('xpack.remoteClusters.clusterWizard.trustStep.modal.checkbox', {
defaultMessage: 'Yes, I have setup trust',
})}
+ labelProps={{
+ 'data-test-subj': 'remoteClusterTrustCheckboxLabel',
+ }}
checked={hasSetupTrust}
onChange={() => setHasSetupTrust(!hasSetupTrust)}
data-test-subj="remoteClusterTrustCheckbox"
diff --git a/x-pack/test/accessibility/config.ts b/x-pack/test/accessibility/config.ts
index ece39104293a7..1475b3aeff8af 100644
--- a/x-pack/test/accessibility/config.ts
+++ b/x-pack/test/accessibility/config.ts
@@ -48,8 +48,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) {
// CCR tests stay in that order. Their execution fails if rearranged.
require.resolve('./apps/remote_clusters'),
require.resolve('./apps/snapshot_and_restore'),
- // https://github.com/elastic/kibana/issues/153599
- // require.resolve('./apps/cross_cluster_replication'),
+ require.resolve('./apps/cross_cluster_replication'),
require.resolve('./apps/reporting'),
require.resolve('./apps/enterprise_search'),
// require.resolve('./apps/license_management'),
diff --git a/x-pack/test/functional/page_objects/remote_clusters_page.ts b/x-pack/test/functional/page_objects/remote_clusters_page.ts
index b9f24dd1854d2..253ba3a27ff02 100644
--- a/x-pack/test/functional/page_objects/remote_clusters_page.ts
+++ b/x-pack/test/functional/page_objects/remote_clusters_page.ts
@@ -35,7 +35,7 @@ export function RemoteClustersPageProvider({ getService }: FtrProviderContext) {
// Complete trust setup
await testSubjects.click('setupTrustDoneButton');
- await testSubjects.setCheckbox('remoteClusterTrustCheckbox', 'check');
+ await testSubjects.setCheckbox('remoteClusterTrustCheckboxLabel', 'check');
await testSubjects.click('remoteClusterTrustSubmitButton');
},
async getRemoteClustersList() {
From 0124a509376afe65fcd03c700dd54dfa6316fd30 Mon Sep 17 00:00:00 2001
From: Melissa Alvarez
Date: Thu, 23 Nov 2023 09:00:25 -0700
Subject: [PATCH 13/24] [ML] Trained models: ensure 'Deploy model' disabled for
Data Frame Analytics models when not enough permissions (#171686)
## Summary
Fixes https://github.com/elastic/kibana/issues/171063
This PR ensures the 'Deploy model' action for Data Frame Analytics
models in the trained models list is only enabled when the user has
sufficient permissions.
### Checklist
Delete any items that are not applicable to this PR.
- [ ] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [ ] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [ ] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
---
.../ml/public/application/model_management/model_actions.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/x-pack/plugins/ml/public/application/model_management/model_actions.tsx b/x-pack/plugins/ml/public/application/model_management/model_actions.tsx
index 42e095edeccf5..0b6600e981f01 100644
--- a/x-pack/plugins/ml/public/application/model_management/model_actions.tsx
+++ b/x-pack/plugins/ml/public/application/model_management/model_actions.tsx
@@ -481,7 +481,7 @@ export function useModelActions({
);
},
enabled: (item) => {
- return item.state !== MODEL_STATE.STARTED;
+ return canStartStopTrainedModels && item.state !== MODEL_STATE.STARTED;
},
},
{
From 7556105dfc054d28161205bed4f2b7558536e6f9 Mon Sep 17 00:00:00 2001
From: Dzmitry Lemechko
Date: Thu, 23 Nov 2023 17:42:33 +0100
Subject: [PATCH 14/24] [kbn-test] Disable TLS for svl Kibana (#171434)
## Summary
This PR disables TLS mode for Kibana run in serverless.
Related to #170417 enabling serverless roles testing
Blocked by #171513
PR is created in cooperation with @azasypkin and intended to simplify
the automated testing process for serverless:
starting Kibana with TLS enabled adds unnecessary complexity to the
process of getting session cookie and overall Kibana APIs calling with
Dev certificate in the tests.
The selected approach is to disable TLS for Kibana and simply rely on
#171513 to configure mocked idp realm for Serverless ES with TLS
enabled.
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
---
packages/kbn-test/src/es/test_es_cluster.ts | 10 ++--
.../functional_tests/lib/run_elasticsearch.ts | 48 ++++++++++++-------
.../scripts/run_cypress/get_ftr_config.ts | 11 -----
.../api_integration/services/saml_tools.ts | 30 ++++++------
.../custom_threshold_rule/group_by_fired.ts | 3 +-
x-pack/test_serverless/shared/config.base.ts | 21 ++------
x-pack/test_serverless/tsconfig.json | 2 +-
7 files changed, 57 insertions(+), 68 deletions(-)
diff --git a/packages/kbn-test/src/es/test_es_cluster.ts b/packages/kbn-test/src/es/test_es_cluster.ts
index 461ad2b6f0df1..84c2da1e52f80 100644
--- a/packages/kbn-test/src/es/test_es_cluster.ts
+++ b/packages/kbn-test/src/es/test_es_cluster.ts
@@ -71,7 +71,10 @@ export interface CreateTestEsClusterOptions {
*/
esArgs?: string[];
esFrom?: string;
- esServerlessOptions?: Pick;
+ esServerlessOptions?: Pick<
+ ServerlessOptions,
+ 'image' | 'tag' | 'resources' | 'host' | 'kibanaUrl'
+ >;
esJavaOpts?: string;
/**
* License to run your cluster under. Keep in mind that a `trial` license
@@ -242,10 +245,7 @@ export function createTestEsCluster<
await firstNode.runServerless({
basePath,
esArgs: customEsArgs,
- image: esServerlessOptions?.image,
- tag: esServerlessOptions?.tag,
- host: esServerlessOptions?.host,
- resources: esServerlessOptions?.resources,
+ ...esServerlessOptions,
port,
clean: true,
background: true,
diff --git a/packages/kbn-test/src/functional_tests/lib/run_elasticsearch.ts b/packages/kbn-test/src/functional_tests/lib/run_elasticsearch.ts
index 742f729745d27..4f01321b82391 100644
--- a/packages/kbn-test/src/functional_tests/lib/run_elasticsearch.ts
+++ b/packages/kbn-test/src/functional_tests/lib/run_elasticsearch.ts
@@ -6,6 +6,7 @@
* Side Public License, v 1.
*/
+import Url from 'url';
import { resolve } from 'path';
import type { ToolingLog } from '@kbn/tooling-log';
import getPort from 'get-port';
@@ -160,7 +161,18 @@ async function startEsNode({
return cluster;
}
-function getESServerlessOptions(esServerlessImageFromArg: string | undefined, config: Config) {
+interface EsServerlessOptions {
+ host?: string;
+ resources: string[];
+ kibanaUrl: string;
+ tag?: string;
+ image?: string;
+}
+
+function getESServerlessOptions(
+ esServerlessImageFromArg: string | undefined,
+ config: Config
+): EsServerlessOptions {
const esServerlessImageUrlOrTag =
esServerlessImageFromArg ||
esTestConfig.getESServerlessImage() ||
@@ -172,24 +184,24 @@ function getESServerlessOptions(esServerlessImageFromArg: string | undefined, co
const serverlessHost: string | undefined =
config.has('esServerlessOptions.host') && config.get('esServerlessOptions.host');
+ const commonOptions = {
+ host: serverlessHost,
+ resources: serverlessResources,
+ kibanaUrl: Url.format({
+ protocol: config.get('servers.kibana.protocol'),
+ hostname: config.get('servers.kibana.hostname'),
+ port: config.get('servers.kibana.port'),
+ }),
+ };
+
if (esServerlessImageUrlOrTag) {
- if (esServerlessImageUrlOrTag.includes(':')) {
- return {
- resources: serverlessResources,
- image: esServerlessImageUrlOrTag,
- host: serverlessHost,
- };
- } else {
- return {
- resources: serverlessResources,
- tag: esServerlessImageUrlOrTag,
- host: serverlessHost,
- };
- }
+ return {
+ ...commonOptions,
+ ...(esServerlessImageUrlOrTag.includes(':')
+ ? { image: esServerlessImageUrlOrTag }
+ : { tag: esServerlessImageUrlOrTag }),
+ };
}
- return {
- resources: serverlessResources,
- host: serverlessHost,
- };
+ return commonOptions;
}
diff --git a/x-pack/plugins/security_solution/scripts/run_cypress/get_ftr_config.ts b/x-pack/plugins/security_solution/scripts/run_cypress/get_ftr_config.ts
index cc3972cba0b2f..de5cb675a42e1 100644
--- a/x-pack/plugins/security_solution/scripts/run_cypress/get_ftr_config.ts
+++ b/x-pack/plugins/security_solution/scripts/run_cypress/get_ftr_config.ts
@@ -171,17 +171,6 @@ export const getFTRConfig = ({
}
}
- // Serverless Specific
- if (vars.serverless) {
- log.info(`Serverless mode detected`);
-
- vars.esTestCluster.serverArgs.push(
- `xpack.security.authc.realms.saml.cloud-saml-kibana.sp.entity_id=http://host.docker.internal:${kibanaPort}`,
- `xpack.security.authc.realms.saml.cloud-saml-kibana.sp.logout=http://host.docker.internal:${kibanaPort}/logout`,
- `xpack.security.authc.realms.saml.cloud-saml-kibana.sp.acs=http://host.docker.internal:${kibanaPort}/api/security/saml/callback`
- );
- }
-
if (specFileFTRConfig?.productTypes) {
if (vars.serverless) {
vars.kbnTestServer.serverArgs.push(
diff --git a/x-pack/test_serverless/api_integration/services/saml_tools.ts b/x-pack/test_serverless/api_integration/services/saml_tools.ts
index 4756109fc667d..bd5cd03a7edbb 100644
--- a/x-pack/test_serverless/api_integration/services/saml_tools.ts
+++ b/x-pack/test_serverless/api_integration/services/saml_tools.ts
@@ -6,33 +6,35 @@
*/
import expect from '@kbn/expect';
-// eslint-disable-next-line @kbn/imports/no_boundary_crossing
-import { getSAMLResponse } from '@kbn/security-api-integration-helpers/saml/saml_tools';
-import { kbnTestConfig } from '@kbn/test';
-
import { parse as parseCookie } from 'tough-cookie';
+import Url from 'url';
+import { createSAMLResponse } from '@kbn/mock-idp-plugin/common';
import { FtrProviderContext } from '../ftr_provider_context';
export function SamlToolsProvider({ getService }: FtrProviderContext) {
const supertestWithoutAuth = getService('supertestWithoutAuth');
- const randomness = getService('randomness');
const svlCommonApi = getService('svlCommonApi');
-
- function createSAMLResponse(options = {}) {
- return getSAMLResponse({
- destination: `http://localhost:${kbnTestConfig.getPort()}/api/security/saml/callback`,
- sessionIndex: String(randomness.naturalNumber()),
- ...options,
- });
- }
+ const config = getService('config');
return {
async login(username: string) {
+ const kibanaUrl = Url.format({
+ protocol: config.get('servers.kibana.protocol'),
+ hostname: config.get('servers.kibana.hostname'),
+ port: config.get('servers.kibana.port'),
+ pathname: '/api/security/saml/callback',
+ });
const samlAuthenticationResponse = await supertestWithoutAuth
.post('/api/security/saml/callback')
.set(svlCommonApi.getCommonRequestHeader())
- .send({ SAMLResponse: await createSAMLResponse({ username }) });
+ .send({
+ SAMLResponse: await createSAMLResponse({
+ username,
+ roles: [],
+ kibanaUrl,
+ }),
+ });
expect(samlAuthenticationResponse.status).to.equal(302);
expect(samlAuthenticationResponse.header.location).to.equal('/');
const sessionCookie = parseCookie(samlAuthenticationResponse.header['set-cookie'][0])!;
diff --git a/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/group_by_fired.ts b/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/group_by_fired.ts
index 90dba040be18f..0f7b7a019cc83 100644
--- a/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/group_by_fired.ts
+++ b/x-pack/test_serverless/api_integration/test_suites/observability/custom_threshold_rule/group_by_fired.ts
@@ -232,8 +232,7 @@ export default function ({ getService }: FtrProviderContext) {
expect(resp.hits.hits[0]._source?.ruleType).eql('observability.rules.custom_threshold');
expect(resp.hits.hits[0]._source?.alertDetailsUrl).eql(
- // Added the S to protocol.getUrlParts as not returning the correct value.
- `${protocol}s://${hostname}:${port}/app/observability/alerts?_a=(kuery:%27kibana.alert.uuid:%20%22${alertId}%22%27%2CrangeFrom:%27${rangeFrom}%27%2CrangeTo:now%2Cstatus:all)`
+ `${protocol}://${hostname}:${port}/app/observability/alerts?_a=(kuery:%27kibana.alert.uuid:%20%22${alertId}%22%27%2CrangeFrom:%27${rangeFrom}%27%2CrangeTo:now%2Cstatus:all)`
);
expect(resp.hits.hits[0]._source?.reason).eql(
`Average system.cpu.total.norm.pct is 80%, above the threshold of 20%. (duration: 1 min, data view: ${DATE_VIEW}, group: host-0)`
diff --git a/x-pack/test_serverless/shared/config.base.ts b/x-pack/test_serverless/shared/config.base.ts
index ec11099f946c0..6dee26203b532 100644
--- a/x-pack/test_serverless/shared/config.base.ts
+++ b/x-pack/test_serverless/shared/config.base.ts
@@ -16,15 +16,16 @@ import {
kibanaTestSuperuserServerless,
getDockerFileMountPath,
} from '@kbn/test';
-import { CA_CERT_PATH, KBN_CERT_PATH, KBN_KEY_PATH, kibanaDevServiceAccount } from '@kbn/dev-utils';
+import { CA_CERT_PATH, kibanaDevServiceAccount } from '@kbn/dev-utils';
import { commonFunctionalServices } from '@kbn/ftr-common-functional-services';
+import { MOCK_IDP_REALM_NAME } from '@kbn/mock-idp-plugin/common';
import { services } from './services';
export default async () => {
const servers = {
kibana: {
...kbnTestConfig.getUrlParts(kibanaTestSuperuserServerless),
- protocol: 'https',
+ protocol: process.env.TEST_CLOUD ? 'https' : 'http',
certificateAuthorities: process.env.TEST_CLOUD ? undefined : [Fs.readFileSync(CA_CERT_PATH)],
},
elasticsearch: {
@@ -68,16 +69,6 @@ export default async () => {
'xpack.security.authc.realms.jwt.jwt1.order=-98',
`xpack.security.authc.realms.jwt.jwt1.pkc_jwkset_path=${getDockerFileMountPath(jwksPath)}`,
`xpack.security.authc.realms.jwt.jwt1.token_type=access_token`,
-
- 'xpack.security.authc.realms.saml.cloud-saml-kibana.attributes.principal=urn:oid:0.0.7',
- 'xpack.security.authc.realms.saml.cloud-saml-kibana.idp.entity_id=http://www.elastic.co/saml1',
- 'xpack.security.authc.realms.saml.cloud-saml-kibana.order=101',
- `xpack.security.authc.realms.saml.cloud-saml-kibana.idp.metadata.path=${getDockerFileMountPath(
- idpPath
- )}`,
- `xpack.security.authc.realms.saml.cloud-saml-kibana.sp.acs=http://localhost:${servers.kibana.port}/api/security/saml/callback`,
- `xpack.security.authc.realms.saml.cloud-saml-kibana.sp.entity_id=http://localhost:${servers.kibana.port}`,
- `xpack.security.authc.realms.saml.cloud-saml-kibana.sp.logout=http://localhost:${servers.kibana.port}/logout`,
],
ssl: true, // SSL is required for SAML realm
},
@@ -89,10 +80,6 @@ export default async () => {
},
sourceArgs: ['--no-base-path', '--env.name=development'],
serverArgs: [
- '--server.ssl.enabled=true',
- `--server.ssl.key=${KBN_KEY_PATH}`,
- `--server.ssl.certificate=${KBN_CERT_PATH}`,
- `--server.ssl.certificateAuthorities=${CA_CERT_PATH}`,
`--server.restrictInternalApis=true`,
`--server.port=${servers.kibana.port}`,
'--status.allowAnonymous=true',
@@ -147,7 +134,7 @@ export default async () => {
// user navigates to `/login` page directly and enters username and password in the login form.
'--xpack.security.authc.selector.enabled=false',
`--xpack.security.authc.providers=${JSON.stringify({
- saml: { 'cloud-saml-kibana': { order: 0, realm: 'cloud-saml-kibana' } },
+ saml: { 'cloud-saml-kibana': { order: 0, realm: MOCK_IDP_REALM_NAME } },
basic: { 'cloud-basic': { order: 1 } },
})}`,
'--xpack.encryptedSavedObjects.encryptionKey="wuGNaIhoMpk5sO4UBxgr3NyW1sFcLgIf"',
diff --git a/x-pack/test_serverless/tsconfig.json b/x-pack/test_serverless/tsconfig.json
index e825bff536d8e..6f843b935d63f 100644
--- a/x-pack/test_serverless/tsconfig.json
+++ b/x-pack/test_serverless/tsconfig.json
@@ -48,7 +48,6 @@
"@kbn/rison",
"@kbn/discover-plugin",
"@kbn/data-plugin",
- "@kbn/security-api-integration-helpers",
"@kbn/std",
"@kbn/data-view-field-editor-plugin",
"@kbn/data-plugin",
@@ -68,5 +67,6 @@
"@kbn/apm-synthtrace",
"@kbn/apm-synthtrace-client",
"@kbn/reporting-export-types-csv-common",
+ "@kbn/mock-idp-plugin",
]
}
From 73576c923e1d00455df98bfc44859882f92deb66 Mon Sep 17 00:00:00 2001
From: Julia Bardi <90178898+juliaElastic@users.noreply.github.com>
Date: Thu, 23 Nov 2023 17:57:23 +0100
Subject: [PATCH 15/24] [Fleet] updated doc link to remote ES output (#171870)
## Summary
Related to https://github.com/elastic/kibana/issues/104986
Updated doc link to the new remote ES output doc.
Leads to
https://www.elastic.co/guide/en/fleet/master/monitor-elastic-agent.html#external-elasticsearch-monitoring
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
---
packages/kbn-doc-links/src/get_doc_links.ts | 1 +
packages/kbn-doc-links/src/types.ts | 1 +
.../sections/settings/components/edit_output_flyout/index.tsx | 4 ++--
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts
index afc8252e7e13e..ffc6a0de28f2c 100644
--- a/packages/kbn-doc-links/src/get_doc_links.ts
+++ b/packages/kbn-doc-links/src/get_doc_links.ts
@@ -770,6 +770,7 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => {
installAndUninstallIntegrationAssets: `${FLEET_DOCS}install-uninstall-integration-assets.html`,
elasticAgentInputConfiguration: `${FLEET_DOCS}elastic-agent-input-configuration.html`,
policySecrets: `${FLEET_DOCS}agent-policy.html#agent-policy-secret-values`,
+ remoteESOoutput: `${FLEET_DOCS}monitor-elastic-agent.html#external-elasticsearch-monitoring`,
},
ecs: {
guide: `${ELASTIC_WEBSITE_URL}guide/en/ecs/current/index.html`,
diff --git a/packages/kbn-doc-links/src/types.ts b/packages/kbn-doc-links/src/types.ts
index 5e4202dd7fa45..7afa37539eb86 100644
--- a/packages/kbn-doc-links/src/types.ts
+++ b/packages/kbn-doc-links/src/types.ts
@@ -528,6 +528,7 @@ export interface DocLinks {
installAndUninstallIntegrationAssets: string;
elasticAgentInputConfiguration: string;
policySecrets: string;
+ remoteESOoutput: string;
}>;
readonly ecs: {
readonly guide: string;
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx
index 0346986f3abbe..62732c12d189c 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx
@@ -322,7 +322,7 @@ export const EditOutputFlyout: React.FunctionComponent =
case outputType.Elasticsearch:
return i18n.translate('xpack.fleet.settings.editOutputFlyout.esOutputTypeCallout', {
defaultMessage:
- 'This output type does not support connectivity to a remote Elasticsearch cluster, please the Remote Elasticsearch type for that.',
+ 'This output type does not support connectivity to a remote Elasticsearch cluster, please use the Remote Elasticsearch type for that.',
});
}
};
@@ -335,7 +335,7 @@ export const EditOutputFlyout: React.FunctionComponent =
defaultMessage="Enter your output hosts, service token for your remote cluster, and any advanced YAML configuration. Learn more about how to use these parameters in {doc}."
values={{
doc: (
-
+
{i18n.translate('xpack.fleet.settings.editOutputFlyout.docLabel', {
defaultMessage: 'our documentation',
})}
From e7c793e0d74f2c48c788e7daf37dfc3b7cd68c9f Mon Sep 17 00:00:00 2001
From: James Gowdy
Date: Thu, 23 Nov 2023 17:56:19 +0000
Subject: [PATCH 16/24] [ML] Fixing blocked jobs polling interval (#171878)
There is a bug with the way we check whether or not to start polling for
blocked jobs. We should only start polling there isn't an existing poll
running.
This causes the polling to run as possible and to refresh the full jobs
list on every check.
Now the blocked jobs polling correctly runs at the interval of 2s and
the full jobs list is only updated when there is a change in the list of
blocked jobs.
Partially fixes https://github.com/elastic/kibana/issues/171626
A more in-depth change as specified in the issue can be done in follow
up work. It's good to get this change in for the next release just in
case we run out of time for the larger change.
---
.../jobs_list/components/jobs_list_view/jobs_list_view.js | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/jobs_list_view/jobs_list_view.js b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/jobs_list_view/jobs_list_view.js
index 23d20bf6aa529..97d32ebe0dc60 100644
--- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/jobs_list_view/jobs_list_view.js
+++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/jobs_list_view/jobs_list_view.js
@@ -350,7 +350,10 @@ export class JobsListView extends Component {
});
this.isDoneRefreshing();
- if (jobsSummaryList.some((j) => j.blocked !== undefined)) {
+ if (
+ blockingJobsRefreshTimeout === null &&
+ jobsSummaryList.some((j) => j.blocked !== undefined)
+ ) {
// if there are some jobs in a deleting state, start polling for
// deleting jobs so we can update the jobs list once the
// deleting tasks are over
From 78f7b80e33011b48b15e2c3218eb3415fadb7462 Mon Sep 17 00:00:00 2001
From: Tiago Costa
Date: Thu, 23 Nov 2023 18:08:02 +0000
Subject: [PATCH 17/24] Revert "[Fleet] Support preconfigured output secrets
(#170259)"
This reverts commit 1f7a527494692ff218cf506251c76bc50f24e74d.
---
package.json | 1 -
.../fleet/common/types/models/output.ts | 25 +-
.../plugins/fleet/server/services/output.ts | 14 +-
.../services/preconfiguration/outputs.test.ts | 321 ++----------------
.../services/preconfiguration/outputs.ts | 156 ++-------
.../plugins/fleet/server/services/secrets.ts | 23 +-
yarn.lock | 34 --
7 files changed, 62 insertions(+), 512 deletions(-)
diff --git a/package.json b/package.json
index 2f334f54c42e2..5e43d8bb910cf 100644
--- a/package.json
+++ b/package.json
@@ -865,7 +865,6 @@
"ansi-regex": "^5.0.1",
"antlr4ts": "^0.5.0-alpha.3",
"archiver": "^5.3.1",
- "argon2": "0.31.1",
"async": "^3.2.3",
"aws4": "^1.12.0",
"axios": "^1.6.0",
diff --git a/x-pack/plugins/fleet/common/types/models/output.ts b/x-pack/plugins/fleet/common/types/models/output.ts
index 5f6a6db3315e9..3283f4d01e540 100644
--- a/x-pack/plugins/fleet/common/types/models/output.ts
+++ b/x-pack/plugins/fleet/common/types/models/output.ts
@@ -23,12 +23,7 @@ export type KafkaPartitionType = typeof kafkaPartitionType;
export type KafkaTopicWhenType = typeof kafkaTopicWhenType;
export type KafkaAcknowledgeReliabilityLevel = typeof kafkaAcknowledgeReliabilityLevel;
export type KafkaVerificationMode = typeof kafkaVerificationModes;
-export type OutputSecret =
- | string
- | {
- id: string;
- hash?: string;
- };
+
interface NewBaseOutput {
is_default: boolean;
is_default_monitoring: boolean;
@@ -50,7 +45,11 @@ interface NewBaseOutput {
allow_edit?: string[];
secrets?: {
ssl?: {
- key?: OutputSecret;
+ key?:
+ | string
+ | {
+ id: string;
+ };
};
};
}
@@ -132,9 +131,17 @@ export interface KafkaOutput extends NewBaseOutput {
broker_timeout?: number;
required_acks?: ValueOf;
secrets?: {
- password?: OutputSecret;
+ password?:
+ | string
+ | {
+ id: string;
+ };
ssl?: {
- key?: OutputSecret;
+ key?:
+ | string
+ | {
+ id: string;
+ };
};
};
}
diff --git a/x-pack/plugins/fleet/server/services/output.ts b/x-pack/plugins/fleet/server/services/output.ts
index 016026533e3c7..0cb1099b58ebb 100644
--- a/x-pack/plugins/fleet/server/services/output.ts
+++ b/x-pack/plugins/fleet/server/services/output.ts
@@ -419,12 +419,7 @@ class OutputService {
soClient: SavedObjectsClientContract,
esClient: ElasticsearchClient,
output: NewOutput,
- options?: {
- id?: string;
- fromPreconfiguration?: boolean;
- overwrite?: boolean;
- secretHashes?: Record;
- }
+ options?: { id?: string; fromPreconfiguration?: boolean; overwrite?: boolean }
): Promise
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout/text_expansion_callout_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout/text_expansion_callout_logic.test.ts
index 4d3a77bbafa88..1380e05e4c57f 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout/text_expansion_callout_logic.test.ts
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout/text_expansion_callout_logic.test.ts
@@ -80,19 +80,19 @@ describe('TextExpansionCalloutLogic', () => {
});
it('uses the correct title and message from a create error', () => {
expect(getTextExpansionError(error, undefined, undefined)).toEqual({
- title: 'Error with ELSER v2 deployment',
+ title: 'Error with ELSER deployment',
message: error.body?.message,
});
});
it('uses the correct title and message from a fetch error', () => {
expect(getTextExpansionError(undefined, error, undefined)).toEqual({
- title: 'Error fetching ELSER v2 model',
+ title: 'Error fetching ELSER model',
message: error.body?.message,
});
});
it('uses the correct title and message from a start error', () => {
expect(getTextExpansionError(undefined, undefined, error)).toEqual({
- title: 'Error starting ELSER v2 deployment',
+ title: 'Error starting ELSER deployment',
message: error.body?.message,
});
});
@@ -303,7 +303,7 @@ describe('TextExpansionCalloutLogic', () => {
describe('textExpansionError', () => {
const error = {
body: {
- error: 'Error with ELSER v2 deployment',
+ error: 'Error with ELSER deployment',
message: 'Mocked error message',
statusCode: 500,
},
@@ -318,21 +318,21 @@ describe('TextExpansionCalloutLogic', () => {
it('returns extracted error for create', () => {
CreateTextExpansionModelApiLogic.actions.apiError(error);
expect(TextExpansionCalloutLogic.values.textExpansionError).toStrictEqual({
- title: 'Error with ELSER v2 deployment',
+ title: 'Error with ELSER deployment',
message: 'Mocked error message',
});
});
it('returns extracted error for fetch', () => {
FetchTextExpansionModelApiLogic.actions.apiError(error);
expect(TextExpansionCalloutLogic.values.textExpansionError).toStrictEqual({
- title: 'Error fetching ELSER v2 model',
+ title: 'Error fetching ELSER model',
message: 'Mocked error message',
});
});
it('returns extracted error for start', () => {
StartTextExpansionModelApiLogic.actions.apiError(error);
expect(TextExpansionCalloutLogic.values.textExpansionError).toStrictEqual({
- title: 'Error starting ELSER v2 deployment',
+ title: 'Error starting ELSER deployment',
message: 'Mocked error message',
});
});
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout/text_expansion_callout_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout/text_expansion_callout_logic.ts
index 81e3c6f8e3c5b..06d4f553bbabd 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout/text_expansion_callout_logic.ts
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout/text_expansion_callout_logic.ts
@@ -97,7 +97,7 @@ export const getTextExpansionError = (
title: i18n.translate(
'xpack.enterpriseSearch.content.indices.pipelines.textExpansionCreateError.title',
{
- defaultMessage: 'Error with ELSER v2 deployment',
+ defaultMessage: 'Error with ELSER deployment',
}
),
message: getErrorsFromHttpResponse(createError)[0],
@@ -107,7 +107,7 @@ export const getTextExpansionError = (
title: i18n.translate(
'xpack.enterpriseSearch.content.indices.pipelines.textExpansionStartError.title',
{
- defaultMessage: 'Error starting ELSER v2 deployment',
+ defaultMessage: 'Error starting ELSER deployment',
}
),
message: getErrorsFromHttpResponse(startError)[0],
@@ -117,7 +117,7 @@ export const getTextExpansionError = (
title: i18n.translate(
'xpack.enterpriseSearch.content.indices.pipelines.textExpansionFetchError.title',
{
- defaultMessage: 'Error fetching ELSER v2 model',
+ defaultMessage: 'Error fetching ELSER model',
}
),
message: getErrorsFromHttpResponse(fetchError)[0],
diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json
index 99db38f64c037..d3e27d0fcf2c1 100644
--- a/x-pack/plugins/translations/translations/zh-CN.json
+++ b/x-pack/plugins/translations/translations/zh-CN.json
@@ -14445,18 +14445,18 @@
"xpack.enterpriseSearch.content.index.pipelines.settings.reduceWhitespaceLabel": "减少空白",
"xpack.enterpriseSearch.content.index.pipelines.settings.runMlInferenceDescrition": "使用兼容的已训练 ML 模型增强您的数据",
"xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.deployedBody": "您可以在单线程配置中启动模型以用于测试,或调整性能以用于生产环境。",
- "xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.deployedTitle": "您的 ELSER v2 模型已部署,但尚未启动。",
+ "xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.deployedTitle": "您的 ELSER 模型已部署,但尚未启动。",
"xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.deployingBody": "同时,您可以继续使用其他上传的模型来创建管道。",
- "xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.deployingTitle": "您的 ELSER v2 模型正在部署。",
+ "xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.deployingTitle": "您的 ELSER 模型正在部署。",
"xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.dismissButton": "关闭 ELSER 对外调用",
"xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.learnMoreLink": "了解详情",
- "xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.startedBody": "在您的定制推理管道中体验 ELSER v2 的强大功能。",
+ "xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.startedBody": "在您的定制推理管道中体验 ELSER 的强大功能。",
"xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.startedSingleThreadedBody": "此单线程配置非常适合测试您的定制推理管道,但应微调性能以用于生产。",
- "xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.startedSingleThreadedTitle": "您的 ELSER v2 模型已通过单线程方式启动。",
- "xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.startedSingleThreadedTitleCompact": "您的 ELSER v2 模型正通过单线程方式运行。",
- "xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.startedTitle": "您的 ELSER v2 模型已启动。",
- "xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.startedTitleCompact": "您的 ELSER v2 模型正在运行。",
- "xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.title": "通过 ELSER v2 改进您的结果",
+ "xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.startedSingleThreadedTitle": "您的 ELSER 模型已通过单线程方式启动。",
+ "xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.startedSingleThreadedTitleCompact": "您的 ELSER 模型正通过单线程方式运行。",
+ "xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.startedTitle": "您的 ELSER 模型已启动。",
+ "xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.startedTitleCompact": "您的 ELSER 模型正在运行。",
+ "xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.title": "通过 ELSER 改进您的结果",
"xpack.enterpriseSearch.content.index.pipelines.textExpansionCallOut.titleBadge": "新建",
"xpack.enterpriseSearch.content.index.searchApplication.createSearchApplication": "创建搜索应用程序",
"xpack.enterpriseSearch.content.index.searchEngines.createEngineDisabledTooltip": "无法从隐藏索引创建搜索应用程序。",
@@ -14726,9 +14726,9 @@
"xpack.enterpriseSearch.content.indices.pipelines.textExpansionCallOut.startModelButton.label": "以单线程方式启动",
"xpack.enterpriseSearch.content.indices.pipelines.textExpansionCallOut.viewModelsButton": "查看详情",
"xpack.enterpriseSearch.content.indices.pipelines.textExpansionCreateError.mlNotificationsLink": "Machine Learning 通知",
- "xpack.enterpriseSearch.content.indices.pipelines.textExpansionCreateError.title": "ELSER v2 部署出错",
- "xpack.enterpriseSearch.content.indices.pipelines.textExpansionFetchError.title": "提取 ELSER v2 模型时出错",
- "xpack.enterpriseSearch.content.indices.pipelines.textExpansionStartError.title": "启动 ELSER v2 部署时出错",
+ "xpack.enterpriseSearch.content.indices.pipelines.textExpansionCreateError.title": "ELSER 部署出错",
+ "xpack.enterpriseSearch.content.indices.pipelines.textExpansionFetchError.title": "提取 ELSER 模型时出错",
+ "xpack.enterpriseSearch.content.indices.pipelines.textExpansionStartError.title": "启动 ELSER 部署时出错",
"xpack.enterpriseSearch.content.indices.searchIndex.convertConnector.buttonLabel": "转换连接器",
"xpack.enterpriseSearch.content.indices.selectConnector.allConnectorsLabel": "所有连接器",
"xpack.enterpriseSearch.content.indices.selectConnector.callout.description.connectorsClient": "连接器客户端",
From 68ac9bdc034c8959c9651d9b4dd765be24bab938 Mon Sep 17 00:00:00 2001
From: Xavier Mouligneau
Date: Thu, 23 Nov 2023 15:54:20 -0500
Subject: [PATCH 21/24] [RAM] Fix alert search bar for security solution
(#171049)
## Summary
Bring back functionality for alert search bar for security solution.
### Checklist
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
---
.../server/rule_type_registry.test.ts | 1 +
.../alerting/server/rule_type_registry.ts | 1 +
.../server/alert_data_client/alerts_client.ts | 24 +-
.../alerts_client_factory.test.ts | 2 +
.../alerts_client_factory.ts | 4 +
.../tests/bulk_update.test.ts | 1 +
.../tests/bulk_update_cases.test.ts | 1 +
.../tests/find_alerts.test.ts | 1 +
.../alert_data_client/tests/get.test.ts | 1 +
.../tests/get_aad_fields.test.ts | 50 +++
.../tests/remove_cases_from_alerts.test.ts | 2 +
.../alert_data_client/tests/update.test.ts | 1 +
x-pack/plugins/rule_registry/server/plugin.ts | 1 +
.../get_browser_fields_by_feature_id.ts | 1 +
.../server/routes/alerts_client_mock.test.ts | 1 +
.../hooks/use_alert_data_view.test.ts | 111 ------
.../hooks/use_alert_data_view.test.tsx | 162 ++++++++
.../application/hooks/use_alert_data_view.ts | 192 ++++++---
.../hooks/use_load_rule_types_query.ts | 4 +-
.../application/hooks/use_rule_aad_fields.ts | 68 +++-
.../application/lib/rule_api/alert_fields.ts | 27 ++
.../application/lib/rule_api/alert_index.ts | 25 ++
.../action_type_form.tsx | 5 +-
.../alerts_search_bar/alerts_search_bar.tsx | 29 +-
.../sections/rule_form/rule_add.tsx | 1 +
.../sections/rule_form/rule_form.test.tsx | 366 +++++++++++++++++-
.../sections/rule_form/rule_form.tsx | 27 +-
.../public/common/get_alerts_search_bar.tsx | 7 +-
.../basic/get_browser_fields_by_feature_id.ts | 34 +-
29 files changed, 934 insertions(+), 216 deletions(-)
create mode 100644 x-pack/plugins/rule_registry/server/alert_data_client/tests/get_aad_fields.test.ts
delete mode 100644 x-pack/plugins/triggers_actions_ui/public/application/hooks/use_alert_data_view.test.ts
create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/hooks/use_alert_data_view.test.tsx
create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/alert_fields.ts
create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/alert_index.ts
diff --git a/x-pack/plugins/alerting/server/rule_type_registry.test.ts b/x-pack/plugins/alerting/server/rule_type_registry.test.ts
index 8e01e7d05cbd1..709533bb898f2 100644
--- a/x-pack/plugins/alerting/server/rule_type_registry.test.ts
+++ b/x-pack/plugins/alerting/server/rule_type_registry.test.ts
@@ -782,6 +782,7 @@ describe('Create Lifecycle', () => {
"defaultScheduleInterval": undefined,
"doesSetRecoveryContext": false,
"enabledInLicense": false,
+ "fieldsForAAD": undefined,
"hasAlertsMappings": true,
"hasFieldsForAAD": false,
"id": "test",
diff --git a/x-pack/plugins/alerting/server/rule_type_registry.ts b/x-pack/plugins/alerting/server/rule_type_registry.ts
index d73d28950970e..fd32e58335e38 100644
--- a/x-pack/plugins/alerting/server/rule_type_registry.ts
+++ b/x-pack/plugins/alerting/server/rule_type_registry.ts
@@ -419,6 +419,7 @@ export class RuleTypeRegistry {
name,
minimumLicenseRequired
).isValid,
+ fieldsForAAD,
hasFieldsForAAD: Boolean(fieldsForAAD),
hasAlertsMappings: !!alerts,
validLegacyConsumers,
diff --git a/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client.ts b/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client.ts
index 47eeb6e46c406..f395ddb4b75f7 100644
--- a/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client.ts
+++ b/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client.ts
@@ -22,6 +22,7 @@ import {
ALERT_STATUS_ACTIVE,
ALERT_CASE_IDS,
MAX_CASES_PER_ALERT,
+ AlertConsumers,
} from '@kbn/rule-data-utils';
import {
@@ -80,6 +81,7 @@ export interface ConstructorOptions {
esClient: ElasticsearchClient;
ruleDataService: IRuleDataService;
getRuleType: RuleTypeRegistry['get'];
+ getRuleList: RuleTypeRegistry['list'];
getAlertIndicesAlias: AlertingStart['getAlertIndicesAlias'];
}
@@ -153,6 +155,7 @@ export class AlertsClient {
private readonly spaceId: string | undefined;
private readonly ruleDataService: IRuleDataService;
private readonly getRuleType: RuleTypeRegistry['get'];
+ private readonly getRuleList: RuleTypeRegistry['list'];
private getAlertIndicesAlias!: AlertingStart['getAlertIndicesAlias'];
constructor(options: ConstructorOptions) {
@@ -165,6 +168,7 @@ export class AlertsClient {
this.spaceId = this.authorization.getSpaceId();
this.ruleDataService = options.ruleDataService;
this.getRuleType = options.getRuleType;
+ this.getRuleList = options.getRuleList;
this.getAlertIndicesAlias = options.getAlertIndicesAlias;
}
@@ -1076,19 +1080,31 @@ export class AlertsClient {
}
public async getBrowserFields({
+ featureIds,
indices,
metaFields,
allowNoIndex,
}: {
+ featureIds: string[];
indices: string[];
metaFields: string[];
allowNoIndex: boolean;
}): Promise<{ browserFields: BrowserFields; fields: FieldDescriptor[] }> {
const indexPatternsFetcherAsInternalUser = new IndexPatternsFetcher(this.esClient);
+ const ruleTypeList = this.getRuleList();
+ const fieldsForAAD = new Set();
+ for (const rule of ruleTypeList) {
+ if (featureIds.includes(rule.producer) && rule.hasFieldsForAAD) {
+ (rule.fieldsForAAD ?? []).forEach((f) => {
+ fieldsForAAD.add(f);
+ });
+ }
+ }
const { fields } = await indexPatternsFetcherAsInternalUser.getFieldsForWildcard({
pattern: indices,
metaFields,
fieldCapsOptions: { allow_no_indices: allowNoIndex },
+ fields: [...fieldsForAAD, 'kibana.*'],
});
return {
@@ -1099,11 +1115,13 @@ export class AlertsClient {
public async getAADFields({ ruleTypeId }: { ruleTypeId: string }) {
const { producer, fieldsForAAD = [] } = this.getRuleType(ruleTypeId);
+ if (producer === AlertConsumers.SIEM) {
+ throw Boom.badRequest(`Security solution rule type is not supported`);
+ }
const indices = await this.getAuthorizedAlertsIndices([producer]);
- const o11yIndices = indices?.filter((index) => index.startsWith('.alerts-observability')) ?? [];
const indexPatternsFetcherAsInternalUser = new IndexPatternsFetcher(this.esClient);
- const { fields } = await indexPatternsFetcherAsInternalUser.getFieldsForWildcard({
- pattern: o11yIndices,
+ const { fields = [] } = await indexPatternsFetcherAsInternalUser.getFieldsForWildcard({
+ pattern: indices ?? [],
metaFields: ['_id', '_index'],
fieldCapsOptions: { allow_no_indices: true },
fields: [...fieldsForAAD, 'kibana.*'],
diff --git a/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client_factory.test.ts b/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client_factory.test.ts
index 43966d1207004..367ead5744d55 100644
--- a/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client_factory.test.ts
+++ b/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client_factory.test.ts
@@ -26,6 +26,7 @@ const alertsClientFactoryParams: AlertsClientFactoryProps = {
esClient: {} as ElasticsearchClient,
ruleDataService: ruleDataServiceMock.create(),
getRuleType: jest.fn(),
+ getRuleList: jest.fn(),
getAlertIndicesAlias: jest.fn(),
};
@@ -53,6 +54,7 @@ describe('AlertsClientFactory', () => {
auditLogger,
esClient: {},
ruleDataService: alertsClientFactoryParams.ruleDataService,
+ getRuleList: alertsClientFactoryParams.getRuleList,
getRuleType: alertsClientFactoryParams.getRuleType,
getAlertIndicesAlias: alertsClientFactoryParams.getAlertIndicesAlias,
});
diff --git a/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client_factory.ts b/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client_factory.ts
index de0afb5a0b226..934074cc4a2ed 100644
--- a/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client_factory.ts
+++ b/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client_factory.ts
@@ -23,6 +23,7 @@ export interface AlertsClientFactoryProps {
securityPluginSetup: SecurityPluginSetup | undefined;
ruleDataService: IRuleDataService | null;
getRuleType: RuleTypeRegistry['get'];
+ getRuleList: RuleTypeRegistry['list'];
getAlertIndicesAlias: AlertingStart['getAlertIndicesAlias'];
}
@@ -36,6 +37,7 @@ export class AlertsClientFactory {
private securityPluginSetup!: SecurityPluginSetup | undefined;
private ruleDataService!: IRuleDataService | null;
private getRuleType!: RuleTypeRegistry['get'];
+ private getRuleList!: RuleTypeRegistry['list'];
private getAlertIndicesAlias!: AlertingStart['getAlertIndicesAlias'];
public initialize(options: AlertsClientFactoryProps) {
@@ -53,6 +55,7 @@ export class AlertsClientFactory {
this.securityPluginSetup = options.securityPluginSetup;
this.ruleDataService = options.ruleDataService;
this.getRuleType = options.getRuleType;
+ this.getRuleList = options.getRuleList;
this.getAlertIndicesAlias = options.getAlertIndicesAlias;
}
@@ -66,6 +69,7 @@ export class AlertsClientFactory {
esClient: this.esClient,
ruleDataService: this.ruleDataService!,
getRuleType: this.getRuleType,
+ getRuleList: this.getRuleList,
getAlertIndicesAlias: this.getAlertIndicesAlias,
});
}
diff --git a/x-pack/plugins/rule_registry/server/alert_data_client/tests/bulk_update.test.ts b/x-pack/plugins/rule_registry/server/alert_data_client/tests/bulk_update.test.ts
index 4229ae23793fc..28cd76ca6dffe 100644
--- a/x-pack/plugins/rule_registry/server/alert_data_client/tests/bulk_update.test.ts
+++ b/x-pack/plugins/rule_registry/server/alert_data_client/tests/bulk_update.test.ts
@@ -31,6 +31,7 @@ const alertsClientParams: jest.Mocked = {
auditLogger,
ruleDataService: ruleDataServiceMock.create(),
getRuleType: jest.fn(),
+ getRuleList: jest.fn(),
getAlertIndicesAlias: jest.fn(),
};
diff --git a/x-pack/plugins/rule_registry/server/alert_data_client/tests/bulk_update_cases.test.ts b/x-pack/plugins/rule_registry/server/alert_data_client/tests/bulk_update_cases.test.ts
index 4047a3ecadd27..544fab479f9dd 100644
--- a/x-pack/plugins/rule_registry/server/alert_data_client/tests/bulk_update_cases.test.ts
+++ b/x-pack/plugins/rule_registry/server/alert_data_client/tests/bulk_update_cases.test.ts
@@ -37,6 +37,7 @@ describe('bulkUpdateCases', () => {
auditLogger,
ruleDataService: ruleDataServiceMock.create(),
getRuleType: jest.fn(),
+ getRuleList: jest.fn(),
getAlertIndicesAlias: jest.fn(),
};
diff --git a/x-pack/plugins/rule_registry/server/alert_data_client/tests/find_alerts.test.ts b/x-pack/plugins/rule_registry/server/alert_data_client/tests/find_alerts.test.ts
index 37ad46a523a70..8ccae88dd83c3 100644
--- a/x-pack/plugins/rule_registry/server/alert_data_client/tests/find_alerts.test.ts
+++ b/x-pack/plugins/rule_registry/server/alert_data_client/tests/find_alerts.test.ts
@@ -30,6 +30,7 @@ const alertsClientParams: jest.Mocked = {
auditLogger,
ruleDataService: ruleDataServiceMock.create(),
getRuleType: jest.fn(),
+ getRuleList: jest.fn(),
getAlertIndicesAlias: jest.fn(),
};
diff --git a/x-pack/plugins/rule_registry/server/alert_data_client/tests/get.test.ts b/x-pack/plugins/rule_registry/server/alert_data_client/tests/get.test.ts
index fb1e0eef432ef..4185fb7e83eb6 100644
--- a/x-pack/plugins/rule_registry/server/alert_data_client/tests/get.test.ts
+++ b/x-pack/plugins/rule_registry/server/alert_data_client/tests/get.test.ts
@@ -31,6 +31,7 @@ const alertsClientParams: jest.Mocked = {
auditLogger,
ruleDataService: ruleDataServiceMock.create(),
getRuleType: jest.fn(),
+ getRuleList: jest.fn(),
getAlertIndicesAlias: jest.fn(),
};
diff --git a/x-pack/plugins/rule_registry/server/alert_data_client/tests/get_aad_fields.test.ts b/x-pack/plugins/rule_registry/server/alert_data_client/tests/get_aad_fields.test.ts
new file mode 100644
index 0000000000000..777b3d3e26742
--- /dev/null
+++ b/x-pack/plugins/rule_registry/server/alert_data_client/tests/get_aad_fields.test.ts
@@ -0,0 +1,50 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { AlertConsumers } from '@kbn/rule-data-utils';
+import { AlertsClient, ConstructorOptions } from '../alerts_client';
+import { loggingSystemMock } from '@kbn/core/server/mocks';
+import { elasticsearchClientMock } from '@kbn/core-elasticsearch-client-server-mocks';
+import { alertingAuthorizationMock } from '@kbn/alerting-plugin/server/authorization/alerting_authorization.mock';
+import { auditLoggerMock } from '@kbn/security-plugin/server/audit/mocks';
+import { ruleDataServiceMock } from '../../rule_data_plugin_service/rule_data_plugin_service.mock';
+
+const alertingAuthMock = alertingAuthorizationMock.create();
+const esClientMock = elasticsearchClientMock.createElasticsearchClient();
+const auditLogger = auditLoggerMock.create();
+const getRuleTypeMock = jest.fn();
+const alertsClientParams: jest.Mocked = {
+ logger: loggingSystemMock.create().get(),
+ authorization: alertingAuthMock,
+ esClient: esClientMock,
+ auditLogger,
+ ruleDataService: ruleDataServiceMock.create(),
+ getRuleType: getRuleTypeMock,
+ getRuleList: jest.fn(),
+ getAlertIndicesAlias: jest.fn(),
+};
+
+const DEFAULT_SPACE = 'test_default_space_id';
+
+beforeEach(() => {
+ jest.resetAllMocks();
+ alertingAuthMock.getSpaceId.mockImplementation(() => DEFAULT_SPACE);
+});
+
+describe('getAADFields()', () => {
+ test('should throw an error when a rule type belong to security solution', async () => {
+ getRuleTypeMock.mockImplementation(() => ({
+ producer: AlertConsumers.SIEM,
+ fieldsForAAD: [],
+ }));
+ const alertsClient = new AlertsClient(alertsClientParams);
+
+ await expect(
+ alertsClient.getAADFields({ ruleTypeId: 'security-type' })
+ ).rejects.toThrowErrorMatchingInlineSnapshot(`"Security solution rule type is not supported"`);
+ });
+});
diff --git a/x-pack/plugins/rule_registry/server/alert_data_client/tests/remove_cases_from_alerts.test.ts b/x-pack/plugins/rule_registry/server/alert_data_client/tests/remove_cases_from_alerts.test.ts
index 2611200afd85f..317de5d52e8e2 100644
--- a/x-pack/plugins/rule_registry/server/alert_data_client/tests/remove_cases_from_alerts.test.ts
+++ b/x-pack/plugins/rule_registry/server/alert_data_client/tests/remove_cases_from_alerts.test.ts
@@ -32,6 +32,7 @@ describe('remove cases from alerts', () => {
auditLogger,
ruleDataService: ruleDataServiceMock.create(),
getRuleType: jest.fn(),
+ getRuleList: jest.fn(),
getAlertIndicesAlias: jest.fn(),
};
@@ -90,6 +91,7 @@ describe('remove cases from alerts', () => {
auditLogger,
ruleDataService: ruleDataServiceMock.create(),
getRuleType: jest.fn(),
+ getRuleList: jest.fn(),
getAlertIndicesAlias: jest.fn(),
};
diff --git a/x-pack/plugins/rule_registry/server/alert_data_client/tests/update.test.ts b/x-pack/plugins/rule_registry/server/alert_data_client/tests/update.test.ts
index bca5e7d967f3a..bd6a1b2695cd1 100644
--- a/x-pack/plugins/rule_registry/server/alert_data_client/tests/update.test.ts
+++ b/x-pack/plugins/rule_registry/server/alert_data_client/tests/update.test.ts
@@ -30,6 +30,7 @@ const alertsClientParams: jest.Mocked = {
auditLogger,
ruleDataService: ruleDataServiceMock.create(),
getRuleType: jest.fn(),
+ getRuleList: jest.fn(),
getAlertIndicesAlias: jest.fn(),
};
diff --git a/x-pack/plugins/rule_registry/server/plugin.ts b/x-pack/plugins/rule_registry/server/plugin.ts
index 6fba837a10c1a..8cb6df23ae766 100644
--- a/x-pack/plugins/rule_registry/server/plugin.ts
+++ b/x-pack/plugins/rule_registry/server/plugin.ts
@@ -166,6 +166,7 @@ export class RuleRegistryPlugin
securityPluginSetup: security,
ruleDataService,
getRuleType: plugins.alerting.getType,
+ getRuleList: plugins.alerting.listTypes,
getAlertIndicesAlias: plugins.alerting.getAlertIndicesAlias,
});
diff --git a/x-pack/plugins/rule_registry/server/routes/get_browser_fields_by_feature_id.ts b/x-pack/plugins/rule_registry/server/routes/get_browser_fields_by_feature_id.ts
index 259ca03478745..995f992e0b800 100644
--- a/x-pack/plugins/rule_registry/server/routes/get_browser_fields_by_feature_id.ts
+++ b/x-pack/plugins/rule_registry/server/routes/get_browser_fields_by_feature_id.ts
@@ -53,6 +53,7 @@ export const getBrowserFieldsByFeatureId = (router: IRouter = {
ruleDataService: ruleDataServiceMock.create(),
esClient: esClientMock,
getRuleType: jest.fn(),
+ getRuleList: jest.fn(),
getAlertIndicesAlias: getAlertIndicesAliasMock,
};
diff --git a/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_alert_data_view.test.ts b/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_alert_data_view.test.ts
deleted file mode 100644
index ef1bdee1d5490..0000000000000
--- a/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_alert_data_view.test.ts
+++ /dev/null
@@ -1,111 +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 { AlertConsumers } from '@kbn/rule-data-utils';
-import { createStartServicesMock } from '../../common/lib/kibana/kibana_react.mock';
-import type { ValidFeatureId } from '@kbn/rule-data-utils';
-import { act, renderHook } from '@testing-library/react-hooks';
-import { useAlertDataView, UserAlertDataView } from './use_alert_data_view';
-
-const mockUseKibanaReturnValue = createStartServicesMock();
-
-jest.mock('@kbn/kibana-react-plugin/public', () => ({
- __esModule: true,
- useKibana: jest.fn(() => ({
- services: mockUseKibanaReturnValue,
- })),
-}));
-
-describe('useAlertDataView', () => {
- const observabilityAlertFeatureIds: ValidFeatureId[] = [
- AlertConsumers.APM,
- AlertConsumers.INFRASTRUCTURE,
- AlertConsumers.LOGS,
- AlertConsumers.UPTIME,
- ];
-
- beforeEach(() => {
- mockUseKibanaReturnValue.http.get = jest.fn().mockReturnValue({
- index_name: [
- '.alerts-observability.uptime.alerts-*',
- '.alerts-observability.metrics.alerts-*',
- '.alerts-observability.logs.alerts-*',
- '.alerts-observability.apm.alerts-*',
- ],
- });
- });
-
- afterEach(() => {
- jest.clearAllMocks();
- });
-
- it('initially is loading and does not have data', async () => {
- await act(async () => {
- const mockedAsyncDataView = {
- loading: true,
- error: undefined,
- };
-
- const { result, waitForNextUpdate } = renderHook(() =>
- useAlertDataView(observabilityAlertFeatureIds)
- );
-
- await waitForNextUpdate();
-
- expect(result.current).toEqual(mockedAsyncDataView);
- });
- });
-
- it('returns dataView for the provided featureIds', async () => {
- await act(async () => {
- const { result, waitForNextUpdate } = renderHook(() =>
- useAlertDataView(observabilityAlertFeatureIds)
- );
-
- await waitForNextUpdate();
- await waitForNextUpdate();
-
- expect(result.current).toMatchInlineSnapshot(`
- Object {
- "error": undefined,
- "loading": false,
- "value": Array [
- Object {
- "fieldFormatMap": Object {},
- "fields": Array [],
- "title": ".alerts-observability.uptime.alerts-*,.alerts-observability.metrics.alerts-*,.alerts-observability.logs.alerts-*,.alerts-observability.apm.alerts-*",
- },
- ],
- }
- `);
- });
- });
-
- it('returns error with no data when error happens', async () => {
- const error = new Error('http error');
- mockUseKibanaReturnValue.http.get = jest.fn().mockImplementation(async () => {
- throw error;
- });
-
- await act(async () => {
- const { result, waitForNextUpdate } = renderHook(() =>
- useAlertDataView(observabilityAlertFeatureIds)
- );
-
- await waitForNextUpdate();
- await waitForNextUpdate();
-
- expect(result.current).toMatchInlineSnapshot(`
- Object {
- "error": [Error: http error],
- "loading": false,
- "value": undefined,
- }
- `);
- });
- });
-});
diff --git a/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_alert_data_view.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_alert_data_view.test.tsx
new file mode 100644
index 0000000000000..e37808a05d9b2
--- /dev/null
+++ b/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_alert_data_view.test.tsx
@@ -0,0 +1,162 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { AlertConsumers } from '@kbn/rule-data-utils';
+import { createStartServicesMock } from '../../common/lib/kibana/kibana_react.mock';
+import type { ValidFeatureId } from '@kbn/rule-data-utils';
+import { act, renderHook } from '@testing-library/react-hooks';
+import { useAlertDataView } from './use_alert_data_view';
+import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
+import React from 'react';
+
+const mockUseKibanaReturnValue = createStartServicesMock();
+
+jest.mock('@kbn/kibana-react-plugin/public', () => ({
+ __esModule: true,
+ useKibana: jest.fn(() => ({
+ services: mockUseKibanaReturnValue,
+ })),
+}));
+
+jest.mock('../lib/rule_api/alert_index', () => ({
+ fetchAlertIndexNames: jest.fn(),
+}));
+
+const { fetchAlertIndexNames } = jest.requireMock('../lib/rule_api/alert_index');
+
+jest.mock('../lib/rule_api/alert_fields', () => ({
+ fetchAlertFields: jest.fn(),
+}));
+const { fetchAlertFields } = jest.requireMock('../lib/rule_api/alert_fields');
+
+const queryClient = new QueryClient({
+ defaultOptions: {
+ queries: {
+ retry: false,
+ cacheTime: 0,
+ },
+ },
+});
+const wrapper = ({ children }: { children: Node }) => (
+ {children}
+);
+
+describe('useAlertDataView', () => {
+ const observabilityAlertFeatureIds: ValidFeatureId[] = [
+ AlertConsumers.APM,
+ AlertConsumers.INFRASTRUCTURE,
+ AlertConsumers.LOGS,
+ AlertConsumers.UPTIME,
+ ];
+
+ beforeEach(() => {
+ fetchAlertIndexNames.mockResolvedValue([
+ '.alerts-observability.uptime.alerts-*',
+ '.alerts-observability.metrics.alerts-*',
+ '.alerts-observability.logs.alerts-*',
+ '.alerts-observability.apm.alerts-*',
+ ]);
+ fetchAlertFields.mockResolvedValue([{ data: ' fields' }]);
+ });
+
+ afterEach(() => {
+ queryClient.clear();
+ jest.clearAllMocks();
+ });
+
+ it('initially is loading and does not have data', async () => {
+ await act(async () => {
+ const mockedAsyncDataView = {
+ loading: true,
+ dataview: undefined,
+ };
+
+ const { result, waitForNextUpdate } = renderHook(
+ () => useAlertDataView(observabilityAlertFeatureIds),
+ {
+ wrapper,
+ }
+ );
+
+ await waitForNextUpdate();
+
+ expect(result.current).toEqual(mockedAsyncDataView);
+ });
+ });
+
+ it('fetch index names + fields for the provided o11y featureIds', async () => {
+ await act(async () => {
+ const { waitForNextUpdate } = renderHook(
+ () => useAlertDataView(observabilityAlertFeatureIds),
+ {
+ wrapper,
+ }
+ );
+
+ await waitForNextUpdate();
+ await waitForNextUpdate();
+
+ expect(fetchAlertIndexNames).toHaveBeenCalledTimes(1);
+ expect(fetchAlertFields).toHaveBeenCalledTimes(1);
+ });
+ });
+
+ it('only fetch index names for security featureId', async () => {
+ await act(async () => {
+ const { waitForNextUpdate } = renderHook(() => useAlertDataView([AlertConsumers.SIEM]), {
+ wrapper,
+ });
+
+ await waitForNextUpdate();
+ await waitForNextUpdate();
+
+ expect(fetchAlertIndexNames).toHaveBeenCalledTimes(1);
+ expect(fetchAlertFields).toHaveBeenCalledTimes(0);
+ });
+ });
+
+ it('Do not fetch anything if security and o11y featureIds are mix together', async () => {
+ await act(async () => {
+ const { result, waitForNextUpdate } = renderHook(
+ () => useAlertDataView([AlertConsumers.SIEM, AlertConsumers.LOGS]),
+ {
+ wrapper,
+ }
+ );
+
+ await waitForNextUpdate();
+
+ expect(fetchAlertIndexNames).toHaveBeenCalledTimes(0);
+ expect(fetchAlertFields).toHaveBeenCalledTimes(0);
+ expect(result.current).toEqual({
+ loading: false,
+ dataview: undefined,
+ });
+ });
+ });
+
+ it('if fetch throw error return no data', async () => {
+ fetchAlertIndexNames.mockRejectedValue('error');
+
+ await act(async () => {
+ const { result, waitForNextUpdate } = renderHook(
+ () => useAlertDataView(observabilityAlertFeatureIds),
+ {
+ wrapper,
+ }
+ );
+
+ await waitForNextUpdate();
+ await waitForNextUpdate();
+
+ expect(result.current).toEqual({
+ loading: false,
+ dataview: undefined,
+ });
+ });
+ });
+});
diff --git a/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_alert_data_view.ts b/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_alert_data_view.ts
index 15608192e7ddc..7b72e5898d56d 100644
--- a/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_alert_data_view.ts
+++ b/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_alert_data_view.ts
@@ -5,72 +5,158 @@
* 2.0.
*/
-import { DataView, FieldSpec } from '@kbn/data-views-plugin/common';
+import { i18n } from '@kbn/i18n';
+import { DataView } from '@kbn/data-views-plugin/common';
import { useKibana } from '@kbn/kibana-react-plugin/public';
-import { BASE_RAC_ALERTS_API_PATH } from '@kbn/rule-registry-plugin/common';
-import type { ValidFeatureId } from '@kbn/rule-data-utils';
-import useAsync from 'react-use/lib/useAsync';
-import { useMemo } from 'react';
+import { AlertConsumers, ValidFeatureId } from '@kbn/rule-data-utils';
+import { useEffect, useMemo, useState } from 'react';
+import { useQuery } from '@tanstack/react-query';
import { TriggersAndActionsUiServices } from '../..';
+import { fetchAlertIndexNames } from '../lib/rule_api/alert_index';
+import { fetchAlertFields } from '../lib/rule_api/alert_fields';
export interface UserAlertDataView {
- value?: DataView[];
+ dataviews?: DataView[];
loading: boolean;
- error?: Error;
}
export function useAlertDataView(featureIds: ValidFeatureId[]): UserAlertDataView {
- const { http } = useKibana().services;
+ const {
+ http,
+ data: dataService,
+ notifications: { toasts },
+ } = useKibana().services;
+ const [dataviews, setDataviews] = useState(undefined);
const features = featureIds.sort().join(',');
+ const isOnlySecurity = featureIds.length === 1 && featureIds.includes(AlertConsumers.SIEM);
- const indexNames = useAsync(async () => {
- const { index_name: indexNamesStr } = await http.get<{ index_name: string[] }>(
- `${BASE_RAC_ALERTS_API_PATH}/index`,
- {
- query: { features },
- }
- );
+ const hasSecurityAndO11yFeatureIds =
+ featureIds.length > 1 && featureIds.includes(AlertConsumers.SIEM);
- return indexNamesStr;
- }, [features]);
+ const hasNoSecuritySolution =
+ featureIds.length > 0 && !isOnlySecurity && !hasSecurityAndO11yFeatureIds;
- const fields = useAsync(async () => {
- const { fields: alertFields } = await http.get<{ fields: FieldSpec[] }>(
- `${BASE_RAC_ALERTS_API_PATH}/browser_fields`,
- {
- query: { featureIds },
- }
- );
- return alertFields;
- }, [features]);
+ const queryIndexNameFn = () => {
+ return fetchAlertIndexNames({ http, features });
+ };
- const dataview = useMemo(
- () =>
- !fields.loading &&
- !indexNames.loading &&
- fields.error === undefined &&
- indexNames.error === undefined
- ? ([
- {
- title: (indexNames.value ?? []).join(','),
- fieldFormatMap: {},
- fields: (fields.value ?? [])?.map((field) => {
- return {
- ...field,
- ...(field.esTypes && field.esTypes.includes('flattened')
- ? { type: 'string' }
- : {}),
- };
- }),
- },
- ] as unknown as DataView[])
- : undefined,
- [fields, indexNames]
- );
+ const queryAlertFieldsFn = () => {
+ return fetchAlertFields({ http, featureIds });
+ };
- return {
- value: dataview,
- loading: fields.loading || indexNames.loading,
- error: fields.error ? fields.error : indexNames.error,
+ const onErrorFn = () => {
+ toasts.addDanger(
+ i18n.translate('xpack.triggersActionsUI.useAlertDataView.useAlertDataMessage', {
+ defaultMessage: 'Unable to load alert data view',
+ })
+ );
};
+
+ const {
+ data: indexNames,
+ isSuccess: isIndexNameSuccess,
+ isInitialLoading: isIndexNameInitialLoading,
+ isLoading: isIndexNameLoading,
+ } = useQuery({
+ queryKey: ['loadAlertIndexNames', features],
+ queryFn: queryIndexNameFn,
+ onError: onErrorFn,
+ refetchOnWindowFocus: false,
+ enabled: featureIds.length > 0 && !hasSecurityAndO11yFeatureIds,
+ });
+
+ const {
+ data: alertFields,
+ isSuccess: isAlertFieldsSuccess,
+ isInitialLoading: isAlertFieldsInitialLoading,
+ isLoading: isAlertFieldsLoading,
+ } = useQuery({
+ queryKey: ['loadAlertFields', features],
+ queryFn: queryAlertFieldsFn,
+ onError: onErrorFn,
+ refetchOnWindowFocus: false,
+ enabled: hasNoSecuritySolution,
+ });
+
+ useEffect(() => {
+ return () => {
+ dataviews?.map((dv) => {
+ dataService.dataViews.clearInstanceCache(dv.id);
+ });
+ };
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [dataviews]);
+
+ // FUTURE ENGINEER this useEffect is for security solution user since
+ // we are using the user privilege to access the security alert index
+ useEffect(() => {
+ async function createDataView() {
+ const localDataview = await dataService.dataViews.create({
+ title: (indexNames ?? []).join(','),
+ allowNoIndex: true,
+ });
+ setDataviews([localDataview]);
+ }
+
+ if (isOnlySecurity && isIndexNameSuccess) {
+ createDataView();
+ }
+ }, [dataService.dataViews, indexNames, isIndexNameSuccess, isOnlySecurity]);
+
+ // FUTURE ENGINEER this useEffect is for o11y and stack solution user since
+ // we are using the kibana user privilege to access the alert index
+ useEffect(() => {
+ if (
+ indexNames &&
+ alertFields &&
+ !isOnlySecurity &&
+ isAlertFieldsSuccess &&
+ isIndexNameSuccess
+ ) {
+ setDataviews([
+ {
+ title: (indexNames ?? []).join(','),
+ fieldFormatMap: {},
+ fields: (alertFields ?? [])?.map((field) => {
+ return {
+ ...field,
+ ...(field.esTypes && field.esTypes.includes('flattened') ? { type: 'string' } : {}),
+ };
+ }),
+ },
+ ] as unknown as DataView[]);
+ }
+ }, [
+ alertFields,
+ dataService.dataViews,
+ indexNames,
+ isIndexNameSuccess,
+ isOnlySecurity,
+ isAlertFieldsSuccess,
+ ]);
+
+ return useMemo(
+ () => ({
+ dataviews,
+ loading:
+ featureIds.length === 0 || hasSecurityAndO11yFeatureIds
+ ? false
+ : isOnlySecurity
+ ? isIndexNameInitialLoading || isIndexNameLoading
+ : isIndexNameInitialLoading ||
+ isIndexNameLoading ||
+ isAlertFieldsInitialLoading ||
+ isAlertFieldsLoading,
+ }),
+ [
+ dataviews,
+ featureIds.length,
+ hasSecurityAndO11yFeatureIds,
+ isOnlySecurity,
+ isIndexNameInitialLoading,
+ isIndexNameLoading,
+ isAlertFieldsInitialLoading,
+ isAlertFieldsLoading,
+ ]
+ );
}
diff --git a/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_load_rule_types_query.ts b/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_load_rule_types_query.ts
index 4892341e57385..ab11bb4f18452 100644
--- a/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_load_rule_types_query.ts
+++ b/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_load_rule_types_query.ts
@@ -13,6 +13,7 @@ import { RuleType, RuleTypeIndex } from '../../types';
interface UseLoadRuleTypesQueryProps {
filteredRuleTypes: string[];
+ enabled?: boolean;
}
const getFilteredIndex = (data: Array>, filteredRuleTypes: string[]) => {
@@ -32,7 +33,7 @@ const getFilteredIndex = (data: Array>, filteredRuleTyp
};
export const useLoadRuleTypesQuery = (props: UseLoadRuleTypesQueryProps) => {
- const { filteredRuleTypes } = props;
+ const { filteredRuleTypes, enabled = true } = props;
const {
http,
notifications: { toasts },
@@ -55,6 +56,7 @@ export const useLoadRuleTypesQuery = (props: UseLoadRuleTypesQueryProps) => {
queryFn,
onError: onErrorFn,
refetchOnWindowFocus: false,
+ enabled,
});
const filteredIndex = data ? getFilteredIndex(data, filteredRuleTypes) : new Map();
diff --git a/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_rule_aad_fields.ts b/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_rule_aad_fields.ts
index 7fa2e3f0dfd04..1ad7106910113 100644
--- a/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_rule_aad_fields.ts
+++ b/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_rule_aad_fields.ts
@@ -8,21 +8,67 @@
import { DataViewField } from '@kbn/data-views-plugin/common';
import { useKibana } from '@kbn/kibana-react-plugin/public';
import { BASE_RAC_ALERTS_API_PATH } from '@kbn/rule-registry-plugin/common';
-import useAsync from 'react-use/lib/useAsync';
-import type { AsyncState } from 'react-use/lib/useAsync';
+import { HttpSetup } from '@kbn/core/public';
+import { useQuery } from '@tanstack/react-query';
+import { i18n } from '@kbn/i18n';
+import { useMemo } from 'react';
import { TriggersAndActionsUiServices } from '../..';
-export function useRuleAADFields(ruleTypeId?: string): AsyncState {
- const { http } = useKibana().services;
+const EMPTY_AAD_FIELDS: DataViewField[] = [];
- const aadFields = useAsync(async () => {
- if (!ruleTypeId) return [];
- const fields = await http.get(`${BASE_RAC_ALERTS_API_PATH}/aad_fields`, {
- query: { ruleTypeId },
- });
+async function fetchAadFields({
+ http,
+ ruleTypeId,
+}: {
+ http: HttpSetup;
+ ruleTypeId?: string;
+}): Promise {
+ if (!ruleTypeId) return EMPTY_AAD_FIELDS;
+ const fields = await http.get(`${BASE_RAC_ALERTS_API_PATH}/aad_fields`, {
+ query: { ruleTypeId },
+ });
+
+ return fields;
+}
+
+export function useRuleAADFields(ruleTypeId?: string): {
+ aadFields: DataViewField[];
+ loading: boolean;
+} {
+ const {
+ http,
+ notifications: { toasts },
+ } = useKibana().services;
+
+ const queryAadFieldsFn = () => {
+ return fetchAadFields({ http, ruleTypeId });
+ };
+
+ const onErrorFn = () => {
+ toasts.addDanger(
+ i18n.translate('xpack.triggersActionsUI.useRuleAADFields.errorMessage', {
+ defaultMessage: 'Unable to load alert fields per rule type',
+ })
+ );
+ };
- return fields;
+ const {
+ data: aadFields = EMPTY_AAD_FIELDS,
+ isInitialLoading,
+ isLoading,
+ } = useQuery({
+ queryKey: ['loadAlertAadFieldsPerRuleType', ruleTypeId],
+ queryFn: queryAadFieldsFn,
+ onError: onErrorFn,
+ refetchOnWindowFocus: false,
+ enabled: ruleTypeId !== undefined,
});
- return aadFields;
+ return useMemo(
+ () => ({
+ aadFields,
+ loading: ruleTypeId === undefined ? false : isInitialLoading || isLoading,
+ }),
+ [aadFields, isInitialLoading, isLoading, ruleTypeId]
+ );
}
diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/alert_fields.ts b/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/alert_fields.ts
new file mode 100644
index 0000000000000..7be5b3eec0e69
--- /dev/null
+++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/alert_fields.ts
@@ -0,0 +1,27 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { ValidFeatureId } from '@kbn/rule-data-utils';
+import { HttpSetup } from '@kbn/core/public';
+import { FieldSpec } from '@kbn/data-views-plugin/common';
+import { BASE_RAC_ALERTS_API_PATH } from '@kbn/rule-registry-plugin/common';
+
+export async function fetchAlertFields({
+ http,
+ featureIds,
+}: {
+ http: HttpSetup;
+ featureIds: ValidFeatureId[];
+}): Promise {
+ const { fields: alertFields = [] } = await http.get<{ fields: FieldSpec[] }>(
+ `${BASE_RAC_ALERTS_API_PATH}/browser_fields`,
+ {
+ query: { featureIds },
+ }
+ );
+ return alertFields;
+}
diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/alert_index.ts b/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/alert_index.ts
new file mode 100644
index 0000000000000..8ac678664168b
--- /dev/null
+++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/alert_index.ts
@@ -0,0 +1,25 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { BASE_RAC_ALERTS_API_PATH } from '@kbn/rule-registry-plugin/common';
+import { HttpSetup } from '@kbn/core/public';
+
+export async function fetchAlertIndexNames({
+ http,
+ features,
+}: {
+ http: HttpSetup;
+ features: string;
+}): Promise {
+ const { index_name: indexNamesStr = [] } = await http.get<{ index_name: string[] }>(
+ `${BASE_RAC_ALERTS_API_PATH}/index`,
+ {
+ query: { features },
+ }
+ );
+ return indexNamesStr;
+}
diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_type_form.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_type_form.tsx
index 83ad089c8e691..a9f49f609e13d 100644
--- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_type_form.tsx
+++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_type_form.tsx
@@ -8,7 +8,7 @@
import React, { Suspense, useEffect, useState, useCallback, useMemo } from 'react';
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n-react';
-import { ValidFeatureId, AlertConsumers } from '@kbn/rule-data-utils';
+import { ValidFeatureId } from '@kbn/rule-data-utils';
import {
EuiFlexGroup,
EuiFlexItem,
@@ -428,8 +428,7 @@ export const ActionTypeForm = ({
setActionGroupIdByIndex &&
!actionItem.frequency?.summary;
- const showActionAlertsFilter =
- hasFieldsForAAD || producerId === AlertConsumers.SIEM || hasAlertsMappings;
+ const showActionAlertsFilter = hasFieldsForAAD;
const accordionContent = checkEnabledResult.isEnabled ? (
<>
diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_search_bar/alerts_search_bar.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_search_bar/alerts_search_bar.tsx
index 077be38b5616a..10e2a8493d711 100644
--- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_search_bar/alerts_search_bar.tsx
+++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_search_bar/alerts_search_bar.tsx
@@ -9,12 +9,14 @@ import React, { useCallback, useState } from 'react';
import { useKibana } from '@kbn/kibana-react-plugin/public';
import { Query, TimeRange } from '@kbn/es-query';
import { SuggestionsAbstraction } from '@kbn/unified-search-plugin/public/typeahead/suggestions_component';
+import { AlertConsumers } from '@kbn/rule-data-utils';
import { NO_INDEX_PATTERNS } from './constants';
import { SEARCH_BAR_PLACEHOLDER } from './translations';
import { AlertsSearchBarProps, QueryLanguageType } from './types';
import { useAlertDataView } from '../../hooks/use_alert_data_view';
import { TriggersAndActionsUiServices } from '../../..';
import { useRuleAADFields } from '../../hooks/use_rule_aad_fields';
+import { useLoadRuleTypesQuery } from '../../hooks/use_load_rule_types_query';
const SA_ALERTS = { type: 'alerts', fields: {} } as SuggestionsAbstraction;
@@ -44,15 +46,22 @@ export function AlertsSearchBar({
} = useKibana().services;
const [queryLanguage, setQueryLanguage] = useState('kuery');
- const { value: dataView, loading, error } = useAlertDataView(featureIds);
- const {
- value: aadFields,
- loading: fieldsLoading,
- error: fieldsError,
- } = useRuleAADFields(ruleTypeId);
+ const { dataviews, loading } = useAlertDataView(featureIds ?? []);
+ const { aadFields, loading: fieldsLoading } = useRuleAADFields(ruleTypeId);
const indexPatterns =
- ruleTypeId && aadFields?.length ? [{ title: ruleTypeId, fields: aadFields }] : dataView;
+ ruleTypeId && aadFields?.length ? [{ title: ruleTypeId, fields: aadFields }] : dataviews;
+
+ const ruleType = useLoadRuleTypesQuery({
+ filteredRuleTypes: ruleTypeId !== undefined ? [ruleTypeId] : [],
+ enabled: ruleTypeId !== undefined,
+ });
+
+ const isSecurity =
+ (featureIds && featureIds.length === 1 && featureIds.includes(AlertConsumers.SIEM)) ||
+ (ruleType &&
+ ruleTypeId &&
+ ruleType.ruleTypesState.data.get(ruleTypeId)?.producer === AlertConsumers.SIEM);
const onSearchQuerySubmit = useCallback(
({ dateRange, query: nextQuery }: { dateRange: TimeRange; query?: Query }) => {
@@ -86,9 +95,7 @@ export function AlertsSearchBar({
appName={appName}
disableQueryLanguageSwitcher={disableQueryLanguageSwitcher}
// @ts-expect-error - DataView fields prop and SearchBar indexPatterns props are overly broad
- indexPatterns={
- loading || error || fieldsLoading || fieldsError ? NO_INDEX_PATTERNS : indexPatterns
- }
+ indexPatterns={loading || fieldsLoading ? NO_INDEX_PATTERNS : indexPatterns}
placeholder={placeholder}
query={{ query: query ?? '', language: queryLanguage }}
filters={filters}
@@ -105,7 +112,7 @@ export function AlertsSearchBar({
showSubmitButton={showSubmitButton}
submitOnBlur={submitOnBlur}
onQueryChange={onSearchQueryChange}
- suggestionsAbstraction={SA_ALERTS}
+ suggestionsAbstraction={isSecurity ? undefined : SA_ALERTS}
/>
);
}
diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_add.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_add.tsx
index de2eb91b74c84..aab0b5891fc77 100644
--- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_add.tsx
+++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_add.tsx
@@ -305,6 +305,7 @@ const RuleAdd = ({
hideGrouping={hideGrouping}
hideInterval={hideInterval}
onChangeMetaData={onChangeMetaData}
+ selectedConsumer={selectedConsumer}
setConsumer={setSelectedConsumer}
useRuleProducer={useRuleProducer}
/>
diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.test.tsx
index 59d3c4f1f8c3b..f528ce4b45aa7 100644
--- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.test.tsx
+++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.test.tsx
@@ -262,6 +262,7 @@ describe('rule_form', () => {
ruleTypesOverwrite?: RuleType[];
ruleTypeModelOverwrite?: RuleTypeModel;
useRuleProducer?: boolean;
+ selectedConsumer?: RuleCreationValidConsumer | null;
}) {
const {
showRulesList = false,
@@ -273,6 +274,7 @@ describe('rule_form', () => {
ruleTypesOverwrite,
ruleTypeModelOverwrite,
useRuleProducer = false,
+ selectedConsumer,
} = options || {};
const mocks = coreMock.createSetup();
@@ -325,7 +327,11 @@ describe('rule_form', () => {
enabledInLicense: false,
},
];
- useLoadRuleTypes.mockReturnValue({ ruleTypes });
+ const ruleTypeIndex = ruleTypes.reduce((acc, item) => {
+ acc.set(item.id, item);
+ return acc;
+ }, new Map());
+ useLoadRuleTypes.mockReturnValue({ ruleTypes, ruleTypeIndex });
const [
{
application: { capabilities },
@@ -377,7 +383,7 @@ describe('rule_form', () => {
minimumScheduleInterval: { value: '1m', enforce: enforceMinimum },
}}
dispatch={() => {}}
- errors={{ name: [], 'schedule.interval': [], ruleTypeId: [] }}
+ errors={{ name: [], 'schedule.interval': [], ruleTypeId: [], actionConnectors: [] }}
operation="create"
actionTypeRegistry={actionTypeRegistry}
ruleTypeRegistry={ruleTypeRegistry}
@@ -386,6 +392,7 @@ describe('rule_form', () => {
validConsumers={validConsumers}
setConsumer={mockSetConsumer}
useRuleProducer={useRuleProducer}
+ selectedConsumer={selectedConsumer}
/>
);
@@ -666,6 +673,361 @@ describe('rule_form', () => {
expect(wrapper.find('[data-test-subj="ruleFormConsumerSelect"]').exists()).toBeFalsy();
});
+
+ it('Do not show alert query in action when multi consumer rule type does not have a consumer selected', async () => {
+ await setup({
+ initialRuleOverwrite: {
+ name: 'Simple rule',
+ consumer: 'alerts',
+ ruleTypeId: OBSERVABILITY_THRESHOLD_RULE_TYPE_ID,
+ schedule: {
+ interval: '1h',
+ },
+ },
+ ruleTypesOverwrite: [
+ {
+ id: OBSERVABILITY_THRESHOLD_RULE_TYPE_ID,
+ name: 'Threshold Rule',
+ actionGroups: [
+ {
+ id: 'testActionGroup',
+ name: 'Test Action Group',
+ },
+ ],
+ enabledInLicense: true,
+ defaultActionGroupId: 'threshold.fired',
+ minimumLicenseRequired: 'basic',
+ recoveryActionGroup: { id: 'recovered', name: 'Recovered' },
+ producer: ALERTS_FEATURE_ID,
+ authorizedConsumers: {
+ infrastructure: { read: true, all: true },
+ logs: { read: true, all: true },
+ },
+ actionVariables: {
+ context: [],
+ state: [],
+ params: [],
+ },
+ hasFieldsForAAD: true,
+ hasAlertsMappings: true,
+ },
+ ],
+ ruleTypeModelOverwrite: {
+ id: OBSERVABILITY_THRESHOLD_RULE_TYPE_ID,
+ iconClass: 'test',
+ description: 'test',
+ documentationUrl: null,
+ validate: (): ValidationResult => {
+ return { errors: {} };
+ },
+ ruleParamsExpression: TestExpression,
+ requiresAppContext: false,
+ },
+ });
+
+ await act(async () => {
+ await nextTick();
+ wrapper.update();
+ });
+
+ expect(wrapper.find(ActionForm).props().hasFieldsForAAD).toEqual(false);
+ });
+
+ it('Do not show alert query in action when we do not have hasFieldsForAAD or hasAlertsMappings or belong to security', async () => {
+ await setup({
+ initialRuleOverwrite: {
+ name: 'Simple rule',
+ consumer: 'alerts',
+ ruleTypeId: 'my-rule-type',
+ schedule: {
+ interval: '1h',
+ },
+ },
+ ruleTypesOverwrite: [
+ {
+ id: 'my-rule-type',
+ name: 'Threshold Rule',
+ actionGroups: [
+ {
+ id: 'testActionGroup',
+ name: 'Test Action Group',
+ },
+ ],
+ enabledInLicense: true,
+ defaultActionGroupId: 'threshold.fired',
+ minimumLicenseRequired: 'basic',
+ recoveryActionGroup: { id: 'recovered', name: 'Recovered' },
+ producer: ALERTS_FEATURE_ID,
+ authorizedConsumers: {
+ infrastructure: { read: true, all: true },
+ logs: { read: true, all: true },
+ },
+ actionVariables: {
+ context: [],
+ state: [],
+ params: [],
+ },
+ hasFieldsForAAD: false,
+ hasAlertsMappings: false,
+ },
+ ],
+ ruleTypeModelOverwrite: {
+ id: 'my-rule-type',
+ iconClass: 'test',
+ description: 'test',
+ documentationUrl: null,
+ validate: (): ValidationResult => {
+ return { errors: {} };
+ },
+ ruleParamsExpression: TestExpression,
+ requiresAppContext: false,
+ },
+ });
+
+ await act(async () => {
+ await nextTick();
+ wrapper.update();
+ });
+
+ expect(wrapper.find(ActionForm).props().hasFieldsForAAD).toEqual(false);
+ });
+
+ it('Show alert query in action when rule type hasFieldsForAAD', async () => {
+ await setup({
+ initialRuleOverwrite: {
+ name: 'Simple rule',
+ consumer: 'alerts',
+ ruleTypeId: 'my-rule-type',
+ schedule: {
+ interval: '1h',
+ },
+ },
+ ruleTypesOverwrite: [
+ {
+ id: 'my-rule-type',
+ name: 'Threshold Rule',
+ actionGroups: [
+ {
+ id: 'testActionGroup',
+ name: 'Test Action Group',
+ },
+ ],
+ enabledInLicense: true,
+ defaultActionGroupId: 'threshold.fired',
+ minimumLicenseRequired: 'basic',
+ recoveryActionGroup: { id: 'recovered', name: 'Recovered' },
+ producer: ALERTS_FEATURE_ID,
+ authorizedConsumers: {
+ infrastructure: { read: true, all: true },
+ logs: { read: true, all: true },
+ },
+ actionVariables: {
+ context: [],
+ state: [],
+ params: [],
+ },
+ hasFieldsForAAD: true,
+ hasAlertsMappings: false,
+ },
+ ],
+ ruleTypeModelOverwrite: {
+ id: 'my-rule-type',
+ iconClass: 'test',
+ description: 'test',
+ documentationUrl: null,
+ validate: (): ValidationResult => {
+ return { errors: {} };
+ },
+ ruleParamsExpression: TestExpression,
+ requiresAppContext: false,
+ },
+ });
+
+ await act(async () => {
+ await nextTick();
+ wrapper.update();
+ });
+
+ expect(wrapper.find(ActionForm).props().hasFieldsForAAD).toEqual(true);
+ });
+
+ it('Show alert query in action when rule type hasAlertsMappings', async () => {
+ await setup({
+ initialRuleOverwrite: {
+ name: 'Simple rule',
+ consumer: 'alerts',
+ ruleTypeId: 'my-rule-type',
+ schedule: {
+ interval: '1h',
+ },
+ },
+ ruleTypesOverwrite: [
+ {
+ id: 'my-rule-type',
+ name: 'Threshold Rule',
+ actionGroups: [
+ {
+ id: 'testActionGroup',
+ name: 'Test Action Group',
+ },
+ ],
+ enabledInLicense: true,
+ defaultActionGroupId: 'threshold.fired',
+ minimumLicenseRequired: 'basic',
+ recoveryActionGroup: { id: 'recovered', name: 'Recovered' },
+ producer: ALERTS_FEATURE_ID,
+ authorizedConsumers: {
+ infrastructure: { read: true, all: true },
+ logs: { read: true, all: true },
+ },
+ actionVariables: {
+ context: [],
+ state: [],
+ params: [],
+ },
+ hasFieldsForAAD: false,
+ hasAlertsMappings: true,
+ },
+ ],
+ ruleTypeModelOverwrite: {
+ id: 'my-rule-type',
+ iconClass: 'test',
+ description: 'test',
+ documentationUrl: null,
+ validate: (): ValidationResult => {
+ return { errors: {} };
+ },
+ ruleParamsExpression: TestExpression,
+ requiresAppContext: false,
+ },
+ });
+
+ await act(async () => {
+ await nextTick();
+ wrapper.update();
+ });
+
+ expect(wrapper.find(ActionForm).props().hasFieldsForAAD).toEqual(true);
+ });
+
+ it('Show alert query in action when rule type is from security solution', async () => {
+ await setup({
+ initialRuleOverwrite: {
+ name: 'Simple rule',
+ consumer: 'siem',
+ ruleTypeId: 'my-rule-type',
+ schedule: {
+ interval: '1h',
+ },
+ },
+ ruleTypesOverwrite: [
+ {
+ id: 'my-rule-type',
+ name: 'Threshold Rule',
+ actionGroups: [
+ {
+ id: 'testActionGroup',
+ name: 'Test Action Group',
+ },
+ ],
+ enabledInLicense: true,
+ defaultActionGroupId: 'threshold.fired',
+ minimumLicenseRequired: 'basic',
+ recoveryActionGroup: { id: 'recovered', name: 'Recovered' },
+ producer: 'siem',
+ authorizedConsumers: {
+ infrastructure: { read: true, all: true },
+ logs: { read: true, all: true },
+ },
+ actionVariables: {
+ context: [],
+ state: [],
+ params: [],
+ },
+ hasFieldsForAAD: false,
+ hasAlertsMappings: false,
+ },
+ ],
+ ruleTypeModelOverwrite: {
+ id: 'my-rule-type',
+ iconClass: 'test',
+ description: 'test',
+ documentationUrl: null,
+ validate: (): ValidationResult => {
+ return { errors: {} };
+ },
+ ruleParamsExpression: TestExpression,
+ requiresAppContext: false,
+ },
+ });
+
+ await act(async () => {
+ await nextTick();
+ wrapper.update();
+ });
+
+ expect(wrapper.find(ActionForm).props().hasFieldsForAAD).toEqual(true);
+ });
+
+ it('show alert query in action when multi consumer rule type does not have a consumer selected', async () => {
+ await setup({
+ initialRuleOverwrite: {
+ name: 'Simple rule',
+ consumer: 'alerts',
+ ruleTypeId: OBSERVABILITY_THRESHOLD_RULE_TYPE_ID,
+ schedule: {
+ interval: '1h',
+ },
+ },
+ ruleTypesOverwrite: [
+ {
+ id: OBSERVABILITY_THRESHOLD_RULE_TYPE_ID,
+ name: 'Threshold Rule',
+ actionGroups: [
+ {
+ id: 'testActionGroup',
+ name: 'Test Action Group',
+ },
+ ],
+ enabledInLicense: true,
+ defaultActionGroupId: 'threshold.fired',
+ minimumLicenseRequired: 'basic',
+ recoveryActionGroup: { id: 'recovered', name: 'Recovered' },
+ producer: ALERTS_FEATURE_ID,
+ authorizedConsumers: {
+ infrastructure: { read: true, all: true },
+ logs: { read: true, all: true },
+ },
+ actionVariables: {
+ context: [],
+ state: [],
+ params: [],
+ },
+ hasFieldsForAAD: true,
+ hasAlertsMappings: true,
+ },
+ ],
+ ruleTypeModelOverwrite: {
+ id: OBSERVABILITY_THRESHOLD_RULE_TYPE_ID,
+ iconClass: 'test',
+ description: 'test',
+ documentationUrl: null,
+ validate: (): ValidationResult => {
+ return { errors: {} };
+ },
+ ruleParamsExpression: TestExpression,
+ requiresAppContext: false,
+ },
+ selectedConsumer: 'logs',
+ });
+
+ await act(async () => {
+ await nextTick();
+ wrapper.update();
+ });
+
+ expect(wrapper.find(ActionForm).props().hasFieldsForAAD).toEqual(true);
+ });
});
describe('rule_form create rule non ruleing consumer and producer', () => {
diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.tsx
index c321ba5a01d7a..eef420d9e6a1d 100644
--- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.tsx
+++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.tsx
@@ -153,6 +153,7 @@ interface RuleFormProps> {
hideGrouping?: boolean;
hideInterval?: boolean;
connectorFeatureId?: string;
+ selectedConsumer?: RuleCreationValidConsumer | null;
validConsumers?: RuleCreationValidConsumer[];
onChangeMetaData: (metadata: MetaData) => void;
useRuleProducer?: boolean;
@@ -176,6 +177,7 @@ export const RuleForm = ({
hideGrouping = false,
hideInterval,
connectorFeatureId = AlertingConnectorFeatureId,
+ selectedConsumer,
validConsumers,
onChangeMetaData,
useRuleProducer,
@@ -643,6 +645,23 @@ export const RuleForm = ({
}
};
+ const hasFieldsForAAD = useMemo(() => {
+ const hasAlertHasData = selectedRuleType
+ ? selectedRuleType.hasFieldsForAAD ||
+ selectedRuleType.producer === AlertConsumers.SIEM ||
+ selectedRuleType.hasAlertsMappings
+ : false;
+
+ if (MULTI_CONSUMER_RULE_TYPE_IDS.includes(rule?.ruleTypeId ?? '')) {
+ return (
+ (validConsumers || VALID_CONSUMERS).includes(
+ selectedConsumer as RuleCreationValidConsumer
+ ) && hasAlertHasData
+ );
+ }
+ return hasAlertHasData;
+ }, [rule?.ruleTypeId, selectedConsumer, selectedRuleType, validConsumers]);
+
const ruleTypeDetails = (
<>
@@ -820,8 +839,12 @@ export const RuleForm = ({
defaultActionGroupId={defaultActionGroupId}
hasAlertsMappings={selectedRuleType.hasAlertsMappings}
featureId={connectorFeatureId}
- producerId={selectedRuleType.producer}
- hasFieldsForAAD={selectedRuleType.hasFieldsForAAD}
+ producerId={
+ MULTI_CONSUMER_RULE_TYPE_IDS.includes(rule.ruleTypeId)
+ ? selectedConsumer ?? rule.consumer
+ : selectedRuleType.producer
+ }
+ hasFieldsForAAD={hasFieldsForAAD}
ruleTypeId={rule.ruleTypeId}
isActionGroupDisabledForActionType={(actionGroupId: string, actionTypeId: string) =>
isActionGroupDisabledForActionType(selectedRuleType, actionGroupId, actionTypeId)
diff --git a/x-pack/plugins/triggers_actions_ui/public/common/get_alerts_search_bar.tsx b/x-pack/plugins/triggers_actions_ui/public/common/get_alerts_search_bar.tsx
index ddeb5e5c4c067..9bbd999aa6a52 100644
--- a/x-pack/plugins/triggers_actions_ui/public/common/get_alerts_search_bar.tsx
+++ b/x-pack/plugins/triggers_actions_ui/public/common/get_alerts_search_bar.tsx
@@ -6,6 +6,7 @@
*/
import { EuiLoadingSpinner } from '@elastic/eui';
+import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import React, { lazy, Suspense } from 'react';
import type { AlertsSearchBarProps } from '../application/sections/alerts_search_bar';
@@ -13,8 +14,12 @@ const AlertsSearchBarLazy: React.FC = lazy(
() => import('../application/sections/alerts_search_bar/alerts_search_bar')
);
+const queryClient = new QueryClient();
+
export const getAlertsSearchBarLazy = (props: AlertsSearchBarProps) => (
}>
-
+
+
+
);
diff --git a/x-pack/test/rule_registry/security_and_spaces/tests/basic/get_browser_fields_by_feature_id.ts b/x-pack/test/rule_registry/security_and_spaces/tests/basic/get_browser_fields_by_feature_id.ts
index 94cbdbce77491..fcf67163b2bbb 100644
--- a/x-pack/test/rule_registry/security_and_spaces/tests/basic/get_browser_fields_by_feature_id.ts
+++ b/x-pack/test/rule_registry/security_and_spaces/tests/basic/get_browser_fields_by_feature_id.ts
@@ -45,9 +45,14 @@ export default ({ getService }: FtrProviderContext) => {
'logs',
'uptime',
]);
- expect(Object.keys(resp.browserFields)).toEqual(
- expect.arrayContaining(['base', 'event', 'kibana'])
- );
+ expect(Object.keys(resp.browserFields)).toEqual([
+ 'base',
+ 'cloud',
+ 'container',
+ 'host',
+ 'kibana',
+ 'orchestrator',
+ ]);
});
it(`${superUser.username} should be able to get browser fields for o11y featureIds`, async () => {
@@ -57,21 +62,14 @@ export default ({ getService }: FtrProviderContext) => {
'logs',
'uptime',
]);
- expect(Object.keys(resp.browserFields)).toEqual(
- expect.arrayContaining([
- 'base',
- 'agent',
- 'anomaly',
- 'ecs',
- 'error',
- 'event',
- 'kibana',
- 'monitor',
- 'observer',
- 'tls',
- 'url',
- ])
- );
+ expect(Object.keys(resp.browserFields)).toEqual([
+ 'base',
+ 'cloud',
+ 'container',
+ 'host',
+ 'kibana',
+ 'orchestrator',
+ ]);
});
it(`${superUser.username} should NOT be able to get browser fields for siem featureId`, async () => {
From bef76bd2629a0f5509d183e762493593b2335cd3 Mon Sep 17 00:00:00 2001
From: mohamedhamed-ahmed
Date: Thu, 23 Nov 2023 21:57:33 +0000
Subject: [PATCH 22/24] [Dataset quality] Implementing Dataset Table +
consuming plugin from observability log explorer (#171777)
Related to https://github.com/elastic/kibana/issues/169759.
## Summary
This PR adds the Dataset Quality page behind the path below:
`/app/observability-log-explorer/dataset-quality`
## Testing
1. Navigate to the URL above
2. The table should be displayed with all dataset listed
3. `Add Button` should navigate you to the onboarding page
4. Sorting and Pagination should work as expected
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
---
.../dataset_quality/common/constants.ts | 9 ++
.../common/data_streams/index.ts | 8 ++
.../data_streams/types.ts} | 0
.../data_streams_stats/data_stream_stat.ts | 44 ++++++++++
.../common/data_streams_stats/errors.ts | 14 +++
.../common/data_streams_stats/index.ts | 9 ++
.../common/data_streams_stats/integration.ts | 32 +++++++
.../common/data_streams_stats/types.ts | 18 ++++
.../plugins/dataset_quality/common/index.ts | 1 +
.../services => common}/rest/call_api.ts | 2 +-
.../rest/create_call_dataset_quality_api.ts | 4 +-
.../dataset_quality/common/rest/index.ts | 9 ++
.../dataset_quality/common/translations.ts | 36 ++++++++
x-pack/plugins/dataset_quality/kibana.jsonc | 2 +-
.../components/dataset_quality/columns.tsx | 77 ++++++++++++++++
.../components/dataset_quality/context.ts | 18 ++++
.../dataset_quality/dataset_quality.tsx | 55 ++++++++++++
.../components/dataset_quality/header.tsx | 49 +++++++++++
.../components/dataset_quality/index.ts | 8 ++
.../components/dataset_quality/table.tsx | 59 +++++++++++++
.../dataset_quality/public/hooks/index.ts | 8 ++
.../hooks/use_dataset_quality_table.tsx | 88 +++++++++++++++++++
.../dataset_quality/public/icons/logging.svg | 16 ++++
.../plugins/dataset_quality/public/index.ts | 2 +
.../public/{plugin.ts => plugin.tsx} | 19 ++--
.../data_streams_stats_client.ts | 42 +++++++++
.../data_streams_stats_service.ts | 27 ++++++
.../services/data_streams_stats/index.ts | 10 +++
.../services/data_streams_stats/types.ts | 26 ++++++
.../plugins/dataset_quality/public/types.ts | 20 +++--
.../dataset_quality/public/utils/index.ts | 8 ++
.../public/utils/use_kibana.tsx | 35 ++++++++
.../server/routes/data_streams/routes.ts | 6 +-
.../server/types/data_stream.ts | 2 +-
x-pack/plugins/dataset_quality/tsconfig.json | 12 ++-
.../observability_log_explorer/kibana.jsonc | 1 +
.../observability_log_explorer.tsx | 7 +-
.../public/components/page_template.tsx | 6 +-
.../routes/main/dataset_quality_route.tsx | 41 +++++++++
.../public/routes/main/index.tsx | 1 +
.../public/types.ts | 2 +
.../observability_log_explorer/tsconfig.json | 3 +-
.../common/dataset_quality_api_supertest.ts | 5 +-
.../tests/data_streams.spec.ts | 20 ++---
44 files changed, 821 insertions(+), 40 deletions(-)
create mode 100644 x-pack/plugins/dataset_quality/common/constants.ts
create mode 100644 x-pack/plugins/dataset_quality/common/data_streams/index.ts
rename x-pack/plugins/dataset_quality/{server/types/api_types.ts => common/data_streams/types.ts} (100%)
create mode 100644 x-pack/plugins/dataset_quality/common/data_streams_stats/data_stream_stat.ts
create mode 100644 x-pack/plugins/dataset_quality/common/data_streams_stats/errors.ts
create mode 100644 x-pack/plugins/dataset_quality/common/data_streams_stats/index.ts
create mode 100644 x-pack/plugins/dataset_quality/common/data_streams_stats/integration.ts
create mode 100644 x-pack/plugins/dataset_quality/common/data_streams_stats/types.ts
rename x-pack/plugins/dataset_quality/{public/services => common}/rest/call_api.ts (95%)
rename x-pack/plugins/dataset_quality/{public/services => common}/rest/create_call_dataset_quality_api.ts (96%)
create mode 100644 x-pack/plugins/dataset_quality/common/rest/index.ts
create mode 100644 x-pack/plugins/dataset_quality/common/translations.ts
create mode 100644 x-pack/plugins/dataset_quality/public/components/dataset_quality/columns.tsx
create mode 100644 x-pack/plugins/dataset_quality/public/components/dataset_quality/context.ts
create mode 100644 x-pack/plugins/dataset_quality/public/components/dataset_quality/dataset_quality.tsx
create mode 100644 x-pack/plugins/dataset_quality/public/components/dataset_quality/header.tsx
create mode 100644 x-pack/plugins/dataset_quality/public/components/dataset_quality/index.ts
create mode 100644 x-pack/plugins/dataset_quality/public/components/dataset_quality/table.tsx
create mode 100644 x-pack/plugins/dataset_quality/public/hooks/index.ts
create mode 100644 x-pack/plugins/dataset_quality/public/hooks/use_dataset_quality_table.tsx
create mode 100644 x-pack/plugins/dataset_quality/public/icons/logging.svg
rename x-pack/plugins/dataset_quality/public/{plugin.ts => plugin.tsx} (60%)
create mode 100644 x-pack/plugins/dataset_quality/public/services/data_streams_stats/data_streams_stats_client.ts
create mode 100644 x-pack/plugins/dataset_quality/public/services/data_streams_stats/data_streams_stats_service.ts
create mode 100644 x-pack/plugins/dataset_quality/public/services/data_streams_stats/index.ts
create mode 100644 x-pack/plugins/dataset_quality/public/services/data_streams_stats/types.ts
create mode 100644 x-pack/plugins/dataset_quality/public/utils/index.ts
create mode 100644 x-pack/plugins/dataset_quality/public/utils/use_kibana.tsx
create mode 100644 x-pack/plugins/observability_log_explorer/public/routes/main/dataset_quality_route.tsx
diff --git a/x-pack/plugins/dataset_quality/common/constants.ts b/x-pack/plugins/dataset_quality/common/constants.ts
new file mode 100644
index 0000000000000..febb7d2a0f9f2
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/common/constants.ts
@@ -0,0 +1,9 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+export const DATASET_QUALITY_APP_ID = 'dataset_quality';
+export const DATA_STREAMS_STATS_URL = '/internal/dataset_quality/data_streams/stats';
diff --git a/x-pack/plugins/dataset_quality/common/data_streams/index.ts b/x-pack/plugins/dataset_quality/common/data_streams/index.ts
new file mode 100644
index 0000000000000..6cc0ccaa93a6d
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/common/data_streams/index.ts
@@ -0,0 +1,8 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+export * from './types';
diff --git a/x-pack/plugins/dataset_quality/server/types/api_types.ts b/x-pack/plugins/dataset_quality/common/data_streams/types.ts
similarity index 100%
rename from x-pack/plugins/dataset_quality/server/types/api_types.ts
rename to x-pack/plugins/dataset_quality/common/data_streams/types.ts
diff --git a/x-pack/plugins/dataset_quality/common/data_streams_stats/data_stream_stat.ts b/x-pack/plugins/dataset_quality/common/data_streams_stats/data_stream_stat.ts
new file mode 100644
index 0000000000000..5fd2a2ffc1ffc
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/common/data_streams_stats/data_stream_stat.ts
@@ -0,0 +1,44 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { Integration } from './integration';
+import { DataStreamStatType, IntegrationType } from './types';
+
+export class DataStreamStat {
+ name: DataStreamStatType['name'];
+ title: string;
+ size?: DataStreamStatType['size'];
+ sizeBytes?: DataStreamStatType['size_bytes'];
+ lastActivity?: DataStreamStatType['last_activity'];
+ integration?: IntegrationType;
+
+ private constructor(dataStreamStat: DataStreamStat) {
+ this.name = dataStreamStat.name;
+ this.title = dataStreamStat.title ?? dataStreamStat.name;
+ this.size = dataStreamStat.size;
+ this.sizeBytes = dataStreamStat.sizeBytes;
+ this.lastActivity = dataStreamStat.lastActivity;
+ this.integration = dataStreamStat.integration;
+ }
+
+ public static create(dataStreamStat: DataStreamStatType) {
+ const [_type, dataset, namespace] = dataStreamStat.name.split('-');
+
+ const dataStreamStatProps = {
+ name: dataStreamStat.name,
+ title: `${dataset}-${namespace}`,
+ size: dataStreamStat.size,
+ sizeBytes: dataStreamStat.size_bytes,
+ lastActivity: dataStreamStat.last_activity,
+ integration: dataStreamStat.integration
+ ? Integration.create(dataStreamStat.integration)
+ : undefined,
+ };
+
+ return new DataStreamStat(dataStreamStatProps);
+ }
+}
diff --git a/x-pack/plugins/dataset_quality/common/data_streams_stats/errors.ts b/x-pack/plugins/dataset_quality/common/data_streams_stats/errors.ts
new file mode 100644
index 0000000000000..de47f4cb8c39d
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/common/data_streams_stats/errors.ts
@@ -0,0 +1,14 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+export class GetDataStreamsStatsError extends Error {
+ constructor(message: string) {
+ super(message);
+ Object.setPrototypeOf(this, new.target.prototype);
+ this.name = 'GetDataStreamsStatsError';
+ }
+}
diff --git a/x-pack/plugins/dataset_quality/common/data_streams_stats/index.ts b/x-pack/plugins/dataset_quality/common/data_streams_stats/index.ts
new file mode 100644
index 0000000000000..28c7b0a8c274f
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/common/data_streams_stats/index.ts
@@ -0,0 +1,9 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+export * from './types';
+export * from './errors';
diff --git a/x-pack/plugins/dataset_quality/common/data_streams_stats/integration.ts b/x-pack/plugins/dataset_quality/common/data_streams_stats/integration.ts
new file mode 100644
index 0000000000000..937efd407e6fc
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/common/data_streams_stats/integration.ts
@@ -0,0 +1,32 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { IntegrationType } from './types';
+
+export class Integration {
+ name: IntegrationType['name'];
+ title: IntegrationType['title'];
+ version: IntegrationType['version'];
+ icons?: IntegrationType['icons'];
+
+ private constructor(integration: Integration) {
+ this.name = integration.name;
+ this.title = integration.title || integration.name;
+ this.version = integration.version || '1.0.0';
+ this.icons = integration.icons;
+ }
+
+ public static create(integration: IntegrationType) {
+ const integrationProps = {
+ ...integration,
+ title: integration.title || integration.name,
+ version: integration.version || '1.0.0',
+ };
+
+ return new Integration(integrationProps);
+ }
+}
diff --git a/x-pack/plugins/dataset_quality/common/data_streams_stats/types.ts b/x-pack/plugins/dataset_quality/common/data_streams_stats/types.ts
new file mode 100644
index 0000000000000..f9a202798fb37
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/common/data_streams_stats/types.ts
@@ -0,0 +1,18 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { APIClientRequestParamsOf, APIReturnType } from '../rest/create_call_dataset_quality_api';
+import { DataStreamStat } from './data_stream_stat';
+
+export type GetDataStreamsStatsParams =
+ APIClientRequestParamsOf<`GET /internal/dataset_quality/data_streams/stats`>['params'];
+export type GetDataStreamsStatsQuery = GetDataStreamsStatsParams['query'];
+export type GetDataStreamsStatsResponse =
+ APIReturnType<`GET /internal/dataset_quality/data_streams/stats`>;
+export type DataStreamStatServiceResponse = DataStreamStat[];
+export type DataStreamStatType = GetDataStreamsStatsResponse['dataStreamsStats'][0];
+export type IntegrationType = GetDataStreamsStatsResponse['integrations'][0];
diff --git a/x-pack/plugins/dataset_quality/common/index.ts b/x-pack/plugins/dataset_quality/common/index.ts
index 2022b51685043..b015815eeaacc 100644
--- a/x-pack/plugins/dataset_quality/common/index.ts
+++ b/x-pack/plugins/dataset_quality/common/index.ts
@@ -7,3 +7,4 @@
export type { DatasetQualityConfig } from './plugin_config';
export type { FetchOptions } from './fetch_options';
+export type { APIClientRequestParamsOf, APIReturnType } from './rest';
diff --git a/x-pack/plugins/dataset_quality/public/services/rest/call_api.ts b/x-pack/plugins/dataset_quality/common/rest/call_api.ts
similarity index 95%
rename from x-pack/plugins/dataset_quality/public/services/rest/call_api.ts
rename to x-pack/plugins/dataset_quality/common/rest/call_api.ts
index 1b39bfc905730..a70e2f8d407e5 100644
--- a/x-pack/plugins/dataset_quality/public/services/rest/call_api.ts
+++ b/x-pack/plugins/dataset_quality/common/rest/call_api.ts
@@ -6,7 +6,7 @@
*/
import { CoreSetup, CoreStart } from '@kbn/core/public';
-import { FetchOptions } from '../../../common';
+import { FetchOptions } from '..';
function getFetchOptions(fetchOptions: FetchOptions) {
const { body, ...rest } = fetchOptions;
diff --git a/x-pack/plugins/dataset_quality/public/services/rest/create_call_dataset_quality_api.ts b/x-pack/plugins/dataset_quality/common/rest/create_call_dataset_quality_api.ts
similarity index 96%
rename from x-pack/plugins/dataset_quality/public/services/rest/create_call_dataset_quality_api.ts
rename to x-pack/plugins/dataset_quality/common/rest/create_call_dataset_quality_api.ts
index 47d04b309817f..8e3929bb77e74 100644
--- a/x-pack/plugins/dataset_quality/public/services/rest/create_call_dataset_quality_api.ts
+++ b/x-pack/plugins/dataset_quality/common/rest/create_call_dataset_quality_api.ts
@@ -12,8 +12,8 @@ import type {
RouteRepositoryClient,
} from '@kbn/server-route-repository';
import { formatRequest } from '@kbn/server-route-repository';
-import { FetchOptions } from '../../../common';
-import type { APIEndpoint, DatasetQualityServerRouteRepository } from '../../../server/routes';
+import { FetchOptions } from '..';
+import type { APIEndpoint, DatasetQualityServerRouteRepository } from '../../server/routes';
import { CallApi, callApi } from './call_api';
export type DatasetQualityClientOptions = Omit<
diff --git a/x-pack/plugins/dataset_quality/common/rest/index.ts b/x-pack/plugins/dataset_quality/common/rest/index.ts
new file mode 100644
index 0000000000000..559acfe62e502
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/common/rest/index.ts
@@ -0,0 +1,9 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+export * from './call_api';
+export * from './create_call_dataset_quality_api';
diff --git a/x-pack/plugins/dataset_quality/common/translations.ts b/x-pack/plugins/dataset_quality/common/translations.ts
new file mode 100644
index 0000000000000..b26b7ca5c9029
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/common/translations.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 { i18n } from '@kbn/i18n';
+
+export const datasetQualityAppTitle = i18n.translate('xpack.datasetQuality.appTitle', {
+ defaultMessage: 'Datasets',
+});
+
+export const onboardingLinkTitle = i18n.translate('xpack.datasetQuality.onboardingLinkTitle', {
+ defaultMessage: 'Add data',
+});
+
+export const noDatasetsDescription = i18n.translate('xpack.datasetQuality.noDatasetsDescription', {
+ defaultMessage: 'Try adjusting your time or filter.',
+});
+
+export const noDatasetsTitle = i18n.translate('xpack.datasetQuality.noDatasetsTitle', {
+ defaultMessage: 'There is no data to display.',
+});
+
+export const loadingDatasetsText = i18n.translate('xpack.datasetQuality.loadingDatasetsText', {
+ defaultMessage: 'Loading data',
+});
+
+export const tableSummaryAllText = i18n.translate('xpack.datasetQuality.tableSummaryAllText', {
+ defaultMessage: 'All',
+});
+
+export const tableSummaryOfText = i18n.translate('xpack.datasetQuality.tableSummaryOfText', {
+ defaultMessage: 'of',
+});
diff --git a/x-pack/plugins/dataset_quality/kibana.jsonc b/x-pack/plugins/dataset_quality/kibana.jsonc
index 46b7d8757fad1..710d7e82890c7 100644
--- a/x-pack/plugins/dataset_quality/kibana.jsonc
+++ b/x-pack/plugins/dataset_quality/kibana.jsonc
@@ -8,7 +8,7 @@
"server": true,
"browser": true,
"configPath": ["xpack", "datasetQuality"],
- "requiredPlugins": ["data", "kibanaReact", "kibanaUtils", "controls", "embeddable", "share", "fleet"],
+ "requiredPlugins": ["data", "kibanaReact", "kibanaUtils", "controls", "embeddable", "share", "observabilityShared", "fleet", "fieldFormats"],
"optionalPlugins": [],
"requiredBundles": [],
"extraPublicDirs": ["common"]
diff --git a/x-pack/plugins/dataset_quality/public/components/dataset_quality/columns.tsx b/x-pack/plugins/dataset_quality/public/components/dataset_quality/columns.tsx
new file mode 100644
index 0000000000000..aa653a95d6220
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/public/components/dataset_quality/columns.tsx
@@ -0,0 +1,77 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import React from 'react';
+import { EuiBasicTableColumn, EuiFlexGroup, EuiFlexItem, EuiIcon } from '@elastic/eui';
+import { i18n } from '@kbn/i18n';
+import { PackageIcon } from '@kbn/fleet-plugin/public';
+import { ES_FIELD_TYPES, KBN_FIELD_TYPES } from '@kbn/field-types';
+import { FieldFormatsStart } from '@kbn/field-formats-plugin/public';
+import { DataStreamStat } from '../../../common/data_streams_stats/data_stream_stat';
+import loggingIcon from '../../icons/logging.svg';
+
+const nameColumnName = i18n.translate('xpack.datasetQuality.nameColumnName', {
+ defaultMessage: 'Dataset Name',
+});
+
+const sizeColumnName = i18n.translate('xpack.datasetQuality.sizeColumnName', {
+ defaultMessage: 'Size',
+});
+
+const lastActivityColumnName = i18n.translate('xpack.datasetQuality.lastActivityColumnName', {
+ defaultMessage: 'Last Activity',
+});
+
+export const getDatasetQualitTableColumns = ({
+ fieldFormats,
+}: {
+ fieldFormats: FieldFormatsStart;
+}): Array> => {
+ return [
+ {
+ name: nameColumnName,
+ field: 'title',
+ sortable: true,
+ render: (title: string, dataStreamStat: DataStreamStat) => {
+ const { integration } = dataStreamStat;
+
+ return (
+
+
+ {integration ? (
+
+ ) : (
+
+ )}
+
+ {title}
+
+ );
+ },
+ },
+ {
+ name: sizeColumnName,
+ field: 'size',
+ sortable: true,
+ },
+ {
+ name: lastActivityColumnName,
+ field: 'lastActivity',
+ render: (timestamp: number) =>
+ fieldFormats
+ .getDefaultInstance(KBN_FIELD_TYPES.DATE, [ES_FIELD_TYPES.DATE])
+ .convert(timestamp),
+ sortable: true,
+ },
+ ];
+};
diff --git a/x-pack/plugins/dataset_quality/public/components/dataset_quality/context.ts b/x-pack/plugins/dataset_quality/public/components/dataset_quality/context.ts
new file mode 100644
index 0000000000000..64029b649a58d
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/public/components/dataset_quality/context.ts
@@ -0,0 +1,18 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+import { createContext, useContext } from 'react';
+import { IDataStreamsStatsClient } from '../../services/data_streams_stats';
+
+export interface DatasetQualityContextValue {
+ dataStreamsStatsServiceClient: IDataStreamsStatsClient;
+}
+
+export const DatasetQualityContext = createContext({} as DatasetQualityContextValue);
+
+export function useDatasetQualityContext() {
+ return useContext(DatasetQualityContext);
+}
diff --git a/x-pack/plugins/dataset_quality/public/components/dataset_quality/dataset_quality.tsx b/x-pack/plugins/dataset_quality/public/components/dataset_quality/dataset_quality.tsx
new file mode 100644
index 0000000000000..9fe6ca8db3b2f
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/public/components/dataset_quality/dataset_quality.tsx
@@ -0,0 +1,55 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+import React from 'react';
+import { CoreStart } from '@kbn/core/public';
+import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui';
+import { DataStreamsStatsService } from '../../services/data_streams_stats/data_streams_stats_service';
+import { DatasetQualityContext, DatasetQualityContextValue } from './context';
+import { useKibanaContextForPluginProvider } from '../../utils';
+import { DatasetQualityStartDeps } from '../../types';
+import { Header } from './header';
+import { Table } from './table';
+
+export interface CreateDatasetQualityArgs {
+ core: CoreStart;
+ plugins: DatasetQualityStartDeps;
+}
+
+export const createDatasetQuality = ({ core, plugins }: CreateDatasetQualityArgs) => {
+ return () => {
+ const KibanaContextProviderForPlugin = useKibanaContextForPluginProvider(core, plugins);
+
+ const dataStreamsStatsServiceClient = new DataStreamsStatsService().start({
+ http: core.http,
+ }).client;
+
+ const datasetQualityProviderValue: DatasetQualityContextValue = {
+ dataStreamsStatsServiceClient,
+ };
+
+ return (
+
+
+
+
+
+ );
+ };
+};
+
+function DatasetQuality() {
+ return (
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/x-pack/plugins/dataset_quality/public/components/dataset_quality/header.tsx b/x-pack/plugins/dataset_quality/public/components/dataset_quality/header.tsx
new file mode 100644
index 0000000000000..5126a645f7b6f
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/public/components/dataset_quality/header.tsx
@@ -0,0 +1,49 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import React from 'react';
+import { EuiPageHeader, EuiButton } from '@elastic/eui';
+import {
+ ObservabilityOnboardingLocatorParams,
+ OBSERVABILITY_ONBOARDING_LOCATOR,
+} from '@kbn/deeplinks-observability';
+import { datasetQualityAppTitle, onboardingLinkTitle } from '../../../common/translations';
+import { useKibanaContextForPlugin } from '../../utils';
+
+export function Header() {
+ const {
+ services: { share },
+ } = useKibanaContextForPlugin();
+
+ const OnboardingLink = React.memo(() => {
+ const locator = share.url.locators.get(
+ OBSERVABILITY_ONBOARDING_LOCATOR
+ );
+
+ const onboardingUrl = locator?.getRedirectUrl({});
+
+ return (
+
+ {onboardingLinkTitle}
+
+ );
+ });
+
+ return (
+ ]}
+ />
+ );
+}
diff --git a/x-pack/plugins/dataset_quality/public/components/dataset_quality/index.ts b/x-pack/plugins/dataset_quality/public/components/dataset_quality/index.ts
new file mode 100644
index 0000000000000..1a8591d0d3c86
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/public/components/dataset_quality/index.ts
@@ -0,0 +1,8 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+export * from './dataset_quality';
diff --git a/x-pack/plugins/dataset_quality/public/components/dataset_quality/table.tsx b/x-pack/plugins/dataset_quality/public/components/dataset_quality/table.tsx
new file mode 100644
index 0000000000000..f45df67170636
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/public/components/dataset_quality/table.tsx
@@ -0,0 +1,59 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import React from 'react';
+import { EuiBasicTable, EuiHorizontalRule, EuiSpacer, EuiText, EuiEmptyPrompt } from '@elastic/eui';
+import { FormattedMessage } from '@kbn/i18n-react';
+import { loadingDatasetsText, noDatasetsTitle } from '../../../common/translations';
+import { useDatasetQualityTable } from '../../hooks';
+
+export const Table = () => {
+ const { sort, onTableChange, pagination, renderedItems, columns, loading, resultsCount } =
+ useDatasetQualityTable();
+
+ return (
+ <>
+
+
+
+
+
+ {noDatasetsTitle}}
+ hasBorder={false}
+ titleSize="m"
+ />
+ )
+ }
+ />
+ >
+ );
+};
diff --git a/x-pack/plugins/dataset_quality/public/hooks/index.ts b/x-pack/plugins/dataset_quality/public/hooks/index.ts
new file mode 100644
index 0000000000000..36b6f1540c828
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/public/hooks/index.ts
@@ -0,0 +1,8 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+export * from './use_dataset_quality_table';
diff --git a/x-pack/plugins/dataset_quality/public/hooks/use_dataset_quality_table.tsx b/x-pack/plugins/dataset_quality/public/hooks/use_dataset_quality_table.tsx
new file mode 100644
index 0000000000000..30bbd7f437da8
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/public/hooks/use_dataset_quality_table.tsx
@@ -0,0 +1,88 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { orderBy } from 'lodash';
+import React, { useState, useMemo, useCallback } from 'react';
+import { useFetcher } from '@kbn/observability-shared-plugin/public';
+import { tableSummaryAllText, tableSummaryOfText } from '../../common/translations';
+import { DataStreamStat } from '../../common/data_streams_stats/data_stream_stat';
+import { getDatasetQualitTableColumns } from '../components/dataset_quality/columns';
+import { useDatasetQualityContext } from '../components/dataset_quality/context';
+import { useKibanaContextForPlugin } from '../utils';
+
+const DEFAULT_SORT_FIELD = 'title';
+const DEFAULT_SORT_DIRECTION = 'desc';
+type DIRECTION = 'asc' | 'desc';
+type SORT_FIELD = keyof DataStreamStat;
+
+const sortingOverrides: Partial<{ [key in SORT_FIELD]: SORT_FIELD }> = {
+ ['size']: 'sizeBytes',
+};
+
+export const useDatasetQualityTable = () => {
+ const {
+ services: { fieldFormats },
+ } = useKibanaContextForPlugin();
+ const [pageIndex, setPageIndex] = useState(0);
+ const [pageSize, setPageSize] = useState(10);
+ const [sortField, setSortField] = useState(DEFAULT_SORT_FIELD);
+ const [sortDirection, setSortDirection] = useState(DEFAULT_SORT_DIRECTION);
+
+ const { dataStreamsStatsServiceClient: client } = useDatasetQualityContext();
+ const { data = [], loading } = useFetcher(async () => client.getDataStreamsStats(), []);
+
+ const columns = useMemo(() => getDatasetQualitTableColumns({ fieldFormats }), [fieldFormats]);
+
+ const pagination = {
+ pageIndex,
+ pageSize,
+ totalItemCount: data.length,
+ hidePerPageOptions: true,
+ };
+
+ const onTableChange = useCallback(
+ (options: {
+ page: { index: number; size: number };
+ sort?: { field: SORT_FIELD; direction: DIRECTION };
+ }) => {
+ setPageIndex(options.page.index);
+ setPageSize(options.page.size);
+ setSortField(options.sort?.field || DEFAULT_SORT_FIELD);
+ setSortDirection(options.sort?.direction || DEFAULT_SORT_DIRECTION);
+ },
+ []
+ );
+
+ const sort = {
+ sort: { field: sortField, direction: sortDirection },
+ };
+
+ const renderedItems = useMemo(() => {
+ const overridenSortingField = sortingOverrides[sortField] || sortField;
+ const sortedItems = orderBy(data, overridenSortingField, sortDirection);
+
+ return sortedItems.slice(pageIndex * pageSize, (pageIndex + 1) * pageSize);
+ }, [data, sortField, sortDirection, pageIndex, pageSize]);
+
+ const resultsCount = useMemo(() => {
+ const startNumberItemsOnPage = pageSize * pageIndex + (renderedItems.length ? 1 : 0);
+ const endNumberItemsOnPage = pageSize * pageIndex + renderedItems.length;
+
+ return pageSize === 0 ? (
+ {tableSummaryAllText}
+ ) : (
+ <>
+
+ {startNumberItemsOnPage}-{endNumberItemsOnPage}
+ {' '}
+ {tableSummaryOfText} {data.length}
+ >
+ );
+ }, [data.length, pageIndex, pageSize, renderedItems.length]);
+
+ return { sort, onTableChange, pagination, renderedItems, columns, loading, resultsCount };
+};
diff --git a/x-pack/plugins/dataset_quality/public/icons/logging.svg b/x-pack/plugins/dataset_quality/public/icons/logging.svg
new file mode 100644
index 0000000000000..41d5251b3ea19
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/public/icons/logging.svg
@@ -0,0 +1,16 @@
+
+
diff --git a/x-pack/plugins/dataset_quality/public/index.ts b/x-pack/plugins/dataset_quality/public/index.ts
index 339be1ec1de9b..e57d36776edfd 100644
--- a/x-pack/plugins/dataset_quality/public/index.ts
+++ b/x-pack/plugins/dataset_quality/public/index.ts
@@ -14,3 +14,5 @@ export type { DatasetQualityPluginSetup, DatasetQualityPluginStart } from './typ
export function plugin(context: PluginInitializerContext) {
return new DatasetQualityPlugin(context);
}
+
+export { datasetQualityAppTitle } from '../common/translations';
diff --git a/x-pack/plugins/dataset_quality/public/plugin.ts b/x-pack/plugins/dataset_quality/public/plugin.tsx
similarity index 60%
rename from x-pack/plugins/dataset_quality/public/plugin.ts
rename to x-pack/plugins/dataset_quality/public/plugin.tsx
index 520c02481cd60..c2ab655422631 100644
--- a/x-pack/plugins/dataset_quality/public/plugin.ts
+++ b/x-pack/plugins/dataset_quality/public/plugin.tsx
@@ -6,11 +6,12 @@
*/
import { CoreSetup, CoreStart, Plugin, PluginInitializerContext } from '@kbn/core/public';
+import { createDatasetQuality } from './components/dataset_quality';
import {
DatasetQualityPluginSetup,
DatasetQualityPluginStart,
- DatasetQualitySetupDependencies,
- DatasetQualityStartDependencies,
+ DatasetQualitySetupDeps,
+ DatasetQualityStartDeps,
} from './types';
export class DatasetQualityPlugin
@@ -18,14 +19,16 @@ export class DatasetQualityPlugin
{
constructor(context: PluginInitializerContext) {}
- public setup(core: CoreSetup, plugins: DatasetQualitySetupDependencies) {
+ public setup(core: CoreSetup, plugins: DatasetQualitySetupDeps) {
return {};
}
- public start(
- core: CoreStart,
- plugins: DatasetQualityStartDependencies
- ): DatasetQualityPluginStart {
- return {};
+ public start(core: CoreStart, plugins: DatasetQualityStartDeps): DatasetQualityPluginStart {
+ const DatasetQuality = createDatasetQuality({
+ core,
+ plugins,
+ });
+
+ return { DatasetQuality };
}
}
diff --git a/x-pack/plugins/dataset_quality/public/services/data_streams_stats/data_streams_stats_client.ts b/x-pack/plugins/dataset_quality/public/services/data_streams_stats/data_streams_stats_client.ts
new file mode 100644
index 0000000000000..83028a3c4d660
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/public/services/data_streams_stats/data_streams_stats_client.ts
@@ -0,0 +1,42 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { find, merge } from 'lodash';
+import { HttpStart } from '@kbn/core/public';
+import { DataStreamStat } from '../../../common/data_streams_stats/data_stream_stat';
+import { DATA_STREAMS_STATS_URL } from '../../../common/constants';
+import {
+ GetDataStreamsStatsError,
+ GetDataStreamsStatsResponse,
+ GetDataStreamsStatsQuery,
+ DataStreamStatServiceResponse,
+} from '../../../common/data_streams_stats';
+import { IDataStreamsStatsClient } from './types';
+
+export class DataStreamsStatsClient implements IDataStreamsStatsClient {
+ constructor(private readonly http: HttpStart) {}
+
+ public async getDataStreamsStats(
+ params: GetDataStreamsStatsQuery = { type: 'logs' }
+ ): Promise {
+ const { dataStreamsStats, integrations } = await this.http
+ .get(DATA_STREAMS_STATS_URL, {
+ query: params,
+ })
+ .catch((error) => {
+ throw new GetDataStreamsStatsError(`Failed to fetch data streams stats": ${error}`);
+ });
+
+ const mergedDataStreamsStats = dataStreamsStats.map((statsItem) => {
+ const integration = find(integrations, { name: statsItem.integration });
+
+ return integration ? merge({}, statsItem, { integration }) : statsItem;
+ });
+
+ return mergedDataStreamsStats.map(DataStreamStat.create);
+ }
+}
diff --git a/x-pack/plugins/dataset_quality/public/services/data_streams_stats/data_streams_stats_service.ts b/x-pack/plugins/dataset_quality/public/services/data_streams_stats/data_streams_stats_service.ts
new file mode 100644
index 0000000000000..c57fe3c90ebbf
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/public/services/data_streams_stats/data_streams_stats_service.ts
@@ -0,0 +1,27 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { DataStreamsStatsClient } from './data_streams_stats_client';
+import {
+ DataStreamsStatsServiceSetup,
+ DataStreamsStatsServiceStartDeps,
+ DataStreamsStatsServiceStart,
+} from './types';
+
+export class DataStreamsStatsService {
+ constructor() {}
+
+ public setup(): DataStreamsStatsServiceSetup {}
+
+ public start({ http }: DataStreamsStatsServiceStartDeps): DataStreamsStatsServiceStart {
+ const client = new DataStreamsStatsClient(http);
+
+ return {
+ client,
+ };
+ }
+}
diff --git a/x-pack/plugins/dataset_quality/public/services/data_streams_stats/index.ts b/x-pack/plugins/dataset_quality/public/services/data_streams_stats/index.ts
new file mode 100644
index 0000000000000..8f33568e1e885
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/public/services/data_streams_stats/index.ts
@@ -0,0 +1,10 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+export * from './data_streams_stats_client';
+export * from './data_streams_stats_service';
+export * from './types';
diff --git a/x-pack/plugins/dataset_quality/public/services/data_streams_stats/types.ts b/x-pack/plugins/dataset_quality/public/services/data_streams_stats/types.ts
new file mode 100644
index 0000000000000..7023dbe254783
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/public/services/data_streams_stats/types.ts
@@ -0,0 +1,26 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { HttpStart } from '@kbn/core/public';
+import {
+ DataStreamStatServiceResponse,
+ GetDataStreamsStatsQuery,
+} from '../../../common/data_streams_stats';
+
+export type DataStreamsStatsServiceSetup = void;
+
+export interface DataStreamsStatsServiceStart {
+ client: IDataStreamsStatsClient;
+}
+
+export interface DataStreamsStatsServiceStartDeps {
+ http: HttpStart;
+}
+
+export interface IDataStreamsStatsClient {
+ getDataStreamsStats(params?: GetDataStreamsStatsQuery): Promise;
+}
diff --git a/x-pack/plugins/dataset_quality/public/types.ts b/x-pack/plugins/dataset_quality/public/types.ts
index 2d57bd6bb1b2e..482aff3b242b9 100644
--- a/x-pack/plugins/dataset_quality/public/types.ts
+++ b/x-pack/plugins/dataset_quality/public/types.ts
@@ -5,14 +5,22 @@
* 2.0.
*/
+import { ComponentType } from 'react';
+import type { SharePluginSetup, SharePluginStart } from '@kbn/share-plugin/public';
+import { FieldFormatsStart } from '@kbn/field-formats-plugin/public';
+
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface DatasetQualityPluginSetup {}
-// eslint-disable-next-line @typescript-eslint/no-empty-interface
-export interface DatasetQualityPluginStart {}
+export interface DatasetQualityPluginStart {
+ DatasetQuality: ComponentType;
+}
-// eslint-disable-next-line @typescript-eslint/no-empty-interface
-export interface DatasetQualityStartDependencies {}
+export interface DatasetQualityStartDeps {
+ share: SharePluginStart;
+ fieldFormats: FieldFormatsStart;
+}
-// eslint-disable-next-line @typescript-eslint/no-empty-interface
-export interface DatasetQualitySetupDependencies {}
+export interface DatasetQualitySetupDeps {
+ share: SharePluginSetup;
+}
diff --git a/x-pack/plugins/dataset_quality/public/utils/index.ts b/x-pack/plugins/dataset_quality/public/utils/index.ts
new file mode 100644
index 0000000000000..c7d8b7ba1dcab
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/public/utils/index.ts
@@ -0,0 +1,8 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+export * from './use_kibana';
diff --git a/x-pack/plugins/dataset_quality/public/utils/use_kibana.tsx b/x-pack/plugins/dataset_quality/public/utils/use_kibana.tsx
new file mode 100644
index 0000000000000..cd13ced6af9b7
--- /dev/null
+++ b/x-pack/plugins/dataset_quality/public/utils/use_kibana.tsx
@@ -0,0 +1,35 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { CoreStart } from '@kbn/core/public';
+import {
+ createKibanaReactContext,
+ KibanaReactContextValue,
+ useKibana,
+} from '@kbn/kibana-react-plugin/public';
+import { useMemo } from 'react';
+import { DatasetQualityStartDeps } from '../types';
+
+export type PluginKibanaContextValue = CoreStart & DatasetQualityStartDeps;
+
+export const createKibanaContextForPlugin = (core: CoreStart, plugins: DatasetQualityStartDeps) =>
+ createKibanaReactContext({
+ ...core,
+ ...plugins,
+ });
+
+export const useKibanaContextForPlugin =
+ useKibana as () => KibanaReactContextValue;
+
+export const useKibanaContextForPluginProvider = (
+ core: CoreStart,
+ plugins: DatasetQualityStartDeps
+) => {
+ const { Provider } = useMemo(() => createKibanaContextForPlugin(core, plugins), [core, plugins]);
+
+ return Provider;
+};
diff --git a/x-pack/plugins/dataset_quality/server/routes/data_streams/routes.ts b/x-pack/plugins/dataset_quality/server/routes/data_streams/routes.ts
index cfc509e47fac9..4217b9711226e 100644
--- a/x-pack/plugins/dataset_quality/server/routes/data_streams/routes.ts
+++ b/x-pack/plugins/dataset_quality/server/routes/data_streams/routes.ts
@@ -7,7 +7,7 @@
import * as t from 'io-ts';
import { keyBy, merge, values } from 'lodash';
-import { dataStreamTypesRt } from '../../types/api_types';
+import { dataStreamTypesRt } from '../../../common/data_streams';
import { DataStreamsStatResponse } from '../../types/data_stream';
import { createDatasetQualityServerRoute } from '../create_datasets_quality_server_route';
import { getDataStreams } from './get_data_streams';
@@ -58,7 +58,9 @@ const statsRoute = createDatasetQualityServerRoute({
}));
return {
- items: values(merge(keyBy(dataStreams.items, 'name'), keyBy(dataStreamsStats.items, 'name'))),
+ dataStreamsStats: values(
+ merge(keyBy(dataStreams.items, 'name'), keyBy(dataStreamsStats.items, 'name'))
+ ),
integrations,
};
},
diff --git a/x-pack/plugins/dataset_quality/server/types/data_stream.ts b/x-pack/plugins/dataset_quality/server/types/data_stream.ts
index d96603ce2114c..423d85985c599 100644
--- a/x-pack/plugins/dataset_quality/server/types/data_stream.ts
+++ b/x-pack/plugins/dataset_quality/server/types/data_stream.ts
@@ -9,7 +9,7 @@ import { ByteSize } from '@elastic/elasticsearch/lib/api/types';
import { Integration } from './integration';
export interface DataStreamsStatResponse {
- items: DataStreamStat[];
+ dataStreamsStats: DataStreamStat[];
integrations: Integration[];
}
diff --git a/x-pack/plugins/dataset_quality/tsconfig.json b/x-pack/plugins/dataset_quality/tsconfig.json
index 679fbfd5c21f4..32baf4671143e 100644
--- a/x-pack/plugins/dataset_quality/tsconfig.json
+++ b/x-pack/plugins/dataset_quality/tsconfig.json
@@ -11,11 +11,19 @@
],
"kbn_references": [
"@kbn/core",
- "@kbn/server-route-repository",
"@kbn/core-plugins-server",
"@kbn/core-elasticsearch-server-mocks",
- "@kbn/std",
+ "@kbn/deeplinks-observability",
"@kbn/fleet-plugin",
+ "@kbn/observability-shared-plugin",
+ "@kbn/server-route-repository",
+ "@kbn/share-plugin",
+ "@kbn/std",
+ "@kbn/i18n",
+ "@kbn/kibana-react-plugin",
+ "@kbn/i18n-react",
+ "@kbn/field-formats-plugin",
+ "@kbn/field-types"
],
"exclude": [
"target/**/*",
diff --git a/x-pack/plugins/observability_log_explorer/kibana.jsonc b/x-pack/plugins/observability_log_explorer/kibana.jsonc
index 72d03b82d3386..92d2ad70c3175 100644
--- a/x-pack/plugins/observability_log_explorer/kibana.jsonc
+++ b/x-pack/plugins/observability_log_explorer/kibana.jsonc
@@ -19,6 +19,7 @@
"observabilityShared",
"share",
"kibanaUtils",
+ "datasetQuality"
],
"optionalPlugins": [
"serverless"
diff --git a/x-pack/plugins/observability_log_explorer/public/applications/observability_log_explorer.tsx b/x-pack/plugins/observability_log_explorer/public/applications/observability_log_explorer.tsx
index a8c6602f9d49f..8a49db7536350 100644
--- a/x-pack/plugins/observability_log_explorer/public/applications/observability_log_explorer.tsx
+++ b/x-pack/plugins/observability_log_explorer/public/applications/observability_log_explorer.tsx
@@ -10,7 +10,7 @@ import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render';
import { Route, Router, Routes } from '@kbn/shared-ux-router';
import React from 'react';
import ReactDOM from 'react-dom';
-import { ObservablityLogExplorerMainRoute } from '../routes/main';
+import { DatasetQualityRoute, ObservablityLogExplorerMainRoute } from '../routes/main';
import {
ObservabilityLogExplorerAppMountParameters,
ObservabilityLogExplorerPluginStart,
@@ -72,6 +72,11 @@ export const ObservabilityLogExplorerApp = ({
exact={true}
render={() => }
/>
+ }
+ />
diff --git a/x-pack/plugins/observability_log_explorer/public/components/page_template.tsx b/x-pack/plugins/observability_log_explorer/public/components/page_template.tsx
index e79b8b1bc6271..d128c6e8a7779 100644
--- a/x-pack/plugins/observability_log_explorer/public/components/page_template.tsx
+++ b/x-pack/plugins/observability_log_explorer/public/components/page_template.tsx
@@ -13,10 +13,14 @@ import React from 'react';
export const ObservabilityLogExplorerPageTemplate = ({
children,
observabilityShared,
+ pageProps,
}: React.PropsWithChildren<{
observabilityShared: ObservabilitySharedPluginStart;
+ pageProps?: EuiPageSectionProps;
}>) => (
-
+
{children}
);
diff --git a/x-pack/plugins/observability_log_explorer/public/routes/main/dataset_quality_route.tsx b/x-pack/plugins/observability_log_explorer/public/routes/main/dataset_quality_route.tsx
new file mode 100644
index 0000000000000..b76a462eba25d
--- /dev/null
+++ b/x-pack/plugins/observability_log_explorer/public/routes/main/dataset_quality_route.tsx
@@ -0,0 +1,41 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { CoreStart } from '@kbn/core/public';
+import React from 'react';
+import { EuiBreadcrumb } from '@elastic/eui';
+import { datasetQualityAppTitle } from '@kbn/dataset-quality-plugin/public';
+import { ObservabilityLogExplorerPageTemplate } from '../../components/page_template';
+import { useBreadcrumbs } from '../../utils/breadcrumbs';
+import { useKibanaContextForPlugin } from '../../utils/use_kibana';
+
+export interface DatasetQualityRouteProps {
+ core: CoreStart;
+}
+
+export const DatasetQualityRoute = ({ core }: DatasetQualityRouteProps) => {
+ const { services } = useKibanaContextForPlugin();
+ const { observabilityShared, serverless, datasetQuality: DatasetQuality } = services;
+ const breadcrumb: EuiBreadcrumb[] = [
+ {
+ text: datasetQualityAppTitle,
+ },
+ ];
+
+ useBreadcrumbs(breadcrumb, core.chrome, serverless);
+
+ return (
+ <>
+
+
+
+ >
+ );
+};
diff --git a/x-pack/plugins/observability_log_explorer/public/routes/main/index.tsx b/x-pack/plugins/observability_log_explorer/public/routes/main/index.tsx
index 889e340497cf9..9d755f302d162 100644
--- a/x-pack/plugins/observability_log_explorer/public/routes/main/index.tsx
+++ b/x-pack/plugins/observability_log_explorer/public/routes/main/index.tsx
@@ -6,3 +6,4 @@
*/
export * from './main_route';
+export * from './dataset_quality_route';
diff --git a/x-pack/plugins/observability_log_explorer/public/types.ts b/x-pack/plugins/observability_log_explorer/public/types.ts
index 8b315ad206ce4..5f455088b7442 100644
--- a/x-pack/plugins/observability_log_explorer/public/types.ts
+++ b/x-pack/plugins/observability_log_explorer/public/types.ts
@@ -13,6 +13,7 @@ import { ServerlessPluginStart } from '@kbn/serverless/public';
import { SharePluginSetup, SharePluginStart } from '@kbn/share-plugin/public';
import { AppMountParameters, ScopedHistory } from '@kbn/core/public';
import { LogsSharedClientStartExports } from '@kbn/logs-shared-plugin/public';
+import { DatasetQualityPluginStart } from '@kbn/dataset-quality-plugin/public';
import {
ObservabilityLogExplorerLocators,
ObservabilityLogExplorerLocationState,
@@ -38,6 +39,7 @@ export interface ObservabilityLogExplorerStartDeps {
observabilityShared: ObservabilitySharedPluginStart;
serverless?: ServerlessPluginStart;
share: SharePluginStart;
+ datasetQuality: DatasetQualityPluginStart;
}
export type ObservabilityLogExplorerHistory = ScopedHistory;
diff --git a/x-pack/plugins/observability_log_explorer/tsconfig.json b/x-pack/plugins/observability_log_explorer/tsconfig.json
index 109b54b929ec7..24327c31c26a3 100644
--- a/x-pack/plugins/observability_log_explorer/tsconfig.json
+++ b/x-pack/plugins/observability_log_explorer/tsconfig.json
@@ -34,7 +34,8 @@
"@kbn/xstate-utils",
"@kbn/shared-ux-utility",
"@kbn/ui-theme",
- "@kbn/logs-shared-plugin"
+ "@kbn/logs-shared-plugin",
+ "@kbn/dataset-quality-plugin"
],
"exclude": [
"target/**/*"
diff --git a/x-pack/test/dataset_quality_api_integration/common/dataset_quality_api_supertest.ts b/x-pack/test/dataset_quality_api_integration/common/dataset_quality_api_supertest.ts
index d28ddb5f04962..79818e970a2ab 100644
--- a/x-pack/test/dataset_quality_api_integration/common/dataset_quality_api_supertest.ts
+++ b/x-pack/test/dataset_quality_api_integration/common/dataset_quality_api_supertest.ts
@@ -10,10 +10,7 @@ import supertest from 'supertest';
import request from 'superagent';
import type { APIEndpoint } from '@kbn/dataset-quality-plugin/server/routes';
import { formatRequest } from '@kbn/server-route-repository';
-import {
- APIClientRequestParamsOf,
- APIReturnType,
-} from '@kbn/dataset-quality-plugin/public/services/rest/create_call_dataset_quality_api';
+import type { APIClientRequestParamsOf, APIReturnType } from '@kbn/dataset-quality-plugin/common';
export function createDatasetQualityApiClient(st: supertest.SuperTest) {
return async (
diff --git a/x-pack/test/dataset_quality_api_integration/tests/data_streams.spec.ts b/x-pack/test/dataset_quality_api_integration/tests/data_streams.spec.ts
index da05627be2646..6d11326bf213e 100644
--- a/x-pack/test/dataset_quality_api_integration/tests/data_streams.spec.ts
+++ b/x-pack/test/dataset_quality_api_integration/tests/data_streams.spec.ts
@@ -64,11 +64,11 @@ export default function ApiTest({ getService }: FtrProviderContext) {
it('returns stats correctly', async () => {
const stats = await callApiAs('datasetQualityLogsUser');
- expect(stats.body.items.length).to.be(1);
- expect(stats.body.items[0].integration).to.be(integration);
- expect(stats.body.items[0].size).not.empty();
- expect(stats.body.items[0].size_bytes).greaterThan(0);
- expect(stats.body.items[0].last_activity).greaterThan(0);
+ expect(stats.body.dataStreamsStats.length).to.be(1);
+ expect(stats.body.dataStreamsStats[0].integration).to.be(integration);
+ expect(stats.body.dataStreamsStats[0].size).not.empty();
+ expect(stats.body.dataStreamsStats[0].size_bytes).greaterThan(0);
+ expect(stats.body.dataStreamsStats[0].last_activity).greaterThan(0);
});
after(async () => {
@@ -94,11 +94,11 @@ export default function ApiTest({ getService }: FtrProviderContext) {
it('returns stats correctly', async () => {
const stats = await callApiAs('datasetQualityLogsUser');
- expect(stats.body.items.length).to.be(1);
- expect(stats.body.items[0].integration).not.ok();
- expect(stats.body.items[0].size).not.empty();
- expect(stats.body.items[0].size_bytes).greaterThan(0);
- expect(stats.body.items[0].last_activity).greaterThan(0);
+ expect(stats.body.dataStreamsStats.length).to.be(1);
+ expect(stats.body.dataStreamsStats[0].integration).not.ok();
+ expect(stats.body.dataStreamsStats[0].size).not.empty();
+ expect(stats.body.dataStreamsStats[0].size_bytes).greaterThan(0);
+ expect(stats.body.dataStreamsStats[0].last_activity).greaterThan(0);
});
after(async () => {
From e40f79095e6c620e0ef9f5c1f34c33fe1511d493 Mon Sep 17 00:00:00 2001
From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Date: Fri, 24 Nov 2023 00:56:23 -0500
Subject: [PATCH 23/24] [api-docs] 2023-11-24 Daily api_docs build (#171898)
Generated by
https://buildkite.com/elastic/kibana-api-docs-daily/builds/531
---
api_docs/actions.mdx | 2 +-
api_docs/advanced_settings.mdx | 2 +-
api_docs/aiops.mdx | 2 +-
api_docs/alerting.mdx | 2 +-
api_docs/apm.devdocs.json | 16 +-
api_docs/apm.mdx | 2 +-
api_docs/apm_data_access.mdx | 2 +-
api_docs/asset_manager.mdx | 2 +-
api_docs/banners.mdx | 2 +-
api_docs/bfetch.mdx | 2 +-
api_docs/canvas.mdx | 2 +-
api_docs/cases.mdx | 2 +-
api_docs/charts.mdx | 2 +-
api_docs/cloud.mdx | 2 +-
api_docs/cloud_data_migration.mdx | 2 +-
api_docs/cloud_defend.mdx | 2 +-
api_docs/cloud_experiments.mdx | 2 +-
api_docs/cloud_security_posture.mdx | 2 +-
api_docs/console.mdx | 2 +-
api_docs/content_management.mdx | 2 +-
api_docs/controls.mdx | 2 +-
api_docs/custom_integrations.mdx | 2 +-
api_docs/dashboard.mdx | 2 +-
api_docs/dashboard_enhanced.mdx | 2 +-
api_docs/data.mdx | 2 +-
api_docs/data_query.mdx | 2 +-
api_docs/data_search.mdx | 2 +-
api_docs/data_view_editor.mdx | 2 +-
api_docs/data_view_field_editor.mdx | 2 +-
api_docs/data_view_management.mdx | 2 +-
api_docs/data_views.mdx | 2 +-
api_docs/data_visualizer.mdx | 2 +-
api_docs/dataset_quality.devdocs.json | 130 ++++-
api_docs/dataset_quality.mdx | 7 +-
api_docs/deprecations_by_api.mdx | 2 +-
api_docs/deprecations_by_plugin.mdx | 2 +-
api_docs/deprecations_by_team.mdx | 2 +-
api_docs/dev_tools.mdx | 2 +-
api_docs/discover.mdx | 2 +-
api_docs/discover_enhanced.mdx | 2 +-
api_docs/ecs_data_quality_dashboard.mdx | 2 +-
api_docs/elastic_assistant.mdx | 2 +-
api_docs/embeddable.mdx | 2 +-
api_docs/embeddable_enhanced.mdx | 2 +-
api_docs/encrypted_saved_objects.mdx | 2 +-
api_docs/enterprise_search.mdx | 2 +-
api_docs/es_ui_shared.mdx | 2 +-
api_docs/event_annotation.mdx | 2 +-
api_docs/event_annotation_listing.mdx | 2 +-
api_docs/event_log.mdx | 2 +-
api_docs/exploratory_view.mdx | 2 +-
api_docs/expression_error.mdx | 2 +-
api_docs/expression_gauge.mdx | 2 +-
api_docs/expression_heatmap.mdx | 2 +-
api_docs/expression_image.mdx | 2 +-
api_docs/expression_legacy_metric_vis.mdx | 2 +-
api_docs/expression_metric.mdx | 2 +-
api_docs/expression_metric_vis.mdx | 2 +-
api_docs/expression_partition_vis.mdx | 2 +-
api_docs/expression_repeat_image.mdx | 2 +-
api_docs/expression_reveal_image.mdx | 2 +-
api_docs/expression_shape.mdx | 2 +-
api_docs/expression_tagcloud.mdx | 2 +-
api_docs/expression_x_y.mdx | 2 +-
api_docs/expressions.mdx | 2 +-
api_docs/features.mdx | 2 +-
api_docs/field_formats.mdx | 2 +-
api_docs/file_upload.mdx | 2 +-
api_docs/files.mdx | 2 +-
api_docs/files_management.mdx | 2 +-
api_docs/fleet.mdx | 2 +-
api_docs/global_search.mdx | 2 +-
api_docs/guided_onboarding.mdx | 2 +-
api_docs/home.mdx | 2 +-
api_docs/image_embeddable.mdx | 2 +-
api_docs/index_lifecycle_management.mdx | 2 +-
api_docs/index_management.mdx | 2 +-
api_docs/infra.mdx | 2 +-
api_docs/inspector.mdx | 2 +-
api_docs/interactive_setup.mdx | 2 +-
api_docs/kbn_ace.mdx | 2 +-
api_docs/kbn_aiops_components.mdx | 2 +-
api_docs/kbn_aiops_utils.mdx | 2 +-
.../kbn_alerting_api_integration_helpers.mdx | 2 +-
api_docs/kbn_alerting_state_types.mdx | 2 +-
api_docs/kbn_alerts_as_data_utils.mdx | 2 +-
api_docs/kbn_alerts_ui_shared.mdx | 2 +-
api_docs/kbn_analytics.mdx | 2 +-
api_docs/kbn_analytics_client.devdocs.json | 8 -
api_docs/kbn_analytics_client.mdx | 2 +-
api_docs/kbn_analytics_collection_utils.mdx | 2 +-
..._analytics_shippers_elastic_v3_browser.mdx | 2 +-
...n_analytics_shippers_elastic_v3_common.mdx | 2 +-
...n_analytics_shippers_elastic_v3_server.mdx | 2 +-
api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +-
api_docs/kbn_analytics_shippers_gainsight.mdx | 2 +-
api_docs/kbn_apm_config_loader.mdx | 2 +-
api_docs/kbn_apm_synthtrace.mdx | 2 +-
api_docs/kbn_apm_synthtrace_client.mdx | 2 +-
api_docs/kbn_apm_utils.mdx | 2 +-
api_docs/kbn_axe_config.mdx | 2 +-
api_docs/kbn_calculate_auto.mdx | 2 +-
api_docs/kbn_cases_components.mdx | 2 +-
api_docs/kbn_cell_actions.mdx | 2 +-
api_docs/kbn_chart_expressions_common.mdx | 2 +-
api_docs/kbn_chart_icons.mdx | 2 +-
api_docs/kbn_ci_stats_core.mdx | 2 +-
api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +-
api_docs/kbn_ci_stats_reporter.mdx | 2 +-
api_docs/kbn_cli_dev_mode.mdx | 2 +-
api_docs/kbn_code_editor.mdx | 2 +-
api_docs/kbn_coloring.mdx | 2 +-
api_docs/kbn_config.mdx | 2 +-
api_docs/kbn_config_mocks.mdx | 2 +-
api_docs/kbn_config_schema.mdx | 2 +-
.../kbn_content_management_content_editor.mdx | 2 +-
...tent_management_tabbed_table_list_view.mdx | 2 +-
...kbn_content_management_table_list_view.mdx | 2 +-
...ntent_management_table_list_view_table.mdx | 2 +-
api_docs/kbn_content_management_utils.mdx | 2 +-
api_docs/kbn_core_analytics_browser.mdx | 2 +-
.../kbn_core_analytics_browser_internal.mdx | 2 +-
api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +-
api_docs/kbn_core_analytics_server.mdx | 2 +-
.../kbn_core_analytics_server_internal.mdx | 2 +-
api_docs/kbn_core_analytics_server_mocks.mdx | 2 +-
api_docs/kbn_core_application_browser.mdx | 2 +-
.../kbn_core_application_browser_internal.mdx | 2 +-
.../kbn_core_application_browser_mocks.mdx | 2 +-
api_docs/kbn_core_application_common.mdx | 2 +-
api_docs/kbn_core_apps_browser_internal.mdx | 2 +-
api_docs/kbn_core_apps_browser_mocks.mdx | 2 +-
api_docs/kbn_core_apps_server_internal.mdx | 2 +-
api_docs/kbn_core_base_browser_mocks.mdx | 2 +-
api_docs/kbn_core_base_common.mdx | 2 +-
api_docs/kbn_core_base_server_internal.mdx | 2 +-
api_docs/kbn_core_base_server_mocks.mdx | 2 +-
.../kbn_core_capabilities_browser_mocks.mdx | 2 +-
api_docs/kbn_core_capabilities_common.mdx | 2 +-
api_docs/kbn_core_capabilities_server.mdx | 2 +-
.../kbn_core_capabilities_server_mocks.mdx | 2 +-
api_docs/kbn_core_chrome_browser.mdx | 2 +-
api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +-
api_docs/kbn_core_config_server_internal.mdx | 2 +-
api_docs/kbn_core_custom_branding_browser.mdx | 2 +-
..._core_custom_branding_browser_internal.mdx | 2 +-
...kbn_core_custom_branding_browser_mocks.mdx | 2 +-
api_docs/kbn_core_custom_branding_common.mdx | 2 +-
api_docs/kbn_core_custom_branding_server.mdx | 2 +-
...n_core_custom_branding_server_internal.mdx | 2 +-
.../kbn_core_custom_branding_server_mocks.mdx | 2 +-
api_docs/kbn_core_deprecations_browser.mdx | 2 +-
...kbn_core_deprecations_browser_internal.mdx | 2 +-
.../kbn_core_deprecations_browser_mocks.mdx | 2 +-
api_docs/kbn_core_deprecations_common.mdx | 2 +-
api_docs/kbn_core_deprecations_server.mdx | 2 +-
.../kbn_core_deprecations_server_internal.mdx | 2 +-
.../kbn_core_deprecations_server_mocks.mdx | 2 +-
api_docs/kbn_core_doc_links_browser.mdx | 2 +-
api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +-
api_docs/kbn_core_doc_links_server.mdx | 2 +-
api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +-
...e_elasticsearch_client_server_internal.mdx | 2 +-
...core_elasticsearch_client_server_mocks.mdx | 2 +-
api_docs/kbn_core_elasticsearch_server.mdx | 2 +-
...kbn_core_elasticsearch_server_internal.mdx | 2 +-
.../kbn_core_elasticsearch_server_mocks.mdx | 2 +-
.../kbn_core_environment_server_internal.mdx | 2 +-
.../kbn_core_environment_server_mocks.mdx | 2 +-
.../kbn_core_execution_context_browser.mdx | 2 +-
...ore_execution_context_browser_internal.mdx | 2 +-
...n_core_execution_context_browser_mocks.mdx | 2 +-
.../kbn_core_execution_context_common.mdx | 2 +-
.../kbn_core_execution_context_server.mdx | 2 +-
...core_execution_context_server_internal.mdx | 2 +-
...bn_core_execution_context_server_mocks.mdx | 2 +-
api_docs/kbn_core_fatal_errors_browser.mdx | 2 +-
.../kbn_core_fatal_errors_browser_mocks.mdx | 2 +-
api_docs/kbn_core_http_browser.mdx | 2 +-
api_docs/kbn_core_http_browser_internal.mdx | 2 +-
api_docs/kbn_core_http_browser_mocks.mdx | 2 +-
api_docs/kbn_core_http_common.mdx | 2 +-
.../kbn_core_http_context_server_mocks.mdx | 2 +-
...re_http_request_handler_context_server.mdx | 2 +-
api_docs/kbn_core_http_resources_server.mdx | 2 +-
...bn_core_http_resources_server_internal.mdx | 2 +-
.../kbn_core_http_resources_server_mocks.mdx | 2 +-
.../kbn_core_http_router_server_internal.mdx | 2 +-
.../kbn_core_http_router_server_mocks.mdx | 2 +-
api_docs/kbn_core_http_server.devdocs.json | 4 +
api_docs/kbn_core_http_server.mdx | 2 +-
api_docs/kbn_core_http_server_internal.mdx | 2 +-
api_docs/kbn_core_http_server_mocks.mdx | 2 +-
api_docs/kbn_core_i18n_browser.mdx | 2 +-
api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +-
api_docs/kbn_core_i18n_server.mdx | 2 +-
api_docs/kbn_core_i18n_server_internal.mdx | 2 +-
api_docs/kbn_core_i18n_server_mocks.mdx | 2 +-
...n_core_injected_metadata_browser_mocks.mdx | 2 +-
...kbn_core_integrations_browser_internal.mdx | 2 +-
.../kbn_core_integrations_browser_mocks.mdx | 2 +-
api_docs/kbn_core_lifecycle_browser.mdx | 2 +-
api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +-
api_docs/kbn_core_lifecycle_server.mdx | 2 +-
api_docs/kbn_core_lifecycle_server_mocks.mdx | 2 +-
api_docs/kbn_core_logging_browser_mocks.mdx | 2 +-
api_docs/kbn_core_logging_common_internal.mdx | 2 +-
api_docs/kbn_core_logging_server.mdx | 2 +-
api_docs/kbn_core_logging_server_internal.mdx | 2 +-
api_docs/kbn_core_logging_server_mocks.mdx | 2 +-
...ore_metrics_collectors_server_internal.mdx | 2 +-
...n_core_metrics_collectors_server_mocks.mdx | 2 +-
api_docs/kbn_core_metrics_server.mdx | 2 +-
api_docs/kbn_core_metrics_server_internal.mdx | 2 +-
api_docs/kbn_core_metrics_server_mocks.mdx | 2 +-
api_docs/kbn_core_mount_utils_browser.mdx | 2 +-
api_docs/kbn_core_node_server.mdx | 2 +-
api_docs/kbn_core_node_server_internal.mdx | 2 +-
api_docs/kbn_core_node_server_mocks.mdx | 2 +-
api_docs/kbn_core_notifications_browser.mdx | 2 +-
...bn_core_notifications_browser_internal.mdx | 2 +-
.../kbn_core_notifications_browser_mocks.mdx | 2 +-
api_docs/kbn_core_overlays_browser.mdx | 2 +-
.../kbn_core_overlays_browser_internal.mdx | 2 +-
api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +-
api_docs/kbn_core_plugins_browser.mdx | 2 +-
api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +-
.../kbn_core_plugins_contracts_browser.mdx | 2 +-
.../kbn_core_plugins_contracts_server.mdx | 2 +-
api_docs/kbn_core_plugins_server.mdx | 2 +-
api_docs/kbn_core_plugins_server_mocks.mdx | 2 +-
api_docs/kbn_core_preboot_server.mdx | 2 +-
api_docs/kbn_core_preboot_server_mocks.mdx | 2 +-
api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +-
.../kbn_core_rendering_server_internal.mdx | 2 +-
api_docs/kbn_core_rendering_server_mocks.mdx | 2 +-
api_docs/kbn_core_root_server_internal.mdx | 2 +-
.../kbn_core_saved_objects_api_browser.mdx | 2 +-
.../kbn_core_saved_objects_api_server.mdx | 2 +-
...bn_core_saved_objects_api_server_mocks.mdx | 2 +-
...ore_saved_objects_base_server_internal.mdx | 2 +-
...n_core_saved_objects_base_server_mocks.mdx | 2 +-
api_docs/kbn_core_saved_objects_browser.mdx | 2 +-
...bn_core_saved_objects_browser_internal.mdx | 2 +-
.../kbn_core_saved_objects_browser_mocks.mdx | 2 +-
api_docs/kbn_core_saved_objects_common.mdx | 2 +-
..._objects_import_export_server_internal.mdx | 2 +-
...ved_objects_import_export_server_mocks.mdx | 2 +-
...aved_objects_migration_server_internal.mdx | 2 +-
...e_saved_objects_migration_server_mocks.mdx | 2 +-
api_docs/kbn_core_saved_objects_server.mdx | 2 +-
...kbn_core_saved_objects_server_internal.mdx | 2 +-
.../kbn_core_saved_objects_server_mocks.mdx | 2 +-
.../kbn_core_saved_objects_utils_server.mdx | 2 +-
api_docs/kbn_core_status_common.mdx | 2 +-
api_docs/kbn_core_status_common_internal.mdx | 2 +-
api_docs/kbn_core_status_server.mdx | 2 +-
api_docs/kbn_core_status_server_internal.mdx | 2 +-
api_docs/kbn_core_status_server_mocks.mdx | 2 +-
...core_test_helpers_deprecations_getters.mdx | 2 +-
...n_core_test_helpers_http_setup_browser.mdx | 2 +-
api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +-
.../kbn_core_test_helpers_model_versions.mdx | 2 +-
...n_core_test_helpers_so_type_serializer.mdx | 2 +-
api_docs/kbn_core_test_helpers_test_utils.mdx | 2 +-
api_docs/kbn_core_theme_browser.mdx | 2 +-
api_docs/kbn_core_theme_browser_mocks.mdx | 2 +-
api_docs/kbn_core_ui_settings_browser.mdx | 2 +-
.../kbn_core_ui_settings_browser_internal.mdx | 2 +-
.../kbn_core_ui_settings_browser_mocks.mdx | 2 +-
api_docs/kbn_core_ui_settings_common.mdx | 2 +-
api_docs/kbn_core_ui_settings_server.mdx | 2 +-
.../kbn_core_ui_settings_server_internal.mdx | 2 +-
.../kbn_core_ui_settings_server_mocks.mdx | 2 +-
api_docs/kbn_core_usage_data_server.mdx | 2 +-
.../kbn_core_usage_data_server_internal.mdx | 2 +-
api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +-
api_docs/kbn_core_user_settings_server.mdx | 2 +-
...kbn_core_user_settings_server_internal.mdx | 2 +-
.../kbn_core_user_settings_server_mocks.mdx | 2 +-
api_docs/kbn_crypto.mdx | 2 +-
api_docs/kbn_crypto_browser.mdx | 2 +-
api_docs/kbn_custom_icons.mdx | 2 +-
api_docs/kbn_custom_integrations.mdx | 2 +-
api_docs/kbn_cypress_config.mdx | 2 +-
api_docs/kbn_data_service.mdx | 2 +-
api_docs/kbn_datemath.mdx | 2 +-
api_docs/kbn_deeplinks_analytics.mdx | 2 +-
api_docs/kbn_deeplinks_devtools.mdx | 2 +-
api_docs/kbn_deeplinks_management.mdx | 2 +-
api_docs/kbn_deeplinks_ml.mdx | 2 +-
api_docs/kbn_deeplinks_observability.mdx | 2 +-
api_docs/kbn_deeplinks_search.mdx | 2 +-
api_docs/kbn_default_nav_analytics.mdx | 2 +-
api_docs/kbn_default_nav_devtools.mdx | 2 +-
api_docs/kbn_default_nav_management.mdx | 2 +-
api_docs/kbn_default_nav_ml.mdx | 2 +-
api_docs/kbn_dev_cli_errors.mdx | 2 +-
api_docs/kbn_dev_cli_runner.mdx | 2 +-
api_docs/kbn_dev_proc_runner.mdx | 2 +-
api_docs/kbn_dev_utils.mdx | 2 +-
api_docs/kbn_discover_utils.mdx | 2 +-
api_docs/kbn_doc_links.devdocs.json | 2 +-
api_docs/kbn_doc_links.mdx | 2 +-
api_docs/kbn_docs_utils.mdx | 2 +-
api_docs/kbn_dom_drag_drop.mdx | 2 +-
api_docs/kbn_ebt_tools.mdx | 2 +-
api_docs/kbn_ecs.mdx | 2 +-
api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +-
api_docs/kbn_elastic_agent_utils.mdx | 2 +-
api_docs/kbn_elastic_assistant.mdx | 2 +-
api_docs/kbn_es.mdx | 2 +-
api_docs/kbn_es_archiver.mdx | 2 +-
api_docs/kbn_es_errors.mdx | 2 +-
api_docs/kbn_es_query.mdx | 2 +-
api_docs/kbn_es_types.mdx | 2 +-
api_docs/kbn_eslint_plugin_imports.mdx | 2 +-
api_docs/kbn_event_annotation_common.mdx | 2 +-
api_docs/kbn_event_annotation_components.mdx | 2 +-
api_docs/kbn_expandable_flyout.mdx | 2 +-
api_docs/kbn_field_types.mdx | 2 +-
api_docs/kbn_field_utils.mdx | 2 +-
api_docs/kbn_find_used_node_modules.mdx | 2 +-
.../kbn_ftr_common_functional_services.mdx | 2 +-
api_docs/kbn_generate.mdx | 2 +-
api_docs/kbn_generate_console_definitions.mdx | 2 +-
api_docs/kbn_generate_csv.mdx | 2 +-
api_docs/kbn_guided_onboarding.mdx | 2 +-
api_docs/kbn_handlebars.mdx | 2 +-
api_docs/kbn_hapi_mocks.mdx | 2 +-
api_docs/kbn_health_gateway_server.mdx | 2 +-
api_docs/kbn_home_sample_data_card.mdx | 2 +-
api_docs/kbn_home_sample_data_tab.mdx | 2 +-
api_docs/kbn_i18n.mdx | 2 +-
api_docs/kbn_i18n_react.mdx | 2 +-
api_docs/kbn_import_resolver.mdx | 2 +-
api_docs/kbn_infra_forge.mdx | 2 +-
api_docs/kbn_interpreter.mdx | 2 +-
api_docs/kbn_io_ts_utils.mdx | 2 +-
api_docs/kbn_jest_serializers.mdx | 2 +-
api_docs/kbn_journeys.mdx | 2 +-
api_docs/kbn_json_ast.mdx | 2 +-
api_docs/kbn_kibana_manifest_schema.mdx | 2 +-
.../kbn_language_documentation_popover.mdx | 2 +-
api_docs/kbn_lens_embeddable_utils.mdx | 2 +-
api_docs/kbn_logging.mdx | 2 +-
api_docs/kbn_logging_mocks.mdx | 2 +-
api_docs/kbn_managed_vscode_config.mdx | 2 +-
api_docs/kbn_management_cards_navigation.mdx | 2 +-
.../kbn_management_settings_application.mdx | 2 +-
...ent_settings_components_field_category.mdx | 2 +-
...gement_settings_components_field_input.mdx | 2 +-
...nagement_settings_components_field_row.mdx | 2 +-
...bn_management_settings_components_form.mdx | 2 +-
...n_management_settings_field_definition.mdx | 2 +-
api_docs/kbn_management_settings_ids.mdx | 2 +-
...n_management_settings_section_registry.mdx | 2 +-
api_docs/kbn_management_settings_types.mdx | 2 +-
.../kbn_management_settings_utilities.mdx | 2 +-
api_docs/kbn_management_storybook_config.mdx | 2 +-
api_docs/kbn_mapbox_gl.mdx | 2 +-
api_docs/kbn_maps_vector_tile_utils.mdx | 2 +-
api_docs/kbn_ml_agg_utils.mdx | 2 +-
api_docs/kbn_ml_anomaly_utils.mdx | 2 +-
api_docs/kbn_ml_category_validator.mdx | 2 +-
api_docs/kbn_ml_chi2test.mdx | 2 +-
.../kbn_ml_data_frame_analytics_utils.mdx | 2 +-
api_docs/kbn_ml_data_grid.devdocs.json | 12 +-
api_docs/kbn_ml_data_grid.mdx | 2 +-
api_docs/kbn_ml_date_picker.mdx | 2 +-
api_docs/kbn_ml_date_utils.mdx | 2 +-
api_docs/kbn_ml_error_utils.mdx | 2 +-
api_docs/kbn_ml_in_memory_table.mdx | 2 +-
api_docs/kbn_ml_is_defined.mdx | 2 +-
api_docs/kbn_ml_is_populated_object.mdx | 2 +-
api_docs/kbn_ml_kibana_theme.mdx | 2 +-
api_docs/kbn_ml_local_storage.mdx | 2 +-
api_docs/kbn_ml_nested_property.mdx | 2 +-
api_docs/kbn_ml_number_utils.mdx | 2 +-
api_docs/kbn_ml_query_utils.mdx | 2 +-
api_docs/kbn_ml_random_sampler_utils.mdx | 2 +-
api_docs/kbn_ml_route_utils.mdx | 2 +-
api_docs/kbn_ml_runtime_field_utils.mdx | 2 +-
api_docs/kbn_ml_string_hash.mdx | 2 +-
api_docs/kbn_ml_trained_models_utils.mdx | 2 +-
api_docs/kbn_ml_ui_actions.mdx | 2 +-
api_docs/kbn_ml_url_state.mdx | 2 +-
api_docs/kbn_monaco.mdx | 2 +-
api_docs/kbn_object_versioning.mdx | 2 +-
api_docs/kbn_observability_alert_details.mdx | 2 +-
...ervability_alerting_test_data.devdocs.json | 12 +-
.../kbn_observability_alerting_test_data.mdx | 2 +-
api_docs/kbn_openapi_generator.mdx | 2 +-
api_docs/kbn_optimizer.mdx | 2 +-
api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +-
api_docs/kbn_osquery_io_ts_types.mdx | 2 +-
..._performance_testing_dataset_extractor.mdx | 2 +-
api_docs/kbn_plugin_generator.mdx | 2 +-
api_docs/kbn_plugin_helpers.mdx | 2 +-
api_docs/kbn_profiling_utils.mdx | 2 +-
api_docs/kbn_random_sampling.mdx | 2 +-
api_docs/kbn_react_field.mdx | 2 +-
api_docs/kbn_react_kibana_context_common.mdx | 2 +-
api_docs/kbn_react_kibana_context_render.mdx | 2 +-
api_docs/kbn_react_kibana_context_root.mdx | 2 +-
api_docs/kbn_react_kibana_context_styled.mdx | 2 +-
api_docs/kbn_react_kibana_context_theme.mdx | 2 +-
api_docs/kbn_react_kibana_mount.mdx | 2 +-
api_docs/kbn_repo_file_maps.mdx | 2 +-
api_docs/kbn_repo_linter.mdx | 2 +-
api_docs/kbn_repo_path.mdx | 2 +-
api_docs/kbn_repo_source_classifier.mdx | 2 +-
api_docs/kbn_reporting_common.mdx | 2 +-
api_docs/kbn_reporting_export_types_csv.mdx | 2 +-
.../kbn_reporting_export_types_csv_common.mdx | 2 +-
api_docs/kbn_reporting_export_types_pdf.mdx | 2 +-
.../kbn_reporting_export_types_pdf_common.mdx | 2 +-
api_docs/kbn_reporting_export_types_png.mdx | 2 +-
.../kbn_reporting_export_types_png_common.mdx | 2 +-
api_docs/kbn_reporting_mocks_server.mdx | 2 +-
api_docs/kbn_reporting_public.mdx | 2 +-
api_docs/kbn_reporting_server.mdx | 2 +-
api_docs/kbn_resizable_layout.mdx | 2 +-
api_docs/kbn_rison.mdx | 2 +-
api_docs/kbn_rrule.mdx | 2 +-
api_docs/kbn_rule_data_utils.mdx | 2 +-
api_docs/kbn_saved_objects_settings.mdx | 2 +-
api_docs/kbn_search_api_panels.mdx | 2 +-
api_docs/kbn_search_connectors.mdx | 2 +-
api_docs/kbn_search_response_warnings.mdx | 2 +-
api_docs/kbn_security_solution_features.mdx | 2 +-
api_docs/kbn_security_solution_navigation.mdx | 2 +-
api_docs/kbn_security_solution_side_nav.mdx | 2 +-
...kbn_security_solution_storybook_config.mdx | 2 +-
.../kbn_securitysolution_autocomplete.mdx | 2 +-
api_docs/kbn_securitysolution_data_table.mdx | 2 +-
api_docs/kbn_securitysolution_ecs.mdx | 2 +-
api_docs/kbn_securitysolution_es_utils.mdx | 2 +-
...ritysolution_exception_list_components.mdx | 2 +-
api_docs/kbn_securitysolution_grouping.mdx | 2 +-
api_docs/kbn_securitysolution_hook_utils.mdx | 2 +-
..._securitysolution_io_ts_alerting_types.mdx | 2 +-
.../kbn_securitysolution_io_ts_list_types.mdx | 2 +-
api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +-
api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +-
api_docs/kbn_securitysolution_list_api.mdx | 2 +-
.../kbn_securitysolution_list_constants.mdx | 2 +-
api_docs/kbn_securitysolution_list_hooks.mdx | 2 +-
api_docs/kbn_securitysolution_list_utils.mdx | 2 +-
api_docs/kbn_securitysolution_rules.mdx | 2 +-
api_docs/kbn_securitysolution_t_grid.mdx | 2 +-
api_docs/kbn_securitysolution_utils.mdx | 2 +-
api_docs/kbn_server_http_tools.mdx | 2 +-
api_docs/kbn_server_route_repository.mdx | 2 +-
api_docs/kbn_serverless_common_settings.mdx | 2 +-
.../kbn_serverless_observability_settings.mdx | 2 +-
api_docs/kbn_serverless_project_switcher.mdx | 2 +-
api_docs/kbn_serverless_search_settings.mdx | 2 +-
api_docs/kbn_serverless_security_settings.mdx | 2 +-
api_docs/kbn_serverless_storybook_config.mdx | 2 +-
api_docs/kbn_shared_svg.mdx | 2 +-
api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +-
.../kbn_shared_ux_button_exit_full_screen.mdx | 2 +-
api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +-
api_docs/kbn_shared_ux_card_no_data.mdx | 2 +-
api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +-
api_docs/kbn_shared_ux_chrome_navigation.mdx | 2 +-
api_docs/kbn_shared_ux_error_boundary.mdx | 2 +-
api_docs/kbn_shared_ux_file_context.mdx | 2 +-
api_docs/kbn_shared_ux_file_image.mdx | 2 +-
api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +-
api_docs/kbn_shared_ux_file_mocks.mdx | 2 +-
api_docs/kbn_shared_ux_file_picker.mdx | 2 +-
api_docs/kbn_shared_ux_file_types.mdx | 2 +-
api_docs/kbn_shared_ux_file_upload.mdx | 2 +-
api_docs/kbn_shared_ux_file_util.mdx | 2 +-
...n_shared_ux_link_redirect_app.devdocs.json | 20 +-
api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +-
.../kbn_shared_ux_link_redirect_app_mocks.mdx | 2 +-
api_docs/kbn_shared_ux_markdown.mdx | 2 +-
api_docs/kbn_shared_ux_markdown_mocks.mdx | 2 +-
.../kbn_shared_ux_page_analytics_no_data.mdx | 2 +-
...shared_ux_page_analytics_no_data_mocks.mdx | 2 +-
.../kbn_shared_ux_page_kibana_no_data.mdx | 2 +-
...bn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +-
.../kbn_shared_ux_page_kibana_template.mdx | 2 +-
...n_shared_ux_page_kibana_template_mocks.mdx | 2 +-
api_docs/kbn_shared_ux_page_no_data.mdx | 2 +-
.../kbn_shared_ux_page_no_data_config.mdx | 2 +-
...bn_shared_ux_page_no_data_config_mocks.mdx | 2 +-
api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +-
api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +-
.../kbn_shared_ux_prompt_no_data_views.mdx | 2 +-
...n_shared_ux_prompt_no_data_views_mocks.mdx | 2 +-
api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +-
api_docs/kbn_shared_ux_router.mdx | 2 +-
api_docs/kbn_shared_ux_router_mocks.mdx | 2 +-
api_docs/kbn_shared_ux_storybook_config.mdx | 2 +-
api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +-
api_docs/kbn_shared_ux_utility.mdx | 2 +-
api_docs/kbn_slo_schema.mdx | 2 +-
api_docs/kbn_some_dev_log.mdx | 2 +-
api_docs/kbn_std.mdx | 2 +-
api_docs/kbn_stdio_dev_helpers.mdx | 2 +-
api_docs/kbn_storybook.mdx | 2 +-
.../kbn_subscription_tracking.devdocs.json | 519 ------------------
api_docs/kbn_subscription_tracking.mdx | 42 --
api_docs/kbn_telemetry_tools.mdx | 2 +-
api_docs/kbn_test.devdocs.json | 2 +-
api_docs/kbn_test.mdx | 2 +-
api_docs/kbn_test_jest_helpers.mdx | 2 +-
api_docs/kbn_test_subj_selector.mdx | 2 +-
api_docs/kbn_text_based_editor.devdocs.json | 115 +++-
api_docs/kbn_text_based_editor.mdx | 4 +-
api_docs/kbn_tooling_log.mdx | 2 +-
api_docs/kbn_ts_projects.mdx | 2 +-
api_docs/kbn_typed_react_router_config.mdx | 2 +-
api_docs/kbn_ui_actions_browser.mdx | 2 +-
api_docs/kbn_ui_shared_deps_src.mdx | 2 +-
api_docs/kbn_ui_theme.mdx | 2 +-
api_docs/kbn_unified_data_table.mdx | 2 +-
api_docs/kbn_unified_doc_viewer.mdx | 2 +-
api_docs/kbn_unified_field_list.mdx | 2 +-
api_docs/kbn_unsaved_changes_badge.mdx | 2 +-
api_docs/kbn_url_state.mdx | 2 +-
api_docs/kbn_use_tracked_promise.mdx | 2 +-
api_docs/kbn_user_profile_components.mdx | 2 +-
api_docs/kbn_utility_types.mdx | 2 +-
api_docs/kbn_utility_types_jest.mdx | 2 +-
api_docs/kbn_utils.mdx | 2 +-
api_docs/kbn_visualization_ui_components.mdx | 2 +-
api_docs/kbn_xstate_utils.mdx | 2 +-
api_docs/kbn_yarn_lock_validator.mdx | 2 +-
api_docs/kbn_zod_helpers.mdx | 2 +-
api_docs/kibana_overview.mdx | 2 +-
api_docs/kibana_react.mdx | 2 +-
api_docs/kibana_utils.mdx | 2 +-
api_docs/kubernetes_security.mdx | 2 +-
api_docs/lens.devdocs.json | 91 ++-
api_docs/lens.mdx | 4 +-
api_docs/license_api_guard.mdx | 2 +-
api_docs/license_management.mdx | 2 +-
api_docs/licensing.mdx | 2 +-
api_docs/links.mdx | 2 +-
api_docs/lists.mdx | 2 +-
api_docs/log_explorer.mdx | 2 +-
api_docs/logs_shared.mdx | 2 +-
api_docs/management.mdx | 2 +-
api_docs/maps.mdx | 2 +-
api_docs/maps_ems.mdx | 2 +-
api_docs/metrics_data_access.mdx | 2 +-
api_docs/ml.mdx | 2 +-
api_docs/mock_idp_plugin.devdocs.json | 410 ++++++++++++++
api_docs/mock_idp_plugin.mdx | 33 ++
api_docs/monitoring.mdx | 2 +-
api_docs/monitoring_collection.mdx | 2 +-
api_docs/navigation.mdx | 2 +-
api_docs/newsfeed.mdx | 2 +-
api_docs/no_data_page.mdx | 2 +-
api_docs/notifications.mdx | 2 +-
api_docs/observability.mdx | 2 +-
.../observability_a_i_assistant.devdocs.json | 2 +-
api_docs/observability_a_i_assistant.mdx | 2 +-
api_docs/observability_log_explorer.mdx | 2 +-
api_docs/observability_onboarding.mdx | 2 +-
api_docs/observability_shared.devdocs.json | 196 +++++++
api_docs/observability_shared.mdx | 4 +-
api_docs/osquery.mdx | 2 +-
api_docs/painless_lab.mdx | 2 +-
api_docs/plugin_directory.mdx | 20 +-
api_docs/presentation_util.mdx | 2 +-
api_docs/profiling.mdx | 2 +-
api_docs/profiling_data_access.mdx | 2 +-
api_docs/remote_clusters.mdx | 2 +-
api_docs/reporting.mdx | 2 +-
api_docs/rollup.mdx | 2 +-
api_docs/rule_registry.devdocs.json | 18 +-
api_docs/rule_registry.mdx | 4 +-
api_docs/runtime_fields.mdx | 2 +-
api_docs/saved_objects.mdx | 2 +-
api_docs/saved_objects_finder.mdx | 2 +-
api_docs/saved_objects_management.mdx | 2 +-
api_docs/saved_objects_tagging.mdx | 2 +-
api_docs/saved_objects_tagging_oss.mdx | 2 +-
api_docs/saved_search.mdx | 2 +-
api_docs/screenshot_mode.mdx | 2 +-
api_docs/screenshotting.mdx | 2 +-
api_docs/security.mdx | 2 +-
api_docs/security_solution.devdocs.json | 20 +-
api_docs/security_solution.mdx | 4 +-
api_docs/security_solution_ess.mdx | 2 +-
api_docs/security_solution_serverless.mdx | 2 +-
api_docs/serverless.mdx | 2 +-
api_docs/serverless_observability.mdx | 2 +-
api_docs/serverless_search.mdx | 2 +-
api_docs/session_view.mdx | 2 +-
api_docs/share.mdx | 2 +-
api_docs/snapshot_restore.mdx | 2 +-
api_docs/spaces.mdx | 2 +-
api_docs/stack_alerts.mdx | 2 +-
api_docs/stack_connectors.mdx | 2 +-
api_docs/task_manager.mdx | 2 +-
api_docs/telemetry.mdx | 2 +-
api_docs/telemetry_collection_manager.mdx | 2 +-
api_docs/telemetry_collection_xpack.mdx | 2 +-
api_docs/telemetry_management_section.mdx | 2 +-
api_docs/text_based_languages.devdocs.json | 115 +++-
api_docs/text_based_languages.mdx | 4 +-
api_docs/threat_intelligence.mdx | 2 +-
api_docs/timelines.mdx | 2 +-
api_docs/transform.mdx | 2 +-
api_docs/triggers_actions_ui.mdx | 2 +-
api_docs/ui_actions.mdx | 2 +-
api_docs/ui_actions_enhanced.mdx | 2 +-
api_docs/unified_doc_viewer.mdx | 2 +-
api_docs/unified_histogram.mdx | 2 +-
api_docs/unified_search.devdocs.json | 2 +-
api_docs/unified_search.mdx | 2 +-
api_docs/unified_search_autocomplete.mdx | 2 +-
api_docs/uptime.mdx | 2 +-
api_docs/url_forwarding.mdx | 2 +-
api_docs/usage_collection.mdx | 2 +-
api_docs/ux.mdx | 2 +-
api_docs/vis_default_editor.mdx | 2 +-
api_docs/vis_type_gauge.mdx | 2 +-
api_docs/vis_type_heatmap.mdx | 2 +-
api_docs/vis_type_pie.mdx | 2 +-
api_docs/vis_type_table.mdx | 2 +-
api_docs/vis_type_timelion.mdx | 2 +-
api_docs/vis_type_timeseries.mdx | 2 +-
api_docs/vis_type_vega.mdx | 2 +-
api_docs/vis_type_vislib.mdx | 2 +-
api_docs/vis_type_xy.mdx | 2 +-
api_docs/visualizations.mdx | 2 +-
634 files changed, 1761 insertions(+), 1269 deletions(-)
delete mode 100644 api_docs/kbn_subscription_tracking.devdocs.json
delete mode 100644 api_docs/kbn_subscription_tracking.mdx
create mode 100644 api_docs/mock_idp_plugin.devdocs.json
create mode 100644 api_docs/mock_idp_plugin.mdx
diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx
index 7fdc525af2cc5..c2718557811f0 100644
--- a/api_docs/actions.mdx
+++ b/api_docs/actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions
title: "actions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the actions plugin
-date: 2023-11-23
+date: 2023-11-24
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 1fb62aa58932c..d8a74186f1d44 100644
--- a/api_docs/advanced_settings.mdx
+++ b/api_docs/advanced_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings
title: "advancedSettings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the advancedSettings plugin
-date: 2023-11-23
+date: 2023-11-24
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 246d0046de228..a119c1a15bed2 100644
--- a/api_docs/aiops.mdx
+++ b/api_docs/aiops.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops
title: "aiops"
image: https://source.unsplash.com/400x175/?github
description: API docs for the aiops plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops']
---
import aiopsObj from './aiops.devdocs.json';
diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx
index 202e2601c1071..b218acc8773aa 100644
--- a/api_docs/alerting.mdx
+++ b/api_docs/alerting.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting
title: "alerting"
image: https://source.unsplash.com/400x175/?github
description: API docs for the alerting plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting']
---
import alertingObj from './alerting.devdocs.json';
diff --git a/api_docs/apm.devdocs.json b/api_docs/apm.devdocs.json
index 1f8e4fbabe130..abe63b94580b4 100644
--- a/api_docs/apm.devdocs.json
+++ b/api_docs/apm.devdocs.json
@@ -597,7 +597,11 @@
"Type",
"; endIndex: ",
"Type",
- "; }>]>; }> | undefined; handler: ({}: ",
+ "; }>, ",
+ "TypeC",
+ "<{ kuery: ",
+ "StringC",
+ "; }>]>; }> | undefined; handler: ({}: ",
"APMRouteHandlerResources",
" & { params: { path: { serviceName: string; }; query: { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ",
"Branded",
@@ -617,7 +621,7 @@
"ApmDocumentType",
".TransactionEvent; rollupInterval: ",
"RollupInterval",
- "; } & { startIndex: number; endIndex: number; }; }; }) => Promise<{ functions: ",
+ "; } & { startIndex: number; endIndex: number; } & { kuery: string; }; }; }) => Promise<{ functions: ",
{
"pluginId": "@kbn/profiling-utils",
"scope": "common",
@@ -699,7 +703,11 @@
"LiteralC",
"<",
"RollupInterval",
- ".None>]>; }>]>; }> | undefined; handler: ({}: ",
+ ".None>]>; }>, ",
+ "TypeC",
+ "<{ kuery: ",
+ "StringC",
+ "; }>]>; }> | undefined; handler: ({}: ",
"APMRouteHandlerResources",
" & { params: { path: { serviceName: string; }; query: { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ",
"Branded",
@@ -719,7 +727,7 @@
"ApmDocumentType",
".TransactionEvent; rollupInterval: ",
"RollupInterval",
- "; }; }; }) => Promise<{ flamegraph: ",
+ "; } & { kuery: string; }; }; }) => Promise<{ flamegraph: ",
{
"pluginId": "@kbn/profiling-utils",
"scope": "common",
diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx
index 4372097dd4d1f..31837776efa95 100644
--- a/api_docs/apm.mdx
+++ b/api_docs/apm.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm
title: "apm"
image: https://source.unsplash.com/400x175/?github
description: API docs for the apm plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm']
---
import apmObj from './apm.devdocs.json';
diff --git a/api_docs/apm_data_access.mdx b/api_docs/apm_data_access.mdx
index 854087f3ee63d..24d32916ec7c9 100644
--- a/api_docs/apm_data_access.mdx
+++ b/api_docs/apm_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apmDataAccess
title: "apmDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the apmDataAccess plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apmDataAccess']
---
import apmDataAccessObj from './apm_data_access.devdocs.json';
diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx
index 952d494f9538e..1f056d7077012 100644
--- a/api_docs/asset_manager.mdx
+++ b/api_docs/asset_manager.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager
title: "assetManager"
image: https://source.unsplash.com/400x175/?github
description: API docs for the assetManager plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager']
---
import assetManagerObj from './asset_manager.devdocs.json';
diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx
index 163d12eed476d..f292f08a8d3f5 100644
--- a/api_docs/banners.mdx
+++ b/api_docs/banners.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners
title: "banners"
image: https://source.unsplash.com/400x175/?github
description: API docs for the banners plugin
-date: 2023-11-23
+date: 2023-11-24
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 62d06179f0a7b..a120ee6fac73d 100644
--- a/api_docs/bfetch.mdx
+++ b/api_docs/bfetch.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch
title: "bfetch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the bfetch plugin
-date: 2023-11-23
+date: 2023-11-24
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 dc41eacf75f48..b859327f04ae6 100644
--- a/api_docs/canvas.mdx
+++ b/api_docs/canvas.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas
title: "canvas"
image: https://source.unsplash.com/400x175/?github
description: API docs for the canvas plugin
-date: 2023-11-23
+date: 2023-11-24
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 a38eac346e8fc..c977cf2819f4e 100644
--- a/api_docs/cases.mdx
+++ b/api_docs/cases.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases
title: "cases"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cases plugin
-date: 2023-11-23
+date: 2023-11-24
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 481a647df7eda..eb990d413f8a1 100644
--- a/api_docs/charts.mdx
+++ b/api_docs/charts.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts
title: "charts"
image: https://source.unsplash.com/400x175/?github
description: API docs for the charts plugin
-date: 2023-11-23
+date: 2023-11-24
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 b76578d963740..e284872504a27 100644
--- a/api_docs/cloud.mdx
+++ b/api_docs/cloud.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud
title: "cloud"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloud plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud']
---
import cloudObj from './cloud.devdocs.json';
diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx
index 73ae96a3798f4..4a753d69902aa 100644
--- a/api_docs/cloud_data_migration.mdx
+++ b/api_docs/cloud_data_migration.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration
title: "cloudDataMigration"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudDataMigration plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration']
---
import cloudDataMigrationObj from './cloud_data_migration.devdocs.json';
diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx
index 418f19d46cc84..76dfb21449c29 100644
--- a/api_docs/cloud_defend.mdx
+++ b/api_docs/cloud_defend.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend
title: "cloudDefend"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudDefend plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend']
---
import cloudDefendObj from './cloud_defend.devdocs.json';
diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx
index c75c89d49b0c0..05c85ea8b564e 100644
--- a/api_docs/cloud_experiments.mdx
+++ b/api_docs/cloud_experiments.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments
title: "cloudExperiments"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudExperiments plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudExperiments']
---
import cloudExperimentsObj from './cloud_experiments.devdocs.json';
diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx
index 7b0dc719e78c6..9161b9e7d020a 100644
--- a/api_docs/cloud_security_posture.mdx
+++ b/api_docs/cloud_security_posture.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture
title: "cloudSecurityPosture"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudSecurityPosture plugin
-date: 2023-11-23
+date: 2023-11-24
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 7b9f08cff5d66..3a9a96a0f88fe 100644
--- a/api_docs/console.mdx
+++ b/api_docs/console.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console
title: "console"
image: https://source.unsplash.com/400x175/?github
description: API docs for the console plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console']
---
import consoleObj from './console.devdocs.json';
diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx
index 93dae88b1064e..ea44fe22d220b 100644
--- a/api_docs/content_management.mdx
+++ b/api_docs/content_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement
title: "contentManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the contentManagement plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement']
---
import contentManagementObj from './content_management.devdocs.json';
diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx
index 787272986dfa7..fc200d1d8a1c5 100644
--- a/api_docs/controls.mdx
+++ b/api_docs/controls.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls
title: "controls"
image: https://source.unsplash.com/400x175/?github
description: API docs for the controls plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls']
---
import controlsObj from './controls.devdocs.json';
diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx
index 9b0fbbe1ac112..ad4c560c8c9da 100644
--- a/api_docs/custom_integrations.mdx
+++ b/api_docs/custom_integrations.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations
title: "customIntegrations"
image: https://source.unsplash.com/400x175/?github
description: API docs for the customIntegrations plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations']
---
import customIntegrationsObj from './custom_integrations.devdocs.json';
diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx
index fa5c6724ce6b6..c369321db266c 100644
--- a/api_docs/dashboard.mdx
+++ b/api_docs/dashboard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard
title: "dashboard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dashboard plugin
-date: 2023-11-23
+date: 2023-11-24
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 b93597cd0dd8a..9d1cbf2b45ead 100644
--- a/api_docs/dashboard_enhanced.mdx
+++ b/api_docs/dashboard_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced
title: "dashboardEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dashboardEnhanced plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced']
---
import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json';
diff --git a/api_docs/data.mdx b/api_docs/data.mdx
index 5b4e430869916..68bb5d46321ef 100644
--- a/api_docs/data.mdx
+++ b/api_docs/data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data
title: "data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the data plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data']
---
import dataObj from './data.devdocs.json';
diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx
index 603ddac43109d..4daeb20c80e78 100644
--- a/api_docs/data_query.mdx
+++ b/api_docs/data_query.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query
title: "data.query"
image: https://source.unsplash.com/400x175/?github
description: API docs for the data.query plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query']
---
import dataQueryObj from './data_query.devdocs.json';
diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx
index 75575f73f670a..4c6fda5e03f90 100644
--- a/api_docs/data_search.mdx
+++ b/api_docs/data_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search
title: "data.search"
image: https://source.unsplash.com/400x175/?github
description: API docs for the data.search plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search']
---
import dataSearchObj from './data_search.devdocs.json';
diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx
index 09079a13792a2..839b83bd34678 100644
--- a/api_docs/data_view_editor.mdx
+++ b/api_docs/data_view_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor
title: "dataViewEditor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViewEditor plugin
-date: 2023-11-23
+date: 2023-11-24
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 67f9f1842d4d7..b40bf7e132029 100644
--- a/api_docs/data_view_field_editor.mdx
+++ b/api_docs/data_view_field_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor
title: "dataViewFieldEditor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViewFieldEditor plugin
-date: 2023-11-23
+date: 2023-11-24
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 e699f048fff8d..7b56af8f62d80 100644
--- a/api_docs/data_view_management.mdx
+++ b/api_docs/data_view_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement
title: "dataViewManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViewManagement plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement']
---
import dataViewManagementObj from './data_view_management.devdocs.json';
diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx
index 3d2e57ece9ce2..feec8118b2ef0 100644
--- a/api_docs/data_views.mdx
+++ b/api_docs/data_views.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews
title: "dataViews"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViews plugin
-date: 2023-11-23
+date: 2023-11-24
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 9e6f70c8e6074..3a5f968ce7c94 100644
--- a/api_docs/data_visualizer.mdx
+++ b/api_docs/data_visualizer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer
title: "dataVisualizer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataVisualizer plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer']
---
import dataVisualizerObj from './data_visualizer.devdocs.json';
diff --git a/api_docs/dataset_quality.devdocs.json b/api_docs/dataset_quality.devdocs.json
index 5b46e39efe55a..86ad32dd897cc 100644
--- a/api_docs/dataset_quality.devdocs.json
+++ b/api_docs/dataset_quality.devdocs.json
@@ -5,7 +5,20 @@
"functions": [],
"interfaces": [],
"enums": [],
- "misc": [],
+ "misc": [
+ {
+ "parentPluginId": "datasetQuality",
+ "id": "def-public.datasetQualityAppTitle",
+ "type": "string",
+ "tags": [],
+ "label": "datasetQualityAppTitle",
+ "description": [],
+ "path": "x-pack/plugins/dataset_quality/common/translations.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ }
+ ],
"objects": [],
"setup": {
"parentPluginId": "datasetQuality",
@@ -31,7 +44,22 @@
"path": "x-pack/plugins/dataset_quality/public/types.ts",
"deprecated": false,
"trackAdoption": false,
- "children": [],
+ "children": [
+ {
+ "parentPluginId": "datasetQuality",
+ "id": "def-public.DatasetQualityPluginStart.DatasetQuality",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "DatasetQuality",
+ "description": [],
+ "signature": [
+ "React.ComponentClass<{}, any> | React.FunctionComponent<{}>"
+ ],
+ "path": "x-pack/plugins/dataset_quality/public/types.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
"lifecycle": "start",
"initialIsOpen": true
}
@@ -64,6 +92,104 @@
],
"enums": [],
"misc": [
+ {
+ "parentPluginId": "datasetQuality",
+ "id": "def-common.APIClientRequestParamsOf",
+ "type": "Type",
+ "tags": [],
+ "label": "APIClientRequestParamsOf",
+ "description": [],
+ "signature": [
+ "{ \"GET /internal/dataset_quality/data_streams/stats\": { endpoint: \"GET /internal/dataset_quality/data_streams/stats\"; params?: ",
+ "TypeC",
+ "<{ query: ",
+ "IntersectionC",
+ "<[",
+ "PartialC",
+ "<{ type: ",
+ "UnionC",
+ "<[",
+ "LiteralC",
+ "<\"logs\">, ",
+ "LiteralC",
+ "<\"metrics\">, ",
+ "LiteralC",
+ "<\"traces\">, ",
+ "LiteralC",
+ "<\"synthetics\">, ",
+ "LiteralC",
+ "<\"profiling\">]>; }>, ",
+ "PartialC",
+ "<{ datasetQuery: ",
+ "StringC",
+ "; }>]>; }> | undefined; handler: ({}: ",
+ "DatasetQualityRouteHandlerResources",
+ " & { params: { query: { type?: \"metrics\" | \"synthetics\" | \"profiling\" | \"traces\" | \"logs\" | undefined; } & { datasetQuery?: string | undefined; }; }; }) => Promise<",
+ "DataStreamsStatResponse",
+ ">; } & ",
+ "DatasetQualityRouteCreateOptions",
+ "; }[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT | undefined; handler: ({}: any) => Promise; } & ",
+ "ServerRouteCreateOptions",
+ " ? TRouteParamsRT extends ",
+ {
+ "pluginId": "@kbn/server-route-repository",
+ "scope": "common",
+ "docId": "kibKbnServerRouteRepositoryPluginApi",
+ "section": "def-common.RouteParamsRT",
+ "text": "RouteParamsRT"
+ },
+ " ? ClientRequestParamsOfType : {} : never"
+ ],
+ "path": "x-pack/plugins/dataset_quality/common/rest/create_call_dataset_quality_api.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "datasetQuality",
+ "id": "def-common.APIReturnType",
+ "type": "Type",
+ "tags": [],
+ "label": "APIReturnType",
+ "description": [],
+ "signature": [
+ "{ \"GET /internal/dataset_quality/data_streams/stats\": { endpoint: \"GET /internal/dataset_quality/data_streams/stats\"; params?: ",
+ "TypeC",
+ "<{ query: ",
+ "IntersectionC",
+ "<[",
+ "PartialC",
+ "<{ type: ",
+ "UnionC",
+ "<[",
+ "LiteralC",
+ "<\"logs\">, ",
+ "LiteralC",
+ "<\"metrics\">, ",
+ "LiteralC",
+ "<\"traces\">, ",
+ "LiteralC",
+ "<\"synthetics\">, ",
+ "LiteralC",
+ "<\"profiling\">]>; }>, ",
+ "PartialC",
+ "<{ datasetQuery: ",
+ "StringC",
+ "; }>]>; }> | undefined; handler: ({}: ",
+ "DatasetQualityRouteHandlerResources",
+ " & { params: { query: { type?: \"metrics\" | \"synthetics\" | \"profiling\" | \"traces\" | \"logs\" | undefined; } & { datasetQuery?: string | undefined; }; }; }) => Promise<",
+ "DataStreamsStatResponse",
+ ">; } & ",
+ "DatasetQualityRouteCreateOptions",
+ "; }[TEndpoint] extends { endpoint: any; params?: any; handler: ({}: any) => Promise; } & ",
+ "ServerRouteCreateOptions",
+ " ? TReturnType : never"
+ ],
+ "path": "x-pack/plugins/dataset_quality/common/rest/create_call_dataset_quality_api.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
{
"parentPluginId": "datasetQuality",
"id": "def-common.FetchOptions",
diff --git a/api_docs/dataset_quality.mdx b/api_docs/dataset_quality.mdx
index ebfce31f56c4a..df29ba819f8bc 100644
--- a/api_docs/dataset_quality.mdx
+++ b/api_docs/dataset_quality.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/datasetQuality
title: "datasetQuality"
image: https://source.unsplash.com/400x175/?github
description: API docs for the datasetQuality plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'datasetQuality']
---
import datasetQualityObj from './dataset_quality.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 4 | 0 | 4 | 0 |
+| 8 | 0 | 8 | 3 |
## Client
@@ -31,6 +31,9 @@ Contact [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux
### Start
+### Consts, variables and types
+
+
## Common
### Interfaces
diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx
index 4f5d6039be9c9..7dba7e18da34c 100644
--- a/api_docs/deprecations_by_api.mdx
+++ b/api_docs/deprecations_by_api.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi
slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api
title: Deprecated API usage by API
description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by.
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx
index 040ca77aafafb..b000029993186 100644
--- a/api_docs/deprecations_by_plugin.mdx
+++ b/api_docs/deprecations_by_plugin.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin
slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin
title: Deprecated API usage by plugin
description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by.
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx
index dbb01fd069230..cb170942a1269 100644
--- a/api_docs/deprecations_by_team.mdx
+++ b/api_docs/deprecations_by_team.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam
slug: /kibana-dev-docs/api-meta/deprecations-due-by-team
title: Deprecated APIs due to be removed, by team
description: Lists the teams that are referencing deprecated APIs with a remove by date.
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx
index 7fa7a9a7c5e88..906f2f5499226 100644
--- a/api_docs/dev_tools.mdx
+++ b/api_docs/dev_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools
title: "devTools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the devTools plugin
-date: 2023-11-23
+date: 2023-11-24
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 498aa44ae8c34..9994e348f4f4d 100644
--- a/api_docs/discover.mdx
+++ b/api_docs/discover.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover
title: "discover"
image: https://source.unsplash.com/400x175/?github
description: API docs for the discover plugin
-date: 2023-11-23
+date: 2023-11-24
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 9ec9acf96dae3..b9f732783746d 100644
--- a/api_docs/discover_enhanced.mdx
+++ b/api_docs/discover_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced
title: "discoverEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the discoverEnhanced plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced']
---
import discoverEnhancedObj from './discover_enhanced.devdocs.json';
diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx
index 0da821f04737c..fafd9266e4141 100644
--- a/api_docs/ecs_data_quality_dashboard.mdx
+++ b/api_docs/ecs_data_quality_dashboard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard
title: "ecsDataQualityDashboard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ecsDataQualityDashboard plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard']
---
import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json';
diff --git a/api_docs/elastic_assistant.mdx b/api_docs/elastic_assistant.mdx
index da6bf1401a347..3f219e2854d83 100644
--- a/api_docs/elastic_assistant.mdx
+++ b/api_docs/elastic_assistant.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/elasticAssistant
title: "elasticAssistant"
image: https://source.unsplash.com/400x175/?github
description: API docs for the elasticAssistant plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'elasticAssistant']
---
import elasticAssistantObj from './elastic_assistant.devdocs.json';
diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx
index a9b54268423dd..17a38924092e1 100644
--- a/api_docs/embeddable.mdx
+++ b/api_docs/embeddable.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable
title: "embeddable"
image: https://source.unsplash.com/400x175/?github
description: API docs for the embeddable plugin
-date: 2023-11-23
+date: 2023-11-24
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 b8a30fda4d738..ca1f4b4a719e6 100644
--- a/api_docs/embeddable_enhanced.mdx
+++ b/api_docs/embeddable_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced
title: "embeddableEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the embeddableEnhanced plugin
-date: 2023-11-23
+date: 2023-11-24
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 85ae7ca1dcba5..b589e2666ba51 100644
--- a/api_docs/encrypted_saved_objects.mdx
+++ b/api_docs/encrypted_saved_objects.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects
title: "encryptedSavedObjects"
image: https://source.unsplash.com/400x175/?github
description: API docs for the encryptedSavedObjects plugin
-date: 2023-11-23
+date: 2023-11-24
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 d9d0fd56df895..61ba7e55dc30f 100644
--- a/api_docs/enterprise_search.mdx
+++ b/api_docs/enterprise_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch
title: "enterpriseSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the enterpriseSearch plugin
-date: 2023-11-23
+date: 2023-11-24
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 7aa2a84529675..963f068c93c9e 100644
--- a/api_docs/es_ui_shared.mdx
+++ b/api_docs/es_ui_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared
title: "esUiShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the esUiShared plugin
-date: 2023-11-23
+date: 2023-11-24
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 441e766f08a7b..c2b9caab74527 100644
--- a/api_docs/event_annotation.mdx
+++ b/api_docs/event_annotation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation
title: "eventAnnotation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the eventAnnotation plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation']
---
import eventAnnotationObj from './event_annotation.devdocs.json';
diff --git a/api_docs/event_annotation_listing.mdx b/api_docs/event_annotation_listing.mdx
index 19fdaabe1893e..a11a76c31d546 100644
--- a/api_docs/event_annotation_listing.mdx
+++ b/api_docs/event_annotation_listing.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotationListing
title: "eventAnnotationListing"
image: https://source.unsplash.com/400x175/?github
description: API docs for the eventAnnotationListing plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotationListing']
---
import eventAnnotationListingObj from './event_annotation_listing.devdocs.json';
diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx
index c8f4af0e0fc65..6ac869a0ff6e9 100644
--- a/api_docs/event_log.mdx
+++ b/api_docs/event_log.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog
title: "eventLog"
image: https://source.unsplash.com/400x175/?github
description: API docs for the eventLog plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog']
---
import eventLogObj from './event_log.devdocs.json';
diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx
index f6e98b649a665..22fb8c728f1b3 100644
--- a/api_docs/exploratory_view.mdx
+++ b/api_docs/exploratory_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView
title: "exploratoryView"
image: https://source.unsplash.com/400x175/?github
description: API docs for the exploratoryView plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView']
---
import exploratoryViewObj from './exploratory_view.devdocs.json';
diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx
index a4c59ba81a289..b7fc35dc519d4 100644
--- a/api_docs/expression_error.mdx
+++ b/api_docs/expression_error.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError
title: "expressionError"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionError plugin
-date: 2023-11-23
+date: 2023-11-24
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 81db86fc04f21..e7051b3d051e6 100644
--- a/api_docs/expression_gauge.mdx
+++ b/api_docs/expression_gauge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge
title: "expressionGauge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionGauge plugin
-date: 2023-11-23
+date: 2023-11-24
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 9093d21b3d397..46ba6673cf843 100644
--- a/api_docs/expression_heatmap.mdx
+++ b/api_docs/expression_heatmap.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap
title: "expressionHeatmap"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionHeatmap plugin
-date: 2023-11-23
+date: 2023-11-24
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 b5918844ed4e1..11f16d1b915c9 100644
--- a/api_docs/expression_image.mdx
+++ b/api_docs/expression_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage
title: "expressionImage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionImage plugin
-date: 2023-11-23
+date: 2023-11-24
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 88393f171fd5f..1dd18449de2b2 100644
--- a/api_docs/expression_legacy_metric_vis.mdx
+++ b/api_docs/expression_legacy_metric_vis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis
title: "expressionLegacyMetricVis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionLegacyMetricVis plugin
-date: 2023-11-23
+date: 2023-11-24
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 d743db00814b0..9a1fa98021453 100644
--- a/api_docs/expression_metric.mdx
+++ b/api_docs/expression_metric.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric
title: "expressionMetric"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionMetric plugin
-date: 2023-11-23
+date: 2023-11-24
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 0385a29e83c68..0af60aee6c60c 100644
--- a/api_docs/expression_metric_vis.mdx
+++ b/api_docs/expression_metric_vis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis
title: "expressionMetricVis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionMetricVis plugin
-date: 2023-11-23
+date: 2023-11-24
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 bafa0b987c54a..52aea059d4473 100644
--- a/api_docs/expression_partition_vis.mdx
+++ b/api_docs/expression_partition_vis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis
title: "expressionPartitionVis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionPartitionVis plugin
-date: 2023-11-23
+date: 2023-11-24
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 ab47762ee956d..fe508a93b777b 100644
--- a/api_docs/expression_repeat_image.mdx
+++ b/api_docs/expression_repeat_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage
title: "expressionRepeatImage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionRepeatImage plugin
-date: 2023-11-23
+date: 2023-11-24
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 7b1e211c82446..1e26daeb57d2b 100644
--- a/api_docs/expression_reveal_image.mdx
+++ b/api_docs/expression_reveal_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage
title: "expressionRevealImage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionRevealImage plugin
-date: 2023-11-23
+date: 2023-11-24
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 b42b59afa22dd..157266b65fcb6 100644
--- a/api_docs/expression_shape.mdx
+++ b/api_docs/expression_shape.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape
title: "expressionShape"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionShape plugin
-date: 2023-11-23
+date: 2023-11-24
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 a39e66588eb22..5ebfe739caedd 100644
--- a/api_docs/expression_tagcloud.mdx
+++ b/api_docs/expression_tagcloud.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud
title: "expressionTagcloud"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionTagcloud plugin
-date: 2023-11-23
+date: 2023-11-24
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 9b1fcc4ad477b..81a21ce4c0213 100644
--- a/api_docs/expression_x_y.mdx
+++ b/api_docs/expression_x_y.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY
title: "expressionXY"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionXY plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY']
---
import expressionXYObj from './expression_x_y.devdocs.json';
diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx
index 46737e76c7c14..83b5da4f8eac9 100644
--- a/api_docs/expressions.mdx
+++ b/api_docs/expressions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions
title: "expressions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressions plugin
-date: 2023-11-23
+date: 2023-11-24
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 726f96e97f5a6..1a26d88270956 100644
--- a/api_docs/features.mdx
+++ b/api_docs/features.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features
title: "features"
image: https://source.unsplash.com/400x175/?github
description: API docs for the features plugin
-date: 2023-11-23
+date: 2023-11-24
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 0f9fef59371b4..fa6781d761cd5 100644
--- a/api_docs/field_formats.mdx
+++ b/api_docs/field_formats.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats
title: "fieldFormats"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fieldFormats plugin
-date: 2023-11-23
+date: 2023-11-24
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 e1a69285d20f6..d61e887f75688 100644
--- a/api_docs/file_upload.mdx
+++ b/api_docs/file_upload.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload
title: "fileUpload"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fileUpload plugin
-date: 2023-11-23
+date: 2023-11-24
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 5665532d2f31e..84da8e8716edc 100644
--- a/api_docs/files.mdx
+++ b/api_docs/files.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files
title: "files"
image: https://source.unsplash.com/400x175/?github
description: API docs for the files plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files']
---
import filesObj from './files.devdocs.json';
diff --git a/api_docs/files_management.mdx b/api_docs/files_management.mdx
index c044444ed38bc..d83fc94927e39 100644
--- a/api_docs/files_management.mdx
+++ b/api_docs/files_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement
title: "filesManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the filesManagement plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement']
---
import filesManagementObj from './files_management.devdocs.json';
diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx
index 74d597b9dfe7f..dd82546e263d3 100644
--- a/api_docs/fleet.mdx
+++ b/api_docs/fleet.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet
title: "fleet"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fleet plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet']
---
import fleetObj from './fleet.devdocs.json';
diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx
index d800b2c134844..7586f65e31283 100644
--- a/api_docs/global_search.mdx
+++ b/api_docs/global_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch
title: "globalSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the globalSearch plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch']
---
import globalSearchObj from './global_search.devdocs.json';
diff --git a/api_docs/guided_onboarding.mdx b/api_docs/guided_onboarding.mdx
index 69dedcf80162f..b379aa85cc434 100644
--- a/api_docs/guided_onboarding.mdx
+++ b/api_docs/guided_onboarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding
title: "guidedOnboarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the guidedOnboarding plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding']
---
import guidedOnboardingObj from './guided_onboarding.devdocs.json';
diff --git a/api_docs/home.mdx b/api_docs/home.mdx
index cc88a7162c3a2..b87db4d0810b2 100644
--- a/api_docs/home.mdx
+++ b/api_docs/home.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home
title: "home"
image: https://source.unsplash.com/400x175/?github
description: API docs for the home plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home']
---
import homeObj from './home.devdocs.json';
diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx
index 5e1f363272e68..73862e77b63dc 100644
--- a/api_docs/image_embeddable.mdx
+++ b/api_docs/image_embeddable.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable
title: "imageEmbeddable"
image: https://source.unsplash.com/400x175/?github
description: API docs for the imageEmbeddable plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable']
---
import imageEmbeddableObj from './image_embeddable.devdocs.json';
diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx
index 0a1f21223ca62..c451019233aa4 100644
--- a/api_docs/index_lifecycle_management.mdx
+++ b/api_docs/index_lifecycle_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement
title: "indexLifecycleManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the indexLifecycleManagement plugin
-date: 2023-11-23
+date: 2023-11-24
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 a6f49a2ced2d7..357615627000d 100644
--- a/api_docs/index_management.mdx
+++ b/api_docs/index_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement
title: "indexManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the indexManagement plugin
-date: 2023-11-23
+date: 2023-11-24
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 42aaf8747a854..73e9e656a6965 100644
--- a/api_docs/infra.mdx
+++ b/api_docs/infra.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra
title: "infra"
image: https://source.unsplash.com/400x175/?github
description: API docs for the infra plugin
-date: 2023-11-23
+date: 2023-11-24
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 3c08a89f7c618..080abaa0d3a9e 100644
--- a/api_docs/inspector.mdx
+++ b/api_docs/inspector.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector
title: "inspector"
image: https://source.unsplash.com/400x175/?github
description: API docs for the inspector plugin
-date: 2023-11-23
+date: 2023-11-24
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 8292551181061..a2d58879b4a5f 100644
--- a/api_docs/interactive_setup.mdx
+++ b/api_docs/interactive_setup.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup
title: "interactiveSetup"
image: https://source.unsplash.com/400x175/?github
description: API docs for the interactiveSetup plugin
-date: 2023-11-23
+date: 2023-11-24
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 dcc046bd9a137..0b31ea6435473 100644
--- a/api_docs/kbn_ace.mdx
+++ b/api_docs/kbn_ace.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace
title: "@kbn/ace"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ace plugin
-date: 2023-11-23
+date: 2023-11-24
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 f4e990b60c62e..5d53dbf250ac9 100644
--- a/api_docs/kbn_aiops_components.mdx
+++ b/api_docs/kbn_aiops_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components
title: "@kbn/aiops-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/aiops-components plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components']
---
import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json';
diff --git a/api_docs/kbn_aiops_utils.mdx b/api_docs/kbn_aiops_utils.mdx
index fd21e23d65514..76d0396b2a73f 100644
--- a/api_docs/kbn_aiops_utils.mdx
+++ b/api_docs/kbn_aiops_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils
title: "@kbn/aiops-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/aiops-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils']
---
import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json';
diff --git a/api_docs/kbn_alerting_api_integration_helpers.mdx b/api_docs/kbn_alerting_api_integration_helpers.mdx
index 78242b8978950..b647fa69f4014 100644
--- a/api_docs/kbn_alerting_api_integration_helpers.mdx
+++ b/api_docs/kbn_alerting_api_integration_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-api-integration-helpers
title: "@kbn/alerting-api-integration-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerting-api-integration-helpers plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-api-integration-helpers']
---
import kbnAlertingApiIntegrationHelpersObj from './kbn_alerting_api_integration_helpers.devdocs.json';
diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx
index 59759d2239a82..b42b424ce8633 100644
--- a/api_docs/kbn_alerting_state_types.mdx
+++ b/api_docs/kbn_alerting_state_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types
title: "@kbn/alerting-state-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerting-state-types plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types']
---
import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json';
diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx
index 98d09cd6701d6..93f590e969f2d 100644
--- a/api_docs/kbn_alerts_as_data_utils.mdx
+++ b/api_docs/kbn_alerts_as_data_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils
title: "@kbn/alerts-as-data-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerts-as-data-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils']
---
import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json';
diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx
index f6247aaeaf220..af5d04e3f3641 100644
--- a/api_docs/kbn_alerts_ui_shared.mdx
+++ b/api_docs/kbn_alerts_ui_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared
title: "@kbn/alerts-ui-shared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerts-ui-shared plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared']
---
import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json';
diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx
index 448ee84a4292d..888684888df1e 100644
--- a/api_docs/kbn_analytics.mdx
+++ b/api_docs/kbn_analytics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics
title: "@kbn/analytics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics']
---
import kbnAnalyticsObj from './kbn_analytics.devdocs.json';
diff --git a/api_docs/kbn_analytics_client.devdocs.json b/api_docs/kbn_analytics_client.devdocs.json
index 2fd0a65a4ff22..08766a1c077db 100644
--- a/api_docs/kbn_analytics_client.devdocs.json
+++ b/api_docs/kbn_analytics_client.devdocs.json
@@ -718,14 +718,6 @@
"plugin": "dashboard",
"path": "src/plugins/dashboard/public/services/analytics/analytics_service.ts"
},
- {
- "plugin": "@kbn/subscription-tracking",
- "path": "packages/kbn-subscription-tracking/src/use_go_to_subscription.ts"
- },
- {
- "plugin": "@kbn/subscription-tracking",
- "path": "packages/kbn-subscription-tracking/src/use_impression.ts"
- },
{
"plugin": "fleet",
"path": "x-pack/plugins/fleet/server/services/telemetry/fleet_usage_sender.ts"
diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx
index 8f8bff06decaf..2b6bb86b96470 100644
--- a/api_docs/kbn_analytics_client.mdx
+++ b/api_docs/kbn_analytics_client.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client
title: "@kbn/analytics-client"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-client plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client']
---
import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json';
diff --git a/api_docs/kbn_analytics_collection_utils.mdx b/api_docs/kbn_analytics_collection_utils.mdx
index 8795e223b54ba..1c9b24d0a216c 100644
--- a/api_docs/kbn_analytics_collection_utils.mdx
+++ b/api_docs/kbn_analytics_collection_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-collection-utils
title: "@kbn/analytics-collection-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-collection-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-collection-utils']
---
import kbnAnalyticsCollectionUtilsObj from './kbn_analytics_collection_utils.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 befb26d7dd67b..fb0939ccc16bf 100644
--- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx
+++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser
title: "@kbn/analytics-shippers-elastic-v3-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin
-date: 2023-11-23
+date: 2023-11-24
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 84b90ff33a9af..482d1e5bd55d2 100644
--- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx
+++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common
title: "@kbn/analytics-shippers-elastic-v3-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin
-date: 2023-11-23
+date: 2023-11-24
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 e891ec0a4f04b..2cda684c584a7 100644
--- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx
+++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server
title: "@kbn/analytics-shippers-elastic-v3-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin
-date: 2023-11-23
+date: 2023-11-24
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 27bd9d88f4b91..3e37fb7add791 100644
--- a/api_docs/kbn_analytics_shippers_fullstory.mdx
+++ b/api_docs/kbn_analytics_shippers_fullstory.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory
title: "@kbn/analytics-shippers-fullstory"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-shippers-fullstory plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory']
---
import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json';
diff --git a/api_docs/kbn_analytics_shippers_gainsight.mdx b/api_docs/kbn_analytics_shippers_gainsight.mdx
index 18ae86d9fbf25..248d03eca0d8a 100644
--- a/api_docs/kbn_analytics_shippers_gainsight.mdx
+++ b/api_docs/kbn_analytics_shippers_gainsight.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight
title: "@kbn/analytics-shippers-gainsight"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-shippers-gainsight plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-gainsight']
---
import kbnAnalyticsShippersGainsightObj from './kbn_analytics_shippers_gainsight.devdocs.json';
diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx
index 0fc73f61a5f5c..37ce6d897f5a5 100644
--- a/api_docs/kbn_apm_config_loader.mdx
+++ b/api_docs/kbn_apm_config_loader.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader
title: "@kbn/apm-config-loader"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-config-loader plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader']
---
import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json';
diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx
index 6d1ace5e5c478..55c9a94df5777 100644
--- a/api_docs/kbn_apm_synthtrace.mdx
+++ b/api_docs/kbn_apm_synthtrace.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace
title: "@kbn/apm-synthtrace"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-synthtrace plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace']
---
import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json';
diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx
index 51f0db7d4b7b7..30f23c8a70ded 100644
--- a/api_docs/kbn_apm_synthtrace_client.mdx
+++ b/api_docs/kbn_apm_synthtrace_client.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client
title: "@kbn/apm-synthtrace-client"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-synthtrace-client plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client']
---
import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json';
diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx
index 08f64a97e62c2..848dfd2a18819 100644
--- a/api_docs/kbn_apm_utils.mdx
+++ b/api_docs/kbn_apm_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils
title: "@kbn/apm-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-utils plugin
-date: 2023-11-23
+date: 2023-11-24
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 4823873e386cc..2004b2ca7b001 100644
--- a/api_docs/kbn_axe_config.mdx
+++ b/api_docs/kbn_axe_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config
title: "@kbn/axe-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/axe-config plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config']
---
import kbnAxeConfigObj from './kbn_axe_config.devdocs.json';
diff --git a/api_docs/kbn_calculate_auto.mdx b/api_docs/kbn_calculate_auto.mdx
index c0c9fe0632ad0..28b57a5550bd2 100644
--- a/api_docs/kbn_calculate_auto.mdx
+++ b/api_docs/kbn_calculate_auto.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-auto
title: "@kbn/calculate-auto"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/calculate-auto plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-auto']
---
import kbnCalculateAutoObj from './kbn_calculate_auto.devdocs.json';
diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx
index 11e03136bf393..d11e596ea70d1 100644
--- a/api_docs/kbn_cases_components.mdx
+++ b/api_docs/kbn_cases_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components
title: "@kbn/cases-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cases-components plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components']
---
import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json';
diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx
index 80991bdff23b0..5f7af421da743 100644
--- a/api_docs/kbn_cell_actions.mdx
+++ b/api_docs/kbn_cell_actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions
title: "@kbn/cell-actions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cell-actions plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions']
---
import kbnCellActionsObj from './kbn_cell_actions.devdocs.json';
diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx
index b6271af61d3af..d2a3e70749687 100644
--- a/api_docs/kbn_chart_expressions_common.mdx
+++ b/api_docs/kbn_chart_expressions_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common
title: "@kbn/chart-expressions-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/chart-expressions-common plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common']
---
import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json';
diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx
index 11ecb844d2fef..85a8112a7d2f9 100644
--- a/api_docs/kbn_chart_icons.mdx
+++ b/api_docs/kbn_chart_icons.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons
title: "@kbn/chart-icons"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/chart-icons plugin
-date: 2023-11-23
+date: 2023-11-24
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 0205ce6aec87b..185aefff01182 100644
--- a/api_docs/kbn_ci_stats_core.mdx
+++ b/api_docs/kbn_ci_stats_core.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core
title: "@kbn/ci-stats-core"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ci-stats-core plugin
-date: 2023-11-23
+date: 2023-11-24
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 33b186e2efd2f..d6e8f10f7ef0e 100644
--- a/api_docs/kbn_ci_stats_performance_metrics.mdx
+++ b/api_docs/kbn_ci_stats_performance_metrics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics
title: "@kbn/ci-stats-performance-metrics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ci-stats-performance-metrics plugin
-date: 2023-11-23
+date: 2023-11-24
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 cf7519df7b180..eccf1cb4544df 100644
--- a/api_docs/kbn_ci_stats_reporter.mdx
+++ b/api_docs/kbn_ci_stats_reporter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter
title: "@kbn/ci-stats-reporter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ci-stats-reporter plugin
-date: 2023-11-23
+date: 2023-11-24
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 5a60324c5780f..6dad0a0d852bf 100644
--- a/api_docs/kbn_cli_dev_mode.mdx
+++ b/api_docs/kbn_cli_dev_mode.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode
title: "@kbn/cli-dev-mode"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cli-dev-mode plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode']
---
import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json';
diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx
index 8f2edd69b1701..dedfb3c30dd1d 100644
--- a/api_docs/kbn_code_editor.mdx
+++ b/api_docs/kbn_code_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor
title: "@kbn/code-editor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/code-editor plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor']
---
import kbnCodeEditorObj from './kbn_code_editor.devdocs.json';
diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx
index 5d064394c3593..59c7c4d29bc35 100644
--- a/api_docs/kbn_coloring.mdx
+++ b/api_docs/kbn_coloring.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring
title: "@kbn/coloring"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/coloring plugin
-date: 2023-11-23
+date: 2023-11-24
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 766a00116a577..2196f4354a240 100644
--- a/api_docs/kbn_config.mdx
+++ b/api_docs/kbn_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config
title: "@kbn/config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/config plugin
-date: 2023-11-23
+date: 2023-11-24
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 6e56eff70b4b7..61a819c92bd9c 100644
--- a/api_docs/kbn_config_mocks.mdx
+++ b/api_docs/kbn_config_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks
title: "@kbn/config-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/config-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 95b16034de2b5..9d204f0d0cf18 100644
--- a/api_docs/kbn_config_schema.mdx
+++ b/api_docs/kbn_config_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema
title: "@kbn/config-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/config-schema plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema']
---
import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json';
diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx
index 8303c96a3b08d..813231f3bd64b 100644
--- a/api_docs/kbn_content_management_content_editor.mdx
+++ b/api_docs/kbn_content_management_content_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor
title: "@kbn/content-management-content-editor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-content-editor plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor']
---
import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json';
diff --git a/api_docs/kbn_content_management_tabbed_table_list_view.mdx b/api_docs/kbn_content_management_tabbed_table_list_view.mdx
index f914de7019862..b807580304c68 100644
--- a/api_docs/kbn_content_management_tabbed_table_list_view.mdx
+++ b/api_docs/kbn_content_management_tabbed_table_list_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-tabbed-table-list-view
title: "@kbn/content-management-tabbed-table-list-view"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-tabbed-table-list-view plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-tabbed-table-list-view']
---
import kbnContentManagementTabbedTableListViewObj from './kbn_content_management_tabbed_table_list_view.devdocs.json';
diff --git a/api_docs/kbn_content_management_table_list_view.mdx b/api_docs/kbn_content_management_table_list_view.mdx
index c6629355daa11..5bca859c9fe08 100644
--- a/api_docs/kbn_content_management_table_list_view.mdx
+++ b/api_docs/kbn_content_management_table_list_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view
title: "@kbn/content-management-table-list-view"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-table-list-view plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view']
---
import kbnContentManagementTableListViewObj from './kbn_content_management_table_list_view.devdocs.json';
diff --git a/api_docs/kbn_content_management_table_list_view_table.mdx b/api_docs/kbn_content_management_table_list_view_table.mdx
index b6af69d9f0260..899644acb0689 100644
--- a/api_docs/kbn_content_management_table_list_view_table.mdx
+++ b/api_docs/kbn_content_management_table_list_view_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-table
title: "@kbn/content-management-table-list-view-table"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-table-list-view-table plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-table']
---
import kbnContentManagementTableListViewTableObj from './kbn_content_management_table_list_view_table.devdocs.json';
diff --git a/api_docs/kbn_content_management_utils.mdx b/api_docs/kbn_content_management_utils.mdx
index 7508a433a075d..a6e26813f0ffb 100644
--- a/api_docs/kbn_content_management_utils.mdx
+++ b/api_docs/kbn_content_management_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-utils
title: "@kbn/content-management-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-utils']
---
import kbnContentManagementUtilsObj from './kbn_content_management_utils.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx
index d90f8373d3649..cdf04e59a04df 100644
--- a/api_docs/kbn_core_analytics_browser.mdx
+++ b/api_docs/kbn_core_analytics_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser
title: "@kbn/core-analytics-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-browser plugin
-date: 2023-11-23
+date: 2023-11-24
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 53eab779d3dee..2de507d177c7a 100644
--- a/api_docs/kbn_core_analytics_browser_internal.mdx
+++ b/api_docs/kbn_core_analytics_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal
title: "@kbn/core-analytics-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-browser-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 3a48f9778d729..b4f8065c36c45 100644
--- a/api_docs/kbn_core_analytics_browser_mocks.mdx
+++ b/api_docs/kbn_core_analytics_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks
title: "@kbn/core-analytics-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 0e6d95120f19b..de08fafc6035c 100644
--- a/api_docs/kbn_core_analytics_server.mdx
+++ b/api_docs/kbn_core_analytics_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server
title: "@kbn/core-analytics-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-server plugin
-date: 2023-11-23
+date: 2023-11-24
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 5dbddeacee169..9d9d15cbc7d14 100644
--- a/api_docs/kbn_core_analytics_server_internal.mdx
+++ b/api_docs/kbn_core_analytics_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal
title: "@kbn/core-analytics-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 3d63648140174..bbcfb7b1efac0 100644
--- a/api_docs/kbn_core_analytics_server_mocks.mdx
+++ b/api_docs/kbn_core_analytics_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks
title: "@kbn/core-analytics-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 56de028660949..ab3307949fe6b 100644
--- a/api_docs/kbn_core_application_browser.mdx
+++ b/api_docs/kbn_core_application_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser
title: "@kbn/core-application-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-browser plugin
-date: 2023-11-23
+date: 2023-11-24
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 6313bc5471b73..074d84bb7ebfb 100644
--- a/api_docs/kbn_core_application_browser_internal.mdx
+++ b/api_docs/kbn_core_application_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal
title: "@kbn/core-application-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-browser-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 7aa8726a7310d..8aa7e62b93e4f 100644
--- a/api_docs/kbn_core_application_browser_mocks.mdx
+++ b/api_docs/kbn_core_application_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks
title: "@kbn/core-application-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 47c2109e761c8..2ea1fecca2adf 100644
--- a/api_docs/kbn_core_application_common.mdx
+++ b/api_docs/kbn_core_application_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common
title: "@kbn/core-application-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-common plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-common']
---
import kbnCoreApplicationCommonObj from './kbn_core_application_common.devdocs.json';
diff --git a/api_docs/kbn_core_apps_browser_internal.mdx b/api_docs/kbn_core_apps_browser_internal.mdx
index ebddeb94a4341..b28773123d7c3 100644
--- a/api_docs/kbn_core_apps_browser_internal.mdx
+++ b/api_docs/kbn_core_apps_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal
title: "@kbn/core-apps-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-apps-browser-internal plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-internal']
---
import kbnCoreAppsBrowserInternalObj from './kbn_core_apps_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_apps_browser_mocks.mdx b/api_docs/kbn_core_apps_browser_mocks.mdx
index e98098763b5f1..5903cbbd2f687 100644
--- a/api_docs/kbn_core_apps_browser_mocks.mdx
+++ b/api_docs/kbn_core_apps_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks
title: "@kbn/core-apps-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-apps-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks']
---
import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_apps_server_internal.mdx b/api_docs/kbn_core_apps_server_internal.mdx
index c237ded9cd554..0afb094179cf3 100644
--- a/api_docs/kbn_core_apps_server_internal.mdx
+++ b/api_docs/kbn_core_apps_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal
title: "@kbn/core-apps-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-apps-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-server-internal']
---
import kbnCoreAppsServerInternalObj from './kbn_core_apps_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx
index 584c2835cac15..b1ae3905baa91 100644
--- a/api_docs/kbn_core_base_browser_mocks.mdx
+++ b/api_docs/kbn_core_base_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks
title: "@kbn/core-base-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 67c86be312b79..ba906703010db 100644
--- a/api_docs/kbn_core_base_common.mdx
+++ b/api_docs/kbn_core_base_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common
title: "@kbn/core-base-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-common plugin
-date: 2023-11-23
+date: 2023-11-24
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 fbb5fa26c5236..18831d60a043e 100644
--- a/api_docs/kbn_core_base_server_internal.mdx
+++ b/api_docs/kbn_core_base_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal
title: "@kbn/core-base-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 154503f8f7230..7101dff982fe7 100644
--- a/api_docs/kbn_core_base_server_mocks.mdx
+++ b/api_docs/kbn_core_base_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks
title: "@kbn/core-base-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 b3b7b9d4a25fd..163132fe53023 100644
--- a/api_docs/kbn_core_capabilities_browser_mocks.mdx
+++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks
title: "@kbn/core-capabilities-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 8925edb2a7fb0..178a14fa36213 100644
--- a/api_docs/kbn_core_capabilities_common.mdx
+++ b/api_docs/kbn_core_capabilities_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common
title: "@kbn/core-capabilities-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-common plugin
-date: 2023-11-23
+date: 2023-11-24
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 0fd8a6dde28ab..30249a29ee92f 100644
--- a/api_docs/kbn_core_capabilities_server.mdx
+++ b/api_docs/kbn_core_capabilities_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server
title: "@kbn/core-capabilities-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-server plugin
-date: 2023-11-23
+date: 2023-11-24
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 6fdb4b7f65156..d9bda40036c8c 100644
--- a/api_docs/kbn_core_capabilities_server_mocks.mdx
+++ b/api_docs/kbn_core_capabilities_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks
title: "@kbn/core-capabilities-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 5f9828bf075ce..7c9081b39461e 100644
--- a/api_docs/kbn_core_chrome_browser.mdx
+++ b/api_docs/kbn_core_chrome_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser
title: "@kbn/core-chrome-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-chrome-browser plugin
-date: 2023-11-23
+date: 2023-11-24
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 69d2df7afb863..5500b633a1506 100644
--- a/api_docs/kbn_core_chrome_browser_mocks.mdx
+++ b/api_docs/kbn_core_chrome_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks
title: "@kbn/core-chrome-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-chrome-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 5e985626e7fd5..ce688c70a0d4b 100644
--- a/api_docs/kbn_core_config_server_internal.mdx
+++ b/api_docs/kbn_core_config_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal
title: "@kbn/core-config-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-config-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal']
---
import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx
index 926f66c8bf13d..d36f3faf2b6b4 100644
--- a/api_docs/kbn_core_custom_branding_browser.mdx
+++ b/api_docs/kbn_core_custom_branding_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser
title: "@kbn/core-custom-branding-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-browser plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser']
---
import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx
index 08499eb39eb0a..c0e98d07aa243 100644
--- a/api_docs/kbn_core_custom_branding_browser_internal.mdx
+++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal
title: "@kbn/core-custom-branding-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-browser-internal plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal']
---
import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx
index 0359a9d6be4d7..b2369eeb0f064 100644
--- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx
+++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks
title: "@kbn/core-custom-branding-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks']
---
import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx
index c53d7ef226572..deccb8f4391fe 100644
--- a/api_docs/kbn_core_custom_branding_common.mdx
+++ b/api_docs/kbn_core_custom_branding_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common
title: "@kbn/core-custom-branding-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-common plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common']
---
import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx
index 6d10a3475881c..94d5bcbcd72fa 100644
--- a/api_docs/kbn_core_custom_branding_server.mdx
+++ b/api_docs/kbn_core_custom_branding_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server
title: "@kbn/core-custom-branding-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-server plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server']
---
import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx
index 7e655682923b5..0faf45a99bd23 100644
--- a/api_docs/kbn_core_custom_branding_server_internal.mdx
+++ b/api_docs/kbn_core_custom_branding_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal
title: "@kbn/core-custom-branding-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal']
---
import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx
index 1c14f33141a9d..e8ba1904dcb96 100644
--- a/api_docs/kbn_core_custom_branding_server_mocks.mdx
+++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks
title: "@kbn/core-custom-branding-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks']
---
import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx
index 963a3c3d4ca7d..d67613fd99b9e 100644
--- a/api_docs/kbn_core_deprecations_browser.mdx
+++ b/api_docs/kbn_core_deprecations_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser
title: "@kbn/core-deprecations-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-browser plugin
-date: 2023-11-23
+date: 2023-11-24
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 1b3daf1d69c5d..ce0adf666a416 100644
--- a/api_docs/kbn_core_deprecations_browser_internal.mdx
+++ b/api_docs/kbn_core_deprecations_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal
title: "@kbn/core-deprecations-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-browser-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 3dd38fbeea085..457c01612728f 100644
--- a/api_docs/kbn_core_deprecations_browser_mocks.mdx
+++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks
title: "@kbn/core-deprecations-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 754f59070d43b..f10e9241d8351 100644
--- a/api_docs/kbn_core_deprecations_common.mdx
+++ b/api_docs/kbn_core_deprecations_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common
title: "@kbn/core-deprecations-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-common plugin
-date: 2023-11-23
+date: 2023-11-24
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 f8329825f16c3..52e618d09bce2 100644
--- a/api_docs/kbn_core_deprecations_server.mdx
+++ b/api_docs/kbn_core_deprecations_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server
title: "@kbn/core-deprecations-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-server plugin
-date: 2023-11-23
+date: 2023-11-24
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 0cb948b8503d3..5844bc5069ccd 100644
--- a/api_docs/kbn_core_deprecations_server_internal.mdx
+++ b/api_docs/kbn_core_deprecations_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal
title: "@kbn/core-deprecations-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 d39eabc7e83c1..47ded480d9e07 100644
--- a/api_docs/kbn_core_deprecations_server_mocks.mdx
+++ b/api_docs/kbn_core_deprecations_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks
title: "@kbn/core-deprecations-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 7f01700be96f7..4d49f04c29e4b 100644
--- a/api_docs/kbn_core_doc_links_browser.mdx
+++ b/api_docs/kbn_core_doc_links_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser
title: "@kbn/core-doc-links-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-browser plugin
-date: 2023-11-23
+date: 2023-11-24
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 9b49735656489..747c59c82b254 100644
--- a/api_docs/kbn_core_doc_links_browser_mocks.mdx
+++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks
title: "@kbn/core-doc-links-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 9f44c4da446c8..0e9125cd13b24 100644
--- a/api_docs/kbn_core_doc_links_server.mdx
+++ b/api_docs/kbn_core_doc_links_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server
title: "@kbn/core-doc-links-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-server plugin
-date: 2023-11-23
+date: 2023-11-24
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 17ff516631846..749cd5a72cfab 100644
--- a/api_docs/kbn_core_doc_links_server_mocks.mdx
+++ b/api_docs/kbn_core_doc_links_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks
title: "@kbn/core-doc-links-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 f03d2e7862df0..deff6182f35dd 100644
--- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx
+++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal
title: "@kbn/core-elasticsearch-client-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 a92fe67c4258b..f883023633368 100644
--- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx
+++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks
title: "@kbn/core-elasticsearch-client-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 78f3a451bd45c..b14586471ed61 100644
--- a/api_docs/kbn_core_elasticsearch_server.mdx
+++ b/api_docs/kbn_core_elasticsearch_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server
title: "@kbn/core-elasticsearch-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-server plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server']
---
import kbnCoreElasticsearchServerObj from './kbn_core_elasticsearch_server.devdocs.json';
diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx
index 7efc1476047a8..79737d1adecc2 100644
--- a/api_docs/kbn_core_elasticsearch_server_internal.mdx
+++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal
title: "@kbn/core-elasticsearch-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 a9e1d295b371c..f189e4fe73bc5 100644
--- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx
+++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks
title: "@kbn/core-elasticsearch-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 7bedf1274ae66..9e96c779d3ae6 100644
--- a/api_docs/kbn_core_environment_server_internal.mdx
+++ b/api_docs/kbn_core_environment_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal
title: "@kbn/core-environment-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-environment-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 9491eab1a318f..b8bb10656441c 100644
--- a/api_docs/kbn_core_environment_server_mocks.mdx
+++ b/api_docs/kbn_core_environment_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks
title: "@kbn/core-environment-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-environment-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 4a16bd314cb80..d42eef5b38e57 100644
--- a/api_docs/kbn_core_execution_context_browser.mdx
+++ b/api_docs/kbn_core_execution_context_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser
title: "@kbn/core-execution-context-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-browser plugin
-date: 2023-11-23
+date: 2023-11-24
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 3d569dc4e721e..bb526b50834d3 100644
--- a/api_docs/kbn_core_execution_context_browser_internal.mdx
+++ b/api_docs/kbn_core_execution_context_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal
title: "@kbn/core-execution-context-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-browser-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 8e540cf6f27fd..a0e00ba18f1b1 100644
--- a/api_docs/kbn_core_execution_context_browser_mocks.mdx
+++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks
title: "@kbn/core-execution-context-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 5421f794b324b..059f45089db34 100644
--- a/api_docs/kbn_core_execution_context_common.mdx
+++ b/api_docs/kbn_core_execution_context_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common
title: "@kbn/core-execution-context-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-common plugin
-date: 2023-11-23
+date: 2023-11-24
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 430ad84c3eb94..03a302d8d63ea 100644
--- a/api_docs/kbn_core_execution_context_server.mdx
+++ b/api_docs/kbn_core_execution_context_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server
title: "@kbn/core-execution-context-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-server plugin
-date: 2023-11-23
+date: 2023-11-24
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 438471e6cf2a7..5822a94f3e303 100644
--- a/api_docs/kbn_core_execution_context_server_internal.mdx
+++ b/api_docs/kbn_core_execution_context_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal
title: "@kbn/core-execution-context-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 9f6414fd94717..ca8cb4baf41bc 100644
--- a/api_docs/kbn_core_execution_context_server_mocks.mdx
+++ b/api_docs/kbn_core_execution_context_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks
title: "@kbn/core-execution-context-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 bc2193837c6ad..0d1a1ee19fdc5 100644
--- a/api_docs/kbn_core_fatal_errors_browser.mdx
+++ b/api_docs/kbn_core_fatal_errors_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser
title: "@kbn/core-fatal-errors-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-fatal-errors-browser plugin
-date: 2023-11-23
+date: 2023-11-24
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 2b5c9706c7d55..e6f78be7cb959 100644
--- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx
+++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks
title: "@kbn/core-fatal-errors-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 36c5c1b6ef11f..dc9ed6ea58f93 100644
--- a/api_docs/kbn_core_http_browser.mdx
+++ b/api_docs/kbn_core_http_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser
title: "@kbn/core-http-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-browser plugin
-date: 2023-11-23
+date: 2023-11-24
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 da9d51853a13e..62ccb99e05593 100644
--- a/api_docs/kbn_core_http_browser_internal.mdx
+++ b/api_docs/kbn_core_http_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal
title: "@kbn/core-http-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-browser-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 ee841fbb115ab..21c4e4720b1d9 100644
--- a/api_docs/kbn_core_http_browser_mocks.mdx
+++ b/api_docs/kbn_core_http_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks
title: "@kbn/core-http-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 a15d0be7db145..47a6905e0ea82 100644
--- a/api_docs/kbn_core_http_common.mdx
+++ b/api_docs/kbn_core_http_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common
title: "@kbn/core-http-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-common plugin
-date: 2023-11-23
+date: 2023-11-24
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 931ff522fd826..6bb391106c8c6 100644
--- a/api_docs/kbn_core_http_context_server_mocks.mdx
+++ b/api_docs/kbn_core_http_context_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks
title: "@kbn/core-http-context-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-context-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-context-server-mocks']
---
import kbnCoreHttpContextServerMocksObj from './kbn_core_http_context_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_request_handler_context_server.mdx b/api_docs/kbn_core_http_request_handler_context_server.mdx
index fd4b66cac3589..354919027bdc8 100644
--- a/api_docs/kbn_core_http_request_handler_context_server.mdx
+++ b/api_docs/kbn_core_http_request_handler_context_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server
title: "@kbn/core-http-request-handler-context-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-request-handler-context-server plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server']
---
import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json';
diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx
index 028f6a3d8c0bc..5f3223822461d 100644
--- a/api_docs/kbn_core_http_resources_server.mdx
+++ b/api_docs/kbn_core_http_resources_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server
title: "@kbn/core-http-resources-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-resources-server plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server']
---
import kbnCoreHttpResourcesServerObj from './kbn_core_http_resources_server.devdocs.json';
diff --git a/api_docs/kbn_core_http_resources_server_internal.mdx b/api_docs/kbn_core_http_resources_server_internal.mdx
index f11d775a1318e..9090f41e31a90 100644
--- a/api_docs/kbn_core_http_resources_server_internal.mdx
+++ b/api_docs/kbn_core_http_resources_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal
title: "@kbn/core-http-resources-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-resources-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-internal']
---
import kbnCoreHttpResourcesServerInternalObj from './kbn_core_http_resources_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx
index 03c4ae08bf3ae..24077c6beac67 100644
--- a/api_docs/kbn_core_http_resources_server_mocks.mdx
+++ b/api_docs/kbn_core_http_resources_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks
title: "@kbn/core-http-resources-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-resources-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-mocks']
---
import kbnCoreHttpResourcesServerMocksObj from './kbn_core_http_resources_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx
index 49dd686ee4c6f..aaab63304eda9 100644
--- a/api_docs/kbn_core_http_router_server_internal.mdx
+++ b/api_docs/kbn_core_http_router_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal
title: "@kbn/core-http-router-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-router-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 45eb06e71812b..e6b6a90a63b2d 100644
--- a/api_docs/kbn_core_http_router_server_mocks.mdx
+++ b/api_docs/kbn_core_http_router_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks
title: "@kbn/core-http-router-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-router-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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.devdocs.json b/api_docs/kbn_core_http_server.devdocs.json
index 2fe742baa1d7b..e098888f5a035 100644
--- a/api_docs/kbn_core_http_server.devdocs.json
+++ b/api_docs/kbn_core_http_server.devdocs.json
@@ -3732,6 +3732,10 @@
"plugin": "assetManager",
"path": "x-pack/plugins/asset_manager/server/routes/assets/containers.ts"
},
+ {
+ "plugin": "assetManager",
+ "path": "x-pack/plugins/asset_manager/server/routes/assets/pods.ts"
+ },
{
"plugin": "banners",
"path": "x-pack/plugins/banners/server/routes/info.ts"
diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx
index e5ec2e5d79562..f9ba0cde6ac8c 100644
--- a/api_docs/kbn_core_http_server.mdx
+++ b/api_docs/kbn_core_http_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server
title: "@kbn/core-http-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-server plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server']
---
import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json';
diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx
index d4dcb8e9db56e..38ce262f7ecf0 100644
--- a/api_docs/kbn_core_http_server_internal.mdx
+++ b/api_docs/kbn_core_http_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal
title: "@kbn/core-http-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 c837a765dfeba..de64ef30f76e1 100644
--- a/api_docs/kbn_core_http_server_mocks.mdx
+++ b/api_docs/kbn_core_http_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks
title: "@kbn/core-http-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 60499c0891961..d63282090c3fc 100644
--- a/api_docs/kbn_core_i18n_browser.mdx
+++ b/api_docs/kbn_core_i18n_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser
title: "@kbn/core-i18n-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-browser plugin
-date: 2023-11-23
+date: 2023-11-24
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 23c3de2840efb..5abdfe5fb2b8a 100644
--- a/api_docs/kbn_core_i18n_browser_mocks.mdx
+++ b/api_docs/kbn_core_i18n_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks
title: "@kbn/core-i18n-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 d8be34b04c83c..5f054030bea51 100644
--- a/api_docs/kbn_core_i18n_server.mdx
+++ b/api_docs/kbn_core_i18n_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server
title: "@kbn/core-i18n-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-server plugin
-date: 2023-11-23
+date: 2023-11-24
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 563fc87cd45e2..86e42e4495670 100644
--- a/api_docs/kbn_core_i18n_server_internal.mdx
+++ b/api_docs/kbn_core_i18n_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal
title: "@kbn/core-i18n-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 3e4655d942a11..82c1dc6ee6d54 100644
--- a/api_docs/kbn_core_i18n_server_mocks.mdx
+++ b/api_docs/kbn_core_i18n_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks
title: "@kbn/core-i18n-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks']
---
import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx
index e7f3934c0e90b..beebd0100bdc5 100644
--- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx
+++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks
title: "@kbn/core-injected-metadata-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 a3f606edd8800..1f15371289c26 100644
--- a/api_docs/kbn_core_integrations_browser_internal.mdx
+++ b/api_docs/kbn_core_integrations_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal
title: "@kbn/core-integrations-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-integrations-browser-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 1cf7570d794f1..c1024ab3acbea 100644
--- a/api_docs/kbn_core_integrations_browser_mocks.mdx
+++ b/api_docs/kbn_core_integrations_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks
title: "@kbn/core-integrations-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-integrations-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-mocks']
---
import kbnCoreIntegrationsBrowserMocksObj from './kbn_core_integrations_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx
index 10d73812c0d13..344a4586fd006 100644
--- a/api_docs/kbn_core_lifecycle_browser.mdx
+++ b/api_docs/kbn_core_lifecycle_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser
title: "@kbn/core-lifecycle-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-browser plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser']
---
import kbnCoreLifecycleBrowserObj from './kbn_core_lifecycle_browser.devdocs.json';
diff --git a/api_docs/kbn_core_lifecycle_browser_mocks.mdx b/api_docs/kbn_core_lifecycle_browser_mocks.mdx
index b6e7c8088c32e..1c41866ed369b 100644
--- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx
+++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks
title: "@kbn/core-lifecycle-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser-mocks']
---
import kbnCoreLifecycleBrowserMocksObj from './kbn_core_lifecycle_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_lifecycle_server.mdx b/api_docs/kbn_core_lifecycle_server.mdx
index be7ddf3086b54..9314a58871c7f 100644
--- a/api_docs/kbn_core_lifecycle_server.mdx
+++ b/api_docs/kbn_core_lifecycle_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server
title: "@kbn/core-lifecycle-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-server plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server']
---
import kbnCoreLifecycleServerObj from './kbn_core_lifecycle_server.devdocs.json';
diff --git a/api_docs/kbn_core_lifecycle_server_mocks.mdx b/api_docs/kbn_core_lifecycle_server_mocks.mdx
index 65aa601293599..da8451192bc3c 100644
--- a/api_docs/kbn_core_lifecycle_server_mocks.mdx
+++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks
title: "@kbn/core-lifecycle-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server-mocks']
---
import kbnCoreLifecycleServerMocksObj from './kbn_core_lifecycle_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_logging_browser_mocks.mdx b/api_docs/kbn_core_logging_browser_mocks.mdx
index 3c95dfc65118a..64c7b76f9638f 100644
--- a/api_docs/kbn_core_logging_browser_mocks.mdx
+++ b/api_docs/kbn_core_logging_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks
title: "@kbn/core-logging-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-browser-mocks']
---
import kbnCoreLoggingBrowserMocksObj from './kbn_core_logging_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx
index d2c46fbda652d..10992632f5d13 100644
--- a/api_docs/kbn_core_logging_common_internal.mdx
+++ b/api_docs/kbn_core_logging_common_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal
title: "@kbn/core-logging-common-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-common-internal plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-common-internal']
---
import kbnCoreLoggingCommonInternalObj from './kbn_core_logging_common_internal.devdocs.json';
diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx
index f8eae97f15413..afbf6d1a7eb98 100644
--- a/api_docs/kbn_core_logging_server.mdx
+++ b/api_docs/kbn_core_logging_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server
title: "@kbn/core-logging-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-server plugin
-date: 2023-11-23
+date: 2023-11-24
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 2a8bab9d8a5b6..882964812c3ca 100644
--- a/api_docs/kbn_core_logging_server_internal.mdx
+++ b/api_docs/kbn_core_logging_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal
title: "@kbn/core-logging-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 99e6806840f0d..4693539ee81a6 100644
--- a/api_docs/kbn_core_logging_server_mocks.mdx
+++ b/api_docs/kbn_core_logging_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks
title: "@kbn/core-logging-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 f4d0dae771947..8c6c02c339ae0 100644
--- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx
+++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal
title: "@kbn/core-metrics-collectors-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-collectors-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 0feda49c8893a..bdce8b4471623 100644
--- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx
+++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks
title: "@kbn/core-metrics-collectors-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 e3e316b5c5e58..876265096fd41 100644
--- a/api_docs/kbn_core_metrics_server.mdx
+++ b/api_docs/kbn_core_metrics_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server
title: "@kbn/core-metrics-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-server plugin
-date: 2023-11-23
+date: 2023-11-24
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 fb4948776cf0c..9b168ec7aeb4f 100644
--- a/api_docs/kbn_core_metrics_server_internal.mdx
+++ b/api_docs/kbn_core_metrics_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal
title: "@kbn/core-metrics-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 d125e13d0decd..2b446f044d3c8 100644
--- a/api_docs/kbn_core_metrics_server_mocks.mdx
+++ b/api_docs/kbn_core_metrics_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks
title: "@kbn/core-metrics-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 42102619fa461..f6fe4f8d1e955 100644
--- a/api_docs/kbn_core_mount_utils_browser.mdx
+++ b/api_docs/kbn_core_mount_utils_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser
title: "@kbn/core-mount-utils-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-mount-utils-browser plugin
-date: 2023-11-23
+date: 2023-11-24
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 37cbfebf7919c..115121609736c 100644
--- a/api_docs/kbn_core_node_server.mdx
+++ b/api_docs/kbn_core_node_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server
title: "@kbn/core-node-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-node-server plugin
-date: 2023-11-23
+date: 2023-11-24
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 85ad43726e5a0..c9186923c69f0 100644
--- a/api_docs/kbn_core_node_server_internal.mdx
+++ b/api_docs/kbn_core_node_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal
title: "@kbn/core-node-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-node-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 caea072db495c..dab881dfa2f62 100644
--- a/api_docs/kbn_core_node_server_mocks.mdx
+++ b/api_docs/kbn_core_node_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks
title: "@kbn/core-node-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-node-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 dca44d504aaa1..da02e17c54b58 100644
--- a/api_docs/kbn_core_notifications_browser.mdx
+++ b/api_docs/kbn_core_notifications_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser
title: "@kbn/core-notifications-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-notifications-browser plugin
-date: 2023-11-23
+date: 2023-11-24
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 53e3c87419615..0f156fa853170 100644
--- a/api_docs/kbn_core_notifications_browser_internal.mdx
+++ b/api_docs/kbn_core_notifications_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal
title: "@kbn/core-notifications-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-notifications-browser-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 ccb119c7979f7..e12c960fa08e0 100644
--- a/api_docs/kbn_core_notifications_browser_mocks.mdx
+++ b/api_docs/kbn_core_notifications_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks
title: "@kbn/core-notifications-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-notifications-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 9b1d8fc6265a3..4df2125f2f0f0 100644
--- a/api_docs/kbn_core_overlays_browser.mdx
+++ b/api_docs/kbn_core_overlays_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser
title: "@kbn/core-overlays-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-overlays-browser plugin
-date: 2023-11-23
+date: 2023-11-24
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 29c55a459d6e2..cbf89a799ed4a 100644
--- a/api_docs/kbn_core_overlays_browser_internal.mdx
+++ b/api_docs/kbn_core_overlays_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal
title: "@kbn/core-overlays-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-overlays-browser-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 4514c68292075..c1e64b7df8125 100644
--- a/api_docs/kbn_core_overlays_browser_mocks.mdx
+++ b/api_docs/kbn_core_overlays_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks
title: "@kbn/core-overlays-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-overlays-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-mocks']
---
import kbnCoreOverlaysBrowserMocksObj from './kbn_core_overlays_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_browser.mdx b/api_docs/kbn_core_plugins_browser.mdx
index bb72c4324dfe8..7f59817e07f8a 100644
--- a/api_docs/kbn_core_plugins_browser.mdx
+++ b/api_docs/kbn_core_plugins_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser
title: "@kbn/core-plugins-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-browser plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser']
---
import kbnCorePluginsBrowserObj from './kbn_core_plugins_browser.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_browser_mocks.mdx b/api_docs/kbn_core_plugins_browser_mocks.mdx
index b6654d20601dc..7c2b7056187a3 100644
--- a/api_docs/kbn_core_plugins_browser_mocks.mdx
+++ b/api_docs/kbn_core_plugins_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks
title: "@kbn/core-plugins-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks']
---
import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_contracts_browser.mdx b/api_docs/kbn_core_plugins_contracts_browser.mdx
index bbbdfa0a2c537..288dc89a7c537 100644
--- a/api_docs/kbn_core_plugins_contracts_browser.mdx
+++ b/api_docs/kbn_core_plugins_contracts_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-browser
title: "@kbn/core-plugins-contracts-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-contracts-browser plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-contracts-browser']
---
import kbnCorePluginsContractsBrowserObj from './kbn_core_plugins_contracts_browser.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_contracts_server.mdx b/api_docs/kbn_core_plugins_contracts_server.mdx
index cf7a0b3730ac0..d74401c2b411c 100644
--- a/api_docs/kbn_core_plugins_contracts_server.mdx
+++ b/api_docs/kbn_core_plugins_contracts_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-server
title: "@kbn/core-plugins-contracts-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-contracts-server plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-contracts-server']
---
import kbnCorePluginsContractsServerObj from './kbn_core_plugins_contracts_server.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx
index c73db1ec268ae..c27bab335b5d9 100644
--- a/api_docs/kbn_core_plugins_server.mdx
+++ b/api_docs/kbn_core_plugins_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server
title: "@kbn/core-plugins-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-server plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server']
---
import kbnCorePluginsServerObj from './kbn_core_plugins_server.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_server_mocks.mdx b/api_docs/kbn_core_plugins_server_mocks.mdx
index 2b40a5717abb0..aba65297f967e 100644
--- a/api_docs/kbn_core_plugins_server_mocks.mdx
+++ b/api_docs/kbn_core_plugins_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks
title: "@kbn/core-plugins-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server-mocks']
---
import kbnCorePluginsServerMocksObj from './kbn_core_plugins_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx
index 142cdc204343b..66a9c566cc4eb 100644
--- a/api_docs/kbn_core_preboot_server.mdx
+++ b/api_docs/kbn_core_preboot_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server
title: "@kbn/core-preboot-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-preboot-server plugin
-date: 2023-11-23
+date: 2023-11-24
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 da2ea95ff7abb..d1f7affb54f2f 100644
--- a/api_docs/kbn_core_preboot_server_mocks.mdx
+++ b/api_docs/kbn_core_preboot_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks
title: "@kbn/core-preboot-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-preboot-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 854d0b125098e..c2647fb92cea3 100644
--- a/api_docs/kbn_core_rendering_browser_mocks.mdx
+++ b/api_docs/kbn_core_rendering_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks
title: "@kbn/core-rendering-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-rendering-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser-mocks']
---
import kbnCoreRenderingBrowserMocksObj from './kbn_core_rendering_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx
index 7dd58c59e1f52..f55c9a327c254 100644
--- a/api_docs/kbn_core_rendering_server_internal.mdx
+++ b/api_docs/kbn_core_rendering_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal
title: "@kbn/core-rendering-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-rendering-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-internal']
---
import kbnCoreRenderingServerInternalObj from './kbn_core_rendering_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_rendering_server_mocks.mdx b/api_docs/kbn_core_rendering_server_mocks.mdx
index 09d8ce044a4e5..de9df68203d82 100644
--- a/api_docs/kbn_core_rendering_server_mocks.mdx
+++ b/api_docs/kbn_core_rendering_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks
title: "@kbn/core-rendering-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-rendering-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-mocks']
---
import kbnCoreRenderingServerMocksObj from './kbn_core_rendering_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_root_server_internal.mdx b/api_docs/kbn_core_root_server_internal.mdx
index da04fca5b98cd..3e977d836624e 100644
--- a/api_docs/kbn_core_root_server_internal.mdx
+++ b/api_docs/kbn_core_root_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal
title: "@kbn/core-root-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-root-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-root-server-internal']
---
import kbnCoreRootServerInternalObj from './kbn_core_root_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx
index eabe0ef5e7c68..0da03fc4066c6 100644
--- a/api_docs/kbn_core_saved_objects_api_browser.mdx
+++ b/api_docs/kbn_core_saved_objects_api_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser
title: "@kbn/core-saved-objects-api-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-api-browser plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser']
---
import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx
index b12c24905be15..04771387376f6 100644
--- a/api_docs/kbn_core_saved_objects_api_server.mdx
+++ b/api_docs/kbn_core_saved_objects_api_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server
title: "@kbn/core-saved-objects-api-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-api-server plugin
-date: 2023-11-23
+date: 2023-11-24
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_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx
index 1e7157d7fe302..24ad50829e8a5 100644
--- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks
title: "@kbn/core-saved-objects-api-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 22e54d7057786..cf2dee9d761d4 100644
--- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal
title: "@kbn/core-saved-objects-base-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-base-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 16b1f77fba074..06b8fa08749fe 100644
--- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks
title: "@kbn/core-saved-objects-base-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 9f57f3421c4bc..7882804182b17 100644
--- a/api_docs/kbn_core_saved_objects_browser.mdx
+++ b/api_docs/kbn_core_saved_objects_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser
title: "@kbn/core-saved-objects-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-browser plugin
-date: 2023-11-23
+date: 2023-11-24
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 7036be4f979f1..7994acf0674e3 100644
--- a/api_docs/kbn_core_saved_objects_browser_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal
title: "@kbn/core-saved-objects-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-browser-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 58551707748e1..57ef9fd8a03ee 100644
--- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks
title: "@kbn/core-saved-objects-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks']
---
import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx
index 398d08d0f197b..f4ba631fd6b4b 100644
--- a/api_docs/kbn_core_saved_objects_common.mdx
+++ b/api_docs/kbn_core_saved_objects_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common
title: "@kbn/core-saved-objects-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-common plugin
-date: 2023-11-23
+date: 2023-11-24
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 cf8819f337ae1..7cae90ca43597 100644
--- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal
title: "@kbn/core-saved-objects-import-export-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 4fdbdf8703ced..cba01ecf1d85a 100644
--- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks
title: "@kbn/core-saved-objects-import-export-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 d864b8896814b..dc88b8998fad2 100644
--- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal
title: "@kbn/core-saved-objects-migration-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 b37af832e8d73..696dde3d69c90 100644
--- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks
title: "@kbn/core-saved-objects-migration-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks']
---
import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx
index 3dcd58083ea0d..d005641888819 100644
--- a/api_docs/kbn_core_saved_objects_server.mdx
+++ b/api_docs/kbn_core_saved_objects_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server
title: "@kbn/core-saved-objects-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-server plugin
-date: 2023-11-23
+date: 2023-11-24
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 af652c5fd0bd7..64fc92d73385e 100644
--- a/api_docs/kbn_core_saved_objects_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal
title: "@kbn/core-saved-objects-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 902b7bda35e13..eeb1601a783cc 100644
--- a/api_docs/kbn_core_saved_objects_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks
title: "@kbn/core-saved-objects-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 77ef19fd02155..ddcd60c11290a 100644
--- a/api_docs/kbn_core_saved_objects_utils_server.mdx
+++ b/api_docs/kbn_core_saved_objects_utils_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server
title: "@kbn/core-saved-objects-utils-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-utils-server plugin
-date: 2023-11-23
+date: 2023-11-24
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 f226b103f37a5..551c2d75c61bc 100644
--- a/api_docs/kbn_core_status_common.mdx
+++ b/api_docs/kbn_core_status_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common
title: "@kbn/core-status-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-common plugin
-date: 2023-11-23
+date: 2023-11-24
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 0aa2646e070ba..64d57429f2d4f 100644
--- a/api_docs/kbn_core_status_common_internal.mdx
+++ b/api_docs/kbn_core_status_common_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal
title: "@kbn/core-status-common-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-common-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 bc8b6ec8ecbb7..95363b451bd10 100644
--- a/api_docs/kbn_core_status_server.mdx
+++ b/api_docs/kbn_core_status_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server
title: "@kbn/core-status-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-server plugin
-date: 2023-11-23
+date: 2023-11-24
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 92ee6c1f2f871..67e87e6f51175 100644
--- a/api_docs/kbn_core_status_server_internal.mdx
+++ b/api_docs/kbn_core_status_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal
title: "@kbn/core-status-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 c6d0e4cb460b2..6e981e13c2f07 100644
--- a/api_docs/kbn_core_status_server_mocks.mdx
+++ b/api_docs/kbn_core_status_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks
title: "@kbn/core-status-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 bead3f190b259..1f212ebf59f61 100644
--- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx
+++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters
title: "@kbn/core-test-helpers-deprecations-getters"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin
-date: 2023-11-23
+date: 2023-11-24
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 12f52e67701c7..562b64670fbfe 100644
--- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx
+++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser
title: "@kbn/core-test-helpers-http-setup-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-http-setup-browser']
---
import kbnCoreTestHelpersHttpSetupBrowserObj from './kbn_core_test_helpers_http_setup_browser.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_kbn_server.mdx b/api_docs/kbn_core_test_helpers_kbn_server.mdx
index 4408cde415056..9b24e79de16a9 100644
--- a/api_docs/kbn_core_test_helpers_kbn_server.mdx
+++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server
title: "@kbn/core-test-helpers-kbn-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-kbn-server plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server']
---
import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_model_versions.mdx b/api_docs/kbn_core_test_helpers_model_versions.mdx
index 532c845d094be..a1e9b5b535998 100644
--- a/api_docs/kbn_core_test_helpers_model_versions.mdx
+++ b/api_docs/kbn_core_test_helpers_model_versions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-model-versions
title: "@kbn/core-test-helpers-model-versions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-model-versions plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-model-versions']
---
import kbnCoreTestHelpersModelVersionsObj from './kbn_core_test_helpers_model_versions.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx
index d07711e570589..66dd03e70a0ee 100644
--- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx
+++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer
title: "@kbn/core-test-helpers-so-type-serializer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer']
---
import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx
index 0ee07b8c4ca8d..6acff3f72727c 100644
--- a/api_docs/kbn_core_test_helpers_test_utils.mdx
+++ b/api_docs/kbn_core_test_helpers_test_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils
title: "@kbn/core-test-helpers-test-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-test-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils']
---
import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json';
diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx
index 74f9dcf36a343..dc9c723cc4b1b 100644
--- a/api_docs/kbn_core_theme_browser.mdx
+++ b/api_docs/kbn_core_theme_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser
title: "@kbn/core-theme-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-theme-browser plugin
-date: 2023-11-23
+date: 2023-11-24
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_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx
index 7607bd59e8d5c..228fb4d007be4 100644
--- a/api_docs/kbn_core_theme_browser_mocks.mdx
+++ b/api_docs/kbn_core_theme_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks
title: "@kbn/core-theme-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-theme-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 115d789015f8c..69eaa9c745740 100644
--- a/api_docs/kbn_core_ui_settings_browser.mdx
+++ b/api_docs/kbn_core_ui_settings_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser
title: "@kbn/core-ui-settings-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-browser plugin
-date: 2023-11-23
+date: 2023-11-24
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 12010c53035fd..2b30a8e2a8a6d 100644
--- a/api_docs/kbn_core_ui_settings_browser_internal.mdx
+++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal
title: "@kbn/core-ui-settings-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-browser-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 d667d9aac9622..37406f11d0bd4 100644
--- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx
+++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks
title: "@kbn/core-ui-settings-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-browser-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 96ea1ab855693..763dba6255781 100644
--- a/api_docs/kbn_core_ui_settings_common.mdx
+++ b/api_docs/kbn_core_ui_settings_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common
title: "@kbn/core-ui-settings-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-common plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-common']
---
import kbnCoreUiSettingsCommonObj from './kbn_core_ui_settings_common.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_server.mdx b/api_docs/kbn_core_ui_settings_server.mdx
index 3eeaa41a24c3a..aaefc8d05bf95 100644
--- a/api_docs/kbn_core_ui_settings_server.mdx
+++ b/api_docs/kbn_core_ui_settings_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server
title: "@kbn/core-ui-settings-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-server plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server']
---
import kbnCoreUiSettingsServerObj from './kbn_core_ui_settings_server.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_server_internal.mdx b/api_docs/kbn_core_ui_settings_server_internal.mdx
index 6f2df15d73e44..d2f065c156a71 100644
--- a/api_docs/kbn_core_ui_settings_server_internal.mdx
+++ b/api_docs/kbn_core_ui_settings_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal
title: "@kbn/core-ui-settings-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-internal']
---
import kbnCoreUiSettingsServerInternalObj from './kbn_core_ui_settings_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_server_mocks.mdx b/api_docs/kbn_core_ui_settings_server_mocks.mdx
index a6212e0d9f38e..e1d30237bf5e4 100644
--- a/api_docs/kbn_core_ui_settings_server_mocks.mdx
+++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks
title: "@kbn/core-ui-settings-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-mocks']
---
import kbnCoreUiSettingsServerMocksObj from './kbn_core_ui_settings_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx
index 19c02ed39e86e..e440f3a75fa02 100644
--- a/api_docs/kbn_core_usage_data_server.mdx
+++ b/api_docs/kbn_core_usage_data_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server
title: "@kbn/core-usage-data-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-usage-data-server plugin
-date: 2023-11-23
+date: 2023-11-24
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 401b916cf1856..73b21e9b3da65 100644
--- a/api_docs/kbn_core_usage_data_server_internal.mdx
+++ b/api_docs/kbn_core_usage_data_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal
title: "@kbn/core-usage-data-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-usage-data-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
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 8f4852dc736bd..6f52d909bd010 100644
--- a/api_docs/kbn_core_usage_data_server_mocks.mdx
+++ b/api_docs/kbn_core_usage_data_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks
title: "@kbn/core-usage-data-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-usage-data-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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_core_user_settings_server.mdx b/api_docs/kbn_core_user_settings_server.mdx
index 3440c0528772f..183adbb8a5e2d 100644
--- a/api_docs/kbn_core_user_settings_server.mdx
+++ b/api_docs/kbn_core_user_settings_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server
title: "@kbn/core-user-settings-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-settings-server plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server']
---
import kbnCoreUserSettingsServerObj from './kbn_core_user_settings_server.devdocs.json';
diff --git a/api_docs/kbn_core_user_settings_server_internal.mdx b/api_docs/kbn_core_user_settings_server_internal.mdx
index 979ff190e57f5..1c2b417e3ceb6 100644
--- a/api_docs/kbn_core_user_settings_server_internal.mdx
+++ b/api_docs/kbn_core_user_settings_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-internal
title: "@kbn/core-user-settings-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-settings-server-internal plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-internal']
---
import kbnCoreUserSettingsServerInternalObj from './kbn_core_user_settings_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_user_settings_server_mocks.mdx b/api_docs/kbn_core_user_settings_server_mocks.mdx
index 6bd9abbab4e47..3a7277abadbaa 100644
--- a/api_docs/kbn_core_user_settings_server_mocks.mdx
+++ b/api_docs/kbn_core_user_settings_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-mocks
title: "@kbn/core-user-settings-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-settings-server-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-mocks']
---
import kbnCoreUserSettingsServerMocksObj from './kbn_core_user_settings_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx
index dfbbfc15c0f0d..6029aacc1f5f3 100644
--- a/api_docs/kbn_crypto.mdx
+++ b/api_docs/kbn_crypto.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto
title: "@kbn/crypto"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/crypto plugin
-date: 2023-11-23
+date: 2023-11-24
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 f38ba2e6ad683..cf0f8993c05b3 100644
--- a/api_docs/kbn_crypto_browser.mdx
+++ b/api_docs/kbn_crypto_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser
title: "@kbn/crypto-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/crypto-browser plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser']
---
import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json';
diff --git a/api_docs/kbn_custom_icons.mdx b/api_docs/kbn_custom_icons.mdx
index 7a2a35e0fe215..2f32ea515c5dc 100644
--- a/api_docs/kbn_custom_icons.mdx
+++ b/api_docs/kbn_custom_icons.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-icons
title: "@kbn/custom-icons"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/custom-icons plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-icons']
---
import kbnCustomIconsObj from './kbn_custom_icons.devdocs.json';
diff --git a/api_docs/kbn_custom_integrations.mdx b/api_docs/kbn_custom_integrations.mdx
index 37d2676771214..2abbb61e0da91 100644
--- a/api_docs/kbn_custom_integrations.mdx
+++ b/api_docs/kbn_custom_integrations.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-integrations
title: "@kbn/custom-integrations"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/custom-integrations plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-integrations']
---
import kbnCustomIntegrationsObj from './kbn_custom_integrations.devdocs.json';
diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx
index 1791e9e0644d7..38f0d8bf1f023 100644
--- a/api_docs/kbn_cypress_config.mdx
+++ b/api_docs/kbn_cypress_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config
title: "@kbn/cypress-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cypress-config plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config']
---
import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json';
diff --git a/api_docs/kbn_data_service.mdx b/api_docs/kbn_data_service.mdx
index 31225d6d58a96..b283ea622779f 100644
--- a/api_docs/kbn_data_service.mdx
+++ b/api_docs/kbn_data_service.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-service
title: "@kbn/data-service"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/data-service plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-service']
---
import kbnDataServiceObj from './kbn_data_service.devdocs.json';
diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx
index 0db93e68a3128..93158cc163007 100644
--- a/api_docs/kbn_datemath.mdx
+++ b/api_docs/kbn_datemath.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath
title: "@kbn/datemath"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/datemath plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath']
---
import kbnDatemathObj from './kbn_datemath.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_analytics.mdx b/api_docs/kbn_deeplinks_analytics.mdx
index 26fd6189bd8c3..cc80f94547f5e 100644
--- a/api_docs/kbn_deeplinks_analytics.mdx
+++ b/api_docs/kbn_deeplinks_analytics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-analytics
title: "@kbn/deeplinks-analytics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-analytics plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-analytics']
---
import kbnDeeplinksAnalyticsObj from './kbn_deeplinks_analytics.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_devtools.mdx b/api_docs/kbn_deeplinks_devtools.mdx
index 4d140f0454e49..63743c43af794 100644
--- a/api_docs/kbn_deeplinks_devtools.mdx
+++ b/api_docs/kbn_deeplinks_devtools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-devtools
title: "@kbn/deeplinks-devtools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-devtools plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-devtools']
---
import kbnDeeplinksDevtoolsObj from './kbn_deeplinks_devtools.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_management.mdx b/api_docs/kbn_deeplinks_management.mdx
index 994ef16ce1ace..7790d8c044b07 100644
--- a/api_docs/kbn_deeplinks_management.mdx
+++ b/api_docs/kbn_deeplinks_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-management
title: "@kbn/deeplinks-management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-management plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-management']
---
import kbnDeeplinksManagementObj from './kbn_deeplinks_management.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_ml.mdx b/api_docs/kbn_deeplinks_ml.mdx
index a74a747100eb2..debae1d455637 100644
--- a/api_docs/kbn_deeplinks_ml.mdx
+++ b/api_docs/kbn_deeplinks_ml.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-ml
title: "@kbn/deeplinks-ml"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-ml plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-ml']
---
import kbnDeeplinksMlObj from './kbn_deeplinks_ml.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_observability.mdx b/api_docs/kbn_deeplinks_observability.mdx
index 6a89fd3e473a9..24b31472cbaa9 100644
--- a/api_docs/kbn_deeplinks_observability.mdx
+++ b/api_docs/kbn_deeplinks_observability.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-observability
title: "@kbn/deeplinks-observability"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-observability plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-observability']
---
import kbnDeeplinksObservabilityObj from './kbn_deeplinks_observability.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_search.mdx b/api_docs/kbn_deeplinks_search.mdx
index 7afe7165e9996..a0b5de9bf2eb1 100644
--- a/api_docs/kbn_deeplinks_search.mdx
+++ b/api_docs/kbn_deeplinks_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-search
title: "@kbn/deeplinks-search"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-search plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-search']
---
import kbnDeeplinksSearchObj from './kbn_deeplinks_search.devdocs.json';
diff --git a/api_docs/kbn_default_nav_analytics.mdx b/api_docs/kbn_default_nav_analytics.mdx
index c3d141a5743b5..34fc96b4303b4 100644
--- a/api_docs/kbn_default_nav_analytics.mdx
+++ b/api_docs/kbn_default_nav_analytics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-analytics
title: "@kbn/default-nav-analytics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/default-nav-analytics plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-analytics']
---
import kbnDefaultNavAnalyticsObj from './kbn_default_nav_analytics.devdocs.json';
diff --git a/api_docs/kbn_default_nav_devtools.mdx b/api_docs/kbn_default_nav_devtools.mdx
index ee5e0992b06d0..64b4ee1cc445d 100644
--- a/api_docs/kbn_default_nav_devtools.mdx
+++ b/api_docs/kbn_default_nav_devtools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-devtools
title: "@kbn/default-nav-devtools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/default-nav-devtools plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-devtools']
---
import kbnDefaultNavDevtoolsObj from './kbn_default_nav_devtools.devdocs.json';
diff --git a/api_docs/kbn_default_nav_management.mdx b/api_docs/kbn_default_nav_management.mdx
index 372b69b214c66..66df4098c4830 100644
--- a/api_docs/kbn_default_nav_management.mdx
+++ b/api_docs/kbn_default_nav_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-management
title: "@kbn/default-nav-management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/default-nav-management plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-management']
---
import kbnDefaultNavManagementObj from './kbn_default_nav_management.devdocs.json';
diff --git a/api_docs/kbn_default_nav_ml.mdx b/api_docs/kbn_default_nav_ml.mdx
index fb812d1619519..4af55b7430f2d 100644
--- a/api_docs/kbn_default_nav_ml.mdx
+++ b/api_docs/kbn_default_nav_ml.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-ml
title: "@kbn/default-nav-ml"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/default-nav-ml plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-ml']
---
import kbnDefaultNavMlObj from './kbn_default_nav_ml.devdocs.json';
diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx
index c5ab7dcde8152..9a2056cbcac04 100644
--- a/api_docs/kbn_dev_cli_errors.mdx
+++ b/api_docs/kbn_dev_cli_errors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors
title: "@kbn/dev-cli-errors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-cli-errors plugin
-date: 2023-11-23
+date: 2023-11-24
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 63c5d8b219cff..5433f05be6449 100644
--- a/api_docs/kbn_dev_cli_runner.mdx
+++ b/api_docs/kbn_dev_cli_runner.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner
title: "@kbn/dev-cli-runner"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-cli-runner plugin
-date: 2023-11-23
+date: 2023-11-24
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 0e0cbbe9d2f05..c8bf5ddafdc50 100644
--- a/api_docs/kbn_dev_proc_runner.mdx
+++ b/api_docs/kbn_dev_proc_runner.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner
title: "@kbn/dev-proc-runner"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-proc-runner plugin
-date: 2023-11-23
+date: 2023-11-24
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 c423eea9fd027..f63f9d813e255 100644
--- a/api_docs/kbn_dev_utils.mdx
+++ b/api_docs/kbn_dev_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils
title: "@kbn/dev-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils']
---
import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json';
diff --git a/api_docs/kbn_discover_utils.mdx b/api_docs/kbn_discover_utils.mdx
index e234030f9bedd..d277f02c5cfe5 100644
--- a/api_docs/kbn_discover_utils.mdx
+++ b/api_docs/kbn_discover_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-discover-utils
title: "@kbn/discover-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/discover-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/discover-utils']
---
import kbnDiscoverUtilsObj from './kbn_discover_utils.devdocs.json';
diff --git a/api_docs/kbn_doc_links.devdocs.json b/api_docs/kbn_doc_links.devdocs.json
index d79272c54bcfa..d621bb6b27a68 100644
--- a/api_docs/kbn_doc_links.devdocs.json
+++ b/api_docs/kbn_doc_links.devdocs.json
@@ -840,7 +840,7 @@
"label": "fleet",
"description": [],
"signature": [
- "{ readonly beatsAgentComparison: string; readonly guide: string; readonly fleetServer: string; readonly fleetServerAddFleetServer: string; readonly esSettings: string; readonly settings: string; readonly logstashSettings: string; readonly kafkaSettings: string; readonly settingsFleetServerHostSettings: string; readonly settingsFleetServerProxySettings: string; readonly troubleshooting: string; readonly elasticAgent: string; readonly datastreams: string; readonly datastreamsILM: string; readonly datastreamsNamingScheme: string; readonly datastreamsManualRollover: string; readonly datastreamsTSDS: string; readonly datastreamsTSDSMetrics: string; readonly installElasticAgent: string; readonly installElasticAgentStandalone: string; readonly packageSignatures: string; readonly upgradeElasticAgent: string; readonly learnMoreBlog: string; readonly apiKeysLearnMore: string; readonly onPremRegistry: string; readonly secureLogstash: string; readonly agentPolicy: string; readonly api: string; readonly uninstallAgent: string; readonly installAndUninstallIntegrationAssets: string; readonly elasticAgentInputConfiguration: string; readonly policySecrets: string; }"
+ "{ readonly beatsAgentComparison: string; readonly guide: string; readonly fleetServer: string; readonly fleetServerAddFleetServer: string; readonly esSettings: string; readonly settings: string; readonly logstashSettings: string; readonly kafkaSettings: string; readonly settingsFleetServerHostSettings: string; readonly settingsFleetServerProxySettings: string; readonly troubleshooting: string; readonly elasticAgent: string; readonly datastreams: string; readonly datastreamsILM: string; readonly datastreamsNamingScheme: string; readonly datastreamsManualRollover: string; readonly datastreamsTSDS: string; readonly datastreamsTSDSMetrics: string; readonly installElasticAgent: string; readonly installElasticAgentStandalone: string; readonly packageSignatures: string; readonly upgradeElasticAgent: string; readonly learnMoreBlog: string; readonly apiKeysLearnMore: string; readonly onPremRegistry: string; readonly secureLogstash: string; readonly agentPolicy: string; readonly api: string; readonly uninstallAgent: string; readonly installAndUninstallIntegrationAssets: string; readonly elasticAgentInputConfiguration: string; readonly policySecrets: string; readonly remoteESOoutput: 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 1a642ae413c5b..a33e5bdbbdf09 100644
--- a/api_docs/kbn_doc_links.mdx
+++ b/api_docs/kbn_doc_links.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links
title: "@kbn/doc-links"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/doc-links plugin
-date: 2023-11-23
+date: 2023-11-24
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 50bcc0d15e7a3..0d7e93cdac85d 100644
--- a/api_docs/kbn_docs_utils.mdx
+++ b/api_docs/kbn_docs_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils
title: "@kbn/docs-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/docs-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils']
---
import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json';
diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx
index 18ec684bdf3dc..0430d53ef507b 100644
--- a/api_docs/kbn_dom_drag_drop.mdx
+++ b/api_docs/kbn_dom_drag_drop.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop
title: "@kbn/dom-drag-drop"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dom-drag-drop plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop']
---
import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json';
diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx
index d8f85f0662622..7211b00b32c64 100644
--- a/api_docs/kbn_ebt_tools.mdx
+++ b/api_docs/kbn_ebt_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools
title: "@kbn/ebt-tools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ebt-tools plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools']
---
import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json';
diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx
index 4f492fd75ae25..64fe72498bb47 100644
--- a/api_docs/kbn_ecs.mdx
+++ b/api_docs/kbn_ecs.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs
title: "@kbn/ecs"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ecs plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs']
---
import kbnEcsObj from './kbn_ecs.devdocs.json';
diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx
index 2822075d921d1..fa4cba94d9422 100644
--- a/api_docs/kbn_ecs_data_quality_dashboard.mdx
+++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard
title: "@kbn/ecs-data-quality-dashboard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ecs-data-quality-dashboard plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard']
---
import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json';
diff --git a/api_docs/kbn_elastic_agent_utils.mdx b/api_docs/kbn_elastic_agent_utils.mdx
index 2088fa81e2483..f0863588736a1 100644
--- a/api_docs/kbn_elastic_agent_utils.mdx
+++ b/api_docs/kbn_elastic_agent_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-agent-utils
title: "@kbn/elastic-agent-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/elastic-agent-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-agent-utils']
---
import kbnElasticAgentUtilsObj from './kbn_elastic_agent_utils.devdocs.json';
diff --git a/api_docs/kbn_elastic_assistant.mdx b/api_docs/kbn_elastic_assistant.mdx
index fa5ec7be6d721..02e71745277fe 100644
--- a/api_docs/kbn_elastic_assistant.mdx
+++ b/api_docs/kbn_elastic_assistant.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant
title: "@kbn/elastic-assistant"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/elastic-assistant plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant']
---
import kbnElasticAssistantObj from './kbn_elastic_assistant.devdocs.json';
diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx
index c2d53be5576ae..5254b76024a74 100644
--- a/api_docs/kbn_es.mdx
+++ b/api_docs/kbn_es.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es
title: "@kbn/es"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es']
---
import kbnEsObj from './kbn_es.devdocs.json';
diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx
index 30f099b62695b..35a7d28a5851c 100644
--- a/api_docs/kbn_es_archiver.mdx
+++ b/api_docs/kbn_es_archiver.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver
title: "@kbn/es-archiver"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-archiver plugin
-date: 2023-11-23
+date: 2023-11-24
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 cca4fa2deb5d0..53e059426ad02 100644
--- a/api_docs/kbn_es_errors.mdx
+++ b/api_docs/kbn_es_errors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors
title: "@kbn/es-errors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-errors plugin
-date: 2023-11-23
+date: 2023-11-24
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 3462058995253..2093c83c2ed6e 100644
--- a/api_docs/kbn_es_query.mdx
+++ b/api_docs/kbn_es_query.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query
title: "@kbn/es-query"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-query plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query']
---
import kbnEsQueryObj from './kbn_es_query.devdocs.json';
diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx
index 25680fa60badc..f24f5cba1d84a 100644
--- a/api_docs/kbn_es_types.mdx
+++ b/api_docs/kbn_es_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types
title: "@kbn/es-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-types plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types']
---
import kbnEsTypesObj from './kbn_es_types.devdocs.json';
diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx
index b66243c457613..2ea945c5f7cdd 100644
--- a/api_docs/kbn_eslint_plugin_imports.mdx
+++ b/api_docs/kbn_eslint_plugin_imports.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports
title: "@kbn/eslint-plugin-imports"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/eslint-plugin-imports plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports']
---
import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json';
diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx
index 7940362f59986..01068bae0871c 100644
--- a/api_docs/kbn_event_annotation_common.mdx
+++ b/api_docs/kbn_event_annotation_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-common
title: "@kbn/event-annotation-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/event-annotation-common plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-common']
---
import kbnEventAnnotationCommonObj from './kbn_event_annotation_common.devdocs.json';
diff --git a/api_docs/kbn_event_annotation_components.mdx b/api_docs/kbn_event_annotation_components.mdx
index 36de9bf63b0d2..50877f3afc971 100644
--- a/api_docs/kbn_event_annotation_components.mdx
+++ b/api_docs/kbn_event_annotation_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-components
title: "@kbn/event-annotation-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/event-annotation-components plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-components']
---
import kbnEventAnnotationComponentsObj from './kbn_event_annotation_components.devdocs.json';
diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx
index 232cbbbd1be2c..0a35fafe258ee 100644
--- a/api_docs/kbn_expandable_flyout.mdx
+++ b/api_docs/kbn_expandable_flyout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout
title: "@kbn/expandable-flyout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/expandable-flyout plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout']
---
import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json';
diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx
index 0fca847ea9f87..124f5d37620a8 100644
--- a/api_docs/kbn_field_types.mdx
+++ b/api_docs/kbn_field_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types
title: "@kbn/field-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/field-types plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types']
---
import kbnFieldTypesObj from './kbn_field_types.devdocs.json';
diff --git a/api_docs/kbn_field_utils.mdx b/api_docs/kbn_field_utils.mdx
index bb9d11d873469..0daf71ca217de 100644
--- a/api_docs/kbn_field_utils.mdx
+++ b/api_docs/kbn_field_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-utils
title: "@kbn/field-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/field-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-utils']
---
import kbnFieldUtilsObj from './kbn_field_utils.devdocs.json';
diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx
index 060dcb05bea6c..09a16064e8364 100644
--- a/api_docs/kbn_find_used_node_modules.mdx
+++ b/api_docs/kbn_find_used_node_modules.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules
title: "@kbn/find-used-node-modules"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/find-used-node-modules plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules']
---
import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json';
diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx
index 6a717ff2f46d0..a3dcae87cd4b2 100644
--- a/api_docs/kbn_ftr_common_functional_services.mdx
+++ b/api_docs/kbn_ftr_common_functional_services.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services
title: "@kbn/ftr-common-functional-services"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ftr-common-functional-services plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services']
---
import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json';
diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx
index 497e636e50fc2..ecd374055d3a5 100644
--- a/api_docs/kbn_generate.mdx
+++ b/api_docs/kbn_generate.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate
title: "@kbn/generate"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/generate plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate']
---
import kbnGenerateObj from './kbn_generate.devdocs.json';
diff --git a/api_docs/kbn_generate_console_definitions.mdx b/api_docs/kbn_generate_console_definitions.mdx
index 87bc3307b736d..4f2ed4047f2ef 100644
--- a/api_docs/kbn_generate_console_definitions.mdx
+++ b/api_docs/kbn_generate_console_definitions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-console-definitions
title: "@kbn/generate-console-definitions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/generate-console-definitions plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-console-definitions']
---
import kbnGenerateConsoleDefinitionsObj from './kbn_generate_console_definitions.devdocs.json';
diff --git a/api_docs/kbn_generate_csv.mdx b/api_docs/kbn_generate_csv.mdx
index a46c2bbb53676..939366a056baf 100644
--- a/api_docs/kbn_generate_csv.mdx
+++ b/api_docs/kbn_generate_csv.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv
title: "@kbn/generate-csv"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/generate-csv plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv']
---
import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json';
diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx
index 3a5e1a6241c27..9243296a414d7 100644
--- a/api_docs/kbn_guided_onboarding.mdx
+++ b/api_docs/kbn_guided_onboarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding
title: "@kbn/guided-onboarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/guided-onboarding plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding']
---
import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json';
diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx
index 6450bb3c526ea..72e95185aebbb 100644
--- a/api_docs/kbn_handlebars.mdx
+++ b/api_docs/kbn_handlebars.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars
title: "@kbn/handlebars"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/handlebars plugin
-date: 2023-11-23
+date: 2023-11-24
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 9b058b87027b2..98da1616c7a0e 100644
--- a/api_docs/kbn_hapi_mocks.mdx
+++ b/api_docs/kbn_hapi_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks
title: "@kbn/hapi-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/hapi-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks']
---
import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json';
diff --git a/api_docs/kbn_health_gateway_server.mdx b/api_docs/kbn_health_gateway_server.mdx
index 420a3116773d9..9ea1603037ff4 100644
--- a/api_docs/kbn_health_gateway_server.mdx
+++ b/api_docs/kbn_health_gateway_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server
title: "@kbn/health-gateway-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/health-gateway-server plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/health-gateway-server']
---
import kbnHealthGatewayServerObj from './kbn_health_gateway_server.devdocs.json';
diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx
index de0ea625c1def..6f5862b663d77 100644
--- a/api_docs/kbn_home_sample_data_card.mdx
+++ b/api_docs/kbn_home_sample_data_card.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card
title: "@kbn/home-sample-data-card"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/home-sample-data-card plugin
-date: 2023-11-23
+date: 2023-11-24
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 518ec3ae13ddb..e600fb506a503 100644
--- a/api_docs/kbn_home_sample_data_tab.mdx
+++ b/api_docs/kbn_home_sample_data_tab.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab
title: "@kbn/home-sample-data-tab"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/home-sample-data-tab plugin
-date: 2023-11-23
+date: 2023-11-24
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 e41b3686a45d1..cb53f7173d837 100644
--- a/api_docs/kbn_i18n.mdx
+++ b/api_docs/kbn_i18n.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n
title: "@kbn/i18n"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/i18n plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n']
---
import kbnI18nObj from './kbn_i18n.devdocs.json';
diff --git a/api_docs/kbn_i18n_react.mdx b/api_docs/kbn_i18n_react.mdx
index aff91ad5f1b94..de1e1015171fe 100644
--- a/api_docs/kbn_i18n_react.mdx
+++ b/api_docs/kbn_i18n_react.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react
title: "@kbn/i18n-react"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/i18n-react plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n-react']
---
import kbnI18nReactObj from './kbn_i18n_react.devdocs.json';
diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx
index ae4bbf83a1caa..900c66fb65046 100644
--- a/api_docs/kbn_import_resolver.mdx
+++ b/api_docs/kbn_import_resolver.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver
title: "@kbn/import-resolver"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/import-resolver plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver']
---
import kbnImportResolverObj from './kbn_import_resolver.devdocs.json';
diff --git a/api_docs/kbn_infra_forge.mdx b/api_docs/kbn_infra_forge.mdx
index a89b57bc96243..2c8408e955cbf 100644
--- a/api_docs/kbn_infra_forge.mdx
+++ b/api_docs/kbn_infra_forge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-infra-forge
title: "@kbn/infra-forge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/infra-forge plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/infra-forge']
---
import kbnInfraForgeObj from './kbn_infra_forge.devdocs.json';
diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx
index 861f21285548c..8aea0c5781dd6 100644
--- a/api_docs/kbn_interpreter.mdx
+++ b/api_docs/kbn_interpreter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter
title: "@kbn/interpreter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/interpreter plugin
-date: 2023-11-23
+date: 2023-11-24
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 3153accdbaf74..c0d5ab87b0052 100644
--- a/api_docs/kbn_io_ts_utils.mdx
+++ b/api_docs/kbn_io_ts_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils
title: "@kbn/io-ts-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/io-ts-utils plugin
-date: 2023-11-23
+date: 2023-11-24
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 15dfe72d4da1d..96e4463d260c7 100644
--- a/api_docs/kbn_jest_serializers.mdx
+++ b/api_docs/kbn_jest_serializers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers
title: "@kbn/jest-serializers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/jest-serializers plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/jest-serializers']
---
import kbnJestSerializersObj from './kbn_jest_serializers.devdocs.json';
diff --git a/api_docs/kbn_journeys.mdx b/api_docs/kbn_journeys.mdx
index 8f960771a83c7..9062c7ee23779 100644
--- a/api_docs/kbn_journeys.mdx
+++ b/api_docs/kbn_journeys.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys
title: "@kbn/journeys"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/journeys plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys']
---
import kbnJourneysObj from './kbn_journeys.devdocs.json';
diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx
index e3bfd2f9d5a7a..685052677dda9 100644
--- a/api_docs/kbn_json_ast.mdx
+++ b/api_docs/kbn_json_ast.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast
title: "@kbn/json-ast"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/json-ast plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast']
---
import kbnJsonAstObj from './kbn_json_ast.devdocs.json';
diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx
index 22348fb7f6cc9..ab9038c2ec4b5 100644
--- a/api_docs/kbn_kibana_manifest_schema.mdx
+++ b/api_docs/kbn_kibana_manifest_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema
title: "@kbn/kibana-manifest-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/kibana-manifest-schema plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema']
---
import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json';
diff --git a/api_docs/kbn_language_documentation_popover.mdx b/api_docs/kbn_language_documentation_popover.mdx
index 1fa1ea760583e..476a1716034bd 100644
--- a/api_docs/kbn_language_documentation_popover.mdx
+++ b/api_docs/kbn_language_documentation_popover.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover
title: "@kbn/language-documentation-popover"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/language-documentation-popover plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover']
---
import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json';
diff --git a/api_docs/kbn_lens_embeddable_utils.mdx b/api_docs/kbn_lens_embeddable_utils.mdx
index 9f717c8646b53..31b40fc766542 100644
--- a/api_docs/kbn_lens_embeddable_utils.mdx
+++ b/api_docs/kbn_lens_embeddable_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-embeddable-utils
title: "@kbn/lens-embeddable-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/lens-embeddable-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-embeddable-utils']
---
import kbnLensEmbeddableUtilsObj from './kbn_lens_embeddable_utils.devdocs.json';
diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx
index acf93d3b94936..b73d3d7d51044 100644
--- a/api_docs/kbn_logging.mdx
+++ b/api_docs/kbn_logging.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging
title: "@kbn/logging"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/logging plugin
-date: 2023-11-23
+date: 2023-11-24
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 6409051188543..33ae3ba478530 100644
--- a/api_docs/kbn_logging_mocks.mdx
+++ b/api_docs/kbn_logging_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks
title: "@kbn/logging-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/logging-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 589f336ae15ef..1095dfa1b8e9b 100644
--- a/api_docs/kbn_managed_vscode_config.mdx
+++ b/api_docs/kbn_managed_vscode_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config
title: "@kbn/managed-vscode-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/managed-vscode-config plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config']
---
import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json';
diff --git a/api_docs/kbn_management_cards_navigation.mdx b/api_docs/kbn_management_cards_navigation.mdx
index 4ac918005a627..4b2acb5d078fe 100644
--- a/api_docs/kbn_management_cards_navigation.mdx
+++ b/api_docs/kbn_management_cards_navigation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-cards-navigation
title: "@kbn/management-cards-navigation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-cards-navigation plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-cards-navigation']
---
import kbnManagementCardsNavigationObj from './kbn_management_cards_navigation.devdocs.json';
diff --git a/api_docs/kbn_management_settings_application.mdx b/api_docs/kbn_management_settings_application.mdx
index ad7a5208d0ca0..aeed741020058 100644
--- a/api_docs/kbn_management_settings_application.mdx
+++ b/api_docs/kbn_management_settings_application.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-application
title: "@kbn/management-settings-application"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-application plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-application']
---
import kbnManagementSettingsApplicationObj from './kbn_management_settings_application.devdocs.json';
diff --git a/api_docs/kbn_management_settings_components_field_category.mdx b/api_docs/kbn_management_settings_components_field_category.mdx
index 14f9b3ea626cc..b166a2b7d4d69 100644
--- a/api_docs/kbn_management_settings_components_field_category.mdx
+++ b/api_docs/kbn_management_settings_components_field_category.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-category
title: "@kbn/management-settings-components-field-category"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-components-field-category plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-category']
---
import kbnManagementSettingsComponentsFieldCategoryObj from './kbn_management_settings_components_field_category.devdocs.json';
diff --git a/api_docs/kbn_management_settings_components_field_input.mdx b/api_docs/kbn_management_settings_components_field_input.mdx
index 32f59b16e300a..54f9c786b27b6 100644
--- a/api_docs/kbn_management_settings_components_field_input.mdx
+++ b/api_docs/kbn_management_settings_components_field_input.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-input
title: "@kbn/management-settings-components-field-input"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-components-field-input plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-input']
---
import kbnManagementSettingsComponentsFieldInputObj from './kbn_management_settings_components_field_input.devdocs.json';
diff --git a/api_docs/kbn_management_settings_components_field_row.mdx b/api_docs/kbn_management_settings_components_field_row.mdx
index e649033e8fcda..a2695b577438d 100644
--- a/api_docs/kbn_management_settings_components_field_row.mdx
+++ b/api_docs/kbn_management_settings_components_field_row.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-row
title: "@kbn/management-settings-components-field-row"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-components-field-row plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-row']
---
import kbnManagementSettingsComponentsFieldRowObj from './kbn_management_settings_components_field_row.devdocs.json';
diff --git a/api_docs/kbn_management_settings_components_form.mdx b/api_docs/kbn_management_settings_components_form.mdx
index d304c2fd2c19b..664e82caaab2f 100644
--- a/api_docs/kbn_management_settings_components_form.mdx
+++ b/api_docs/kbn_management_settings_components_form.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-form
title: "@kbn/management-settings-components-form"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-components-form plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-form']
---
import kbnManagementSettingsComponentsFormObj from './kbn_management_settings_components_form.devdocs.json';
diff --git a/api_docs/kbn_management_settings_field_definition.mdx b/api_docs/kbn_management_settings_field_definition.mdx
index ea48105f0534d..86f5d7fc682f7 100644
--- a/api_docs/kbn_management_settings_field_definition.mdx
+++ b/api_docs/kbn_management_settings_field_definition.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-field-definition
title: "@kbn/management-settings-field-definition"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-field-definition plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-field-definition']
---
import kbnManagementSettingsFieldDefinitionObj from './kbn_management_settings_field_definition.devdocs.json';
diff --git a/api_docs/kbn_management_settings_ids.mdx b/api_docs/kbn_management_settings_ids.mdx
index 6603a100bd02d..592e63fa34754 100644
--- a/api_docs/kbn_management_settings_ids.mdx
+++ b/api_docs/kbn_management_settings_ids.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-ids
title: "@kbn/management-settings-ids"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-ids plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-ids']
---
import kbnManagementSettingsIdsObj from './kbn_management_settings_ids.devdocs.json';
diff --git a/api_docs/kbn_management_settings_section_registry.mdx b/api_docs/kbn_management_settings_section_registry.mdx
index e3c4c0771855f..002cb83df144d 100644
--- a/api_docs/kbn_management_settings_section_registry.mdx
+++ b/api_docs/kbn_management_settings_section_registry.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-section-registry
title: "@kbn/management-settings-section-registry"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-section-registry plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-section-registry']
---
import kbnManagementSettingsSectionRegistryObj from './kbn_management_settings_section_registry.devdocs.json';
diff --git a/api_docs/kbn_management_settings_types.mdx b/api_docs/kbn_management_settings_types.mdx
index 7c7d40c44dc9c..1f5e9d950c40e 100644
--- a/api_docs/kbn_management_settings_types.mdx
+++ b/api_docs/kbn_management_settings_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-types
title: "@kbn/management-settings-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-types plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-types']
---
import kbnManagementSettingsTypesObj from './kbn_management_settings_types.devdocs.json';
diff --git a/api_docs/kbn_management_settings_utilities.mdx b/api_docs/kbn_management_settings_utilities.mdx
index f08b93410ce5a..6e38db36710c0 100644
--- a/api_docs/kbn_management_settings_utilities.mdx
+++ b/api_docs/kbn_management_settings_utilities.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-utilities
title: "@kbn/management-settings-utilities"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-utilities plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-utilities']
---
import kbnManagementSettingsUtilitiesObj from './kbn_management_settings_utilities.devdocs.json';
diff --git a/api_docs/kbn_management_storybook_config.mdx b/api_docs/kbn_management_storybook_config.mdx
index 6f5c661d097aa..590d855d4f3f2 100644
--- a/api_docs/kbn_management_storybook_config.mdx
+++ b/api_docs/kbn_management_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-storybook-config
title: "@kbn/management-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-storybook-config plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-storybook-config']
---
import kbnManagementStorybookConfigObj from './kbn_management_storybook_config.devdocs.json';
diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx
index 834fe6ade6b39..9eeb97f932abc 100644
--- a/api_docs/kbn_mapbox_gl.mdx
+++ b/api_docs/kbn_mapbox_gl.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl
title: "@kbn/mapbox-gl"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/mapbox-gl plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl']
---
import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json';
diff --git a/api_docs/kbn_maps_vector_tile_utils.mdx b/api_docs/kbn_maps_vector_tile_utils.mdx
index 25ffbb7685dc8..0bdbbf9ff0147 100644
--- a/api_docs/kbn_maps_vector_tile_utils.mdx
+++ b/api_docs/kbn_maps_vector_tile_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-maps-vector-tile-utils
title: "@kbn/maps-vector-tile-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/maps-vector-tile-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/maps-vector-tile-utils']
---
import kbnMapsVectorTileUtilsObj from './kbn_maps_vector_tile_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx
index 7c7b6bba1ebfc..b0ecebdc93ac0 100644
--- a/api_docs/kbn_ml_agg_utils.mdx
+++ b/api_docs/kbn_ml_agg_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils
title: "@kbn/ml-agg-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-agg-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils']
---
import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_anomaly_utils.mdx b/api_docs/kbn_ml_anomaly_utils.mdx
index 82bb5cb6bbcf8..a1050280ece79 100644
--- a/api_docs/kbn_ml_anomaly_utils.mdx
+++ b/api_docs/kbn_ml_anomaly_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-anomaly-utils
title: "@kbn/ml-anomaly-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-anomaly-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-anomaly-utils']
---
import kbnMlAnomalyUtilsObj from './kbn_ml_anomaly_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_category_validator.mdx b/api_docs/kbn_ml_category_validator.mdx
index 8c44823fccd72..cf060ee490247 100644
--- a/api_docs/kbn_ml_category_validator.mdx
+++ b/api_docs/kbn_ml_category_validator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-category-validator
title: "@kbn/ml-category-validator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-category-validator plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-category-validator']
---
import kbnMlCategoryValidatorObj from './kbn_ml_category_validator.devdocs.json';
diff --git a/api_docs/kbn_ml_chi2test.mdx b/api_docs/kbn_ml_chi2test.mdx
index efd6c5b7bd610..99e51e432546c 100644
--- a/api_docs/kbn_ml_chi2test.mdx
+++ b/api_docs/kbn_ml_chi2test.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-chi2test
title: "@kbn/ml-chi2test"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-chi2test plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-chi2test']
---
import kbnMlChi2testObj from './kbn_ml_chi2test.devdocs.json';
diff --git a/api_docs/kbn_ml_data_frame_analytics_utils.mdx b/api_docs/kbn_ml_data_frame_analytics_utils.mdx
index f79e84df76524..2cafe1344e54f 100644
--- a/api_docs/kbn_ml_data_frame_analytics_utils.mdx
+++ b/api_docs/kbn_ml_data_frame_analytics_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-frame-analytics-utils
title: "@kbn/ml-data-frame-analytics-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-data-frame-analytics-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-frame-analytics-utils']
---
import kbnMlDataFrameAnalyticsUtilsObj from './kbn_ml_data_frame_analytics_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_data_grid.devdocs.json b/api_docs/kbn_ml_data_grid.devdocs.json
index 0e63c9f639c1c..14fcad6d9b0ad 100644
--- a/api_docs/kbn_ml_data_grid.devdocs.json
+++ b/api_docs/kbn_ml_data_grid.devdocs.json
@@ -347,10 +347,10 @@
},
{
"parentPluginId": "@kbn/ml-data-grid",
- "id": "def-common.getFieldsFromKibanaIndexPattern",
+ "id": "def-common.getFieldsFromKibanaDataView",
"type": "Function",
"tags": [],
- "label": "getFieldsFromKibanaIndexPattern",
+ "label": "getFieldsFromKibanaDataView",
"description": [
"\nRetrieves fields from a Kibana data view."
],
@@ -371,7 +371,7 @@
"children": [
{
"parentPluginId": "@kbn/ml-data-grid",
- "id": "def-common.getFieldsFromKibanaIndexPattern.$1",
+ "id": "def-common.getFieldsFromKibanaDataView.$1",
"type": "Object",
"tags": [],
"label": "dataView",
@@ -2489,12 +2489,12 @@
},
{
"parentPluginId": "@kbn/ml-data-grid",
- "id": "def-common.UseIndexDataReturnType.indexPatternFields",
+ "id": "def-common.UseIndexDataReturnType.dataViewFields",
"type": "Array",
"tags": [],
- "label": "indexPatternFields",
+ "label": "dataViewFields",
"description": [
- "\nOptional index pattern fields."
+ "\nOptional data view fields."
],
"signature": [
"string[] | undefined"
diff --git a/api_docs/kbn_ml_data_grid.mdx b/api_docs/kbn_ml_data_grid.mdx
index 817d93146419c..0a5bb892030da 100644
--- a/api_docs/kbn_ml_data_grid.mdx
+++ b/api_docs/kbn_ml_data_grid.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-grid
title: "@kbn/ml-data-grid"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-data-grid plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-grid']
---
import kbnMlDataGridObj from './kbn_ml_data_grid.devdocs.json';
diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx
index 7a1d017aef78b..45938d3f27a24 100644
--- a/api_docs/kbn_ml_date_picker.mdx
+++ b/api_docs/kbn_ml_date_picker.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker
title: "@kbn/ml-date-picker"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-date-picker plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker']
---
import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json';
diff --git a/api_docs/kbn_ml_date_utils.mdx b/api_docs/kbn_ml_date_utils.mdx
index 9501cb86e2bf9..f0bd50ed0b3a1 100644
--- a/api_docs/kbn_ml_date_utils.mdx
+++ b/api_docs/kbn_ml_date_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-utils
title: "@kbn/ml-date-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-date-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-utils']
---
import kbnMlDateUtilsObj from './kbn_ml_date_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_error_utils.mdx b/api_docs/kbn_ml_error_utils.mdx
index d5cfed0d2b895..57ce3a481bfae 100644
--- a/api_docs/kbn_ml_error_utils.mdx
+++ b/api_docs/kbn_ml_error_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-error-utils
title: "@kbn/ml-error-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-error-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-error-utils']
---
import kbnMlErrorUtilsObj from './kbn_ml_error_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_in_memory_table.mdx b/api_docs/kbn_ml_in_memory_table.mdx
index 8e1d24490ba34..724d18cb0c938 100644
--- a/api_docs/kbn_ml_in_memory_table.mdx
+++ b/api_docs/kbn_ml_in_memory_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-in-memory-table
title: "@kbn/ml-in-memory-table"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-in-memory-table plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-in-memory-table']
---
import kbnMlInMemoryTableObj from './kbn_ml_in_memory_table.devdocs.json';
diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx
index e660622f02905..1c31ca9ff06ae 100644
--- a/api_docs/kbn_ml_is_defined.mdx
+++ b/api_docs/kbn_ml_is_defined.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined
title: "@kbn/ml-is-defined"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-is-defined plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined']
---
import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json';
diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx
index 1c4a19785ac27..4121d4683b4d5 100644
--- a/api_docs/kbn_ml_is_populated_object.mdx
+++ b/api_docs/kbn_ml_is_populated_object.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object
title: "@kbn/ml-is-populated-object"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-is-populated-object plugin
-date: 2023-11-23
+date: 2023-11-24
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_kibana_theme.mdx b/api_docs/kbn_ml_kibana_theme.mdx
index c074fa1e2b7be..ae7904494837a 100644
--- a/api_docs/kbn_ml_kibana_theme.mdx
+++ b/api_docs/kbn_ml_kibana_theme.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-kibana-theme
title: "@kbn/ml-kibana-theme"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-kibana-theme plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-kibana-theme']
---
import kbnMlKibanaThemeObj from './kbn_ml_kibana_theme.devdocs.json';
diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx
index ddc6e8cc259fa..dc64a33986b3d 100644
--- a/api_docs/kbn_ml_local_storage.mdx
+++ b/api_docs/kbn_ml_local_storage.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage
title: "@kbn/ml-local-storage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-local-storage plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage']
---
import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json';
diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx
index fb89acb850d1b..fd2c7992a3fd9 100644
--- a/api_docs/kbn_ml_nested_property.mdx
+++ b/api_docs/kbn_ml_nested_property.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property
title: "@kbn/ml-nested-property"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-nested-property plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property']
---
import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json';
diff --git a/api_docs/kbn_ml_number_utils.mdx b/api_docs/kbn_ml_number_utils.mdx
index 115f4c4e3e62d..627ce557e163b 100644
--- a/api_docs/kbn_ml_number_utils.mdx
+++ b/api_docs/kbn_ml_number_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-number-utils
title: "@kbn/ml-number-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-number-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-number-utils']
---
import kbnMlNumberUtilsObj from './kbn_ml_number_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx
index 0829d0cba8a9c..eee54a7554c5c 100644
--- a/api_docs/kbn_ml_query_utils.mdx
+++ b/api_docs/kbn_ml_query_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils
title: "@kbn/ml-query-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-query-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils']
---
import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_random_sampler_utils.mdx b/api_docs/kbn_ml_random_sampler_utils.mdx
index f20f88a8ebea2..73413734892af 100644
--- a/api_docs/kbn_ml_random_sampler_utils.mdx
+++ b/api_docs/kbn_ml_random_sampler_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-random-sampler-utils
title: "@kbn/ml-random-sampler-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-random-sampler-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-random-sampler-utils']
---
import kbnMlRandomSamplerUtilsObj from './kbn_ml_random_sampler_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx
index dc8fd475acc61..fbc6c796946c3 100644
--- a/api_docs/kbn_ml_route_utils.mdx
+++ b/api_docs/kbn_ml_route_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils
title: "@kbn/ml-route-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-route-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils']
---
import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_runtime_field_utils.mdx b/api_docs/kbn_ml_runtime_field_utils.mdx
index d276f1fed9fab..cf175216f3a0b 100644
--- a/api_docs/kbn_ml_runtime_field_utils.mdx
+++ b/api_docs/kbn_ml_runtime_field_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-runtime-field-utils
title: "@kbn/ml-runtime-field-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-runtime-field-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-runtime-field-utils']
---
import kbnMlRuntimeFieldUtilsObj from './kbn_ml_runtime_field_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx
index a75e3f20796a0..50959a2dc65eb 100644
--- a/api_docs/kbn_ml_string_hash.mdx
+++ b/api_docs/kbn_ml_string_hash.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash
title: "@kbn/ml-string-hash"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-string-hash plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash']
---
import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json';
diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx
index 4fdb9111d1704..7d05d94c1ab7e 100644
--- a/api_docs/kbn_ml_trained_models_utils.mdx
+++ b/api_docs/kbn_ml_trained_models_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils
title: "@kbn/ml-trained-models-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-trained-models-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils']
---
import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_ui_actions.mdx b/api_docs/kbn_ml_ui_actions.mdx
index 3e5cef673bd69..76fb2fc039242 100644
--- a/api_docs/kbn_ml_ui_actions.mdx
+++ b/api_docs/kbn_ml_ui_actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-ui-actions
title: "@kbn/ml-ui-actions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-ui-actions plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-ui-actions']
---
import kbnMlUiActionsObj from './kbn_ml_ui_actions.devdocs.json';
diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx
index 3f00f61434532..9dcccd73ac093 100644
--- a/api_docs/kbn_ml_url_state.mdx
+++ b/api_docs/kbn_ml_url_state.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state
title: "@kbn/ml-url-state"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-url-state plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state']
---
import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json';
diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx
index 80d71ba88bc11..b69f0ff30cd1b 100644
--- a/api_docs/kbn_monaco.mdx
+++ b/api_docs/kbn_monaco.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco
title: "@kbn/monaco"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/monaco plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco']
---
import kbnMonacoObj from './kbn_monaco.devdocs.json';
diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx
index 197e0f98a3fd2..8845f2d1001fd 100644
--- a/api_docs/kbn_object_versioning.mdx
+++ b/api_docs/kbn_object_versioning.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning
title: "@kbn/object-versioning"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/object-versioning plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning']
---
import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json';
diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx
index c2ed97e8c67eb..c6afe9e90af16 100644
--- a/api_docs/kbn_observability_alert_details.mdx
+++ b/api_docs/kbn_observability_alert_details.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details
title: "@kbn/observability-alert-details"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-alert-details plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details']
---
import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json';
diff --git a/api_docs/kbn_observability_alerting_test_data.devdocs.json b/api_docs/kbn_observability_alerting_test_data.devdocs.json
index 96da803aa4b60..d75f51f28846a 100644
--- a/api_docs/kbn_observability_alerting_test_data.devdocs.json
+++ b/api_docs/kbn_observability_alerting_test_data.devdocs.json
@@ -434,7 +434,7 @@
"label": "criteria",
"description": [],
"signature": [
- "{ aggType: string; comparator: ",
+ "{ comparator: ",
"Comparator",
"; threshold: number[]; timeSize: number; timeUnit: string; metrics: { name: string; filter: string; aggType: ",
"Aggregators",
@@ -597,7 +597,7 @@
"label": "criteria",
"description": [],
"signature": [
- "{ aggType: string; comparator: ",
+ "{ comparator: ",
"Comparator",
"; threshold: number[]; timeSize: number; timeUnit: string; metrics: { name: string; filter: string; aggType: ",
"Aggregators",
@@ -774,7 +774,7 @@
"label": "criteria",
"description": [],
"signature": [
- "{ aggType: string; comparator: ",
+ "{ comparator: ",
"Comparator",
"; threshold: number[]; timeSize: number; timeUnit: string; metrics: { name: string; filter: string; aggType: ",
"Aggregators",
@@ -937,7 +937,7 @@
"label": "criteria",
"description": [],
"signature": [
- "{ aggType: string; comparator: ",
+ "{ comparator: ",
"Comparator",
"; threshold: number[]; timeSize: number; timeUnit: string; metrics: { name: string; field: string; aggType: ",
"Aggregators",
@@ -1100,7 +1100,7 @@
"label": "criteria",
"description": [],
"signature": [
- "{ aggType: string; comparator: ",
+ "{ comparator: ",
"Comparator",
"; threshold: number[]; timeSize: number; timeUnit: string; metrics: { name: string; field: string; aggType: ",
"Aggregators",
@@ -1277,7 +1277,7 @@
"label": "criteria",
"description": [],
"signature": [
- "{ aggType: string; comparator: ",
+ "{ comparator: ",
"Comparator",
"; threshold: number[]; timeSize: number; timeUnit: string; metrics: { name: string; field: string; aggType: ",
"Aggregators",
diff --git a/api_docs/kbn_observability_alerting_test_data.mdx b/api_docs/kbn_observability_alerting_test_data.mdx
index 192eddf78fc9c..5879e0e8cdb51 100644
--- a/api_docs/kbn_observability_alerting_test_data.mdx
+++ b/api_docs/kbn_observability_alerting_test_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alerting-test-data
title: "@kbn/observability-alerting-test-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-alerting-test-data plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alerting-test-data']
---
import kbnObservabilityAlertingTestDataObj from './kbn_observability_alerting_test_data.devdocs.json';
diff --git a/api_docs/kbn_openapi_generator.mdx b/api_docs/kbn_openapi_generator.mdx
index efad03a59e17e..d96ac708492f9 100644
--- a/api_docs/kbn_openapi_generator.mdx
+++ b/api_docs/kbn_openapi_generator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-generator
title: "@kbn/openapi-generator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/openapi-generator plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-generator']
---
import kbnOpenapiGeneratorObj from './kbn_openapi_generator.devdocs.json';
diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx
index c829a15d2ac66..5b743746de1f3 100644
--- a/api_docs/kbn_optimizer.mdx
+++ b/api_docs/kbn_optimizer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer
title: "@kbn/optimizer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/optimizer plugin
-date: 2023-11-23
+date: 2023-11-24
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 b7ad008be5f25..b4b039bc807f9 100644
--- a/api_docs/kbn_optimizer_webpack_helpers.mdx
+++ b/api_docs/kbn_optimizer_webpack_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers
title: "@kbn/optimizer-webpack-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/optimizer-webpack-helpers plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer-webpack-helpers']
---
import kbnOptimizerWebpackHelpersObj from './kbn_optimizer_webpack_helpers.devdocs.json';
diff --git a/api_docs/kbn_osquery_io_ts_types.mdx b/api_docs/kbn_osquery_io_ts_types.mdx
index e4073519ec513..f17b8edb9d693 100644
--- a/api_docs/kbn_osquery_io_ts_types.mdx
+++ b/api_docs/kbn_osquery_io_ts_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types
title: "@kbn/osquery-io-ts-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/osquery-io-ts-types plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types']
---
import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json';
diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx
index 62fe28d2f46c3..c02f29a011bd6 100644
--- a/api_docs/kbn_performance_testing_dataset_extractor.mdx
+++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor
title: "@kbn/performance-testing-dataset-extractor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/performance-testing-dataset-extractor plugin
-date: 2023-11-23
+date: 2023-11-24
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 d3ac8042773e5..8518d37d2e48e 100644
--- a/api_docs/kbn_plugin_generator.mdx
+++ b/api_docs/kbn_plugin_generator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator
title: "@kbn/plugin-generator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/plugin-generator plugin
-date: 2023-11-23
+date: 2023-11-24
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 cea6edc8cee72..de8d824e17b1d 100644
--- a/api_docs/kbn_plugin_helpers.mdx
+++ b/api_docs/kbn_plugin_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers
title: "@kbn/plugin-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/plugin-helpers plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers']
---
import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json';
diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx
index 085bc98399059..0b98736eadc01 100644
--- a/api_docs/kbn_profiling_utils.mdx
+++ b/api_docs/kbn_profiling_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-profiling-utils
title: "@kbn/profiling-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/profiling-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/profiling-utils']
---
import kbnProfilingUtilsObj from './kbn_profiling_utils.devdocs.json';
diff --git a/api_docs/kbn_random_sampling.mdx b/api_docs/kbn_random_sampling.mdx
index e7b91f3af46bc..e7ae130f57ec1 100644
--- a/api_docs/kbn_random_sampling.mdx
+++ b/api_docs/kbn_random_sampling.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-random-sampling
title: "@kbn/random-sampling"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/random-sampling plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/random-sampling']
---
import kbnRandomSamplingObj from './kbn_random_sampling.devdocs.json';
diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx
index 29432fa85f2ea..3ab723caf0abd 100644
--- a/api_docs/kbn_react_field.mdx
+++ b/api_docs/kbn_react_field.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field
title: "@kbn/react-field"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-field plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field']
---
import kbnReactFieldObj from './kbn_react_field.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_common.mdx b/api_docs/kbn_react_kibana_context_common.mdx
index a704f22ed7cd6..79b8abfe06f2b 100644
--- a/api_docs/kbn_react_kibana_context_common.mdx
+++ b/api_docs/kbn_react_kibana_context_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-common
title: "@kbn/react-kibana-context-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-common plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-common']
---
import kbnReactKibanaContextCommonObj from './kbn_react_kibana_context_common.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_render.mdx b/api_docs/kbn_react_kibana_context_render.mdx
index f548493e281d3..a1c32097ac21e 100644
--- a/api_docs/kbn_react_kibana_context_render.mdx
+++ b/api_docs/kbn_react_kibana_context_render.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-render
title: "@kbn/react-kibana-context-render"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-render plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-render']
---
import kbnReactKibanaContextRenderObj from './kbn_react_kibana_context_render.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_root.mdx b/api_docs/kbn_react_kibana_context_root.mdx
index 85536cdbc263b..2afcfb16a8c60 100644
--- a/api_docs/kbn_react_kibana_context_root.mdx
+++ b/api_docs/kbn_react_kibana_context_root.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-root
title: "@kbn/react-kibana-context-root"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-root plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-root']
---
import kbnReactKibanaContextRootObj from './kbn_react_kibana_context_root.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_styled.mdx b/api_docs/kbn_react_kibana_context_styled.mdx
index 2e1b9e3094aab..08548eec37d16 100644
--- a/api_docs/kbn_react_kibana_context_styled.mdx
+++ b/api_docs/kbn_react_kibana_context_styled.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-styled
title: "@kbn/react-kibana-context-styled"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-styled plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-styled']
---
import kbnReactKibanaContextStyledObj from './kbn_react_kibana_context_styled.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_theme.mdx b/api_docs/kbn_react_kibana_context_theme.mdx
index 7ac8b138c3991..7c83f4e541629 100644
--- a/api_docs/kbn_react_kibana_context_theme.mdx
+++ b/api_docs/kbn_react_kibana_context_theme.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-theme
title: "@kbn/react-kibana-context-theme"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-theme plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-theme']
---
import kbnReactKibanaContextThemeObj from './kbn_react_kibana_context_theme.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_mount.mdx b/api_docs/kbn_react_kibana_mount.mdx
index 908fd68a0336c..da07199d5e1d1 100644
--- a/api_docs/kbn_react_kibana_mount.mdx
+++ b/api_docs/kbn_react_kibana_mount.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-mount
title: "@kbn/react-kibana-mount"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-mount plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-mount']
---
import kbnReactKibanaMountObj from './kbn_react_kibana_mount.devdocs.json';
diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx
index 44e19c7abce7e..2def25791a43f 100644
--- a/api_docs/kbn_repo_file_maps.mdx
+++ b/api_docs/kbn_repo_file_maps.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps
title: "@kbn/repo-file-maps"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-file-maps plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps']
---
import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json';
diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx
index 13260da612626..280e6497c8397 100644
--- a/api_docs/kbn_repo_linter.mdx
+++ b/api_docs/kbn_repo_linter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter
title: "@kbn/repo-linter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-linter plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter']
---
import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json';
diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx
index df59c8d452730..12cecd98ad843 100644
--- a/api_docs/kbn_repo_path.mdx
+++ b/api_docs/kbn_repo_path.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path
title: "@kbn/repo-path"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-path plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path']
---
import kbnRepoPathObj from './kbn_repo_path.devdocs.json';
diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx
index fc3b40f244006..751c0c4aafe07 100644
--- a/api_docs/kbn_repo_source_classifier.mdx
+++ b/api_docs/kbn_repo_source_classifier.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier
title: "@kbn/repo-source-classifier"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-source-classifier plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier']
---
import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json';
diff --git a/api_docs/kbn_reporting_common.mdx b/api_docs/kbn_reporting_common.mdx
index d97c005dc407e..9522846590a6c 100644
--- a/api_docs/kbn_reporting_common.mdx
+++ b/api_docs/kbn_reporting_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-common
title: "@kbn/reporting-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-common plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-common']
---
import kbnReportingCommonObj from './kbn_reporting_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_csv.mdx b/api_docs/kbn_reporting_export_types_csv.mdx
index 52b52a53fcc10..173aefcb81067 100644
--- a/api_docs/kbn_reporting_export_types_csv.mdx
+++ b/api_docs/kbn_reporting_export_types_csv.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv
title: "@kbn/reporting-export-types-csv"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-csv plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv']
---
import kbnReportingExportTypesCsvObj from './kbn_reporting_export_types_csv.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_csv_common.mdx b/api_docs/kbn_reporting_export_types_csv_common.mdx
index 4fa42daf85d32..342ac988faaf2 100644
--- a/api_docs/kbn_reporting_export_types_csv_common.mdx
+++ b/api_docs/kbn_reporting_export_types_csv_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv-common
title: "@kbn/reporting-export-types-csv-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-csv-common plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv-common']
---
import kbnReportingExportTypesCsvCommonObj from './kbn_reporting_export_types_csv_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_pdf.mdx b/api_docs/kbn_reporting_export_types_pdf.mdx
index 2a5e26d4ced79..0a952037646f0 100644
--- a/api_docs/kbn_reporting_export_types_pdf.mdx
+++ b/api_docs/kbn_reporting_export_types_pdf.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf
title: "@kbn/reporting-export-types-pdf"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-pdf plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf']
---
import kbnReportingExportTypesPdfObj from './kbn_reporting_export_types_pdf.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_pdf_common.mdx b/api_docs/kbn_reporting_export_types_pdf_common.mdx
index 3f4983fcab89b..925666e62834f 100644
--- a/api_docs/kbn_reporting_export_types_pdf_common.mdx
+++ b/api_docs/kbn_reporting_export_types_pdf_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf-common
title: "@kbn/reporting-export-types-pdf-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-pdf-common plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf-common']
---
import kbnReportingExportTypesPdfCommonObj from './kbn_reporting_export_types_pdf_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_png.mdx b/api_docs/kbn_reporting_export_types_png.mdx
index e0b862f35272b..5cb2cf25f9511 100644
--- a/api_docs/kbn_reporting_export_types_png.mdx
+++ b/api_docs/kbn_reporting_export_types_png.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png
title: "@kbn/reporting-export-types-png"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-png plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png']
---
import kbnReportingExportTypesPngObj from './kbn_reporting_export_types_png.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_png_common.mdx b/api_docs/kbn_reporting_export_types_png_common.mdx
index 8b6c73b001b0d..32c59f556f46c 100644
--- a/api_docs/kbn_reporting_export_types_png_common.mdx
+++ b/api_docs/kbn_reporting_export_types_png_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png-common
title: "@kbn/reporting-export-types-png-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-png-common plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png-common']
---
import kbnReportingExportTypesPngCommonObj from './kbn_reporting_export_types_png_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_mocks_server.mdx b/api_docs/kbn_reporting_mocks_server.mdx
index a8f26f5f5d8f0..2cc05f28ef94a 100644
--- a/api_docs/kbn_reporting_mocks_server.mdx
+++ b/api_docs/kbn_reporting_mocks_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-mocks-server
title: "@kbn/reporting-mocks-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-mocks-server plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-mocks-server']
---
import kbnReportingMocksServerObj from './kbn_reporting_mocks_server.devdocs.json';
diff --git a/api_docs/kbn_reporting_public.mdx b/api_docs/kbn_reporting_public.mdx
index 2db5e2008cb7e..c35c612570007 100644
--- a/api_docs/kbn_reporting_public.mdx
+++ b/api_docs/kbn_reporting_public.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-public
title: "@kbn/reporting-public"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-public plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-public']
---
import kbnReportingPublicObj from './kbn_reporting_public.devdocs.json';
diff --git a/api_docs/kbn_reporting_server.mdx b/api_docs/kbn_reporting_server.mdx
index 973cf39643689..79bfad89c99ba 100644
--- a/api_docs/kbn_reporting_server.mdx
+++ b/api_docs/kbn_reporting_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-server
title: "@kbn/reporting-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-server plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-server']
---
import kbnReportingServerObj from './kbn_reporting_server.devdocs.json';
diff --git a/api_docs/kbn_resizable_layout.mdx b/api_docs/kbn_resizable_layout.mdx
index 9e6971c0ccd51..97af7292a9c30 100644
--- a/api_docs/kbn_resizable_layout.mdx
+++ b/api_docs/kbn_resizable_layout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-resizable-layout
title: "@kbn/resizable-layout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/resizable-layout plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/resizable-layout']
---
import kbnResizableLayoutObj from './kbn_resizable_layout.devdocs.json';
diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx
index 754f54af9437b..970e0e49a8662 100644
--- a/api_docs/kbn_rison.mdx
+++ b/api_docs/kbn_rison.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison
title: "@kbn/rison"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/rison plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison']
---
import kbnRisonObj from './kbn_rison.devdocs.json';
diff --git a/api_docs/kbn_rrule.mdx b/api_docs/kbn_rrule.mdx
index d45f539bd4339..c41dc7e723c3b 100644
--- a/api_docs/kbn_rrule.mdx
+++ b/api_docs/kbn_rrule.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rrule
title: "@kbn/rrule"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/rrule plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rrule']
---
import kbnRruleObj from './kbn_rrule.devdocs.json';
diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx
index e67c7227f6823..9d8eb8a5ed26b 100644
--- a/api_docs/kbn_rule_data_utils.mdx
+++ b/api_docs/kbn_rule_data_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils
title: "@kbn/rule-data-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/rule-data-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils']
---
import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json';
diff --git a/api_docs/kbn_saved_objects_settings.mdx b/api_docs/kbn_saved_objects_settings.mdx
index 98bb97b72f801..3d1287e8fa2ae 100644
--- a/api_docs/kbn_saved_objects_settings.mdx
+++ b/api_docs/kbn_saved_objects_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-saved-objects-settings
title: "@kbn/saved-objects-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/saved-objects-settings plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings']
---
import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json';
diff --git a/api_docs/kbn_search_api_panels.mdx b/api_docs/kbn_search_api_panels.mdx
index 2207e85c0208e..e81f925f6bce4 100644
--- a/api_docs/kbn_search_api_panels.mdx
+++ b/api_docs/kbn_search_api_panels.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-api-panels
title: "@kbn/search-api-panels"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-api-panels plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-api-panels']
---
import kbnSearchApiPanelsObj from './kbn_search_api_panels.devdocs.json';
diff --git a/api_docs/kbn_search_connectors.mdx b/api_docs/kbn_search_connectors.mdx
index 37e3dce56e7e9..18884ec8be4b4 100644
--- a/api_docs/kbn_search_connectors.mdx
+++ b/api_docs/kbn_search_connectors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-connectors
title: "@kbn/search-connectors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-connectors plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-connectors']
---
import kbnSearchConnectorsObj from './kbn_search_connectors.devdocs.json';
diff --git a/api_docs/kbn_search_response_warnings.mdx b/api_docs/kbn_search_response_warnings.mdx
index e341718c07b7e..6b0395146ed7f 100644
--- a/api_docs/kbn_search_response_warnings.mdx
+++ b/api_docs/kbn_search_response_warnings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-response-warnings
title: "@kbn/search-response-warnings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-response-warnings plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-response-warnings']
---
import kbnSearchResponseWarningsObj from './kbn_search_response_warnings.devdocs.json';
diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx
index f03749a0ec3ae..49ae32af8e323 100644
--- a/api_docs/kbn_security_solution_features.mdx
+++ b/api_docs/kbn_security_solution_features.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-features
title: "@kbn/security-solution-features"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-features plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-features']
---
import kbnSecuritySolutionFeaturesObj from './kbn_security_solution_features.devdocs.json';
diff --git a/api_docs/kbn_security_solution_navigation.mdx b/api_docs/kbn_security_solution_navigation.mdx
index b8b5202bf2136..b33ccd82f80ab 100644
--- a/api_docs/kbn_security_solution_navigation.mdx
+++ b/api_docs/kbn_security_solution_navigation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-navigation
title: "@kbn/security-solution-navigation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-navigation plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-navigation']
---
import kbnSecuritySolutionNavigationObj from './kbn_security_solution_navigation.devdocs.json';
diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx
index 85835e0e840ac..990df1c36f690 100644
--- a/api_docs/kbn_security_solution_side_nav.mdx
+++ b/api_docs/kbn_security_solution_side_nav.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav
title: "@kbn/security-solution-side-nav"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-side-nav plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav']
---
import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json';
diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx
index 7146fa2276008..a787efa1f9561 100644
--- a/api_docs/kbn_security_solution_storybook_config.mdx
+++ b/api_docs/kbn_security_solution_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config
title: "@kbn/security-solution-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-storybook-config plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config']
---
import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx
index 2616f314980ec..a31ebdb152252 100644
--- a/api_docs/kbn_securitysolution_autocomplete.mdx
+++ b/api_docs/kbn_securitysolution_autocomplete.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete
title: "@kbn/securitysolution-autocomplete"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-autocomplete plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete']
---
import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_data_table.mdx b/api_docs/kbn_securitysolution_data_table.mdx
index d7b2d85d4a752..e950c6a317d2a 100644
--- a/api_docs/kbn_securitysolution_data_table.mdx
+++ b/api_docs/kbn_securitysolution_data_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-data-table
title: "@kbn/securitysolution-data-table"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-data-table plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-data-table']
---
import kbnSecuritysolutionDataTableObj from './kbn_securitysolution_data_table.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx
index 90f28d44801c7..808bf65d91115 100644
--- a/api_docs/kbn_securitysolution_ecs.mdx
+++ b/api_docs/kbn_securitysolution_ecs.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs
title: "@kbn/securitysolution-ecs"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-ecs plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs']
---
import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx
index 252b951232673..23950f41b3d6d 100644
--- a/api_docs/kbn_securitysolution_es_utils.mdx
+++ b/api_docs/kbn_securitysolution_es_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils
title: "@kbn/securitysolution-es-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-es-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils']
---
import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx
index 20e7f6ae59660..5758e14331be8 100644
--- a/api_docs/kbn_securitysolution_exception_list_components.mdx
+++ b/api_docs/kbn_securitysolution_exception_list_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components
title: "@kbn/securitysolution-exception-list-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-exception-list-components plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components']
---
import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx
index 0a48700ecbc17..deb1af62f9fa0 100644
--- a/api_docs/kbn_securitysolution_grouping.mdx
+++ b/api_docs/kbn_securitysolution_grouping.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping
title: "@kbn/securitysolution-grouping"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-grouping plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping']
---
import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx
index 4bb45599bceeb..a427b7a349ed7 100644
--- a/api_docs/kbn_securitysolution_hook_utils.mdx
+++ b/api_docs/kbn_securitysolution_hook_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils
title: "@kbn/securitysolution-hook-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-hook-utils plugin
-date: 2023-11-23
+date: 2023-11-24
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 d74bb0ef83545..7c6bbaff7a631 100644
--- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types
title: "@kbn/securitysolution-io-ts-alerting-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin
-date: 2023-11-23
+date: 2023-11-24
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 b22dbe54080b7..204b65e823db9 100644
--- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types
title: "@kbn/securitysolution-io-ts-list-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-list-types plugin
-date: 2023-11-23
+date: 2023-11-24
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 b24bd4fec6f69..ada63cdc3cf0d 100644
--- a/api_docs/kbn_securitysolution_io_ts_types.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types
title: "@kbn/securitysolution-io-ts-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-types plugin
-date: 2023-11-23
+date: 2023-11-24
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 18b5f871586f6..d564e61005824 100644
--- a/api_docs/kbn_securitysolution_io_ts_utils.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils
title: "@kbn/securitysolution-io-ts-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-utils plugin
-date: 2023-11-23
+date: 2023-11-24
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 c7f9510c5b0ea..acc7a7201aacb 100644
--- a/api_docs/kbn_securitysolution_list_api.mdx
+++ b/api_docs/kbn_securitysolution_list_api.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api
title: "@kbn/securitysolution-list-api"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-api plugin
-date: 2023-11-23
+date: 2023-11-24
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 07d16d66d6be5..f84534d778c01 100644
--- a/api_docs/kbn_securitysolution_list_constants.mdx
+++ b/api_docs/kbn_securitysolution_list_constants.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants
title: "@kbn/securitysolution-list-constants"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-constants plugin
-date: 2023-11-23
+date: 2023-11-24
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 7053bd87a28e8..5dfac6f3fc273 100644
--- a/api_docs/kbn_securitysolution_list_hooks.mdx
+++ b/api_docs/kbn_securitysolution_list_hooks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks
title: "@kbn/securitysolution-list-hooks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-hooks plugin
-date: 2023-11-23
+date: 2023-11-24
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 de7d3870892c0..29d7acfd13b91 100644
--- a/api_docs/kbn_securitysolution_list_utils.mdx
+++ b/api_docs/kbn_securitysolution_list_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils
title: "@kbn/securitysolution-list-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-utils plugin
-date: 2023-11-23
+date: 2023-11-24
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 dcf9a6c8bbdb1..5c1a2a9fa12b9 100644
--- a/api_docs/kbn_securitysolution_rules.mdx
+++ b/api_docs/kbn_securitysolution_rules.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules
title: "@kbn/securitysolution-rules"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-rules plugin
-date: 2023-11-23
+date: 2023-11-24
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 2ba86e20331da..e14af71c27972 100644
--- a/api_docs/kbn_securitysolution_t_grid.mdx
+++ b/api_docs/kbn_securitysolution_t_grid.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid
title: "@kbn/securitysolution-t-grid"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-t-grid plugin
-date: 2023-11-23
+date: 2023-11-24
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 71837a9335a9b..461c1bc6fd789 100644
--- a/api_docs/kbn_securitysolution_utils.mdx
+++ b/api_docs/kbn_securitysolution_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils
title: "@kbn/securitysolution-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-utils plugin
-date: 2023-11-23
+date: 2023-11-24
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 2760ad627769f..3f304b126b22f 100644
--- a/api_docs/kbn_server_http_tools.mdx
+++ b/api_docs/kbn_server_http_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools
title: "@kbn/server-http-tools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/server-http-tools plugin
-date: 2023-11-23
+date: 2023-11-24
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 5fb72a64407ae..7f519d945d96f 100644
--- a/api_docs/kbn_server_route_repository.mdx
+++ b/api_docs/kbn_server_route_repository.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository
title: "@kbn/server-route-repository"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/server-route-repository plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository']
---
import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json';
diff --git a/api_docs/kbn_serverless_common_settings.mdx b/api_docs/kbn_serverless_common_settings.mdx
index f94c6a621054d..88b5d2b04a5b1 100644
--- a/api_docs/kbn_serverless_common_settings.mdx
+++ b/api_docs/kbn_serverless_common_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-common-settings
title: "@kbn/serverless-common-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-common-settings plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-common-settings']
---
import kbnServerlessCommonSettingsObj from './kbn_serverless_common_settings.devdocs.json';
diff --git a/api_docs/kbn_serverless_observability_settings.mdx b/api_docs/kbn_serverless_observability_settings.mdx
index 12afad9978ea9..58612c63687c3 100644
--- a/api_docs/kbn_serverless_observability_settings.mdx
+++ b/api_docs/kbn_serverless_observability_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-observability-settings
title: "@kbn/serverless-observability-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-observability-settings plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-observability-settings']
---
import kbnServerlessObservabilitySettingsObj from './kbn_serverless_observability_settings.devdocs.json';
diff --git a/api_docs/kbn_serverless_project_switcher.mdx b/api_docs/kbn_serverless_project_switcher.mdx
index 6bc81e2a8d280..cdf208fd4088a 100644
--- a/api_docs/kbn_serverless_project_switcher.mdx
+++ b/api_docs/kbn_serverless_project_switcher.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-project-switcher
title: "@kbn/serverless-project-switcher"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-project-switcher plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-project-switcher']
---
import kbnServerlessProjectSwitcherObj from './kbn_serverless_project_switcher.devdocs.json';
diff --git a/api_docs/kbn_serverless_search_settings.mdx b/api_docs/kbn_serverless_search_settings.mdx
index 70b3209304d3f..0dee5fee06a91 100644
--- a/api_docs/kbn_serverless_search_settings.mdx
+++ b/api_docs/kbn_serverless_search_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-search-settings
title: "@kbn/serverless-search-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-search-settings plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-search-settings']
---
import kbnServerlessSearchSettingsObj from './kbn_serverless_search_settings.devdocs.json';
diff --git a/api_docs/kbn_serverless_security_settings.mdx b/api_docs/kbn_serverless_security_settings.mdx
index 2f2688e7a91a1..51c5ed81d2596 100644
--- a/api_docs/kbn_serverless_security_settings.mdx
+++ b/api_docs/kbn_serverless_security_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-security-settings
title: "@kbn/serverless-security-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-security-settings plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-security-settings']
---
import kbnServerlessSecuritySettingsObj from './kbn_serverless_security_settings.devdocs.json';
diff --git a/api_docs/kbn_serverless_storybook_config.mdx b/api_docs/kbn_serverless_storybook_config.mdx
index ff958cc3627e8..7c8c6dcada74e 100644
--- a/api_docs/kbn_serverless_storybook_config.mdx
+++ b/api_docs/kbn_serverless_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-storybook-config
title: "@kbn/serverless-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-storybook-config plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-storybook-config']
---
import kbnServerlessStorybookConfigObj from './kbn_serverless_storybook_config.devdocs.json';
diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx
index a4c3b202a3722..1ffecb14473e5 100644
--- a/api_docs/kbn_shared_svg.mdx
+++ b/api_docs/kbn_shared_svg.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg
title: "@kbn/shared-svg"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-svg plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg']
---
import kbnSharedSvgObj from './kbn_shared_svg.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_avatar_solution.mdx b/api_docs/kbn_shared_ux_avatar_solution.mdx
index c51d92e89a61b..113d987c666f8 100644
--- a/api_docs/kbn_shared_ux_avatar_solution.mdx
+++ b/api_docs/kbn_shared_ux_avatar_solution.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution
title: "@kbn/shared-ux-avatar-solution"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-avatar-solution plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution']
---
import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx
index 5ab0b6e1831b4..5ed78fddc168c 100644
--- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx
+++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen
title: "@kbn/shared-ux-button-exit-full-screen"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen']
---
import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx
index 23a130b85463d..05d0924d94822 100644
--- a/api_docs/kbn_shared_ux_button_toolbar.mdx
+++ b/api_docs/kbn_shared_ux_button_toolbar.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar
title: "@kbn/shared-ux-button-toolbar"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-button-toolbar plugin
-date: 2023-11-23
+date: 2023-11-24
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 e88cde8fde62c..0e95ec44556ee 100644
--- a/api_docs/kbn_shared_ux_card_no_data.mdx
+++ b/api_docs/kbn_shared_ux_card_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data
title: "@kbn/shared-ux-card-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-card-no-data plugin
-date: 2023-11-23
+date: 2023-11-24
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 6b601c1311a08..d7c19536381ce 100644
--- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks
title: "@kbn/shared-ux-card-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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_chrome_navigation.mdx b/api_docs/kbn_shared_ux_chrome_navigation.mdx
index 5b1ac9dbdcab0..b534b7b9a1c2e 100644
--- a/api_docs/kbn_shared_ux_chrome_navigation.mdx
+++ b/api_docs/kbn_shared_ux_chrome_navigation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-chrome-navigation
title: "@kbn/shared-ux-chrome-navigation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-chrome-navigation plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-chrome-navigation']
---
import kbnSharedUxChromeNavigationObj from './kbn_shared_ux_chrome_navigation.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_error_boundary.mdx b/api_docs/kbn_shared_ux_error_boundary.mdx
index 21652cf602c1a..d7963cce75795 100644
--- a/api_docs/kbn_shared_ux_error_boundary.mdx
+++ b/api_docs/kbn_shared_ux_error_boundary.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-error-boundary
title: "@kbn/shared-ux-error-boundary"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-error-boundary plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-error-boundary']
---
import kbnSharedUxErrorBoundaryObj from './kbn_shared_ux_error_boundary.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx
index 47ea957cd7c0c..04c70b18b47bd 100644
--- a/api_docs/kbn_shared_ux_file_context.mdx
+++ b/api_docs/kbn_shared_ux_file_context.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context
title: "@kbn/shared-ux-file-context"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-context plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-context']
---
import kbnSharedUxFileContextObj from './kbn_shared_ux_file_context.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_image.mdx b/api_docs/kbn_shared_ux_file_image.mdx
index b2c3d34eaa63f..63ce020713eeb 100644
--- a/api_docs/kbn_shared_ux_file_image.mdx
+++ b/api_docs/kbn_shared_ux_file_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image
title: "@kbn/shared-ux-file-image"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-image plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image']
---
import kbnSharedUxFileImageObj from './kbn_shared_ux_file_image.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_image_mocks.mdx b/api_docs/kbn_shared_ux_file_image_mocks.mdx
index 846e9030dc934..072f176ae10b2 100644
--- a/api_docs/kbn_shared_ux_file_image_mocks.mdx
+++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks
title: "@kbn/shared-ux-file-image-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-image-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image-mocks']
---
import kbnSharedUxFileImageMocksObj from './kbn_shared_ux_file_image_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_mocks.mdx b/api_docs/kbn_shared_ux_file_mocks.mdx
index a5292f8823a0e..1cfb8ebe14b70 100644
--- a/api_docs/kbn_shared_ux_file_mocks.mdx
+++ b/api_docs/kbn_shared_ux_file_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks
title: "@kbn/shared-ux-file-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks']
---
import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx
index b5fe2f5e19673..681927e8d1123 100644
--- a/api_docs/kbn_shared_ux_file_picker.mdx
+++ b/api_docs/kbn_shared_ux_file_picker.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker
title: "@kbn/shared-ux-file-picker"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-picker plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker']
---
import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx
index 2e1da6a688a99..08a0e5e7b19fa 100644
--- a/api_docs/kbn_shared_ux_file_types.mdx
+++ b/api_docs/kbn_shared_ux_file_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types
title: "@kbn/shared-ux-file-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-types plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types']
---
import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx
index 513eaa3765ce2..599fff7826954 100644
--- a/api_docs/kbn_shared_ux_file_upload.mdx
+++ b/api_docs/kbn_shared_ux_file_upload.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload
title: "@kbn/shared-ux-file-upload"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-upload plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload']
---
import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx
index a12580cfcc3b7..eec69dd550e0e 100644
--- a/api_docs/kbn_shared_ux_file_util.mdx
+++ b/api_docs/kbn_shared_ux_file_util.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util
title: "@kbn/shared-ux-file-util"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-util plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-util']
---
import kbnSharedUxFileUtilObj from './kbn_shared_ux_file_util.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_link_redirect_app.devdocs.json b/api_docs/kbn_shared_ux_link_redirect_app.devdocs.json
index ae8568c37433d..aa7633649473f 100644
--- a/api_docs/kbn_shared_ux_link_redirect_app.devdocs.json
+++ b/api_docs/kbn_shared_ux_link_redirect_app.devdocs.json
@@ -29,7 +29,9 @@
"\nA service-enabled component that provides Kibana-specific functionality to the `RedirectAppLinks`\npure component.\n"
],
"signature": [
- "({ children }: { children?: React.ReactNode; }) => JSX.Element"
+ "({ children, ...props }: React.PropsWithChildren>) => JSX.Element"
],
"path": "packages/shared-ux/link/redirect_app/impl/src/redirect_app_links.container.tsx",
"deprecated": false,
@@ -38,12 +40,14 @@
{
"parentPluginId": "@kbn/shared-ux-link-redirect-app",
"id": "def-common.RedirectAppLinks.$1",
- "type": "Object",
+ "type": "CompoundType",
"tags": [],
- "label": "{ children }",
+ "label": "{\n children,\n ...props\n}",
"description": [],
"signature": [
- "{ children?: React.ReactNode; }"
+ "React.PropsWithChildren>"
],
"path": "packages/shared-ux/link/redirect_app/impl/src/redirect_app_links.container.tsx",
"deprecated": false,
@@ -64,7 +68,7 @@
"\nUtility component that will intercept click events on children anchor (``) elements to call\n`navigateToUrl` with the link's href. This will trigger SPA friendly navigation when the link points\nto a valid Kibana app.\n"
],
"signature": [
- "({ children, navigateToUrl, currentAppId, }: React.PropsWithChildren<",
+ "({ children, navigateToUrl, currentAppId, ...containerProps }: React.PropsWithChildren<",
"RedirectAppLinksComponentProps",
">) => JSX.Element"
],
@@ -77,7 +81,7 @@
"id": "def-common.RedirectAppLinks.$1",
"type": "CompoundType",
"tags": [],
- "label": "{\n children,\n navigateToUrl,\n currentAppId,\n}",
+ "label": "{\n children,\n navigateToUrl,\n currentAppId,\n ...containerProps\n}",
"description": [],
"signature": [
"React.PropsWithChildren<",
@@ -317,9 +321,11 @@
"Props for the `RedirectAppLinks` component."
],
"signature": [
+ "(",
"RedirectAppLinksKibanaDependencies",
" | ",
- "RedirectAppLinksServices"
+ "RedirectAppLinksServices",
+ ") & React.ClassAttributes & React.HTMLAttributes"
],
"path": "packages/shared-ux/link/redirect_app/types/index.d.ts",
"deprecated": false,
diff --git a/api_docs/kbn_shared_ux_link_redirect_app.mdx b/api_docs/kbn_shared_ux_link_redirect_app.mdx
index caae570e9c4f2..bab036542fbf3 100644
--- a/api_docs/kbn_shared_ux_link_redirect_app.mdx
+++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app
title: "@kbn/shared-ux-link-redirect-app"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-link-redirect-app plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app']
---
import kbnSharedUxLinkRedirectAppObj from './kbn_shared_ux_link_redirect_app.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx
index 0e0e47e5477c4..d2568251b6788 100644
--- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx
+++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks
title: "@kbn/shared-ux-link-redirect-app-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app-mocks']
---
import kbnSharedUxLinkRedirectAppMocksObj from './kbn_shared_ux_link_redirect_app_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_markdown.mdx b/api_docs/kbn_shared_ux_markdown.mdx
index 922bf9b640165..7511856f503fa 100644
--- a/api_docs/kbn_shared_ux_markdown.mdx
+++ b/api_docs/kbn_shared_ux_markdown.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown
title: "@kbn/shared-ux-markdown"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-markdown plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown']
---
import kbnSharedUxMarkdownObj from './kbn_shared_ux_markdown.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_markdown_mocks.mdx b/api_docs/kbn_shared_ux_markdown_mocks.mdx
index 1fabdb7a4977d..a96b79761d8e2 100644
--- a/api_docs/kbn_shared_ux_markdown_mocks.mdx
+++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks
title: "@kbn/shared-ux-markdown-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-markdown-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown-mocks']
---
import kbnSharedUxMarkdownMocksObj from './kbn_shared_ux_markdown_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx
index 06d8d81830328..34473c2ea5175 100644
--- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx
+++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data
title: "@kbn/shared-ux-page-analytics-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin
-date: 2023-11-23
+date: 2023-11-24
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 9723fb2975829..d5d1183e7732c 100644
--- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks
title: "@kbn/shared-ux-page-analytics-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 ee1a5a5e471f8..5e7b927e0d0bf 100644
--- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data
title: "@kbn/shared-ux-page-kibana-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin
-date: 2023-11-23
+date: 2023-11-24
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 4147774596632..6635c2abd5222 100644
--- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks
title: "@kbn/shared-ux-page-kibana-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 db0ee1f2a6e7c..d4644eb96f07b 100644
--- a/api_docs/kbn_shared_ux_page_kibana_template.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template
title: "@kbn/shared-ux-page-kibana-template"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-template plugin
-date: 2023-11-23
+date: 2023-11-24
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 483b94e0871e8..869570ae65f65 100644
--- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks
title: "@kbn/shared-ux-page-kibana-template-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 3c7d23973883d..204f94e759cce 100644
--- a/api_docs/kbn_shared_ux_page_no_data.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data
title: "@kbn/shared-ux-page-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data plugin
-date: 2023-11-23
+date: 2023-11-24
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 ab33fe50ef93c..9485d16697b99 100644
--- a/api_docs/kbn_shared_ux_page_no_data_config.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config
title: "@kbn/shared-ux-page-no-data-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data-config plugin
-date: 2023-11-23
+date: 2023-11-24
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 9f06bde439666..de79520ef7e95 100644
--- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks
title: "@kbn/shared-ux-page-no-data-config-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 52e7fee71cb57..b9c6cf36dd721 100644
--- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks
title: "@kbn/shared-ux-page-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 64bedf0a3768a..8dd077f566673 100644
--- a/api_docs/kbn_shared_ux_page_solution_nav.mdx
+++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav
title: "@kbn/shared-ux-page-solution-nav"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-solution-nav plugin
-date: 2023-11-23
+date: 2023-11-24
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 1339ec0215b88..2a6a330511db8 100644
--- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx
+++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views
title: "@kbn/shared-ux-prompt-no-data-views"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin
-date: 2023-11-23
+date: 2023-11-24
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 285c3a74da66f..50f0b41c3f556 100644
--- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx
+++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks
title: "@kbn/shared-ux-prompt-no-data-views-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks']
---
import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx
index 64aa0aca141e5..c34d8397c5365 100644
--- a/api_docs/kbn_shared_ux_prompt_not_found.mdx
+++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found
title: "@kbn/shared-ux-prompt-not-found"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-prompt-not-found plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found']
---
import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx
index 9b63fc255d34f..a531af7af1b6d 100644
--- a/api_docs/kbn_shared_ux_router.mdx
+++ b/api_docs/kbn_shared_ux_router.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router
title: "@kbn/shared-ux-router"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-router plugin
-date: 2023-11-23
+date: 2023-11-24
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 034397846124c..6adcb7dc26f46 100644
--- a/api_docs/kbn_shared_ux_router_mocks.mdx
+++ b/api_docs/kbn_shared_ux_router_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks
title: "@kbn/shared-ux-router-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-router-mocks plugin
-date: 2023-11-23
+date: 2023-11-24
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 c0207f013fca8..7cdbc810b7e46 100644
--- a/api_docs/kbn_shared_ux_storybook_config.mdx
+++ b/api_docs/kbn_shared_ux_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config
title: "@kbn/shared-ux-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-storybook-config plugin
-date: 2023-11-23
+date: 2023-11-24
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 fd605e1b4cf33..7f185421317ad 100644
--- a/api_docs/kbn_shared_ux_storybook_mock.mdx
+++ b/api_docs/kbn_shared_ux_storybook_mock.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock
title: "@kbn/shared-ux-storybook-mock"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-storybook-mock plugin
-date: 2023-11-23
+date: 2023-11-24
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 99c20272f4579..7c6056a2f3042 100644
--- a/api_docs/kbn_shared_ux_utility.mdx
+++ b/api_docs/kbn_shared_ux_utility.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility
title: "@kbn/shared-ux-utility"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-utility plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility']
---
import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json';
diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx
index dddfa82fe3ce2..c7715f9528056 100644
--- a/api_docs/kbn_slo_schema.mdx
+++ b/api_docs/kbn_slo_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema
title: "@kbn/slo-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/slo-schema plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema']
---
import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json';
diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx
index 00c68dc8e93e3..5aa436ea02acd 100644
--- a/api_docs/kbn_some_dev_log.mdx
+++ b/api_docs/kbn_some_dev_log.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log
title: "@kbn/some-dev-log"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/some-dev-log plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log']
---
import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json';
diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx
index 0a53a835abbec..d474a7d46d268 100644
--- a/api_docs/kbn_std.mdx
+++ b/api_docs/kbn_std.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std
title: "@kbn/std"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/std plugin
-date: 2023-11-23
+date: 2023-11-24
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 14f803c56e7b1..bd741627d7e01 100644
--- a/api_docs/kbn_stdio_dev_helpers.mdx
+++ b/api_docs/kbn_stdio_dev_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers
title: "@kbn/stdio-dev-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/stdio-dev-helpers plugin
-date: 2023-11-23
+date: 2023-11-24
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 0cf6aa512bc70..bda94b219cee4 100644
--- a/api_docs/kbn_storybook.mdx
+++ b/api_docs/kbn_storybook.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook
title: "@kbn/storybook"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/storybook plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook']
---
import kbnStorybookObj from './kbn_storybook.devdocs.json';
diff --git a/api_docs/kbn_subscription_tracking.devdocs.json b/api_docs/kbn_subscription_tracking.devdocs.json
deleted file mode 100644
index ea9cdb7f07167..0000000000000
--- a/api_docs/kbn_subscription_tracking.devdocs.json
+++ /dev/null
@@ -1,519 +0,0 @@
-{
- "id": "@kbn/subscription-tracking",
- "client": {
- "classes": [],
- "functions": [],
- "interfaces": [],
- "enums": [],
- "misc": [],
- "objects": []
- },
- "server": {
- "classes": [],
- "functions": [],
- "interfaces": [],
- "enums": [],
- "misc": [],
- "objects": []
- },
- "common": {
- "classes": [],
- "functions": [
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.registerEvents",
- "type": "Function",
- "tags": [],
- "label": "registerEvents",
- "description": [
- "\nRegisters the subscription-specific event types"
- ],
- "signature": [
- "(analyticsClient: Pick<",
- {
- "pluginId": "@kbn/analytics-client",
- "scope": "common",
- "docId": "kibKbnAnalyticsClientPluginApi",
- "section": "def-common.IAnalyticsClient",
- "text": "IAnalyticsClient"
- },
- ", \"registerEventType\">) => void"
- ],
- "path": "packages/kbn-subscription-tracking/src/services.tsx",
- "deprecated": false,
- "trackAdoption": false,
- "children": [
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.registerEvents.$1",
- "type": "Object",
- "tags": [],
- "label": "analyticsClient",
- "description": [],
- "signature": [
- "Pick<",
- {
- "pluginId": "@kbn/analytics-client",
- "scope": "common",
- "docId": "kibKbnAnalyticsClientPluginApi",
- "section": "def-common.IAnalyticsClient",
- "text": "IAnalyticsClient"
- },
- ", \"registerEventType\">"
- ],
- "path": "packages/kbn-subscription-tracking/src/services.tsx",
- "deprecated": false,
- "trackAdoption": false,
- "isRequired": true
- }
- ],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.SubscriptionButton",
- "type": "Function",
- "tags": [],
- "label": "SubscriptionButton",
- "description": [
- "\nWrapper around `EuiButton` that provides subscription events"
- ],
- "signature": [
- "({\n subscriptionContext,\n children,\n ...restProps\n}: ",
- {
- "pluginId": "@kbn/subscription-tracking",
- "scope": "common",
- "docId": "kibKbnSubscriptionTrackingPluginApi",
- "section": "def-common.SubscriptionButtonProps",
- "text": "SubscriptionButtonProps"
- },
- ") => JSX.Element"
- ],
- "path": "packages/kbn-subscription-tracking/src/subscription_elements.tsx",
- "deprecated": false,
- "trackAdoption": false,
- "children": [
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.SubscriptionButton.$1",
- "type": "CompoundType",
- "tags": [],
- "label": "{\n subscriptionContext,\n children,\n ...restProps\n}",
- "description": [],
- "signature": [
- {
- "pluginId": "@kbn/subscription-tracking",
- "scope": "common",
- "docId": "kibKbnSubscriptionTrackingPluginApi",
- "section": "def-common.SubscriptionButtonProps",
- "text": "SubscriptionButtonProps"
- }
- ],
- "path": "packages/kbn-subscription-tracking/src/subscription_elements.tsx",
- "deprecated": false,
- "trackAdoption": false,
- "isRequired": true
- }
- ],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.SubscriptionButtonEmpty",
- "type": "Function",
- "tags": [],
- "label": "SubscriptionButtonEmpty",
- "description": [
- "\nWrapper around `EuiButtonEmpty` that provides subscription events"
- ],
- "signature": [
- "({\n subscriptionContext,\n children,\n ...restProps\n}: ",
- {
- "pluginId": "@kbn/subscription-tracking",
- "scope": "common",
- "docId": "kibKbnSubscriptionTrackingPluginApi",
- "section": "def-common.SubscriptionButtonEmptyProps",
- "text": "SubscriptionButtonEmptyProps"
- },
- ") => JSX.Element"
- ],
- "path": "packages/kbn-subscription-tracking/src/subscription_elements.tsx",
- "deprecated": false,
- "trackAdoption": false,
- "children": [
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.SubscriptionButtonEmpty.$1",
- "type": "CompoundType",
- "tags": [],
- "label": "{\n subscriptionContext,\n children,\n ...restProps\n}",
- "description": [],
- "signature": [
- {
- "pluginId": "@kbn/subscription-tracking",
- "scope": "common",
- "docId": "kibKbnSubscriptionTrackingPluginApi",
- "section": "def-common.SubscriptionButtonEmptyProps",
- "text": "SubscriptionButtonEmptyProps"
- }
- ],
- "path": "packages/kbn-subscription-tracking/src/subscription_elements.tsx",
- "deprecated": false,
- "trackAdoption": false,
- "isRequired": true
- }
- ],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.SubscriptionLink",
- "type": "Function",
- "tags": [],
- "label": "SubscriptionLink",
- "description": [
- "\nWrapper around `EuiLink` that provides subscription events"
- ],
- "signature": [
- "({\n subscriptionContext,\n children,\n ...restProps\n}: ",
- {
- "pluginId": "@kbn/subscription-tracking",
- "scope": "common",
- "docId": "kibKbnSubscriptionTrackingPluginApi",
- "section": "def-common.SubscriptionLinkProps",
- "text": "SubscriptionLinkProps"
- },
- ") => JSX.Element"
- ],
- "path": "packages/kbn-subscription-tracking/src/subscription_elements.tsx",
- "deprecated": false,
- "trackAdoption": false,
- "children": [
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.SubscriptionLink.$1",
- "type": "CompoundType",
- "tags": [],
- "label": "{\n subscriptionContext,\n children,\n ...restProps\n}",
- "description": [],
- "signature": [
- {
- "pluginId": "@kbn/subscription-tracking",
- "scope": "common",
- "docId": "kibKbnSubscriptionTrackingPluginApi",
- "section": "def-common.SubscriptionLinkProps",
- "text": "SubscriptionLinkProps"
- }
- ],
- "path": "packages/kbn-subscription-tracking/src/subscription_elements.tsx",
- "deprecated": false,
- "trackAdoption": false,
- "isRequired": true
- }
- ],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.SubscriptionTrackingProvider",
- "type": "Function",
- "tags": [],
- "label": "SubscriptionTrackingProvider",
- "description": [
- "\nExternal services provider"
- ],
- "signature": [
- "({ children, ...services }: React.PropsWithChildren<",
- {
- "pluginId": "@kbn/subscription-tracking",
- "scope": "common",
- "docId": "kibKbnSubscriptionTrackingPluginApi",
- "section": "def-common.Services",
- "text": "Services"
- },
- ">) => JSX.Element"
- ],
- "path": "packages/kbn-subscription-tracking/src/services.tsx",
- "deprecated": false,
- "trackAdoption": false,
- "children": [
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.SubscriptionTrackingProvider.$1",
- "type": "CompoundType",
- "tags": [],
- "label": "{ children, ...services }",
- "description": [],
- "signature": [
- "React.PropsWithChildren<",
- {
- "pluginId": "@kbn/subscription-tracking",
- "scope": "common",
- "docId": "kibKbnSubscriptionTrackingPluginApi",
- "section": "def-common.Services",
- "text": "Services"
- },
- ">"
- ],
- "path": "packages/kbn-subscription-tracking/src/services.tsx",
- "deprecated": false,
- "trackAdoption": false,
- "isRequired": true
- }
- ],
- "returnComment": [],
- "initialIsOpen": false
- }
- ],
- "interfaces": [
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.Services",
- "type": "Interface",
- "tags": [],
- "label": "Services",
- "description": [],
- "path": "packages/kbn-subscription-tracking/types.ts",
- "deprecated": false,
- "trackAdoption": false,
- "children": [
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.Services.navigateToApp",
- "type": "Function",
- "tags": [],
- "label": "navigateToApp",
- "description": [],
- "signature": [
- "(app: string, options: { path: string; }) => void"
- ],
- "path": "packages/kbn-subscription-tracking/types.ts",
- "deprecated": false,
- "trackAdoption": false,
- "children": [
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.Services.navigateToApp.$1",
- "type": "string",
- "tags": [],
- "label": "app",
- "description": [],
- "signature": [
- "string"
- ],
- "path": "packages/kbn-subscription-tracking/types.ts",
- "deprecated": false,
- "trackAdoption": false,
- "isRequired": true
- },
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.Services.navigateToApp.$2",
- "type": "Object",
- "tags": [],
- "label": "options",
- "description": [],
- "path": "packages/kbn-subscription-tracking/types.ts",
- "deprecated": false,
- "trackAdoption": false,
- "children": [
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.Services.navigateToApp.$2.path",
- "type": "string",
- "tags": [],
- "label": "path",
- "description": [],
- "path": "packages/kbn-subscription-tracking/types.ts",
- "deprecated": false,
- "trackAdoption": false
- }
- ]
- }
- ],
- "returnComment": []
- },
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.Services.analyticsClient",
- "type": "Object",
- "tags": [],
- "label": "analyticsClient",
- "description": [],
- "signature": [
- "{ reportEvent: (eventType: string, eventData: EventTypeData) => void; }"
- ],
- "path": "packages/kbn-subscription-tracking/types.ts",
- "deprecated": false,
- "trackAdoption": false
- }
- ],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.SubscriptionContextData",
- "type": "Interface",
- "tags": [],
- "label": "SubscriptionContextData",
- "description": [
- "\nA piece of metadata which consists of an identifier of the advertised feature and\nthe `source` (e.g. location) of the subscription element."
- ],
- "path": "packages/kbn-subscription-tracking/types.ts",
- "deprecated": false,
- "trackAdoption": false,
- "children": [
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.SubscriptionContextData.source",
- "type": "CompoundType",
- "tags": [],
- "label": "source",
- "description": [
- "\nA human-readable identifier describing the location of the beginning of the\nsubscription flow.\nLocation identifiers are prefixed with a solution identifier, e.g. `security__`\n"
- ],
- "signature": [
- "`observability__${string}` | `security__${string}`"
- ],
- "path": "packages/kbn-subscription-tracking/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.SubscriptionContextData.feature",
- "type": "string",
- "tags": [],
- "label": "feature",
- "description": [
- "\nA human-readable identifier describing the feature that is being promoted.\n"
- ],
- "path": "packages/kbn-subscription-tracking/types.ts",
- "deprecated": false,
- "trackAdoption": false
- }
- ],
- "initialIsOpen": false
- }
- ],
- "enums": [
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.EVENT_NAMES",
- "type": "Enum",
- "tags": [],
- "label": "EVENT_NAMES",
- "description": [],
- "path": "packages/kbn-subscription-tracking/types.ts",
- "deprecated": false,
- "trackAdoption": false,
- "initialIsOpen": false
- }
- ],
- "misc": [
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.SubscriptionButtonEmptyProps",
- "type": "Type",
- "tags": [],
- "label": "SubscriptionButtonEmptyProps",
- "description": [],
- "signature": [
- "((",
- "DisambiguateSet",
- " & ",
- "CommonEuiButtonEmptyProps",
- " & { onClick?: React.MouseEventHandler | undefined; } & React.ButtonHTMLAttributes) | (",
- "DisambiguateSet",
- "<",
- "EuiButtonEmptyPropsForButton",
- ", EuiButtonEmptyPropsForAnchor> & ",
- "CommonEuiButtonEmptyProps",
- " & { href?: string | undefined; onClick?: React.MouseEventHandler | undefined; } & React.AnchorHTMLAttributes)) & CommonProps"
- ],
- "path": "packages/kbn-subscription-tracking/src/subscription_elements.tsx",
- "deprecated": false,
- "trackAdoption": false,
- "initialIsOpen": false
- },
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.SubscriptionButtonProps",
- "type": "Type",
- "tags": [],
- "label": "SubscriptionButtonProps",
- "description": [],
- "signature": [
- "EuiButtonProps",
- " & CommonProps"
- ],
- "path": "packages/kbn-subscription-tracking/src/subscription_elements.tsx",
- "deprecated": false,
- "trackAdoption": false,
- "initialIsOpen": false
- },
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.SubscriptionLinkProps",
- "type": "Type",
- "tags": [],
- "label": "SubscriptionLinkProps",
- "description": [],
- "signature": [
- "((",
- "DisambiguateSet",
- "<",
- "EuiLinkButtonProps",
- ", ",
- "EuiLinkAnchorProps",
- "> & ",
- "EuiLinkAnchorProps",
- ") | (",
- "DisambiguateSet",
- "<",
- "EuiLinkAnchorProps",
- ", ",
- "EuiLinkButtonProps",
- "> & ",
- "EuiLinkButtonProps",
- ")) & CommonProps"
- ],
- "path": "packages/kbn-subscription-tracking/src/subscription_elements.tsx",
- "deprecated": false,
- "trackAdoption": false,
- "initialIsOpen": false
- }
- ],
- "objects": [
- {
- "parentPluginId": "@kbn/subscription-tracking",
- "id": "def-common.SubscriptionTrackingContext",
- "type": "Object",
- "tags": [],
- "label": "SubscriptionTrackingContext",
- "description": [],
- "signature": [
- "React.Context<",
- {
- "pluginId": "@kbn/subscription-tracking",
- "scope": "common",
- "docId": "kibKbnSubscriptionTrackingPluginApi",
- "section": "def-common.Services",
- "text": "Services"
- },
- " | null>"
- ],
- "path": "packages/kbn-subscription-tracking/src/services.tsx",
- "deprecated": false,
- "trackAdoption": false,
- "initialIsOpen": false
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/api_docs/kbn_subscription_tracking.mdx b/api_docs/kbn_subscription_tracking.mdx
deleted file mode 100644
index cb9d77213b20a..0000000000000
--- a/api_docs/kbn_subscription_tracking.mdx
+++ /dev/null
@@ -1,42 +0,0 @@
----
-####
-#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system.
-#### Reach out in #docs-engineering for more info.
-####
-id: kibKbnSubscriptionTrackingPluginApi
-slug: /kibana-dev-docs/api/kbn-subscription-tracking
-title: "@kbn/subscription-tracking"
-image: https://source.unsplash.com/400x175/?github
-description: API docs for the @kbn/subscription-tracking plugin
-date: 2023-11-23
-tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/subscription-tracking']
----
-import kbnSubscriptionTrackingObj from './kbn_subscription_tracking.devdocs.json';
-
-
-
-Contact [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) for questions regarding this plugin.
-
-**Code health stats**
-
-| Public API count | Any count | Items lacking comments | Missing exports |
-|-------------------|-----------|------------------------|-----------------|
-| 24 | 0 | 16 | 0 |
-
-## Common
-
-### Objects
-
-
-### Functions
-
-
-### Interfaces
-
-
-### Enums
-
-
-### Consts, variables and types
-
-
diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx
index 6d7c5507de514..8d2a3a24a03ec 100644
--- a/api_docs/kbn_telemetry_tools.mdx
+++ b/api_docs/kbn_telemetry_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools
title: "@kbn/telemetry-tools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/telemetry-tools plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools']
---
import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json';
diff --git a/api_docs/kbn_test.devdocs.json b/api_docs/kbn_test.devdocs.json
index 67c1c7a4a48c1..68147342a7a5e 100644
--- a/api_docs/kbn_test.devdocs.json
+++ b/api_docs/kbn_test.devdocs.json
@@ -3136,7 +3136,7 @@
"signature": [
"Pick<",
"ServerlessOptions",
- ", \"host\" | \"tag\" | \"image\" | \"resources\"> | undefined"
+ ", \"host\" | \"tag\" | \"image\" | \"resources\" | \"kibanaUrl\"> | undefined"
],
"path": "packages/kbn-test/src/es/test_es_cluster.ts",
"deprecated": false,
diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx
index 12388b94bf8ab..26bd92c11cfdd 100644
--- a/api_docs/kbn_test.mdx
+++ b/api_docs/kbn_test.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test
title: "@kbn/test"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test plugin
-date: 2023-11-23
+date: 2023-11-24
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 991ca848c3082..66f0cef896744 100644
--- a/api_docs/kbn_test_jest_helpers.mdx
+++ b/api_docs/kbn_test_jest_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers
title: "@kbn/test-jest-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test-jest-helpers plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers']
---
import kbnTestJestHelpersObj from './kbn_test_jest_helpers.devdocs.json';
diff --git a/api_docs/kbn_test_subj_selector.mdx b/api_docs/kbn_test_subj_selector.mdx
index 5731bdebe64a8..6d6ad632a4156 100644
--- a/api_docs/kbn_test_subj_selector.mdx
+++ b/api_docs/kbn_test_subj_selector.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector
title: "@kbn/test-subj-selector"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test-subj-selector plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector']
---
import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json';
diff --git a/api_docs/kbn_text_based_editor.devdocs.json b/api_docs/kbn_text_based_editor.devdocs.json
index 252a6537ae639..69205611cafdf 100644
--- a/api_docs/kbn_text_based_editor.devdocs.json
+++ b/api_docs/kbn_text_based_editor.devdocs.json
@@ -192,7 +192,9 @@
"type": "CompoundType",
"tags": [],
"label": "query",
- "description": [],
+ "description": [
+ "The aggregate type query"
+ ],
"signature": [
"{ sql: string; } | { esql: string; }"
],
@@ -206,7 +208,9 @@
"type": "Function",
"tags": [],
"label": "onTextLangQueryChange",
- "description": [],
+ "description": [
+ "Callback running everytime the query changes"
+ ],
"signature": [
"(query: ",
{
@@ -252,14 +256,47 @@
"type": "Function",
"tags": [],
"label": "onTextLangQuerySubmit",
- "description": [],
+ "description": [
+ "Callback running when the user submits the query"
+ ],
"signature": [
- "() => void"
+ "(query?: ",
+ {
+ "pluginId": "@kbn/es-query",
+ "scope": "common",
+ "docId": "kibKbnEsQueryPluginApi",
+ "section": "def-common.AggregateQuery",
+ "text": "AggregateQuery"
+ },
+ " | undefined) => void"
],
"path": "packages/kbn-text-based-editor/src/text_based_languages_editor.tsx",
"deprecated": false,
"trackAdoption": false,
- "children": [],
+ "children": [
+ {
+ "parentPluginId": "@kbn/text-based-editor",
+ "id": "def-public.TextBasedLanguagesEditorProps.onTextLangQuerySubmit.$1",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "query",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/es-query",
+ "scope": "common",
+ "docId": "kibKbnEsQueryPluginApi",
+ "section": "def-common.AggregateQuery",
+ "text": "AggregateQuery"
+ },
+ " | undefined"
+ ],
+ "path": "packages/kbn-text-based-editor/src/text_based_languages_editor.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": false
+ }
+ ],
"returnComment": []
},
{
@@ -268,7 +305,9 @@
"type": "Function",
"tags": [],
"label": "expandCodeEditor",
- "description": [],
+ "description": [
+ "Can be used to expand/minimize the editor"
+ ],
"signature": [
"(status: boolean) => void"
],
@@ -300,7 +339,9 @@
"type": "boolean",
"tags": [],
"label": "isCodeEditorExpanded",
- "description": [],
+ "description": [
+ "If it is true, the editor initializes with height EDITOR_INITIAL_HEIGHT_EXPANDED"
+ ],
"path": "packages/kbn-text-based-editor/src/text_based_languages_editor.tsx",
"deprecated": false,
"trackAdoption": false
@@ -311,7 +352,9 @@
"type": "CompoundType",
"tags": [],
"label": "detectTimestamp",
- "description": [],
+ "description": [
+ "If it is true, the editor displays the message @timestamp found\nThe text based queries are relying on adhoc dataviews which\ncan have an @timestamp timefield or nothing"
+ ],
"signature": [
"boolean | undefined"
],
@@ -325,7 +368,9 @@
"type": "Array",
"tags": [],
"label": "errors",
- "description": [],
+ "description": [
+ "Array of errors"
+ ],
"signature": [
"Error[] | undefined"
],
@@ -339,7 +384,9 @@
"type": "string",
"tags": [],
"label": "warning",
- "description": [],
+ "description": [
+ "Warning string as it comes from ES"
+ ],
"signature": [
"string | undefined"
],
@@ -353,7 +400,9 @@
"type": "CompoundType",
"tags": [],
"label": "isDisabled",
- "description": [],
+ "description": [
+ "Disables the editor"
+ ],
"signature": [
"boolean | undefined"
],
@@ -367,7 +416,9 @@
"type": "CompoundType",
"tags": [],
"label": "isDarkMode",
- "description": [],
+ "description": [
+ "Indicator if the editor is on dark mode"
+ ],
"signature": [
"boolean | undefined"
],
@@ -395,7 +446,9 @@
"type": "CompoundType",
"tags": [],
"label": "hideMinimizeButton",
- "description": [],
+ "description": [
+ "If true it hides the minimize button and the user can't return to the minimized version\nUseful when the application doesn't want to give this capability"
+ ],
"signature": [
"boolean | undefined"
],
@@ -409,7 +462,41 @@
"type": "CompoundType",
"tags": [],
"label": "hideRunQueryText",
- "description": [],
+ "description": [
+ "Hide the Run query information which appears on the footer"
+ ],
+ "signature": [
+ "boolean | undefined"
+ ],
+ "path": "packages/kbn-text-based-editor/src/text_based_languages_editor.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/text-based-editor",
+ "id": "def-public.TextBasedLanguagesEditorProps.editorIsInline",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "editorIsInline",
+ "description": [
+ "This is used for applications (such as the inline editing flyout in dashboards)\nwhich want to add the editor without being part of the Unified search component\nIt renders a submit query button inside the editor"
+ ],
+ "signature": [
+ "boolean | undefined"
+ ],
+ "path": "packages/kbn-text-based-editor/src/text_based_languages_editor.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/text-based-editor",
+ "id": "def-public.TextBasedLanguagesEditorProps.disableSubmitAction",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "disableSubmitAction",
+ "description": [
+ "Disables the submit query action"
+ ],
"signature": [
"boolean | undefined"
],
diff --git a/api_docs/kbn_text_based_editor.mdx b/api_docs/kbn_text_based_editor.mdx
index beac743590acd..3438df6c36158 100644
--- a/api_docs/kbn_text_based_editor.mdx
+++ b/api_docs/kbn_text_based_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-text-based-editor
title: "@kbn/text-based-editor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/text-based-editor plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/text-based-editor']
---
import kbnTextBasedEditorObj from './kbn_text_based_editor.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 22 | 0 | 21 | 0 |
+| 25 | 0 | 10 | 0 |
## Client
diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx
index d6e469fdfe3cc..559b916f316f8 100644
--- a/api_docs/kbn_tooling_log.mdx
+++ b/api_docs/kbn_tooling_log.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log
title: "@kbn/tooling-log"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/tooling-log plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log']
---
import kbnToolingLogObj from './kbn_tooling_log.devdocs.json';
diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx
index 48bfcb00632bb..c31eea6320ff6 100644
--- a/api_docs/kbn_ts_projects.mdx
+++ b/api_docs/kbn_ts_projects.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects
title: "@kbn/ts-projects"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ts-projects plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects']
---
import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json';
diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx
index bcf59bc086418..ef669a4a63fd1 100644
--- a/api_docs/kbn_typed_react_router_config.mdx
+++ b/api_docs/kbn_typed_react_router_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config
title: "@kbn/typed-react-router-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/typed-react-router-config plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config']
---
import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json';
diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx
index 856e72da241d4..dc94ba9fc6d84 100644
--- a/api_docs/kbn_ui_actions_browser.mdx
+++ b/api_docs/kbn_ui_actions_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser
title: "@kbn/ui-actions-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ui-actions-browser plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser']
---
import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json';
diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx
index e7f596a32adf3..69b6bed27beb5 100644
--- a/api_docs/kbn_ui_shared_deps_src.mdx
+++ b/api_docs/kbn_ui_shared_deps_src.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src
title: "@kbn/ui-shared-deps-src"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ui-shared-deps-src plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src']
---
import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.devdocs.json';
diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx
index 24835989c2930..0c207dbf329a9 100644
--- a/api_docs/kbn_ui_theme.mdx
+++ b/api_docs/kbn_ui_theme.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme
title: "@kbn/ui-theme"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ui-theme plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme']
---
import kbnUiThemeObj from './kbn_ui_theme.devdocs.json';
diff --git a/api_docs/kbn_unified_data_table.mdx b/api_docs/kbn_unified_data_table.mdx
index 81e535d8f5dee..642369b1b596f 100644
--- a/api_docs/kbn_unified_data_table.mdx
+++ b/api_docs/kbn_unified_data_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-data-table
title: "@kbn/unified-data-table"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unified-data-table plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-data-table']
---
import kbnUnifiedDataTableObj from './kbn_unified_data_table.devdocs.json';
diff --git a/api_docs/kbn_unified_doc_viewer.mdx b/api_docs/kbn_unified_doc_viewer.mdx
index 873f842331328..b7503520ea443 100644
--- a/api_docs/kbn_unified_doc_viewer.mdx
+++ b/api_docs/kbn_unified_doc_viewer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-doc-viewer
title: "@kbn/unified-doc-viewer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unified-doc-viewer plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-doc-viewer']
---
import kbnUnifiedDocViewerObj from './kbn_unified_doc_viewer.devdocs.json';
diff --git a/api_docs/kbn_unified_field_list.mdx b/api_docs/kbn_unified_field_list.mdx
index 92b9026f18c64..a96b182fbc7eb 100644
--- a/api_docs/kbn_unified_field_list.mdx
+++ b/api_docs/kbn_unified_field_list.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-field-list
title: "@kbn/unified-field-list"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unified-field-list plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-field-list']
---
import kbnUnifiedFieldListObj from './kbn_unified_field_list.devdocs.json';
diff --git a/api_docs/kbn_unsaved_changes_badge.mdx b/api_docs/kbn_unsaved_changes_badge.mdx
index 3593a537afc42..7ee27d7bc404e 100644
--- a/api_docs/kbn_unsaved_changes_badge.mdx
+++ b/api_docs/kbn_unsaved_changes_badge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unsaved-changes-badge
title: "@kbn/unsaved-changes-badge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unsaved-changes-badge plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-badge']
---
import kbnUnsavedChangesBadgeObj from './kbn_unsaved_changes_badge.devdocs.json';
diff --git a/api_docs/kbn_url_state.mdx b/api_docs/kbn_url_state.mdx
index 4531e270785f4..6adf3b33d0bc8 100644
--- a/api_docs/kbn_url_state.mdx
+++ b/api_docs/kbn_url_state.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-url-state
title: "@kbn/url-state"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/url-state plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/url-state']
---
import kbnUrlStateObj from './kbn_url_state.devdocs.json';
diff --git a/api_docs/kbn_use_tracked_promise.mdx b/api_docs/kbn_use_tracked_promise.mdx
index 29c3df1ac7451..9f8ae1d37b97d 100644
--- a/api_docs/kbn_use_tracked_promise.mdx
+++ b/api_docs/kbn_use_tracked_promise.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-use-tracked-promise
title: "@kbn/use-tracked-promise"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/use-tracked-promise plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/use-tracked-promise']
---
import kbnUseTrackedPromiseObj from './kbn_use_tracked_promise.devdocs.json';
diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx
index 65827ee8b67a0..0c3283730fadc 100644
--- a/api_docs/kbn_user_profile_components.mdx
+++ b/api_docs/kbn_user_profile_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components
title: "@kbn/user-profile-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/user-profile-components plugin
-date: 2023-11-23
+date: 2023-11-24
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 c65dc061b867e..15bcb14dad5ec 100644
--- a/api_docs/kbn_utility_types.mdx
+++ b/api_docs/kbn_utility_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types
title: "@kbn/utility-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/utility-types plugin
-date: 2023-11-23
+date: 2023-11-24
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 2a9954b00e77f..9eeb4f7dd87ca 100644
--- a/api_docs/kbn_utility_types_jest.mdx
+++ b/api_docs/kbn_utility_types_jest.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest
title: "@kbn/utility-types-jest"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/utility-types-jest plugin
-date: 2023-11-23
+date: 2023-11-24
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 9251ed66582d5..f48fa2ccb5de1 100644
--- a/api_docs/kbn_utils.mdx
+++ b/api_docs/kbn_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils
title: "@kbn/utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils']
---
import kbnUtilsObj from './kbn_utils.devdocs.json';
diff --git a/api_docs/kbn_visualization_ui_components.mdx b/api_docs/kbn_visualization_ui_components.mdx
index 3b8e5cf525570..6aa1f6ab5b420 100644
--- a/api_docs/kbn_visualization_ui_components.mdx
+++ b/api_docs/kbn_visualization_ui_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-ui-components
title: "@kbn/visualization-ui-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/visualization-ui-components plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-ui-components']
---
import kbnVisualizationUiComponentsObj from './kbn_visualization_ui_components.devdocs.json';
diff --git a/api_docs/kbn_xstate_utils.mdx b/api_docs/kbn_xstate_utils.mdx
index acae26f7efa78..7ec784c06d025 100644
--- a/api_docs/kbn_xstate_utils.mdx
+++ b/api_docs/kbn_xstate_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-xstate-utils
title: "@kbn/xstate-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/xstate-utils plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/xstate-utils']
---
import kbnXstateUtilsObj from './kbn_xstate_utils.devdocs.json';
diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx
index 8244dcdb420c6..6a5a5fa5f550e 100644
--- a/api_docs/kbn_yarn_lock_validator.mdx
+++ b/api_docs/kbn_yarn_lock_validator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator
title: "@kbn/yarn-lock-validator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/yarn-lock-validator plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator']
---
import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json';
diff --git a/api_docs/kbn_zod_helpers.mdx b/api_docs/kbn_zod_helpers.mdx
index 899cde2838338..e4114f50252e8 100644
--- a/api_docs/kbn_zod_helpers.mdx
+++ b/api_docs/kbn_zod_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-zod-helpers
title: "@kbn/zod-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/zod-helpers plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/zod-helpers']
---
import kbnZodHelpersObj from './kbn_zod_helpers.devdocs.json';
diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx
index 9d9524374063a..b484b2515532d 100644
--- a/api_docs/kibana_overview.mdx
+++ b/api_docs/kibana_overview.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview
title: "kibanaOverview"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kibanaOverview plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview']
---
import kibanaOverviewObj from './kibana_overview.devdocs.json';
diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx
index 97a84f619663c..97ddd2c8451f8 100644
--- a/api_docs/kibana_react.mdx
+++ b/api_docs/kibana_react.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact
title: "kibanaReact"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kibanaReact plugin
-date: 2023-11-23
+date: 2023-11-24
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 4865b6d1692d2..79cab5da50f02 100644
--- a/api_docs/kibana_utils.mdx
+++ b/api_docs/kibana_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils
title: "kibanaUtils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kibanaUtils plugin
-date: 2023-11-23
+date: 2023-11-24
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 c9c6127bf3320..64b0193bdd720 100644
--- a/api_docs/kubernetes_security.mdx
+++ b/api_docs/kubernetes_security.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity
title: "kubernetesSecurity"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kubernetesSecurity plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity']
---
import kubernetesSecurityObj from './kubernetes_security.devdocs.json';
diff --git a/api_docs/lens.devdocs.json b/api_docs/lens.devdocs.json
index 60b7cbe97d8d6..cf20e0cb4737c 100644
--- a/api_docs/lens.devdocs.json
+++ b/api_docs/lens.devdocs.json
@@ -360,7 +360,7 @@
"\nGets the Lens embeddable's datasource and visualization states\nupdates the embeddable input"
],
"signature": [
- "(datasourceState: unknown, visualizationState: unknown) => Promise"
+ "(datasourceState: unknown, visualizationState: unknown, visualizationType?: string | undefined) => Promise"
],
"path": "x-pack/plugins/lens/public/embeddable/embeddable.tsx",
"deprecated": false,
@@ -395,6 +395,67 @@
"deprecated": false,
"trackAdoption": false,
"isRequired": true
+ },
+ {
+ "parentPluginId": "lens",
+ "id": "def-public.Embeddable.updateVisualization.$3",
+ "type": "string",
+ "tags": [],
+ "label": "visualizationType",
+ "description": [],
+ "signature": [
+ "string | undefined"
+ ],
+ "path": "x-pack/plugins/lens/public/embeddable/embeddable.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": false
+ }
+ ],
+ "returnComment": []
+ },
+ {
+ "parentPluginId": "lens",
+ "id": "def-public.Embeddable.updateSuggestion",
+ "type": "Function",
+ "tags": [],
+ "label": "updateSuggestion",
+ "description": [],
+ "signature": [
+ "(attrs: ",
+ {
+ "pluginId": "lens",
+ "scope": "public",
+ "docId": "kibLensPluginApi",
+ "section": "def-public.LensSavedObjectAttributes",
+ "text": "LensSavedObjectAttributes"
+ },
+ ") => Promise"
+ ],
+ "path": "x-pack/plugins/lens/public/embeddable/embeddable.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "lens",
+ "id": "def-public.Embeddable.updateSuggestion.$1",
+ "type": "Object",
+ "tags": [],
+ "label": "attrs",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "lens",
+ "scope": "public",
+ "docId": "kibLensPluginApi",
+ "section": "def-public.LensSavedObjectAttributes",
+ "text": "LensSavedObjectAttributes"
+ }
+ ],
+ "path": "x-pack/plugins/lens/public/embeddable/embeddable.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
}
],
"returnComment": []
@@ -5131,6 +5192,20 @@
"path": "x-pack/plugins/lens/public/types.ts",
"deprecated": false,
"trackAdoption": false
+ },
+ {
+ "parentPluginId": "lens",
+ "id": "def-public.SuggestionRequest.datasourceId",
+ "type": "string",
+ "tags": [],
+ "label": "datasourceId",
+ "description": [],
+ "signature": [
+ "string | undefined"
+ ],
+ "path": "x-pack/plugins/lens/public/types.ts",
+ "deprecated": false,
+ "trackAdoption": false
}
],
"initialIsOpen": false
@@ -5222,6 +5297,20 @@
"path": "x-pack/plugins/lens/public/types.ts",
"deprecated": false,
"trackAdoption": false
+ },
+ {
+ "parentPluginId": "lens",
+ "id": "def-public.TableSuggestion.notAssignedMetrics",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "notAssignedMetrics",
+ "description": [],
+ "signature": [
+ "boolean | undefined"
+ ],
+ "path": "x-pack/plugins/lens/public/types.ts",
+ "deprecated": false,
+ "trackAdoption": false
}
],
"initialIsOpen": false
diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx
index ad107367d9c08..64e9847067508 100644
--- a/api_docs/lens.mdx
+++ b/api_docs/lens.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens
title: "lens"
image: https://source.unsplash.com/400x175/?github
description: API docs for the lens plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens']
---
import lensObj from './lens.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 625 | 0 | 526 | 60 |
+| 630 | 0 | 531 | 60 |
## Client
diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx
index cec57dd9e77d1..1f9e8f207d61d 100644
--- a/api_docs/license_api_guard.mdx
+++ b/api_docs/license_api_guard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard
title: "licenseApiGuard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the licenseApiGuard plugin
-date: 2023-11-23
+date: 2023-11-24
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 c4bec3be0de1c..1bc8d37c785c7 100644
--- a/api_docs/license_management.mdx
+++ b/api_docs/license_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement
title: "licenseManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the licenseManagement plugin
-date: 2023-11-23
+date: 2023-11-24
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 5d8ca585c73f4..a7d4aa0052963 100644
--- a/api_docs/licensing.mdx
+++ b/api_docs/licensing.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing
title: "licensing"
image: https://source.unsplash.com/400x175/?github
description: API docs for the licensing plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing']
---
import licensingObj from './licensing.devdocs.json';
diff --git a/api_docs/links.mdx b/api_docs/links.mdx
index 9000d4f12ee4d..cea83377b4b9c 100644
--- a/api_docs/links.mdx
+++ b/api_docs/links.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/links
title: "links"
image: https://source.unsplash.com/400x175/?github
description: API docs for the links plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'links']
---
import linksObj from './links.devdocs.json';
diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx
index 7d101cb3d55a4..11dd684808180 100644
--- a/api_docs/lists.mdx
+++ b/api_docs/lists.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists
title: "lists"
image: https://source.unsplash.com/400x175/?github
description: API docs for the lists plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists']
---
import listsObj from './lists.devdocs.json';
diff --git a/api_docs/log_explorer.mdx b/api_docs/log_explorer.mdx
index 524e872ca9420..941362e136e0c 100644
--- a/api_docs/log_explorer.mdx
+++ b/api_docs/log_explorer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logExplorer
title: "logExplorer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the logExplorer plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logExplorer']
---
import logExplorerObj from './log_explorer.devdocs.json';
diff --git a/api_docs/logs_shared.mdx b/api_docs/logs_shared.mdx
index 4adaddd261cbd..3ba0f7e13555e 100644
--- a/api_docs/logs_shared.mdx
+++ b/api_docs/logs_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsShared
title: "logsShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the logsShared plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsShared']
---
import logsSharedObj from './logs_shared.devdocs.json';
diff --git a/api_docs/management.mdx b/api_docs/management.mdx
index 5689549a7c4c3..6c589a134ded1 100644
--- a/api_docs/management.mdx
+++ b/api_docs/management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management
title: "management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the management plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management']
---
import managementObj from './management.devdocs.json';
diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx
index 93663b927d2b8..79d2de6e30a99 100644
--- a/api_docs/maps.mdx
+++ b/api_docs/maps.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps
title: "maps"
image: https://source.unsplash.com/400x175/?github
description: API docs for the maps plugin
-date: 2023-11-23
+date: 2023-11-24
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 adda12e2380f9..95346b5242e52 100644
--- a/api_docs/maps_ems.mdx
+++ b/api_docs/maps_ems.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms
title: "mapsEms"
image: https://source.unsplash.com/400x175/?github
description: API docs for the mapsEms plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms']
---
import mapsEmsObj from './maps_ems.devdocs.json';
diff --git a/api_docs/metrics_data_access.mdx b/api_docs/metrics_data_access.mdx
index 8d94eb7d1c371..44472b1662dc7 100644
--- a/api_docs/metrics_data_access.mdx
+++ b/api_docs/metrics_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/metricsDataAccess
title: "metricsDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the metricsDataAccess plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'metricsDataAccess']
---
import metricsDataAccessObj from './metrics_data_access.devdocs.json';
diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx
index a034f538ff043..0f8857b800940 100644
--- a/api_docs/ml.mdx
+++ b/api_docs/ml.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml
title: "ml"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ml plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml']
---
import mlObj from './ml.devdocs.json';
diff --git a/api_docs/mock_idp_plugin.devdocs.json b/api_docs/mock_idp_plugin.devdocs.json
new file mode 100644
index 0000000000000..9c7b5bd1558d8
--- /dev/null
+++ b/api_docs/mock_idp_plugin.devdocs.json
@@ -0,0 +1,410 @@
+{
+ "id": "mockIdpPlugin",
+ "client": {
+ "classes": [],
+ "functions": [],
+ "interfaces": [],
+ "enums": [],
+ "misc": [],
+ "objects": []
+ },
+ "server": {
+ "classes": [],
+ "functions": [],
+ "interfaces": [],
+ "enums": [],
+ "misc": [],
+ "objects": []
+ },
+ "common": {
+ "classes": [],
+ "functions": [
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.createMockIdpMetadata",
+ "type": "Function",
+ "tags": [],
+ "label": "createMockIdpMetadata",
+ "description": [
+ "\nCreates XML metadata for our mock identity provider.\n\nThis can be saved to file and used to configure Elasticsearch SAML realm.\n"
+ ],
+ "signature": [
+ "(kibanaUrl: string) => Promise"
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/utils.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.createMockIdpMetadata.$1",
+ "type": "string",
+ "tags": [],
+ "label": "kibanaUrl",
+ "description": [
+ "Fully qualified URL where Kibana is hosted (including base path)"
+ ],
+ "signature": [
+ "string"
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/utils.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.createSAMLResponse",
+ "type": "Function",
+ "tags": [],
+ "label": "createSAMLResponse",
+ "description": [
+ "\nCreates a SAML response that can be passed directly to the Kibana ACS endpoint to authenticate a user.\n"
+ ],
+ "signature": [
+ "(options: { kibanaUrl: string; authnRequestId?: string | undefined; username: string; fullname?: string | undefined; email?: string | undefined; roles: string[]; }) => Promise"
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/utils.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.createSAMLResponse.$1",
+ "type": "Object",
+ "tags": [],
+ "label": "options",
+ "description": [],
+ "path": "packages/kbn-mock-idp-plugin/common/utils.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.createSAMLResponse.$1.kibanaUrl",
+ "type": "string",
+ "tags": [],
+ "label": "kibanaUrl",
+ "description": [
+ "Fully qualified URL where Kibana is hosted (including base path)"
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/utils.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.createSAMLResponse.$1.authnRequestId",
+ "type": "string",
+ "tags": [],
+ "label": "authnRequestId",
+ "description": [
+ "ID from SAML authentication request"
+ ],
+ "signature": [
+ "string | undefined"
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/utils.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.createSAMLResponse.$1.username",
+ "type": "string",
+ "tags": [],
+ "label": "username",
+ "description": [],
+ "path": "packages/kbn-mock-idp-plugin/common/utils.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.createSAMLResponse.$1.fullname",
+ "type": "string",
+ "tags": [],
+ "label": "fullname",
+ "description": [],
+ "signature": [
+ "string | undefined"
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/utils.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.createSAMLResponse.$1.email",
+ "type": "string",
+ "tags": [],
+ "label": "email",
+ "description": [],
+ "signature": [
+ "string | undefined"
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/utils.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.createSAMLResponse.$1.roles",
+ "type": "Array",
+ "tags": [],
+ "label": "roles",
+ "description": [],
+ "signature": [
+ "string[]"
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/utils.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ]
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.ensureSAMLRoleMapping",
+ "type": "Function",
+ "tags": [],
+ "label": "ensureSAMLRoleMapping",
+ "description": [
+ "\nCreates the role mapping required for developers to authenticate using SAML."
+ ],
+ "signature": [
+ "(client: ",
+ "default",
+ ") => Promise"
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/utils.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.ensureSAMLRoleMapping.$1",
+ "type": "Object",
+ "tags": [],
+ "label": "client",
+ "description": [],
+ "signature": [
+ "default"
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/utils.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.parseSAMLAuthnRequest",
+ "type": "Function",
+ "tags": [],
+ "label": "parseSAMLAuthnRequest",
+ "description": [],
+ "signature": [
+ "(samlRequest: string) => Promise<{ AssertionConsumerServiceURL: string; Destination: string; ID: string; IssueInstant: string; }>"
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/utils.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.parseSAMLAuthnRequest.$1",
+ "type": "string",
+ "tags": [],
+ "label": "samlRequest",
+ "description": [],
+ "signature": [
+ "string"
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/utils.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ }
+ ],
+ "interfaces": [],
+ "enums": [],
+ "misc": [
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.MOCK_IDP_ATTRIBUTE_EMAIL",
+ "type": "string",
+ "tags": [],
+ "label": "MOCK_IDP_ATTRIBUTE_EMAIL",
+ "description": [],
+ "signature": [
+ "\"http://saml.elastic-cloud.com/attributes/email\""
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/constants.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.MOCK_IDP_ATTRIBUTE_NAME",
+ "type": "string",
+ "tags": [],
+ "label": "MOCK_IDP_ATTRIBUTE_NAME",
+ "description": [],
+ "signature": [
+ "\"http://saml.elastic-cloud.com/attributes/name\""
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/constants.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.MOCK_IDP_ATTRIBUTE_PRINCIPAL",
+ "type": "string",
+ "tags": [],
+ "label": "MOCK_IDP_ATTRIBUTE_PRINCIPAL",
+ "description": [],
+ "signature": [
+ "\"http://saml.elastic-cloud.com/attributes/principal\""
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/constants.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.MOCK_IDP_ATTRIBUTE_ROLES",
+ "type": "string",
+ "tags": [],
+ "label": "MOCK_IDP_ATTRIBUTE_ROLES",
+ "description": [],
+ "signature": [
+ "\"http://saml.elastic-cloud.com/attributes/roles\""
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/constants.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.MOCK_IDP_ENTITY_ID",
+ "type": "string",
+ "tags": [],
+ "label": "MOCK_IDP_ENTITY_ID",
+ "description": [],
+ "signature": [
+ "\"urn:mock-idp\""
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/constants.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.MOCK_IDP_LOGIN_PATH",
+ "type": "string",
+ "tags": [],
+ "label": "MOCK_IDP_LOGIN_PATH",
+ "description": [],
+ "signature": [
+ "\"/mock_idp/login\""
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/constants.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.MOCK_IDP_LOGOUT_PATH",
+ "type": "string",
+ "tags": [],
+ "label": "MOCK_IDP_LOGOUT_PATH",
+ "description": [],
+ "signature": [
+ "\"/mock_idp/logout\""
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/constants.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.MOCK_IDP_METADATA_PATH",
+ "type": "string",
+ "tags": [],
+ "label": "MOCK_IDP_METADATA_PATH",
+ "description": [],
+ "path": "packages/kbn-mock-idp-plugin/common/constants.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.MOCK_IDP_PLUGIN_PATH",
+ "type": "string",
+ "tags": [],
+ "label": "MOCK_IDP_PLUGIN_PATH",
+ "description": [],
+ "path": "packages/kbn-mock-idp-plugin/common/constants.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.MOCK_IDP_REALM_NAME",
+ "type": "string",
+ "tags": [],
+ "label": "MOCK_IDP_REALM_NAME",
+ "description": [],
+ "signature": [
+ "\"mock-idp\""
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/constants.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "mockIdpPlugin",
+ "id": "def-common.MOCK_IDP_ROLE_MAPPING_NAME",
+ "type": "string",
+ "tags": [],
+ "label": "MOCK_IDP_ROLE_MAPPING_NAME",
+ "description": [],
+ "signature": [
+ "\"mock-idp-mapping\""
+ ],
+ "path": "packages/kbn-mock-idp-plugin/common/constants.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ }
+ ],
+ "objects": []
+ }
+}
\ No newline at end of file
diff --git a/api_docs/mock_idp_plugin.mdx b/api_docs/mock_idp_plugin.mdx
new file mode 100644
index 0000000000000..3d44616a0f99e
--- /dev/null
+++ b/api_docs/mock_idp_plugin.mdx
@@ -0,0 +1,33 @@
+---
+####
+#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system.
+#### Reach out in #docs-engineering for more info.
+####
+id: kibMockIdpPluginPluginApi
+slug: /kibana-dev-docs/api/mockIdpPlugin
+title: "mockIdpPlugin"
+image: https://source.unsplash.com/400x175/?github
+description: API docs for the mockIdpPlugin plugin
+date: 2023-11-24
+tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mockIdpPlugin']
+---
+import mockIdpPluginObj from './mock_idp_plugin.devdocs.json';
+
+
+
+Contact [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) for questions regarding this plugin.
+
+**Code health stats**
+
+| Public API count | Any count | Items lacking comments | Missing exports |
+|-------------------|-----------|------------------------|-----------------|
+| 25 | 0 | 19 | 0 |
+
+## Common
+
+### Functions
+
+
+### Consts, variables and types
+
+
diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx
index be7d37552ac49..20edf3d419d3b 100644
--- a/api_docs/monitoring.mdx
+++ b/api_docs/monitoring.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring
title: "monitoring"
image: https://source.unsplash.com/400x175/?github
description: API docs for the monitoring plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring']
---
import monitoringObj from './monitoring.devdocs.json';
diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx
index f342a907bebe1..8f588d445e246 100644
--- a/api_docs/monitoring_collection.mdx
+++ b/api_docs/monitoring_collection.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection
title: "monitoringCollection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the monitoringCollection plugin
-date: 2023-11-23
+date: 2023-11-24
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 939df94b4fcfe..5d37da15cd9d6 100644
--- a/api_docs/navigation.mdx
+++ b/api_docs/navigation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation
title: "navigation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the navigation plugin
-date: 2023-11-23
+date: 2023-11-24
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 e51d9f388146c..cfd591f8a3000 100644
--- a/api_docs/newsfeed.mdx
+++ b/api_docs/newsfeed.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed
title: "newsfeed"
image: https://source.unsplash.com/400x175/?github
description: API docs for the newsfeed plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed']
---
import newsfeedObj from './newsfeed.devdocs.json';
diff --git a/api_docs/no_data_page.mdx b/api_docs/no_data_page.mdx
index 295adb8943eef..c3045c36eb578 100644
--- a/api_docs/no_data_page.mdx
+++ b/api_docs/no_data_page.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/noDataPage
title: "noDataPage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the noDataPage plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'noDataPage']
---
import noDataPageObj from './no_data_page.devdocs.json';
diff --git a/api_docs/notifications.mdx b/api_docs/notifications.mdx
index 492eb27610f7c..85b427d06edf5 100644
--- a/api_docs/notifications.mdx
+++ b/api_docs/notifications.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications
title: "notifications"
image: https://source.unsplash.com/400x175/?github
description: API docs for the notifications plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications']
---
import notificationsObj from './notifications.devdocs.json';
diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx
index dd5d6afdf79e8..9f4bc609803ca 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: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability']
---
import observabilityObj from './observability.devdocs.json';
diff --git a/api_docs/observability_a_i_assistant.devdocs.json b/api_docs/observability_a_i_assistant.devdocs.json
index 29b5cec0de507..6435132808953 100644
--- a/api_docs/observability_a_i_assistant.devdocs.json
+++ b/api_docs/observability_a_i_assistant.devdocs.json
@@ -19,7 +19,7 @@
"section": "def-common.Message",
"text": "Message"
},
- "[]; title: string; } & ",
+ "[]; title: string; dataTestSubj?: string | undefined; } & ",
{
"pluginId": "@kbn/shared-ux-utility",
"scope": "common",
diff --git a/api_docs/observability_a_i_assistant.mdx b/api_docs/observability_a_i_assistant.mdx
index 3d626f31faa8c..5c373c0862a37 100644
--- a/api_docs/observability_a_i_assistant.mdx
+++ b/api_docs/observability_a_i_assistant.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistant
title: "observabilityAIAssistant"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityAIAssistant plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistant']
---
import observabilityAIAssistantObj from './observability_a_i_assistant.devdocs.json';
diff --git a/api_docs/observability_log_explorer.mdx b/api_docs/observability_log_explorer.mdx
index b797ae0122b76..88c8b6253e4da 100644
--- a/api_docs/observability_log_explorer.mdx
+++ b/api_docs/observability_log_explorer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityLogExplorer
title: "observabilityLogExplorer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityLogExplorer plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityLogExplorer']
---
import observabilityLogExplorerObj from './observability_log_explorer.devdocs.json';
diff --git a/api_docs/observability_onboarding.mdx b/api_docs/observability_onboarding.mdx
index e3bb39815ea5b..42513d75e65f8 100644
--- a/api_docs/observability_onboarding.mdx
+++ b/api_docs/observability_onboarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityOnboarding
title: "observabilityOnboarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityOnboarding plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityOnboarding']
---
import observabilityOnboardingObj from './observability_onboarding.devdocs.json';
diff --git a/api_docs/observability_shared.devdocs.json b/api_docs/observability_shared.devdocs.json
index 61d166ec80f8d..3032e49529bf7 100644
--- a/api_docs/observability_shared.devdocs.json
+++ b/api_docs/observability_shared.devdocs.json
@@ -414,6 +414,53 @@
"returnComment": [],
"initialIsOpen": false
},
+ {
+ "parentPluginId": "observabilityShared",
+ "id": "def-public.EmbeddableProfilingSearchBar",
+ "type": "Function",
+ "tags": [],
+ "label": "EmbeddableProfilingSearchBar",
+ "description": [],
+ "signature": [
+ "(props: ",
+ {
+ "pluginId": "observabilityShared",
+ "scope": "public",
+ "docId": "kibObservabilitySharedPluginApi",
+ "section": "def-public.EmbeddableProfilingSearchBarProps",
+ "text": "EmbeddableProfilingSearchBarProps"
+ },
+ ") => JSX.Element"
+ ],
+ "path": "x-pack/plugins/observability_shared/public/components/profiling/embeddables/embeddable_profiling_search_bar.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "observabilityShared",
+ "id": "def-public.EmbeddableProfilingSearchBar.$1",
+ "type": "Object",
+ "tags": [],
+ "label": "props",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "observabilityShared",
+ "scope": "public",
+ "docId": "kibObservabilitySharedPluginApi",
+ "section": "def-public.EmbeddableProfilingSearchBarProps",
+ "text": "EmbeddableProfilingSearchBarProps"
+ }
+ ],
+ "path": "x-pack/plugins/observability_shared/public/components/profiling/embeddables/embeddable_profiling_search_bar.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
{
"parentPluginId": "observabilityShared",
"id": "def-public.getContextMenuItemsFromActions",
@@ -1912,6 +1959,138 @@
],
"initialIsOpen": false
},
+ {
+ "parentPluginId": "observabilityShared",
+ "id": "def-public.EmbeddableProfilingSearchBarProps",
+ "type": "Interface",
+ "tags": [],
+ "label": "EmbeddableProfilingSearchBarProps",
+ "description": [],
+ "path": "x-pack/plugins/observability_shared/public/components/profiling/embeddables/embeddable_profiling_search_bar.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "observabilityShared",
+ "id": "def-public.EmbeddableProfilingSearchBarProps.kuery",
+ "type": "string",
+ "tags": [],
+ "label": "kuery",
+ "description": [],
+ "path": "x-pack/plugins/observability_shared/public/components/profiling/embeddables/embeddable_profiling_search_bar.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "observabilityShared",
+ "id": "def-public.EmbeddableProfilingSearchBarProps.showDatePicker",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "showDatePicker",
+ "description": [],
+ "signature": [
+ "boolean | undefined"
+ ],
+ "path": "x-pack/plugins/observability_shared/public/components/profiling/embeddables/embeddable_profiling_search_bar.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "observabilityShared",
+ "id": "def-public.EmbeddableProfilingSearchBarProps.onQuerySubmit",
+ "type": "Function",
+ "tags": [],
+ "label": "onQuerySubmit",
+ "description": [],
+ "signature": [
+ "(params: { dateRange: { from: string; to: string; mode?: \"absolute\" | \"relative\" | undefined; }; query: string; }) => void"
+ ],
+ "path": "x-pack/plugins/observability_shared/public/components/profiling/embeddables/embeddable_profiling_search_bar.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "observabilityShared",
+ "id": "def-public.EmbeddableProfilingSearchBarProps.onQuerySubmit.$1",
+ "type": "Object",
+ "tags": [],
+ "label": "params",
+ "description": [],
+ "path": "x-pack/plugins/observability_shared/public/components/profiling/embeddables/embeddable_profiling_search_bar.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "observabilityShared",
+ "id": "def-public.EmbeddableProfilingSearchBarProps.onQuerySubmit.$1.dateRange",
+ "type": "Object",
+ "tags": [],
+ "label": "dateRange",
+ "description": [],
+ "signature": [
+ "{ from: string; to: string; mode?: \"absolute\" | \"relative\" | undefined; }"
+ ],
+ "path": "x-pack/plugins/observability_shared/public/components/profiling/embeddables/embeddable_profiling_search_bar.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "observabilityShared",
+ "id": "def-public.EmbeddableProfilingSearchBarProps.onQuerySubmit.$1.query",
+ "type": "string",
+ "tags": [],
+ "label": "query",
+ "description": [],
+ "path": "x-pack/plugins/observability_shared/public/components/profiling/embeddables/embeddable_profiling_search_bar.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ]
+ }
+ ],
+ "returnComment": []
+ },
+ {
+ "parentPluginId": "observabilityShared",
+ "id": "def-public.EmbeddableProfilingSearchBarProps.onRefresh",
+ "type": "Function",
+ "tags": [],
+ "label": "onRefresh",
+ "description": [],
+ "signature": [
+ "() => void"
+ ],
+ "path": "x-pack/plugins/observability_shared/public/components/profiling/embeddables/embeddable_profiling_search_bar.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [],
+ "returnComment": []
+ },
+ {
+ "parentPluginId": "observabilityShared",
+ "id": "def-public.EmbeddableProfilingSearchBarProps.rangeFrom",
+ "type": "string",
+ "tags": [],
+ "label": "rangeFrom",
+ "description": [],
+ "path": "x-pack/plugins/observability_shared/public/components/profiling/embeddables/embeddable_profiling_search_bar.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "observabilityShared",
+ "id": "def-public.EmbeddableProfilingSearchBarProps.rangeTo",
+ "type": "string",
+ "tags": [],
+ "label": "rangeTo",
+ "description": [],
+ "path": "x-pack/plugins/observability_shared/public/components/profiling/embeddables/embeddable_profiling_search_bar.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
{
"parentPluginId": "observabilityShared",
"id": "def-public.FetcherResult",
@@ -2620,6 +2799,23 @@
"trackAdoption": false,
"initialIsOpen": false
},
+ {
+ "parentPluginId": "observabilityShared",
+ "id": "def-public.EMBEDDABLE_PROFILING_SEARCH_BAR",
+ "type": "string",
+ "tags": [],
+ "label": "EMBEDDABLE_PROFILING_SEARCH_BAR",
+ "description": [
+ "Profiling search bar embeddable key"
+ ],
+ "signature": [
+ "\"EMBEDDABLE_PROFILING_SEARCH_BAR\""
+ ],
+ "path": "x-pack/plugins/observability_shared/public/components/profiling/embeddables/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
{
"parentPluginId": "observabilityShared",
"id": "def-public.LazyObservabilityPageTemplateProps",
diff --git a/api_docs/observability_shared.mdx b/api_docs/observability_shared.mdx
index c87a297141a48..ee2bdb82e8aff 100644
--- a/api_docs/observability_shared.mdx
+++ b/api_docs/observability_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityShared
title: "observabilityShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityShared plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityShared']
---
import observabilitySharedObj from './observability_shared.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observ
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 292 | 1 | 289 | 15 |
+| 305 | 1 | 301 | 15 |
## Client
diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx
index 210ea25a522b9..50f6be77e4a6f 100644
--- a/api_docs/osquery.mdx
+++ b/api_docs/osquery.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery
title: "osquery"
image: https://source.unsplash.com/400x175/?github
description: API docs for the osquery plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery']
---
import osqueryObj from './osquery.devdocs.json';
diff --git a/api_docs/painless_lab.mdx b/api_docs/painless_lab.mdx
index 824e7d8e1922f..8175255fac981 100644
--- a/api_docs/painless_lab.mdx
+++ b/api_docs/painless_lab.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/painlessLab
title: "painlessLab"
image: https://source.unsplash.com/400x175/?github
description: API docs for the painlessLab plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'painlessLab']
---
import painlessLabObj from './painless_lab.devdocs.json';
diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx
index 2df6c18331f02..0e98591c41022 100644
--- a/api_docs/plugin_directory.mdx
+++ b/api_docs/plugin_directory.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory
slug: /kibana-dev-docs/api-meta/plugin-api-directory
title: Directory
description: Directory of public APIs available through plugins or packages.
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
@@ -21,7 +21,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| API Count | Any Count | Missing comments | Missing exports |
|--------------|----------|-----------------|--------|
-| 76426 | 235 | 65361 | 1606 |
+| 76456 | 235 | 65364 | 1608 |
## Plugin Directory
@@ -62,7 +62,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Data view management app | 2 | 0 | 2 | 0 |
| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 922 | 0 | 257 | 4 |
| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | The Data Visualizer tools help you understand your data, by analyzing the metrics and fields in a log file or an existing Elasticsearch index. | 31 | 3 | 25 | 1 |
-| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin introduces the concept of dataset quality, where users can easily get an overview on the datasets they have. | 4 | 0 | 4 | 0 |
+| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin introduces the concept of dataset quality, where users can easily get an overview on the datasets they have. | 8 | 0 | 8 | 3 |
| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 12 | 0 | 10 | 3 |
| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin contains the Discover application and the saved search embeddable. | 133 | 0 | 90 | 20 |
| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 37 | 0 | 35 | 2 |
@@ -118,7 +118,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| kibanaUsageCollection | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 610 | 3 | 417 | 9 |
| | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | - | 5 | 0 | 5 | 1 |
-| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 625 | 0 | 526 | 60 |
+| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 630 | 0 | 531 | 60 |
| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 8 | 0 | 8 | 0 |
| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 4 | 0 | 4 | 1 |
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 117 | 0 | 42 | 10 |
@@ -132,6 +132,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | - | 60 | 0 | 60 | 0 |
| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | Exposes utilities for accessing metrics data | 104 | 8 | 104 | 4 |
| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the machine learning features provided by Elastic. | 150 | 3 | 64 | 33 |
+| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 25 | 0 | 19 | 0 |
| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 15 | 3 | 13 | 1 |
| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 9 | 0 | 9 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 35 | 0 | 35 | 2 |
@@ -142,7 +143,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 42 | 0 | 39 | 7 |
| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin exposes and registers observability log consumption features. | 15 | 0 | 15 | 1 |
| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 14 | 0 | 14 | 0 |
-| | [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) | - | 292 | 1 | 289 | 15 |
+| | [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) | - | 305 | 1 | 301 | 15 |
| | [@elastic/security-defend-workflows](https://github.com/orgs/elastic/teams/security-defend-workflows) | - | 24 | 0 | 24 | 7 |
| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 2 | 0 | 2 | 0 |
| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Presentation Utility Plugin is a set of common, shared components and toolkits for solutions within the Presentation space, (e.g. Dashboards, Canvas). | 219 | 2 | 164 | 11 |
@@ -151,7 +152,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 23 | 0 | 23 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Reporting Services enables applications to feature reports that the user can automate with Watcher and download later. | 22 | 0 | 6 | 0 |
| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 21 | 0 | 21 | 0 |
-| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 267 | 0 | 238 | 14 |
+| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 268 | 0 | 239 | 14 |
| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 24 | 0 | 19 | 2 |
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 129 | 2 | 118 | 4 |
| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 25 | 0 | 25 | 0 |
@@ -163,7 +164,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/kibana-reporting-services](https://github.com/orgs/elastic/teams/kibana-reporting-services) | Kibana Screenshotting Plugin | 32 | 0 | 8 | 4 |
| searchprofiler | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 |
| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides authentication and authorization features, and exposes functionality to understand the capabilities of the currently authenticated user. | 270 | 0 | 87 | 3 |
-| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 175 | 0 | 106 | 35 |
+| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 175 | 0 | 106 | 34 |
| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | ESS customizations for Security Solution. | 6 | 0 | 6 | 0 |
| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | Serverless customizations for security. | 7 | 0 | 7 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | The core Serverless plugin, providing APIs to Serverless Project plugins. | 19 | 0 | 18 | 0 |
@@ -181,7 +182,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 31 | 0 | 26 | 6 |
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 1 | 0 | 1 | 0 |
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 0 | 0 |
-| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 20 | 0 | 20 | 0 |
+| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 23 | 0 | 9 | 0 |
| | [@elastic/protections-experience](https://github.com/orgs/elastic/teams/protections-experience) | Elastic threat intelligence helps you see if you are open to or have been subject to current or historical known threats | 30 | 0 | 14 | 5 |
| | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 240 | 1 | 196 | 17 |
| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the transforms features provided by Elastic. Transforms enable you to convert existing Elasticsearch indices into summarized indices, which provide opportunities for new insights and analytics. | 4 | 0 | 4 | 1 |
@@ -637,12 +638,11 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 102 | 2 | 65 | 1 |
| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 4 | 0 | 2 | 0 |
| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 41 | 2 | 21 | 0 |
-| | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 24 | 0 | 16 | 0 |
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 5 | 1 |
| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 291 | 4 | 244 | 12 |
| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 137 | 5 | 105 | 2 |
| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 1 | 0 |
-| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 22 | 0 | 21 | 0 |
+| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 25 | 0 | 10 | 0 |
| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 72 | 0 | 55 | 0 |
| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 39 | 0 | 25 | 1 |
| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 86 | 0 | 86 | 1 |
diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx
index 1a76916f30b5b..b304c78a68d18 100644
--- a/api_docs/presentation_util.mdx
+++ b/api_docs/presentation_util.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil
title: "presentationUtil"
image: https://source.unsplash.com/400x175/?github
description: API docs for the presentationUtil plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil']
---
import presentationUtilObj from './presentation_util.devdocs.json';
diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx
index 0c41d0548522c..23aa981e85f98 100644
--- a/api_docs/profiling.mdx
+++ b/api_docs/profiling.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling
title: "profiling"
image: https://source.unsplash.com/400x175/?github
description: API docs for the profiling plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profiling']
---
import profilingObj from './profiling.devdocs.json';
diff --git a/api_docs/profiling_data_access.mdx b/api_docs/profiling_data_access.mdx
index 88d51f4d55d32..61dd441c93a0b 100644
--- a/api_docs/profiling_data_access.mdx
+++ b/api_docs/profiling_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profilingDataAccess
title: "profilingDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the profilingDataAccess plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profilingDataAccess']
---
import profilingDataAccessObj from './profiling_data_access.devdocs.json';
diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx
index f692c6679ea21..ed056a49bc6ce 100644
--- a/api_docs/remote_clusters.mdx
+++ b/api_docs/remote_clusters.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters
title: "remoteClusters"
image: https://source.unsplash.com/400x175/?github
description: API docs for the remoteClusters plugin
-date: 2023-11-23
+date: 2023-11-24
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 b2e2b3a7146c6..0618d9eb38804 100644
--- a/api_docs/reporting.mdx
+++ b/api_docs/reporting.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting
title: "reporting"
image: https://source.unsplash.com/400x175/?github
description: API docs for the reporting plugin
-date: 2023-11-23
+date: 2023-11-24
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 2f9ecd7de4604..469f3bf9e6244 100644
--- a/api_docs/rollup.mdx
+++ b/api_docs/rollup.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup
title: "rollup"
image: https://source.unsplash.com/400x175/?github
description: API docs for the rollup plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup']
---
import rollupObj from './rollup.devdocs.json';
diff --git a/api_docs/rule_registry.devdocs.json b/api_docs/rule_registry.devdocs.json
index 6a8f4d39d6857..713a8f7b36800 100644
--- a/api_docs/rule_registry.devdocs.json
+++ b/api_docs/rule_registry.devdocs.json
@@ -626,7 +626,7 @@
"label": "getBrowserFields",
"description": [],
"signature": [
- "({ indices, metaFields, allowNoIndex, }: { indices: string[]; metaFields: string[]; allowNoIndex: boolean; }) => Promise<{ browserFields: ",
+ "({ featureIds, indices, metaFields, allowNoIndex, }: { featureIds: string[]; indices: string[]; metaFields: string[]; allowNoIndex: boolean; }) => Promise<{ browserFields: ",
{
"pluginId": "ruleRegistry",
"scope": "common",
@@ -653,12 +653,26 @@
"id": "def-server.AlertsClient.getBrowserFields.$1",
"type": "Object",
"tags": [],
- "label": "{\n indices,\n metaFields,\n allowNoIndex,\n }",
+ "label": "{\n featureIds,\n indices,\n metaFields,\n allowNoIndex,\n }",
"description": [],
"path": "x-pack/plugins/rule_registry/server/alert_data_client/alerts_client.ts",
"deprecated": false,
"trackAdoption": false,
"children": [
+ {
+ "parentPluginId": "ruleRegistry",
+ "id": "def-server.AlertsClient.getBrowserFields.$1.featureIds",
+ "type": "Array",
+ "tags": [],
+ "label": "featureIds",
+ "description": [],
+ "signature": [
+ "string[]"
+ ],
+ "path": "x-pack/plugins/rule_registry/server/alert_data_client/alerts_client.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
{
"parentPluginId": "ruleRegistry",
"id": "def-server.AlertsClient.getBrowserFields.$1.indices",
diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx
index cfae4beadcacb..b91f3e5108a80 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: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry']
---
import ruleRegistryObj from './rule_registry.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 267 | 0 | 238 | 14 |
+| 268 | 0 | 239 | 14 |
## Server
diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx
index 614da71f44817..2fedb31fa527d 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: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields']
---
import runtimeFieldsObj from './runtime_fields.devdocs.json';
diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx
index b9be995f81540..22d4db7ed196f 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: 2023-11-23
+date: 2023-11-24
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 bc5af248c8d07..04cded88b5cce 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: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder']
---
import savedObjectsFinderObj from './saved_objects_finder.devdocs.json';
diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx
index 6209e1bbefe8e..53c4e8cadbf1a 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: 2023-11-23
+date: 2023-11-24
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 16e0e763662c3..ba8a8294e0e61 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: 2023-11-23
+date: 2023-11-24
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 b8c826b306f93..9410df5e853b6 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: 2023-11-23
+date: 2023-11-24
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 c2d5963856b6b..eedaf9e946a65 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: 2023-11-23
+date: 2023-11-24
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 3362c81f8678b..b2d74355115a7 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: 2023-11-23
+date: 2023-11-24
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 935436d80e950..64120f248d817 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: 2023-11-23
+date: 2023-11-24
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 e1c1b2d2c64af..96f3d1e9ea8f1 100644
--- a/api_docs/security.mdx
+++ b/api_docs/security.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security
title: "security"
image: https://source.unsplash.com/400x175/?github
description: API docs for the security plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security']
---
import securityObj from './security.devdocs.json';
diff --git a/api_docs/security_solution.devdocs.json b/api_docs/security_solution.devdocs.json
index 1fa3537631f7b..add8a6b861163 100644
--- a/api_docs/security_solution.devdocs.json
+++ b/api_docs/security_solution.devdocs.json
@@ -114,7 +114,7 @@
"label": "experimentalFeatures",
"description": [],
"signature": [
- "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; }"
+ "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; }"
],
"path": "x-pack/plugins/security_solution/public/plugin.tsx",
"deprecated": false,
@@ -507,7 +507,7 @@
"\nExperimental flag needed to enable the link"
],
"signature": [
- "\"tGridEnabled\" | \"tGridEventRenderedViewEnabled\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"chartEmbeddablesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"alertsPreviewChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"insightsRelatedAlertsByProcessAncestry\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"responseActionUploadEnabled\" | \"alertsPageChartsEnabled\" | \"alertTypeEnabled\" | \"alertsPageFiltersEnabled\" | \"assistantModelEvaluation\" | \"newUserDetailsFlyout\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | undefined"
+ "\"tGridEnabled\" | \"tGridEventRenderedViewEnabled\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"chartEmbeddablesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"alertsPreviewChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"insightsRelatedAlertsByProcessAncestry\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"responseActionUploadEnabled\" | \"alertsPageChartsEnabled\" | \"alertTypeEnabled\" | \"alertsPageFiltersEnabled\" | \"assistantModelEvaluation\" | \"newUserDetailsFlyout\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | undefined"
],
"path": "x-pack/plugins/security_solution/public/common/links/types.ts",
"deprecated": false,
@@ -587,7 +587,7 @@
"\nExperimental flag needed to disable the link. Opposite of experimentalKey"
],
"signature": [
- "\"tGridEnabled\" | \"tGridEventRenderedViewEnabled\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"chartEmbeddablesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"alertsPreviewChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"insightsRelatedAlertsByProcessAncestry\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"responseActionUploadEnabled\" | \"alertsPageChartsEnabled\" | \"alertTypeEnabled\" | \"alertsPageFiltersEnabled\" | \"assistantModelEvaluation\" | \"newUserDetailsFlyout\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | undefined"
+ "\"tGridEnabled\" | \"tGridEventRenderedViewEnabled\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"chartEmbeddablesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"alertsPreviewChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"insightsRelatedAlertsByProcessAncestry\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"responseActionUploadEnabled\" | \"alertsPageChartsEnabled\" | \"alertTypeEnabled\" | \"alertsPageFiltersEnabled\" | \"assistantModelEvaluation\" | \"newUserDetailsFlyout\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | undefined"
],
"path": "x-pack/plugins/security_solution/public/common/links/types.ts",
"deprecated": false,
@@ -1820,7 +1820,7 @@
"label": "experimentalFeatures",
"description": [],
"signature": [
- "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; }"
+ "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; }"
],
"path": "x-pack/plugins/security_solution/public/types.ts",
"deprecated": false,
@@ -1972,9 +1972,7 @@
"label": "setComponents",
"description": [],
"signature": [
- "(components: Partial>>) => void"
+ "(components: Partial<{ GetStarted: React.ComponentType<{}>; DashboardsLandingCallout: React.ComponentType<{}>; }>) => void"
],
"path": "x-pack/plugins/security_solution/public/types.ts",
"deprecated": false,
@@ -1989,7 +1987,7 @@
"label": "components",
"description": [],
"signature": [
- "{ getStarted?: React.ComponentType<{}> | undefined; dashboardsLandingCallout?: React.ComponentType<{}> | undefined; }"
+ "{ GetStarted?: React.ComponentType<{}> | undefined; DashboardsLandingCallout?: React.ComponentType<{}> | undefined; }"
],
"path": "x-pack/plugins/security_solution/public/contract_components.ts",
"deprecated": false,
@@ -2893,7 +2891,7 @@
"\nThe security solution generic experimental features"
],
"signature": [
- "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; }"
+ "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; }"
],
"path": "x-pack/plugins/security_solution/server/plugin_contract.ts",
"deprecated": false,
@@ -3039,7 +3037,7 @@
"label": "ExperimentalFeatures",
"description": [],
"signature": [
- "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; }"
+ "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; }"
],
"path": "x-pack/plugins/security_solution/common/experimental_features.ts",
"deprecated": false,
@@ -3088,7 +3086,7 @@
"\nA list of allowed values that can be used in `xpack.securitySolution.enableExperimental`.\nThis object is then used to validate and parse the value entered."
],
"signature": [
- "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; }"
+ "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; }"
],
"path": "x-pack/plugins/security_solution/common/experimental_features.ts",
"deprecated": false,
diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx
index e8b6d769313fb..2ec76165bbb2a 100644
--- a/api_docs/security_solution.mdx
+++ b/api_docs/security_solution.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution
title: "securitySolution"
image: https://source.unsplash.com/400x175/?github
description: API docs for the securitySolution plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution']
---
import securitySolutionObj from './security_solution.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/security-solution](https://github.com/orgs/elastic/teams/secur
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 175 | 0 | 106 | 35 |
+| 175 | 0 | 106 | 34 |
## Client
diff --git a/api_docs/security_solution_ess.mdx b/api_docs/security_solution_ess.mdx
index fc2636c949d33..9c4d0b770e0e3 100644
--- a/api_docs/security_solution_ess.mdx
+++ b/api_docs/security_solution_ess.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionEss
title: "securitySolutionEss"
image: https://source.unsplash.com/400x175/?github
description: API docs for the securitySolutionEss plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionEss']
---
import securitySolutionEssObj from './security_solution_ess.devdocs.json';
diff --git a/api_docs/security_solution_serverless.mdx b/api_docs/security_solution_serverless.mdx
index 1f9385348e119..6366896c9efe3 100644
--- a/api_docs/security_solution_serverless.mdx
+++ b/api_docs/security_solution_serverless.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionServerless
title: "securitySolutionServerless"
image: https://source.unsplash.com/400x175/?github
description: API docs for the securitySolutionServerless plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionServerless']
---
import securitySolutionServerlessObj from './security_solution_serverless.devdocs.json';
diff --git a/api_docs/serverless.mdx b/api_docs/serverless.mdx
index c767021f9eafd..798bddb82d1c5 100644
--- a/api_docs/serverless.mdx
+++ b/api_docs/serverless.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverless
title: "serverless"
image: https://source.unsplash.com/400x175/?github
description: API docs for the serverless plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverless']
---
import serverlessObj from './serverless.devdocs.json';
diff --git a/api_docs/serverless_observability.mdx b/api_docs/serverless_observability.mdx
index 95a07e7b44ece..1835b63244496 100644
--- a/api_docs/serverless_observability.mdx
+++ b/api_docs/serverless_observability.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessObservability
title: "serverlessObservability"
image: https://source.unsplash.com/400x175/?github
description: API docs for the serverlessObservability plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessObservability']
---
import serverlessObservabilityObj from './serverless_observability.devdocs.json';
diff --git a/api_docs/serverless_search.mdx b/api_docs/serverless_search.mdx
index 1cb068eeeaf14..ac35684a35a85 100644
--- a/api_docs/serverless_search.mdx
+++ b/api_docs/serverless_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessSearch
title: "serverlessSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the serverlessSearch plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessSearch']
---
import serverlessSearchObj from './serverless_search.devdocs.json';
diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx
index bc4737bc72ebf..61e9b3009dfaf 100644
--- a/api_docs/session_view.mdx
+++ b/api_docs/session_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView
title: "sessionView"
image: https://source.unsplash.com/400x175/?github
description: API docs for the sessionView plugin
-date: 2023-11-23
+date: 2023-11-24
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 7ab4c2a9b386f..ae46d47b69fe2 100644
--- a/api_docs/share.mdx
+++ b/api_docs/share.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share
title: "share"
image: https://source.unsplash.com/400x175/?github
description: API docs for the share plugin
-date: 2023-11-23
+date: 2023-11-24
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 b3f1cbd2094b9..f9f4168171a39 100644
--- a/api_docs/snapshot_restore.mdx
+++ b/api_docs/snapshot_restore.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore
title: "snapshotRestore"
image: https://source.unsplash.com/400x175/?github
description: API docs for the snapshotRestore plugin
-date: 2023-11-23
+date: 2023-11-24
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 f9d09130c5249..c170416d87de2 100644
--- a/api_docs/spaces.mdx
+++ b/api_docs/spaces.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces
title: "spaces"
image: https://source.unsplash.com/400x175/?github
description: API docs for the spaces plugin
-date: 2023-11-23
+date: 2023-11-24
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 696017ee27914..ae9d4c1ecbf95 100644
--- a/api_docs/stack_alerts.mdx
+++ b/api_docs/stack_alerts.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts
title: "stackAlerts"
image: https://source.unsplash.com/400x175/?github
description: API docs for the stackAlerts plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackAlerts']
---
import stackAlertsObj from './stack_alerts.devdocs.json';
diff --git a/api_docs/stack_connectors.mdx b/api_docs/stack_connectors.mdx
index e29020e1fc56b..839d061863531 100644
--- a/api_docs/stack_connectors.mdx
+++ b/api_docs/stack_connectors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors
title: "stackConnectors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the stackConnectors plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors']
---
import stackConnectorsObj from './stack_connectors.devdocs.json';
diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx
index 65422d10ebb1a..f8e9c72a3b980 100644
--- a/api_docs/task_manager.mdx
+++ b/api_docs/task_manager.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager
title: "taskManager"
image: https://source.unsplash.com/400x175/?github
description: API docs for the taskManager plugin
-date: 2023-11-23
+date: 2023-11-24
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 4deb0783e7305..c245a3124a6a9 100644
--- a/api_docs/telemetry.mdx
+++ b/api_docs/telemetry.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry
title: "telemetry"
image: https://source.unsplash.com/400x175/?github
description: API docs for the telemetry plugin
-date: 2023-11-23
+date: 2023-11-24
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 c62159272d272..122e6cc47c31f 100644
--- a/api_docs/telemetry_collection_manager.mdx
+++ b/api_docs/telemetry_collection_manager.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager
title: "telemetryCollectionManager"
image: https://source.unsplash.com/400x175/?github
description: API docs for the telemetryCollectionManager plugin
-date: 2023-11-23
+date: 2023-11-24
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 d48c5e9f008a7..c1b25001b7f67 100644
--- a/api_docs/telemetry_collection_xpack.mdx
+++ b/api_docs/telemetry_collection_xpack.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack
title: "telemetryCollectionXpack"
image: https://source.unsplash.com/400x175/?github
description: API docs for the telemetryCollectionXpack plugin
-date: 2023-11-23
+date: 2023-11-24
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 4a6212d2a8c0f..4542e5d9740b6 100644
--- a/api_docs/telemetry_management_section.mdx
+++ b/api_docs/telemetry_management_section.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection
title: "telemetryManagementSection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the telemetryManagementSection plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection']
---
import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json';
diff --git a/api_docs/text_based_languages.devdocs.json b/api_docs/text_based_languages.devdocs.json
index c44e1664a3fe1..bfbd1ef629c7f 100644
--- a/api_docs/text_based_languages.devdocs.json
+++ b/api_docs/text_based_languages.devdocs.json
@@ -69,7 +69,9 @@
"type": "CompoundType",
"tags": [],
"label": "query",
- "description": [],
+ "description": [
+ "The aggregate type query"
+ ],
"signature": [
"{ sql: string; } | { esql: string; }"
],
@@ -83,7 +85,9 @@
"type": "Function",
"tags": [],
"label": "onTextLangQueryChange",
- "description": [],
+ "description": [
+ "Callback running everytime the query changes"
+ ],
"signature": [
"(query: ",
{
@@ -129,14 +133,47 @@
"type": "Function",
"tags": [],
"label": "onTextLangQuerySubmit",
- "description": [],
+ "description": [
+ "Callback running when the user submits the query"
+ ],
"signature": [
- "() => void"
+ "(query?: ",
+ {
+ "pluginId": "@kbn/es-query",
+ "scope": "common",
+ "docId": "kibKbnEsQueryPluginApi",
+ "section": "def-common.AggregateQuery",
+ "text": "AggregateQuery"
+ },
+ " | undefined) => void"
],
"path": "packages/kbn-text-based-editor/src/text_based_languages_editor.tsx",
"deprecated": false,
"trackAdoption": false,
- "children": [],
+ "children": [
+ {
+ "parentPluginId": "textBasedLanguages",
+ "id": "def-public.TextBasedLanguagesEditorProps.onTextLangQuerySubmit.$1",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "query",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/es-query",
+ "scope": "common",
+ "docId": "kibKbnEsQueryPluginApi",
+ "section": "def-common.AggregateQuery",
+ "text": "AggregateQuery"
+ },
+ " | undefined"
+ ],
+ "path": "packages/kbn-text-based-editor/src/text_based_languages_editor.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": false
+ }
+ ],
"returnComment": []
},
{
@@ -145,7 +182,9 @@
"type": "Function",
"tags": [],
"label": "expandCodeEditor",
- "description": [],
+ "description": [
+ "Can be used to expand/minimize the editor"
+ ],
"signature": [
"(status: boolean) => void"
],
@@ -177,7 +216,9 @@
"type": "boolean",
"tags": [],
"label": "isCodeEditorExpanded",
- "description": [],
+ "description": [
+ "If it is true, the editor initializes with height EDITOR_INITIAL_HEIGHT_EXPANDED"
+ ],
"path": "packages/kbn-text-based-editor/src/text_based_languages_editor.tsx",
"deprecated": false,
"trackAdoption": false
@@ -188,7 +229,9 @@
"type": "CompoundType",
"tags": [],
"label": "detectTimestamp",
- "description": [],
+ "description": [
+ "If it is true, the editor displays the message @timestamp found\nThe text based queries are relying on adhoc dataviews which\ncan have an @timestamp timefield or nothing"
+ ],
"signature": [
"boolean | undefined"
],
@@ -202,7 +245,9 @@
"type": "Array",
"tags": [],
"label": "errors",
- "description": [],
+ "description": [
+ "Array of errors"
+ ],
"signature": [
"Error[] | undefined"
],
@@ -216,7 +261,9 @@
"type": "string",
"tags": [],
"label": "warning",
- "description": [],
+ "description": [
+ "Warning string as it comes from ES"
+ ],
"signature": [
"string | undefined"
],
@@ -230,7 +277,9 @@
"type": "CompoundType",
"tags": [],
"label": "isDisabled",
- "description": [],
+ "description": [
+ "Disables the editor"
+ ],
"signature": [
"boolean | undefined"
],
@@ -244,7 +293,9 @@
"type": "CompoundType",
"tags": [],
"label": "isDarkMode",
- "description": [],
+ "description": [
+ "Indicator if the editor is on dark mode"
+ ],
"signature": [
"boolean | undefined"
],
@@ -272,7 +323,9 @@
"type": "CompoundType",
"tags": [],
"label": "hideMinimizeButton",
- "description": [],
+ "description": [
+ "If true it hides the minimize button and the user can't return to the minimized version\nUseful when the application doesn't want to give this capability"
+ ],
"signature": [
"boolean | undefined"
],
@@ -286,7 +339,41 @@
"type": "CompoundType",
"tags": [],
"label": "hideRunQueryText",
- "description": [],
+ "description": [
+ "Hide the Run query information which appears on the footer"
+ ],
+ "signature": [
+ "boolean | undefined"
+ ],
+ "path": "packages/kbn-text-based-editor/src/text_based_languages_editor.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "textBasedLanguages",
+ "id": "def-public.TextBasedLanguagesEditorProps.editorIsInline",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "editorIsInline",
+ "description": [
+ "This is used for applications (such as the inline editing flyout in dashboards)\nwhich want to add the editor without being part of the Unified search component\nIt renders a submit query button inside the editor"
+ ],
+ "signature": [
+ "boolean | undefined"
+ ],
+ "path": "packages/kbn-text-based-editor/src/text_based_languages_editor.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "textBasedLanguages",
+ "id": "def-public.TextBasedLanguagesEditorProps.disableSubmitAction",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "disableSubmitAction",
+ "description": [
+ "Disables the submit query action"
+ ],
"signature": [
"boolean | undefined"
],
diff --git a/api_docs/text_based_languages.mdx b/api_docs/text_based_languages.mdx
index aae9b1f0d349c..b9163c115eeb3 100644
--- a/api_docs/text_based_languages.mdx
+++ b/api_docs/text_based_languages.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/textBasedLanguages
title: "textBasedLanguages"
image: https://source.unsplash.com/400x175/?github
description: API docs for the textBasedLanguages plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'textBasedLanguages']
---
import textBasedLanguagesObj from './text_based_languages.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 20 | 0 | 20 | 0 |
+| 23 | 0 | 9 | 0 |
## Client
diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx
index a915b8f88184e..0cd9c885c5a28 100644
--- a/api_docs/threat_intelligence.mdx
+++ b/api_docs/threat_intelligence.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence
title: "threatIntelligence"
image: https://source.unsplash.com/400x175/?github
description: API docs for the threatIntelligence plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence']
---
import threatIntelligenceObj from './threat_intelligence.devdocs.json';
diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx
index d2e561280cd67..3d4b1f6537d32 100644
--- a/api_docs/timelines.mdx
+++ b/api_docs/timelines.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines
title: "timelines"
image: https://source.unsplash.com/400x175/?github
description: API docs for the timelines plugin
-date: 2023-11-23
+date: 2023-11-24
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 e1eded1b21dcb..69f1f4cfc2afa 100644
--- a/api_docs/transform.mdx
+++ b/api_docs/transform.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform
title: "transform"
image: https://source.unsplash.com/400x175/?github
description: API docs for the transform plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform']
---
import transformObj from './transform.devdocs.json';
diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx
index 407144cc614fb..b8abed139af04 100644
--- a/api_docs/triggers_actions_ui.mdx
+++ b/api_docs/triggers_actions_ui.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi
title: "triggersActionsUi"
image: https://source.unsplash.com/400x175/?github
description: API docs for the triggersActionsUi plugin
-date: 2023-11-23
+date: 2023-11-24
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 ebfa0b690d75f..449b43ef3b3a1 100644
--- a/api_docs/ui_actions.mdx
+++ b/api_docs/ui_actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions
title: "uiActions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the uiActions plugin
-date: 2023-11-23
+date: 2023-11-24
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 e231a27221b88..c1d343f13fc99 100644
--- a/api_docs/ui_actions_enhanced.mdx
+++ b/api_docs/ui_actions_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced
title: "uiActionsEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the uiActionsEnhanced plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced']
---
import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json';
diff --git a/api_docs/unified_doc_viewer.mdx b/api_docs/unified_doc_viewer.mdx
index 04c21056b4b38..df6b4e27ee448 100644
--- a/api_docs/unified_doc_viewer.mdx
+++ b/api_docs/unified_doc_viewer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedDocViewer
title: "unifiedDocViewer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the unifiedDocViewer plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedDocViewer']
---
import unifiedDocViewerObj from './unified_doc_viewer.devdocs.json';
diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx
index de24782a9fe9f..0e01f5a95d749 100644
--- a/api_docs/unified_histogram.mdx
+++ b/api_docs/unified_histogram.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram
title: "unifiedHistogram"
image: https://source.unsplash.com/400x175/?github
description: API docs for the unifiedHistogram plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram']
---
import unifiedHistogramObj from './unified_histogram.devdocs.json';
diff --git a/api_docs/unified_search.devdocs.json b/api_docs/unified_search.devdocs.json
index 09a1feea1ceee..0d5e841aaada5 100644
--- a/api_docs/unified_search.devdocs.json
+++ b/api_docs/unified_search.devdocs.json
@@ -635,7 +635,7 @@
},
"[] | undefined; refreshInterval?: number | undefined; iconType?: ",
"IconType",
- " | undefined; showQueryInput?: boolean | undefined; dataTestSubj?: string | undefined; showSaveQuery?: boolean | undefined; customSubmitButton?: React.ReactNode; dataViewPickerOverride?: React.ReactNode; screenTitle?: string | undefined; showQueryMenu?: boolean | undefined; showFilterBar?: boolean | undefined; showDatePicker?: boolean | undefined; showAutoRefreshOnly?: boolean | undefined; filtersForSuggestions?: ",
+ " | undefined; dataTestSubj?: string | undefined; showSaveQuery?: boolean | undefined; customSubmitButton?: React.ReactNode; dataViewPickerOverride?: React.ReactNode; screenTitle?: string | undefined; showQueryMenu?: boolean | undefined; showQueryInput?: boolean | undefined; showFilterBar?: boolean | undefined; showDatePicker?: boolean | undefined; showAutoRefreshOnly?: boolean | undefined; filtersForSuggestions?: ",
{
"pluginId": "@kbn/es-query",
"scope": "common",
diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx
index 1a4243ae4e215..665d0c4ea7814 100644
--- a/api_docs/unified_search.mdx
+++ b/api_docs/unified_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch
title: "unifiedSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the unifiedSearch plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch']
---
import unifiedSearchObj from './unified_search.devdocs.json';
diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx
index 9a02d63dc158d..ce5c97eee6043 100644
--- a/api_docs/unified_search_autocomplete.mdx
+++ b/api_docs/unified_search_autocomplete.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete
title: "unifiedSearch.autocomplete"
image: https://source.unsplash.com/400x175/?github
description: API docs for the unifiedSearch.autocomplete plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete']
---
import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json';
diff --git a/api_docs/uptime.mdx b/api_docs/uptime.mdx
index ec78d7d7a153a..eeafd4c275fea 100644
--- a/api_docs/uptime.mdx
+++ b/api_docs/uptime.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uptime
title: "uptime"
image: https://source.unsplash.com/400x175/?github
description: API docs for the uptime plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uptime']
---
import uptimeObj from './uptime.devdocs.json';
diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx
index 50ef0c93ed8ad..cb976b7fba0d1 100644
--- a/api_docs/url_forwarding.mdx
+++ b/api_docs/url_forwarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding
title: "urlForwarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the urlForwarding plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding']
---
import urlForwardingObj from './url_forwarding.devdocs.json';
diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx
index badbdd19eb12b..fc762dd53cff6 100644
--- a/api_docs/usage_collection.mdx
+++ b/api_docs/usage_collection.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection
title: "usageCollection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the usageCollection plugin
-date: 2023-11-23
+date: 2023-11-24
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 cc1bf67d80bdf..dc0e78df2dfb8 100644
--- a/api_docs/ux.mdx
+++ b/api_docs/ux.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux
title: "ux"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ux plugin
-date: 2023-11-23
+date: 2023-11-24
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 77854c6648902..e532fa7344dc6 100644
--- a/api_docs/vis_default_editor.mdx
+++ b/api_docs/vis_default_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor
title: "visDefaultEditor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visDefaultEditor plugin
-date: 2023-11-23
+date: 2023-11-24
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 037208ce34468..ac0819714248d 100644
--- a/api_docs/vis_type_gauge.mdx
+++ b/api_docs/vis_type_gauge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge
title: "visTypeGauge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeGauge plugin
-date: 2023-11-23
+date: 2023-11-24
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 b225c8b159589..c09ad3f1060d3 100644
--- a/api_docs/vis_type_heatmap.mdx
+++ b/api_docs/vis_type_heatmap.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap
title: "visTypeHeatmap"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeHeatmap plugin
-date: 2023-11-23
+date: 2023-11-24
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 749df2f4219a2..4d47fb02a625e 100644
--- a/api_docs/vis_type_pie.mdx
+++ b/api_docs/vis_type_pie.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie
title: "visTypePie"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypePie plugin
-date: 2023-11-23
+date: 2023-11-24
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 b62da722ecbcb..93c2fef560983 100644
--- a/api_docs/vis_type_table.mdx
+++ b/api_docs/vis_type_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable
title: "visTypeTable"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeTable plugin
-date: 2023-11-23
+date: 2023-11-24
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 528a84b55bc26..dd2c881f21005 100644
--- a/api_docs/vis_type_timelion.mdx
+++ b/api_docs/vis_type_timelion.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion
title: "visTypeTimelion"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeTimelion plugin
-date: 2023-11-23
+date: 2023-11-24
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 4f58deda4f7ae..cec0bbfe8cc9b 100644
--- a/api_docs/vis_type_timeseries.mdx
+++ b/api_docs/vis_type_timeseries.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries
title: "visTypeTimeseries"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeTimeseries plugin
-date: 2023-11-23
+date: 2023-11-24
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 a7d9fb436dd36..2a0c3a9eaff22 100644
--- a/api_docs/vis_type_vega.mdx
+++ b/api_docs/vis_type_vega.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega
title: "visTypeVega"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeVega plugin
-date: 2023-11-23
+date: 2023-11-24
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 93df1b62fcd18..c842981b7eea9 100644
--- a/api_docs/vis_type_vislib.mdx
+++ b/api_docs/vis_type_vislib.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib
title: "visTypeVislib"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeVislib plugin
-date: 2023-11-23
+date: 2023-11-24
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 d1f7827a2c575..6e323e4c01b9d 100644
--- a/api_docs/vis_type_xy.mdx
+++ b/api_docs/vis_type_xy.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy
title: "visTypeXy"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeXy plugin
-date: 2023-11-23
+date: 2023-11-24
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 0222ca1a04644..63b43c3c5920e 100644
--- a/api_docs/visualizations.mdx
+++ b/api_docs/visualizations.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations
title: "visualizations"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visualizations plugin
-date: 2023-11-23
+date: 2023-11-24
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations']
---
import visualizationsObj from './visualizations.devdocs.json';
From 97b1851f003f02d9e8e8534cd2b9b5f0bf74b560 Mon Sep 17 00:00:00 2001
From: Miriam <31922082+MiriamAparicio@users.noreply.github.com>
Date: Fri, 24 Nov 2023 05:59:13 +0000
Subject: [PATCH 24/24] [ObsUX] Update APM api to pass preferred documentType
and rollupInterval (#170749)
Part of https://github.com/elastic/kibana/issues/167020
---------
Co-authored-by: achyutjhunjhunwala
---
x-pack/plugins/apm/common/data_source.ts | 3 +-
x-pack/plugins/apm/common/document_type.ts | 1 +
.../service_node_metrics/index.tsx | 16 +++++++--
.../service_inventory/service_list/index.tsx | 1 +
.../app/top_traces_overview/index.tsx | 4 +--
.../use_fallback_to_transactions_fetcher.tsx | 17 ++++++---
.../get_connection_stats/get_stats.ts | 10 ++++--
.../get_request_base.ts | 6 ++--
.../create_apm_event_client/index.ts | 26 ++++++--------
.../helpers/create_es_client/document_type.ts | 24 ++++++-------
...t_is_using_transaction_events.test.ts.snap | 7 ++--
.../get_is_using_transaction_events.ts | 10 ++++--
.../__snapshots__/get_buckets.test.ts.snap | 7 ++--
.../__snapshots__/queries.test.ts.snap | 14 +++++---
.../errors/distribution/get_buckets.test.ts | 10 ++++--
.../routes/errors/distribution/get_buckets.ts | 10 ++++--
.../get_top_erroneous_transactions.ts | 34 +++++++++++-------
.../get_error_group_main_statistics.ts | 35 ++++++++++++-------
.../get_error_group_sample_ids.ts | 24 +++++++------
.../get_error_sample_details.ts | 10 ++++--
.../serverless/get_serverless_summary.ts | 9 ++++-
.../server/routes/mobile/get_device_os_app.ts | 10 ++++--
.../routes/mobile/get_mobile_crash_rate.ts | 10 ++++--
.../mobile/get_mobile_crashes_by_location.ts | 10 ++++--
.../routes/mobile/get_mobile_sessions.ts | 10 ++++--
.../mobile/get_mobile_sessions_by_location.ts | 10 ++++--
.../apm/server/routes/mobile/get_nct.ts | 10 ++++--
.../services/get_service_node_metadata.ts | 20 ++++++++---
.../apm/server/routes/services/route.ts | 12 +++++--
.../get_transaction.test.ts.snap | 14 +++++---
.../settings/custom_link/get_transaction.ts | 18 +++++-----
.../traces/__snapshots__/queries.test.ts.snap | 7 ++--
.../server/routes/traces/get_trace_items.ts | 9 ++++-
.../__snapshots__/queries.test.ts.snap | 7 ++--
.../transactions/get_transaction/index.ts | 10 ++++--
.../get_service_node_metadata.spec.ts | 4 +++
36 files changed, 304 insertions(+), 135 deletions(-)
diff --git a/x-pack/plugins/apm/common/data_source.ts b/x-pack/plugins/apm/common/data_source.ts
index f3450fe775429..93d8261473692 100644
--- a/x-pack/plugins/apm/common/data_source.ts
+++ b/x-pack/plugins/apm/common/data_source.ts
@@ -14,7 +14,8 @@ type AnyApmDocumentType =
| ApmDocumentType.TransactionEvent
| ApmDocumentType.ServiceDestinationMetric
| ApmDocumentType.ServiceSummaryMetric
- | ApmDocumentType.ErrorEvent;
+ | ApmDocumentType.ErrorEvent
+ | ApmDocumentType.SpanEvent;
export interface ApmDataSource<
TDocumentType extends AnyApmDocumentType = AnyApmDocumentType
diff --git a/x-pack/plugins/apm/common/document_type.ts b/x-pack/plugins/apm/common/document_type.ts
index 92a17c3125a96..e8a29e8d08c43 100644
--- a/x-pack/plugins/apm/common/document_type.ts
+++ b/x-pack/plugins/apm/common/document_type.ts
@@ -12,6 +12,7 @@ export enum ApmDocumentType {
ServiceDestinationMetric = 'serviceDestinationMetric',
ServiceSummaryMetric = 'serviceSummaryMetric',
ErrorEvent = 'error',
+ SpanEvent = 'span',
}
export type ApmServiceTransactionDocumentType =
diff --git a/x-pack/plugins/apm/public/components/app/metrics_details/service_node_metrics/index.tsx b/x-pack/plugins/apm/public/components/app/metrics_details/service_node_metrics/index.tsx
index 28865a8ad5f15..46f5045dc43e6 100644
--- a/x-pack/plugins/apm/public/components/app/metrics_details/service_node_metrics/index.tsx
+++ b/x-pack/plugins/apm/public/components/app/metrics_details/service_node_metrics/index.tsx
@@ -22,6 +22,7 @@ import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n-react';
import { euiStyled } from '@kbn/kibana-react-plugin/common';
import React from 'react';
+import { ApmDocumentType } from '../../../../../common/document_type';
import {
getServiceNodeName,
SERVICE_NODE_NAME_MISSING,
@@ -33,6 +34,7 @@ import { ChartPointerEventContextProvider } from '../../../../context/chart_poin
import { useApmParams } from '../../../../hooks/use_apm_params';
import { useApmRouter } from '../../../../hooks/use_apm_router';
import { FETCH_STATUS, useFetcher } from '../../../../hooks/use_fetcher';
+import { usePreferredDataSourceAndBucketSize } from '../../../../hooks/use_preferred_data_source_and_bucket_size';
import { useServiceMetricChartsFetcher } from '../../../../hooks/use_service_metric_charts_fetcher';
import { useTimeRange } from '../../../../hooks/use_time_range';
import { truncate, unit } from '../../../../utils/style';
@@ -83,9 +85,17 @@ export function ServiceNodeMetrics({ serviceNodeName }: Props) {
environment,
});
+ const preferred = usePreferredDataSourceAndBucketSize({
+ start,
+ end,
+ kuery,
+ type: ApmDocumentType.ServiceTransactionMetric,
+ numBuckets: 100,
+ });
+
const { data: { host, containerId } = INITIAL_DATA, status } = useFetcher(
(callApmApi) => {
- if (start && end) {
+ if (start && end && preferred) {
return callApmApi(
'GET /internal/apm/services/{serviceName}/node/{serviceNodeName}/metadata',
{
@@ -96,13 +106,15 @@ export function ServiceNodeMetrics({ serviceNodeName }: Props) {
start,
end,
environment,
+ documentType: preferred.source.documentType,
+ rollupInterval: preferred.source.rollupInterval,
},
},
}
);
}
},
- [kuery, serviceName, serviceNodeName, start, end, environment]
+ [kuery, serviceName, serviceNodeName, start, end, environment, preferred]
);
const { docLinks } = useApmPluginContext().core;
diff --git a/x-pack/plugins/apm/public/components/app/service_inventory/service_list/index.tsx b/x-pack/plugins/apm/public/components/app/service_inventory/service_list/index.tsx
index 081a24ceb4427..b3e36fc8bebb9 100644
--- a/x-pack/plugins/apm/public/components/app/service_inventory/service_list/index.tsx
+++ b/x-pack/plugins/apm/public/components/app/service_inventory/service_list/index.tsx
@@ -327,6 +327,7 @@ export function ServiceList({
} = useApmParams('/services');
const { kuery } = query;
+
const { fallbackToTransactions } = useFallbackToTransactionsFetcher({
kuery,
});
diff --git a/x-pack/plugins/apm/public/components/app/top_traces_overview/index.tsx b/x-pack/plugins/apm/public/components/app/top_traces_overview/index.tsx
index 486a54b400098..3c314f6389770 100644
--- a/x-pack/plugins/apm/public/components/app/top_traces_overview/index.tsx
+++ b/x-pack/plugins/apm/public/components/app/top_traces_overview/index.tsx
@@ -19,12 +19,12 @@ export function TopTracesOverview() {
const {
query: { environment, kuery, rangeFrom, rangeTo },
} = useApmParams('/traces');
+ const { start, end } = useTimeRange({ rangeFrom, rangeTo });
+
const { fallbackToTransactions } = useFallbackToTransactionsFetcher({
kuery,
});
- const { start, end } = useTimeRange({ rangeFrom, rangeTo });
-
const response = useProgressiveFetcher(
(callApmApi) => {
if (start && end) {
diff --git a/x-pack/plugins/apm/public/hooks/use_fallback_to_transactions_fetcher.tsx b/x-pack/plugins/apm/public/hooks/use_fallback_to_transactions_fetcher.tsx
index f1d30f4237071..6ffebcb95f2aa 100644
--- a/x-pack/plugins/apm/public/hooks/use_fallback_to_transactions_fetcher.tsx
+++ b/x-pack/plugins/apm/public/hooks/use_fallback_to_transactions_fetcher.tsx
@@ -4,6 +4,7 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
+
import { getKueryWithMobileFilters } from '../../common/utils/get_kuery_with_mobile_filters';
import { useApmParams } from './use_apm_params';
import { useFetcher } from './use_fetcher';
@@ -33,11 +34,17 @@ export function useFallbackToTransactionsFetcher({ kuery }: { kuery: string }) {
const { data = { fallbackToTransactions: false } } = useFetcher(
(callApmApi) => {
- return callApmApi('GET /internal/apm/fallback_to_transactions', {
- params: {
- query: { kuery: kueryWithFilters, start, end },
- },
- });
+ if (start && end) {
+ return callApmApi('GET /internal/apm/fallback_to_transactions', {
+ params: {
+ query: {
+ kuery: kueryWithFilters,
+ start,
+ end,
+ },
+ },
+ });
+ }
},
[kueryWithFilters, start, end]
);
diff --git a/x-pack/plugins/apm/server/lib/connections/get_connection_stats/get_stats.ts b/x-pack/plugins/apm/server/lib/connections/get_connection_stats/get_stats.ts
index 346921960f92d..4524d5121b78d 100644
--- a/x-pack/plugins/apm/server/lib/connections/get_connection_stats/get_stats.ts
+++ b/x-pack/plugins/apm/server/lib/connections/get_connection_stats/get_stats.ts
@@ -9,7 +9,6 @@ import { sum } from 'lodash';
import objectHash from 'object-hash';
import { QueryDslQueryContainer } from '@elastic/elasticsearch/lib/api/typesWithBodyKey';
import { rangeQuery } from '@kbn/observability-plugin/server';
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
import { AgentName } from '../../../../typings/es_schemas/ui/fields/agent';
import { getOffsetInMs } from '../../../../common/utils/get_offset_in_ms';
import { ENVIRONMENT_NOT_DEFINED } from '../../../../common/environment_filter_values';
@@ -28,6 +27,8 @@ import {
import { getBucketSize } from '../../../../common/utils/get_bucket_size';
import { EventOutcome } from '../../../../common/event_outcome';
import { NodeType } from '../../../../common/connections';
+import { ApmDocumentType } from '../../../../common/document_type';
+import { RollupInterval } from '../../../../common/rollup';
import { excludeRumExitSpansQuery } from '../exclude_rum_exit_spans_query';
import { APMEventClient } from '../../helpers/create_es_client/create_apm_event_client';
import { getDocumentTypeFilterForServiceDestinationStatistics } from '../../helpers/spans/get_is_using_service_destination_metrics';
@@ -55,7 +56,12 @@ export const getStats = async ({
const response = await apmEventClient.search('get_connection_stats', {
apm: {
- events: [ProcessorEvent.metric],
+ sources: [
+ {
+ documentType: ApmDocumentType.ServiceDestinationMetric,
+ rollupInterval: RollupInterval.OneMinute,
+ },
+ ],
},
body: {
track_total_hits: true,
diff --git a/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/get_request_base.ts b/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/get_request_base.ts
index 1046a2ad47cfe..85ac6689f5df8 100644
--- a/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/get_request_base.ts
+++ b/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/get_request_base.ts
@@ -57,9 +57,9 @@ export function getRequestBase(options: {
if ('sources' in options.apm) {
options.apm.sources.forEach((source) => {
- const { getQuery } = getConfigForDocumentType(source.documentType);
- if (getQuery) {
- filters.push(getQuery(source.rollupInterval));
+ const documentTypeConfig = getConfigForDocumentType(source.documentType);
+ if ('getQuery' in documentTypeConfig) {
+ filters.push(documentTypeConfig.getQuery(source.rollupInterval));
}
});
}
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 fcac29b1d57d5..53e4c91f384f3 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
@@ -62,13 +62,11 @@ type APMEventTermsEnumRequest = APMEventWrapper;
type APMEventEqlSearchRequest = APMEventWrapper;
type APMEventFieldCapsRequest = APMEventWrapper;
-// These keys shoul all be `ProcessorEvent.x`, but until TypeScript 4.2 we're inlining them here.
-// See https://github.com/microsoft/TypeScript/issues/37888
type TypeOfProcessorEvent = {
- error: APMError;
- transaction: Transaction;
- span: Span;
- metric: Metric;
+ [ProcessorEvent.error]: APMError;
+ [ProcessorEvent.transaction]: Transaction;
+ [ProcessorEvent.span]: Span;
+ [ProcessorEvent.metric]: Metric;
}[T];
type TypedLogEventSearchResponse =
@@ -77,15 +75,13 @@ type TypedLogEventSearchResponse =
type TypedSearchResponse =
InferSearchResponseOf<
TypeOfProcessorEvent<
- ValuesType<
- TParams['apm'] extends { events: ProcessorEvent[] }
- ? TParams['apm']['events']
- : TParams['apm'] extends { sources: ApmDataSource[] }
- ? ProcessorEventOfDocumentType<
- ValuesType['documentType']
- >
- : never
- >
+ TParams['apm'] extends { events: ProcessorEvent[] }
+ ? ValuesType
+ : TParams['apm'] extends { sources: ApmDataSource[] }
+ ? ProcessorEventOfDocumentType<
+ ValuesType['documentType']
+ >
+ : never
>,
TParams
>;
diff --git a/x-pack/plugins/apm/server/lib/helpers/create_es_client/document_type.ts b/x-pack/plugins/apm/server/lib/helpers/create_es_client/document_type.ts
index a3f5ff8d5683c..bcafd76b8e222 100644
--- a/x-pack/plugins/apm/server/lib/helpers/create_es_client/document_type.ts
+++ b/x-pack/plugins/apm/server/lib/helpers/create_es_client/document_type.ts
@@ -5,7 +5,6 @@
* 2.0.
*/
-import { QueryDslQueryContainer } from '@elastic/elasticsearch/lib/api/types';
import { ProcessorEvent } from '@kbn/observability-plugin/common';
import { ApmDocumentType } from '../../../../common/document_type';
import {
@@ -33,18 +32,11 @@ function getDefaultFilter(
];
}
-const documentTypeConfigMap: Record<
- ApmDocumentType,
- {
- processorEvent: ProcessorEvent;
- getQuery?: (rollupInterval: RollupInterval) => QueryDslQueryContainer;
- rollupIntervals: RollupInterval[];
- }
-> = {
+const documentTypeConfigMap = {
[ApmDocumentType.ServiceTransactionMetric]: {
processorEvent: ProcessorEvent.metric,
- getQuery: (rollupInterval) => ({
+ getQuery: (rollupInterval: RollupInterval) => ({
bool: {
filter: getDefaultFilter('service_transaction', rollupInterval),
},
@@ -53,7 +45,7 @@ const documentTypeConfigMap: Record<
},
[ApmDocumentType.ServiceSummaryMetric]: {
processorEvent: ProcessorEvent.metric,
- getQuery: (rollupInterval) => ({
+ getQuery: (rollupInterval: RollupInterval) => ({
bool: {
filter: getDefaultFilter('service_summary', rollupInterval),
},
@@ -62,7 +54,7 @@ const documentTypeConfigMap: Record<
},
[ApmDocumentType.TransactionMetric]: {
processorEvent: ProcessorEvent.metric,
- getQuery: (rollupInterval) => ({
+ getQuery: (rollupInterval: RollupInterval) => ({
bool: {
filter:
rollupInterval === RollupInterval.OneMinute
@@ -79,7 +71,7 @@ const documentTypeConfigMap: Record<
[ApmDocumentType.ServiceDestinationMetric]: {
processorEvent: ProcessorEvent.metric,
rollupIntervals: defaultRollupIntervals,
- getQuery: (rollupInterval) => ({
+ getQuery: (rollupInterval: RollupInterval) => ({
bool: {
filter:
rollupInterval === RollupInterval.OneMinute
@@ -92,7 +84,11 @@ const documentTypeConfigMap: Record<
processorEvent: ProcessorEvent.error,
rollupIntervals: [RollupInterval.None],
},
-};
+ [ApmDocumentType.SpanEvent]: {
+ processorEvent: ProcessorEvent.span,
+ rollupIntervals: [RollupInterval.None],
+ },
+} as const;
type DocumentTypeConfigOf =
typeof documentTypeConfigMap[TApmDocumentType];
diff --git a/x-pack/plugins/apm/server/lib/helpers/transactions/__snapshots__/get_is_using_transaction_events.test.ts.snap b/x-pack/plugins/apm/server/lib/helpers/transactions/__snapshots__/get_is_using_transaction_events.test.ts.snap
index 325ce29af118d..192df5cc8eb3a 100644
--- a/x-pack/plugins/apm/server/lib/helpers/transactions/__snapshots__/get_is_using_transaction_events.test.ts.snap
+++ b/x-pack/plugins/apm/server/lib/helpers/transactions/__snapshots__/get_is_using_transaction_events.test.ts.snap
@@ -96,8 +96,11 @@ Array [
"get_has_transactions",
Object {
"apm": Object {
- "events": Array [
- "transaction",
+ "sources": Array [
+ Object {
+ "documentType": "transactionEvent",
+ "rollupInterval": "none",
+ },
],
},
"body": Object {
diff --git a/x-pack/plugins/apm/server/lib/helpers/transactions/get_is_using_transaction_events.ts b/x-pack/plugins/apm/server/lib/helpers/transactions/get_is_using_transaction_events.ts
index 20832c70d007b..0ba5fb5f92afd 100644
--- a/x-pack/plugins/apm/server/lib/helpers/transactions/get_is_using_transaction_events.ts
+++ b/x-pack/plugins/apm/server/lib/helpers/transactions/get_is_using_transaction_events.ts
@@ -6,10 +6,11 @@
*/
import { kqlQuery, rangeQuery } from '@kbn/observability-plugin/server';
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
import { getSearchTransactionsEvents } from '.';
import { APMEventClient } from '../create_es_client/create_apm_event_client';
import { SearchAggregatedTransactionSetting } from '../../../../common/aggregated_transactions';
+import { ApmDocumentType } from '../../../../common/document_type';
+import { RollupInterval } from '../../../../common/rollup';
import { APMConfig } from '../../..';
export async function getIsUsingTransactionEvents({
@@ -63,7 +64,12 @@ async function getHasTransactions({
}) {
const response = await apmEventClient.search('get_has_transactions', {
apm: {
- events: [ProcessorEvent.transaction],
+ sources: [
+ {
+ documentType: ApmDocumentType.TransactionEvent,
+ rollupInterval: RollupInterval.None,
+ },
+ ],
},
body: {
track_total_hits: 1,
diff --git a/x-pack/plugins/apm/server/routes/errors/distribution/__snapshots__/get_buckets.test.ts.snap b/x-pack/plugins/apm/server/routes/errors/distribution/__snapshots__/get_buckets.test.ts.snap
index 54705647dc6a4..4145b9ae31da1 100644
--- a/x-pack/plugins/apm/server/routes/errors/distribution/__snapshots__/get_buckets.test.ts.snap
+++ b/x-pack/plugins/apm/server/routes/errors/distribution/__snapshots__/get_buckets.test.ts.snap
@@ -6,8 +6,11 @@ Array [
"get_error_distribution_buckets",
Object {
"apm": Object {
- "events": Array [
- "error",
+ "sources": Array [
+ Object {
+ "documentType": "error",
+ "rollupInterval": "none",
+ },
],
},
"body": Object {
diff --git a/x-pack/plugins/apm/server/routes/errors/distribution/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/routes/errors/distribution/__snapshots__/queries.test.ts.snap
index a3127ee28c0b8..480283b7a690c 100644
--- a/x-pack/plugins/apm/server/routes/errors/distribution/__snapshots__/queries.test.ts.snap
+++ b/x-pack/plugins/apm/server/routes/errors/distribution/__snapshots__/queries.test.ts.snap
@@ -3,8 +3,11 @@
exports[`error distribution queries fetches an error distribution 1`] = `
Object {
"apm": Object {
- "events": Array [
- "error",
+ "sources": Array [
+ Object {
+ "documentType": "error",
+ "rollupInterval": "none",
+ },
],
},
"body": Object {
@@ -50,8 +53,11 @@ Object {
exports[`error distribution queries fetches an error distribution with a group id 1`] = `
Object {
"apm": Object {
- "events": Array [
- "error",
+ "sources": Array [
+ Object {
+ "documentType": "error",
+ "rollupInterval": "none",
+ },
],
},
"body": Object {
diff --git a/x-pack/plugins/apm/server/routes/errors/distribution/get_buckets.test.ts b/x-pack/plugins/apm/server/routes/errors/distribution/get_buckets.test.ts
index 4a3fc6d969cd0..a8994fd4ec2c6 100644
--- a/x-pack/plugins/apm/server/routes/errors/distribution/get_buckets.test.ts
+++ b/x-pack/plugins/apm/server/routes/errors/distribution/get_buckets.test.ts
@@ -6,7 +6,8 @@
*/
import { getBuckets } from './get_buckets';
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
+import { ApmDocumentType } from '../../../../common/document_type';
+import { RollupInterval } from '../../../../common/rollup';
describe('get buckets', () => {
let clientSpy: jest.Mock;
@@ -42,6 +43,11 @@ describe('get buckets', () => {
it('should limit query results to error documents', () => {
const query = clientSpy.mock.calls[0][1];
- expect(query.apm.events).toEqual([ProcessorEvent.error]);
+ expect(query.apm.sources).toEqual([
+ {
+ documentType: ApmDocumentType.ErrorEvent,
+ rollupInterval: RollupInterval.None,
+ },
+ ]);
});
});
diff --git a/x-pack/plugins/apm/server/routes/errors/distribution/get_buckets.ts b/x-pack/plugins/apm/server/routes/errors/distribution/get_buckets.ts
index 72e9b1c1b2d55..83e9d4475bfb8 100644
--- a/x-pack/plugins/apm/server/routes/errors/distribution/get_buckets.ts
+++ b/x-pack/plugins/apm/server/routes/errors/distribution/get_buckets.ts
@@ -10,8 +10,9 @@ import {
kqlQuery,
termQuery,
} from '@kbn/observability-plugin/server';
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
+import { ApmDocumentType } from '../../../../common/document_type';
import { ERROR_GROUP_ID, SERVICE_NAME } from '../../../../common/es_fields/apm';
+import { RollupInterval } from '../../../../common/rollup';
import { environmentQuery } from '../../../../common/utils/environment_query';
import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client';
@@ -36,7 +37,12 @@ export async function getBuckets({
}) {
const params = {
apm: {
- events: [ProcessorEvent.error],
+ sources: [
+ {
+ documentType: ApmDocumentType.ErrorEvent,
+ rollupInterval: RollupInterval.None,
+ },
+ ],
},
body: {
track_total_hits: false,
diff --git a/x-pack/plugins/apm/server/routes/errors/erroneous_transactions/get_top_erroneous_transactions.ts b/x-pack/plugins/apm/server/routes/errors/erroneous_transactions/get_top_erroneous_transactions.ts
index 31695c0a127d2..41f49959aa70c 100644
--- a/x-pack/plugins/apm/server/routes/errors/erroneous_transactions/get_top_erroneous_transactions.ts
+++ b/x-pack/plugins/apm/server/routes/errors/erroneous_transactions/get_top_erroneous_transactions.ts
@@ -17,7 +17,6 @@ import {
kqlQuery,
termQuery,
} from '@kbn/observability-plugin/server';
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
import { keyBy } from 'lodash';
import {
ERROR_GROUP_ID,
@@ -28,6 +27,8 @@ import {
import { environmentQuery } from '../../../../common/utils/environment_query';
import { getBucketSize } from '../../../../common/utils/get_bucket_size';
import { getOffsetInMs } from '../../../../common/utils/get_offset_in_ms';
+import { ApmDocumentType } from '../../../../common/document_type';
+import { RollupInterval } from '../../../../common/rollup';
import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client';
async function getTopErroneousTransactions({
@@ -65,7 +66,12 @@ async function getTopErroneousTransactions({
const res = await apmEventClient.search('get_top_erroneous_transactions', {
apm: {
- events: [ProcessorEvent.error],
+ sources: [
+ {
+ documentType: ApmDocumentType.ErrorEvent,
+ rollupInterval: RollupInterval.None,
+ },
+ ],
},
body: {
track_total_hits: false,
@@ -112,17 +118,19 @@ async function getTopErroneousTransactions({
return (
res.aggregations?.top_five_transactions.buckets.map(
- ({ key, doc_count: docCount, sample, timeseries }) => ({
- transactionName: key as string,
- transactionType: sample.hits.hits[0]._source.transaction?.type,
- occurrences: docCount,
- timeseries: timeseries.buckets.map((timeseriesBucket) => {
- return {
- x: timeseriesBucket.key + offsetInMs,
- y: timeseriesBucket.doc_count,
- };
- }),
- })
+ ({ key, doc_count: docCount, sample, timeseries }) => {
+ return {
+ transactionName: key as string,
+ transactionType: sample.hits.hits[0]._source.transaction?.type,
+ occurrences: docCount,
+ timeseries: timeseries.buckets.map((timeseriesBucket) => {
+ return {
+ x: timeseriesBucket.key + offsetInMs,
+ y: timeseriesBucket.doc_count,
+ };
+ }),
+ };
+ }
) ?? []
);
}
diff --git a/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_main_statistics.ts b/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_main_statistics.ts
index cf799a47f7dc4..182fe0a1cdd8a 100644
--- a/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_main_statistics.ts
+++ b/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_main_statistics.ts
@@ -11,7 +11,6 @@ import {
rangeQuery,
termQuery,
} from '@kbn/observability-plugin/server';
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
import {
ERROR_CULPRIT,
ERROR_EXC_HANDLED,
@@ -26,6 +25,8 @@ import {
import { environmentQuery } from '../../../../common/utils/environment_query';
import { getErrorName } from '../../../lib/helpers/get_error_name';
import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client';
+import { ApmDocumentType } from '../../../../common/document_type';
+import { RollupInterval } from '../../../../common/rollup';
export type ErrorGroupMainStatisticsResponse = Array<{
groupId: string;
@@ -75,7 +76,12 @@ export async function getErrorGroupMainStatistics({
'get_error_group_main_statistics',
{
apm: {
- events: [ProcessorEvent.error],
+ sources: [
+ {
+ documentType: ApmDocumentType.ErrorEvent,
+ rollupInterval: RollupInterval.None,
+ },
+ ],
},
body: {
track_total_hits: false,
@@ -128,16 +134,19 @@ export async function getErrorGroupMainStatistics({
);
return (
- response.aggregations?.error_groups.buckets.map((bucket) => ({
- groupId: bucket.key as string,
- name: getErrorName(bucket.sample.hits.hits[0]._source),
- lastSeen: new Date(
- bucket.sample.hits.hits[0]?._source['@timestamp']
- ).getTime(),
- occurrences: bucket.doc_count,
- culprit: bucket.sample.hits.hits[0]?._source.error.culprit,
- handled: bucket.sample.hits.hits[0]?._source.error.exception?.[0].handled,
- type: bucket.sample.hits.hits[0]?._source.error.exception?.[0].type,
- })) ?? []
+ response.aggregations?.error_groups.buckets.map((bucket) => {
+ return {
+ groupId: bucket.key as string,
+ name: getErrorName(bucket.sample.hits.hits[0]._source),
+ lastSeen: new Date(
+ bucket.sample.hits.hits[0]._source['@timestamp']
+ ).getTime(),
+ occurrences: bucket.doc_count,
+ culprit: bucket.sample.hits.hits[0]._source.error.culprit,
+ handled:
+ bucket.sample.hits.hits[0]._source.error.exception?.[0].handled,
+ type: bucket.sample.hits.hits[0]._source.error.exception?.[0].type,
+ };
+ }) ?? []
);
}
diff --git a/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_sample_ids.ts b/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_sample_ids.ts
index 2796ec590ad42..0a154d3ad13fa 100644
--- a/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_sample_ids.ts
+++ b/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_group_sample_ids.ts
@@ -6,7 +6,6 @@
*/
import { rangeQuery, kqlQuery } from '@kbn/observability-plugin/server';
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
import { asMutableArray } from '../../../../common/utils/as_mutable_array';
import {
ERROR_GROUP_ID,
@@ -16,6 +15,8 @@ import {
} from '../../../../common/es_fields/apm';
import { environmentQuery } from '../../../../common/utils/environment_query';
import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client';
+import { ApmDocumentType } from '../../../../common/document_type';
+import { RollupInterval } from '../../../../common/rollup';
const ERROR_SAMPLES_SIZE = 10000;
@@ -41,9 +42,14 @@ export async function getErrorGroupSampleIds({
start: number;
end: number;
}): Promise {
- const params = {
+ const resp = await apmEventClient.search('get_error_group_sample_ids', {
apm: {
- events: [ProcessorEvent.error as const],
+ sources: [
+ {
+ documentType: ApmDocumentType.ErrorEvent,
+ rollupInterval: RollupInterval.None,
+ },
+ ],
},
body: {
track_total_hits: ERROR_SAMPLES_SIZE,
@@ -66,13 +72,11 @@ export async function getErrorGroupSampleIds({
{ '@timestamp': { order: 'desc' } }, // sort by timestamp to get the most recent error
] as const),
},
- };
-
- const resp = await apmEventClient.search(
- 'get_error_group_sample_ids',
- params
- );
- const errorSampleIds = resp.hits.hits.map((item) => item._source.error.id);
+ });
+ const errorSampleIds = resp.hits.hits.map((item) => {
+ const source = item._source;
+ return source.error.id;
+ });
return {
errorSampleIds,
diff --git a/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_sample_details.ts b/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_sample_details.ts
index cb11c0154be61..348949d3ecca5 100644
--- a/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_sample_details.ts
+++ b/x-pack/plugins/apm/server/routes/errors/get_error_groups/get_error_sample_details.ts
@@ -6,9 +6,10 @@
*/
import { rangeQuery, kqlQuery } from '@kbn/observability-plugin/server';
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
import { ERROR_ID, SERVICE_NAME } from '../../../../common/es_fields/apm';
import { environmentQuery } from '../../../../common/utils/environment_query';
+import { ApmDocumentType } from '../../../../common/document_type';
+import { RollupInterval } from '../../../../common/rollup';
import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client';
import { getTransaction } from '../../transactions/get_transaction';
import { Transaction } from '../../../../typings/es_schemas/ui/transaction';
@@ -38,7 +39,12 @@ export async function getErrorSampleDetails({
}): Promise {
const params = {
apm: {
- events: [ProcessorEvent.error as const],
+ sources: [
+ {
+ documentType: ApmDocumentType.ErrorEvent as const,
+ rollupInterval: RollupInterval.None,
+ },
+ ],
},
body: {
track_total_hits: false,
diff --git a/x-pack/plugins/apm/server/routes/metrics/serverless/get_serverless_summary.ts b/x-pack/plugins/apm/server/routes/metrics/serverless/get_serverless_summary.ts
index 8deb85264e019..b6ea22e03d506 100644
--- a/x-pack/plugins/apm/server/routes/metrics/serverless/get_serverless_summary.ts
+++ b/x-pack/plugins/apm/server/routes/metrics/serverless/get_serverless_summary.ts
@@ -10,6 +10,7 @@ import {
kqlQuery,
rangeQuery,
} from '@kbn/observability-plugin/server';
+import { ApmDocumentType } from '../../../../common/document_type';
import {
FAAS_BILLED_DURATION,
FAAS_DURATION,
@@ -20,6 +21,7 @@ import {
METRIC_SYSTEM_TOTAL_MEMORY,
SERVICE_NAME,
} from '../../../../common/es_fields/apm';
+import { RollupInterval } from '../../../../common/rollup';
import { environmentQuery } from '../../../../common/utils/environment_query';
import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client';
import { computeUsageAvgScript } from './get_compute_usage_chart';
@@ -52,7 +54,12 @@ async function getServerlessTransactionThroughput({
}) {
const params = {
apm: {
- events: [ProcessorEvent.transaction],
+ sources: [
+ {
+ documentType: ApmDocumentType.TransactionEvent,
+ rollupInterval: RollupInterval.None,
+ },
+ ],
},
body: {
track_total_hits: true,
diff --git a/x-pack/plugins/apm/server/routes/mobile/get_device_os_app.ts b/x-pack/plugins/apm/server/routes/mobile/get_device_os_app.ts
index e2194b994b02d..80fae958b6c53 100644
--- a/x-pack/plugins/apm/server/routes/mobile/get_device_os_app.ts
+++ b/x-pack/plugins/apm/server/routes/mobile/get_device_os_app.ts
@@ -10,7 +10,6 @@ import {
kqlQuery,
rangeQuery,
} from '@kbn/observability-plugin/server';
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
import {
DEVICE_MODEL_IDENTIFIER,
HOST_OS_VERSION,
@@ -19,6 +18,8 @@ import {
TRANSACTION_TYPE,
} from '../../../common/es_fields/apm';
import { environmentQuery } from '../../../common/utils/environment_query';
+import { ApmDocumentType } from '../../../common/document_type';
+import { RollupInterval } from '../../../common/rollup';
import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client';
export async function getDeviceOSApp({
@@ -42,7 +43,12 @@ export async function getDeviceOSApp({
}) {
return await apmEventClient.search('get_mobile_device_os_app', {
apm: {
- events: [ProcessorEvent.transaction],
+ sources: [
+ {
+ documentType: ApmDocumentType.TransactionEvent,
+ rollupInterval: RollupInterval.None,
+ },
+ ],
},
body: {
track_total_hits: false,
diff --git a/x-pack/plugins/apm/server/routes/mobile/get_mobile_crash_rate.ts b/x-pack/plugins/apm/server/routes/mobile/get_mobile_crash_rate.ts
index bf498bf704607..e60d0ff15c624 100644
--- a/x-pack/plugins/apm/server/routes/mobile/get_mobile_crash_rate.ts
+++ b/x-pack/plugins/apm/server/routes/mobile/get_mobile_crash_rate.ts
@@ -5,7 +5,6 @@
* 2.0.
*/
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
import {
kqlQuery,
rangeQuery,
@@ -23,6 +22,8 @@ import {
import { environmentQuery } from '../../../common/utils/environment_query';
import { getOffsetInMs } from '../../../common/utils/get_offset_in_ms';
import { offsetPreviousPeriodCoordinates } from '../../../common/utils/offset_previous_period_coordinate';
+import { ApmDocumentType } from '../../../common/document_type';
+import { RollupInterval } from '../../../common/rollup';
export interface CrashRateTimeseries {
currentPeriod: { timeseries: Coordinate[]; value: Maybe };
@@ -70,7 +71,12 @@ async function getMobileCrashTimeseries({
const response = await apmEventClient.search('get_mobile_crash_rate', {
apm: {
- events: [ProcessorEvent.error],
+ sources: [
+ {
+ documentType: ApmDocumentType.ErrorEvent,
+ rollupInterval: RollupInterval.None,
+ },
+ ],
},
body: {
track_total_hits: false,
diff --git a/x-pack/plugins/apm/server/routes/mobile/get_mobile_crashes_by_location.ts b/x-pack/plugins/apm/server/routes/mobile/get_mobile_crashes_by_location.ts
index 855ae8fb35d05..e91214af444b1 100644
--- a/x-pack/plugins/apm/server/routes/mobile/get_mobile_crashes_by_location.ts
+++ b/x-pack/plugins/apm/server/routes/mobile/get_mobile_crashes_by_location.ts
@@ -5,7 +5,6 @@
* 2.0.
*/
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
import {
kqlQuery,
rangeQuery,
@@ -16,6 +15,8 @@ import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_ev
import { getOffsetInMs } from '../../../common/utils/get_offset_in_ms';
import { getBucketSize } from '../../../common/utils/get_bucket_size';
import { environmentQuery } from '../../../common/utils/environment_query';
+import { ApmDocumentType } from '../../../common/document_type';
+import { RollupInterval } from '../../../common/rollup';
interface Props {
kuery: string;
@@ -64,7 +65,12 @@ export async function getCrashesByLocation({
};
const response = await apmEventClient.search('get_mobile_location_crashes', {
apm: {
- events: [ProcessorEvent.error],
+ sources: [
+ {
+ documentType: ApmDocumentType.ErrorEvent,
+ rollupInterval: RollupInterval.None,
+ },
+ ],
},
body: {
track_total_hits: false,
diff --git a/x-pack/plugins/apm/server/routes/mobile/get_mobile_sessions.ts b/x-pack/plugins/apm/server/routes/mobile/get_mobile_sessions.ts
index e3ccd83c20bf0..9168101ebc40e 100644
--- a/x-pack/plugins/apm/server/routes/mobile/get_mobile_sessions.ts
+++ b/x-pack/plugins/apm/server/routes/mobile/get_mobile_sessions.ts
@@ -5,7 +5,6 @@
* 2.0.
*/
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
import {
kqlQuery,
rangeQuery,
@@ -23,6 +22,8 @@ import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_ev
import { getBucketSize } from '../../../common/utils/get_bucket_size';
import { Coordinate } from '../../../typings/timeseries';
import { Maybe } from '../../../typings/common';
+import { ApmDocumentType } from '../../../common/document_type';
+import { RollupInterval } from '../../../common/rollup';
export interface SessionsTimeseries {
currentPeriod: { timeseries: Coordinate[]; value: Maybe };
@@ -70,7 +71,12 @@ async function getSessionTimeseries({
const response = await apmEventClient.search('get_mobile_sessions', {
apm: {
- events: [ProcessorEvent.transaction],
+ sources: [
+ {
+ documentType: ApmDocumentType.TransactionEvent,
+ rollupInterval: RollupInterval.None,
+ },
+ ],
},
body: {
track_total_hits: false,
diff --git a/x-pack/plugins/apm/server/routes/mobile/get_mobile_sessions_by_location.ts b/x-pack/plugins/apm/server/routes/mobile/get_mobile_sessions_by_location.ts
index 95ad146f585f0..7543d097d888b 100644
--- a/x-pack/plugins/apm/server/routes/mobile/get_mobile_sessions_by_location.ts
+++ b/x-pack/plugins/apm/server/routes/mobile/get_mobile_sessions_by_location.ts
@@ -10,12 +10,13 @@ import {
kqlQuery,
rangeQuery,
} from '@kbn/observability-plugin/server';
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
import { SERVICE_NAME, SESSION_ID } from '../../../common/es_fields/apm';
import { environmentQuery } from '../../../common/utils/environment_query';
import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client';
import { getOffsetInMs } from '../../../common/utils/get_offset_in_ms';
import { getBucketSize } from '../../../common/utils/get_bucket_size';
+import { ApmDocumentType } from '../../../common/document_type';
+import { RollupInterval } from '../../../common/rollup';
interface Props {
kuery: string;
@@ -65,7 +66,12 @@ export async function getSessionsByLocation({
const response = await apmEventClient.search('get_mobile_location_sessions', {
apm: {
- events: [ProcessorEvent.transaction],
+ sources: [
+ {
+ documentType: ApmDocumentType.TransactionEvent,
+ rollupInterval: RollupInterval.None,
+ },
+ ],
},
body: {
track_total_hits: false,
diff --git a/x-pack/plugins/apm/server/routes/mobile/get_nct.ts b/x-pack/plugins/apm/server/routes/mobile/get_nct.ts
index 829f40962f84d..f84701ecfb293 100644
--- a/x-pack/plugins/apm/server/routes/mobile/get_nct.ts
+++ b/x-pack/plugins/apm/server/routes/mobile/get_nct.ts
@@ -10,12 +10,13 @@ import {
kqlQuery,
rangeQuery,
} from '@kbn/observability-plugin/server';
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
import {
NETWORK_CONNECTION_TYPE,
SERVICE_NAME,
} from '../../../common/es_fields/apm';
import { environmentQuery } from '../../../common/utils/environment_query';
+import { ApmDocumentType } from '../../../common/document_type';
+import { RollupInterval } from '../../../common/rollup';
import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client';
export async function getNCT({
@@ -38,7 +39,12 @@ export async function getNCT({
}) {
return await apmEventClient.search('get_mobile_nct', {
apm: {
- events: [ProcessorEvent.span],
+ sources: [
+ {
+ documentType: ApmDocumentType.SpanEvent,
+ rollupInterval: RollupInterval.None,
+ },
+ ],
},
body: {
track_total_hits: false,
diff --git a/x-pack/plugins/apm/server/routes/services/get_service_node_metadata.ts b/x-pack/plugins/apm/server/routes/services/get_service_node_metadata.ts
index e327bf1e7cdb7..033e343084783 100644
--- a/x-pack/plugins/apm/server/routes/services/get_service_node_metadata.ts
+++ b/x-pack/plugins/apm/server/routes/services/get_service_node_metadata.ts
@@ -6,7 +6,6 @@
*/
import { kqlQuery, rangeQuery } from '@kbn/observability-plugin/server';
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
import { HOST_NAME, CONTAINER_ID } from '../../../common/es_fields/apm';
import { NOT_AVAILABLE_LABEL } from '../../../common/i18n';
import { SERVICE_NAME, SERVICE_NODE_NAME } from '../../../common/es_fields/apm';
@@ -15,6 +14,8 @@ import {
serviceNodeNameQuery,
} from '../../../common/utils/environment_query';
import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client';
+import { ApmServiceTransactionDocumentType } from '../../../common/document_type';
+import { RollupInterval } from '../../../common/rollup';
export interface ServiceNodeMetadataResponse {
host: string | number;
@@ -29,6 +30,8 @@ export async function getServiceNodeMetadata({
start,
end,
environment,
+ documentType,
+ rollupInterval,
}: {
kuery: string;
serviceName: string;
@@ -37,10 +40,17 @@ export async function getServiceNodeMetadata({
start: number;
end: number;
environment: string;
+ documentType: ApmServiceTransactionDocumentType;
+ rollupInterval: RollupInterval;
}): Promise {
const params = {
apm: {
- events: [ProcessorEvent.metric],
+ sources: [
+ {
+ documentType,
+ rollupInterval,
+ },
+ ],
},
body: {
track_total_hits: false,
@@ -78,14 +88,14 @@ export async function getServiceNodeMetadata({
},
};
- const response = await apmEventClient.search(
+ const { aggregations } = await apmEventClient.search(
'get_service_node_metadata',
params
);
return {
- host: response.aggregations?.host.buckets[0]?.key || NOT_AVAILABLE_LABEL,
+ host: aggregations?.host.buckets[0]?.key || NOT_AVAILABLE_LABEL,
containerId:
- response.aggregations?.containerId.buckets[0]?.key || NOT_AVAILABLE_LABEL,
+ aggregations?.containerId.buckets[0]?.key || NOT_AVAILABLE_LABEL,
};
}
diff --git a/x-pack/plugins/apm/server/routes/services/route.ts b/x-pack/plugins/apm/server/routes/services/route.ts
index 24dc79ea668b4..0a51a3e88379f 100644
--- a/x-pack/plugins/apm/server/routes/services/route.ts
+++ b/x-pack/plugins/apm/server/routes/services/route.ts
@@ -368,14 +368,20 @@ const serviceNodeMetadataRoute = createApmServerRoute({
serviceName: t.string,
serviceNodeName: t.string,
}),
- query: t.intersection([kueryRt, rangeRt, environmentRt]),
+ query: t.intersection([
+ kueryRt,
+ rangeRt,
+ environmentRt,
+ serviceTransactionDataSourceRt,
+ ]),
}),
options: { tags: ['access:apm'] },
handler: async (resources): Promise => {
const apmEventClient = await getApmEventClient(resources);
const { params } = resources;
const { serviceName, serviceNodeName } = params.path;
- const { kuery, start, end, environment } = params.query;
+ const { kuery, start, end, environment, documentType, rollupInterval } =
+ params.query;
return getServiceNodeMetadata({
kuery,
@@ -385,6 +391,8 @@ const serviceNodeMetadataRoute = createApmServerRoute({
start,
end,
environment,
+ documentType,
+ rollupInterval,
});
},
});
diff --git a/x-pack/plugins/apm/server/routes/settings/custom_link/__snapshots__/get_transaction.test.ts.snap b/x-pack/plugins/apm/server/routes/settings/custom_link/__snapshots__/get_transaction.test.ts.snap
index 3a738243cf5c7..ea8d4318f4c50 100644
--- a/x-pack/plugins/apm/server/routes/settings/custom_link/__snapshots__/get_transaction.test.ts.snap
+++ b/x-pack/plugins/apm/server/routes/settings/custom_link/__snapshots__/get_transaction.test.ts.snap
@@ -3,8 +3,11 @@
exports[`custom link get transaction fetches with all filter 1`] = `
Object {
"apm": Object {
- "events": Array [
- "transaction",
+ "sources": Array [
+ Object {
+ "documentType": "transactionEvent",
+ "rollupInterval": "none",
+ },
],
},
"body": Object {
@@ -52,8 +55,11 @@ Object {
exports[`custom link get transaction fetches without filter 1`] = `
Object {
"apm": Object {
- "events": Array [
- "transaction",
+ "sources": Array [
+ Object {
+ "documentType": "transactionEvent",
+ "rollupInterval": "none",
+ },
],
},
"body": Object {
diff --git a/x-pack/plugins/apm/server/routes/settings/custom_link/get_transaction.ts b/x-pack/plugins/apm/server/routes/settings/custom_link/get_transaction.ts
index d454b447b17f9..58cdd55b2d443 100644
--- a/x-pack/plugins/apm/server/routes/settings/custom_link/get_transaction.ts
+++ b/x-pack/plugins/apm/server/routes/settings/custom_link/get_transaction.ts
@@ -7,7 +7,8 @@
import * as t from 'io-ts';
import { compact } from 'lodash';
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
+import { ApmDocumentType } from '../../../../common/document_type';
+import { RollupInterval } from '../../../../common/rollup';
import { filterOptionsRt } from './custom_link_types';
import { splitFilterValueByComma } from './helper';
import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client';
@@ -29,10 +30,15 @@ export async function getTransaction({
})
);
- const params = {
+ const resp = await apmEventClient.search('get_transaction_for_custom_link', {
terminate_after: 1,
apm: {
- events: [ProcessorEvent.transaction as const],
+ sources: [
+ {
+ documentType: ApmDocumentType.TransactionEvent,
+ rollupInterval: RollupInterval.None,
+ },
+ ],
},
body: {
track_total_hits: false,
@@ -43,10 +49,6 @@ export async function getTransaction({
},
},
},
- };
- const resp = await apmEventClient.search(
- 'get_transaction_for_custom_link',
- params
- );
+ });
return resp.hits.hits[0]?._source;
}
diff --git a/x-pack/plugins/apm/server/routes/traces/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/routes/traces/__snapshots__/queries.test.ts.snap
index a490aec44a366..d64c33a421e19 100644
--- a/x-pack/plugins/apm/server/routes/traces/__snapshots__/queries.test.ts.snap
+++ b/x-pack/plugins/apm/server/routes/traces/__snapshots__/queries.test.ts.snap
@@ -3,8 +3,11 @@
exports[`trace queries fetches a trace 1`] = `
Object {
"apm": Object {
- "events": Array [
- "error",
+ "sources": Array [
+ Object {
+ "documentType": "error",
+ "rollupInterval": "none",
+ },
],
},
"body": Object {
diff --git a/x-pack/plugins/apm/server/routes/traces/get_trace_items.ts b/x-pack/plugins/apm/server/routes/traces/get_trace_items.ts
index a1637b29d8e78..3a3e9b8fe2952 100644
--- a/x-pack/plugins/apm/server/routes/traces/get_trace_items.ts
+++ b/x-pack/plugins/apm/server/routes/traces/get_trace_items.ts
@@ -55,6 +55,8 @@ import {
} from '../../../common/waterfall/typings';
import { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client';
import { getSpanLinksCountById } from '../span_links/get_linked_children';
+import { ApmDocumentType } from '../../../common/document_type';
+import { RollupInterval } from '../../../common/rollup';
export interface TraceItems {
exceedsMax: boolean;
@@ -87,7 +89,12 @@ export async function getTraceItems({
const errorResponsePromise = apmEventClient.search('get_errors_docs', {
apm: {
- events: [ProcessorEvent.error],
+ sources: [
+ {
+ documentType: ApmDocumentType.ErrorEvent,
+ rollupInterval: RollupInterval.None,
+ },
+ ],
},
body: {
track_total_hits: false,
diff --git a/x-pack/plugins/apm/server/routes/transactions/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/routes/transactions/__snapshots__/queries.test.ts.snap
index 4ff86970a611a..deb1dec096f08 100644
--- a/x-pack/plugins/apm/server/routes/transactions/__snapshots__/queries.test.ts.snap
+++ b/x-pack/plugins/apm/server/routes/transactions/__snapshots__/queries.test.ts.snap
@@ -3,8 +3,11 @@
exports[`transaction queries fetches a transaction 1`] = `
Object {
"apm": Object {
- "events": Array [
- "transaction",
+ "sources": Array [
+ Object {
+ "documentType": "transactionEvent",
+ "rollupInterval": "none",
+ },
],
},
"body": Object {
diff --git a/x-pack/plugins/apm/server/routes/transactions/get_transaction/index.ts b/x-pack/plugins/apm/server/routes/transactions/get_transaction/index.ts
index 77935244361b6..8854f3075e59b 100644
--- a/x-pack/plugins/apm/server/routes/transactions/get_transaction/index.ts
+++ b/x-pack/plugins/apm/server/routes/transactions/get_transaction/index.ts
@@ -6,10 +6,11 @@
*/
import { rangeQuery, termQuery } from '@kbn/observability-plugin/server';
-import { ProcessorEvent } from '@kbn/observability-plugin/common';
import { TRACE_ID, TRANSACTION_ID } from '../../../../common/es_fields/apm';
import { asMutableArray } from '../../../../common/utils/as_mutable_array';
import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client';
+import { ApmDocumentType } from '../../../../common/document_type';
+import { RollupInterval } from '../../../../common/rollup';
export async function getTransaction({
transactionId,
@@ -26,7 +27,12 @@ export async function getTransaction({
}) {
const resp = await apmEventClient.search('get_transaction', {
apm: {
- events: [ProcessorEvent.transaction],
+ sources: [
+ {
+ documentType: ApmDocumentType.TransactionEvent,
+ rollupInterval: RollupInterval.None,
+ },
+ ],
},
body: {
track_total_hits: false,
diff --git a/x-pack/test/apm_api_integration/tests/services/get_service_node_metadata.spec.ts b/x-pack/test/apm_api_integration/tests/services/get_service_node_metadata.spec.ts
index c07d6dc6c0f5e..b37d68fe936af 100644
--- a/x-pack/test/apm_api_integration/tests/services/get_service_node_metadata.spec.ts
+++ b/x-pack/test/apm_api_integration/tests/services/get_service_node_metadata.spec.ts
@@ -7,6 +7,8 @@
import expect from '@kbn/expect';
import { apm, timerange } from '@kbn/apm-synthtrace-client';
+import { ApmDocumentType } from '@kbn/apm-plugin/common/document_type';
+import { RollupInterval } from '@kbn/apm-plugin/common/rollup';
import { FtrProviderContext } from '../../common/ftr_provider_context';
export default function ApiTest({ getService }: FtrProviderContext) {
@@ -29,6 +31,8 @@ export default function ApiTest({ getService }: FtrProviderContext) {
end: new Date(end).toISOString(),
kuery: '',
environment: 'production',
+ documentType: ApmDocumentType.TransactionMetric,
+ rollupInterval: RollupInterval.OneMinute,
},
},
});