From a86f324670041460b1f3c81904a2e89974ab616a Mon Sep 17 00:00:00 2001
From: "elastic-renovate-prod[bot]"
<174716857+elastic-renovate-prod[bot]@users.noreply.github.com>
Date: Sun, 29 Sep 2024 17:10:20 -0500
Subject: [PATCH 01/60] Update dependency @openfeature/web-sdk to ^1.2.4 (main)
(#194364)
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 99f15d2d81642..cad364998e3c8 100644
--- a/package.json
+++ b/package.json
@@ -1011,7 +1011,7 @@
"@openfeature/core": "^1.4.0",
"@openfeature/launchdarkly-client-provider": "^0.3.0",
"@openfeature/server-sdk": "^1.15.1",
- "@openfeature/web-sdk": "^1.2.3",
+ "@openfeature/web-sdk": "^1.2.4",
"@opentelemetry/api": "^1.1.0",
"@opentelemetry/api-metrics": "^0.31.0",
"@opentelemetry/exporter-metrics-otlp-grpc": "^0.34.0",
diff --git a/yarn.lock b/yarn.lock
index 69ddc723a2155..a3d54dbd3f1bd 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -8037,10 +8037,10 @@
resolved "https://registry.yarnpkg.com/@openfeature/server-sdk/-/server-sdk-1.15.1.tgz#7a20ca06297f947f6060852e072b0bc24e03f126"
integrity sha512-PaJETh/fr4N8BVQlgb5vBH8VdN25VhxaVvL0s4Wv3kAUC+MXi7B9hEVM1GUlI9CrjxRExlbAAYtLY7kzjE7SXg==
-"@openfeature/web-sdk@^1.2.3":
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/@openfeature/web-sdk/-/web-sdk-1.2.3.tgz#5a248e8ae53c22397cde5e5324e69a833bf8fb21"
- integrity sha512-vsqEvkY5Z78C5W1UW57uMN+a70UgaObzQ1QNIp0lV77aCQnGJi7FHeYmyrfLm8XjtJbj/5PAaclAyqudf+xgaA==
+"@openfeature/web-sdk@^1.2.4":
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/@openfeature/web-sdk/-/web-sdk-1.2.4.tgz#5b3e1805f81fd0e50bbe10776292ba24a2239ac4"
+ integrity sha512-v3RYqMIq+/UXH7eVqfTfp7iWPJ4/Ck5a3RwxAEhypocq5IxUDyEUxXvVU82bkVkbNEKvXYLUWlxT+IuHvh8Eng==
"@opentelemetry/api-metrics@0.31.0", "@opentelemetry/api-metrics@^0.31.0":
version "0.31.0"
From 0ac69658bff4e02b8c477673e091b4e86bddf7b5 Mon Sep 17 00:00:00 2001
From: Davis McPhee
Date: Mon, 30 Sep 2024 00:25:26 -0300
Subject: [PATCH 02/60] [Discover] [Unified Doc Viewer] Fix doc viewer not
receiving focus on open (#191039)
## Summary
This PR fixes an issue where the new resizable doc viewer push flyout
was not receiving focus on open, resulting in the flyout having to be
manually focused in before users can navigate between docs using the
arrow keys. It also re-adds support for closing the flyout when pressing
the escape key, improves overall focus management, ensures the proper
a11y attributes are used when the push flyout is shown, and introduces a
new set of functional tests for doc viewer keyboard navigation and a11y.
Fixes #190946.
### Checklist
- [x] 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
- [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
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [x] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [x] 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)
- [x] 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))
- [x] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
### For maintainers
- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
---
.../doc_viewer_flyout/doc_viewer_flyout.tsx | 21 +-
.../doc_viewer_flyout/use_flyout_a11y.tsx | 54 +++++
.../group2_data_grid1/_data_grid_doc_table.ts | 4 +-
.../apps/discover/group3/_doc_viewer.ts | 209 ++++++++++++++++++
test/functional/services/data_grid.ts | 6 +-
5 files changed, 284 insertions(+), 10 deletions(-)
create mode 100644 src/plugins/unified_doc_viewer/public/components/doc_viewer_flyout/use_flyout_a11y.tsx
diff --git a/src/plugins/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx b/src/plugins/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx
index 540c04a206c61..be0ab585b15a8 100644
--- a/src/plugins/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx
+++ b/src/plugins/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx
@@ -8,7 +8,6 @@
*/
import React, { useMemo, useCallback, type ComponentType } from 'react';
-import { get } from 'lodash';
import { i18n } from '@kbn/i18n';
import { css } from '@emotion/react';
import type { DataView } from '@kbn/data-views-plugin/public';
@@ -34,6 +33,7 @@ import useLocalStorage from 'react-use/lib/useLocalStorage';
import type { ToastsStart } from '@kbn/core-notifications-browser';
import type { DocViewFilterFn, DocViewRenderProps } from '@kbn/unified-doc-viewer/types';
import { UnifiedDocViewer } from '../lazy_doc_viewer';
+import { useFlyoutA11y } from './use_flyout_a11y';
export interface UnifiedDocViewerFlyoutProps {
'data-test-subj'?: string;
@@ -71,6 +71,7 @@ function getIndexByDocId(hits: DataTableRecord[], id: string) {
}
export const FLYOUT_WIDTH_KEY = 'unifiedDocViewer:flyoutWidth';
+
/**
* Flyout displaying an expanded row details
*/
@@ -129,24 +130,29 @@ export function UnifiedDocViewerFlyout({
const onKeyDown = useCallback(
(ev: React.KeyboardEvent) => {
- const nodeClasses = get(ev, 'target.className', '');
- if (typeof nodeClasses === 'string' && nodeClasses.includes('euiDataGrid')) {
+ if (ev.target instanceof HTMLElement && ev.target.closest('.euiDataGrid__content')) {
// ignore events triggered from the data grid
return;
}
- const nodeName = get(ev, 'target.nodeName', null);
- if (typeof nodeName === 'string' && nodeName.toLowerCase() === 'input') {
+ if (ev.key === keys.ESCAPE) {
+ ev.preventDefault();
+ ev.stopPropagation();
+ onClose();
+ }
+
+ if (ev.target instanceof HTMLInputElement) {
// ignore events triggered from the search input
return;
}
+
if (ev.key === keys.ARROW_LEFT || ev.key === keys.ARROW_RIGHT) {
ev.preventDefault();
ev.stopPropagation();
setPage(activePage + (ev.key === keys.ARROW_RIGHT ? 1 : -1));
}
},
- [activePage, setPage]
+ [activePage, onClose, setPage]
);
const addColumn = useCallback(
@@ -231,6 +237,7 @@ export function UnifiedDocViewerFlyout({
defaultMessage: 'Document',
});
const currentFlyoutTitle = flyoutTitle ?? defaultFlyoutTitle;
+ const { a11yProps, screenReaderDescription } = useFlyoutA11y({ isXlScreen });
return (
@@ -250,7 +257,9 @@ export function UnifiedDocViewerFlyout({
maxWidth: `${isXlScreen ? `calc(100vw - ${DEFAULT_WIDTH}px)` : '90vw'} !important`,
}}
paddingSize="m"
+ {...a11yProps}
>
+ {screenReaderDescription}
{
+ const descriptionId = useGeneratedHtmlId();
+ const [triggerEl] = useState(document.activeElement);
+ const [flyoutEl, setFlyoutEl] = useState();
+
+ // Auto-focus push flyout on open or when switching to XL screen
+ useEffect(() => {
+ if (isXlScreen && flyoutEl && document.contains(flyoutEl)) {
+ // Wait a tick before focusing or focus will be stolen by the trigger element when
+ // switching from an overlay flyout to a push flyout (due to EUI focus lock)
+ setTimeout(() => flyoutEl.focus());
+ }
+ }, [flyoutEl, isXlScreen]);
+
+ // Return focus to the trigger element when the flyout is closed
+ useUnmount(() => {
+ if (triggerEl instanceof HTMLElement && document.contains(triggerEl)) {
+ triggerEl.focus();
+ }
+ });
+
+ return {
+ a11yProps: {
+ ref: setFlyoutEl,
+ role: isXlScreen ? 'dialog' : undefined,
+ tabindex: isXlScreen ? 0 : undefined,
+ 'aria-describedby': isXlScreen ? descriptionId : undefined,
+ 'data-no-focus-lock': isXlScreen || undefined,
+ },
+ screenReaderDescription: isXlScreen && (
+
+
+ {i18n.translate('unifiedDocViewer.flyout.screenReaderDescription', {
+ defaultMessage: 'You are in a non-modal dialog. To close the dialog, press Escape.',
+ })}
+
+
+ ),
+ };
+};
diff --git a/test/functional/apps/discover/group2_data_grid1/_data_grid_doc_table.ts b/test/functional/apps/discover/group2_data_grid1/_data_grid_doc_table.ts
index c2ae5c30bf86f..dc3cfb8c23bf9 100644
--- a/test/functional/apps/discover/group2_data_grid1/_data_grid_doc_table.ts
+++ b/test/functional/apps/discover/group2_data_grid1/_data_grid_doc_table.ts
@@ -179,9 +179,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it('should allow paginating docs in the flyout by clicking in the doc table', async function () {
await retry.try(async function () {
await dataGrid.clickRowToggle({ rowIndex: rowToInspect - 1 });
- await testSubjects.exists(`docViewerFlyoutNavigationPage0`);
+ await testSubjects.existOrFail('docViewerFlyoutNavigationPage-0');
await dataGrid.clickRowToggle({ rowIndex: rowToInspect });
- await testSubjects.exists(`docViewerFlyoutNavigationPage1`);
+ await testSubjects.existOrFail('docViewerFlyoutNavigationPage-1');
await dataGrid.closeFlyout();
});
});
diff --git a/test/functional/apps/discover/group3/_doc_viewer.ts b/test/functional/apps/discover/group3/_doc_viewer.ts
index bc71c82289071..542cdab9543ec 100644
--- a/test/functional/apps/discover/group3/_doc_viewer.ts
+++ b/test/functional/apps/discover/group3/_doc_viewer.ts
@@ -431,5 +431,214 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
expect(await dataGrid.isFieldPinnedInFlyout('@message')).to.be(false);
});
});
+
+ describe('flyout', () => {
+ let originalScreenSize = { width: 0, height: 0 };
+
+ const reduceScreenWidth = async () => {
+ await browser.setWindowSize(800, originalScreenSize.height);
+ };
+
+ const restoreScreenWidth = async () => {
+ await browser.setWindowSize(originalScreenSize.width, originalScreenSize.height);
+ };
+
+ before(async () => {
+ originalScreenSize = await browser.getWindowSize();
+ });
+
+ beforeEach(async () => {
+ // open the flyout once initially to ensure table is the default tab
+ await dataGrid.clickRowToggle();
+ await discover.isShowingDocViewer();
+ await dataGrid.closeFlyout();
+ });
+
+ afterEach(async () => {
+ await restoreScreenWidth();
+ });
+
+ describe('keyboard navigation', () => {
+ it('should navigate between documents with arrow keys', async () => {
+ await dataGrid.clickRowToggle({ defaultTabId: false });
+ await discover.isShowingDocViewer();
+ await testSubjects.existOrFail(`docViewerFlyoutNavigationPage-0`);
+ await browser.pressKeys(browser.keys.ARROW_RIGHT);
+ await testSubjects.existOrFail(`docViewerFlyoutNavigationPage-1`);
+ await browser.pressKeys(browser.keys.ARROW_RIGHT);
+ await testSubjects.existOrFail(`docViewerFlyoutNavigationPage-2`);
+ await browser.pressKeys(browser.keys.ARROW_LEFT);
+ await testSubjects.existOrFail(`docViewerFlyoutNavigationPage-1`);
+ await browser.pressKeys(browser.keys.ARROW_LEFT);
+ await testSubjects.existOrFail(`docViewerFlyoutNavigationPage-0`);
+ });
+
+ it('should not navigate between documents with arrow keys when the search input is focused', async () => {
+ await dataGrid.clickRowToggle({ defaultTabId: false });
+ await discover.isShowingDocViewer();
+ await testSubjects.existOrFail(`docViewerFlyoutNavigationPage-0`);
+ await browser.pressKeys(browser.keys.ARROW_RIGHT);
+ await testSubjects.existOrFail(`docViewerFlyoutNavigationPage-1`);
+ await testSubjects.click('unifiedDocViewerFieldsSearchInput');
+ await browser.pressKeys(browser.keys.ARROW_RIGHT);
+ await testSubjects.existOrFail(`docViewerFlyoutNavigationPage-1`);
+ await browser.pressKeys(browser.keys.TAB);
+ await browser.pressKeys(browser.keys.ARROW_RIGHT);
+ await testSubjects.existOrFail(`docViewerFlyoutNavigationPage-2`);
+ });
+
+ it('should not navigate between documents with arrow keys when the data grid is focused', async () => {
+ await dataGrid.clickRowToggle({ defaultTabId: false });
+ await discover.isShowingDocViewer();
+ await testSubjects.existOrFail(`docViewerFlyoutNavigationPage-0`);
+ await browser.pressKeys(browser.keys.ARROW_RIGHT);
+ await testSubjects.existOrFail(`docViewerFlyoutNavigationPage-1`);
+ await testSubjects.click('dataGridHeaderCell-name');
+ await browser.pressKeys(browser.keys.ARROW_RIGHT);
+ await testSubjects.existOrFail(`docViewerFlyoutNavigationPage-1`);
+ await browser.pressKeys(browser.keys.TAB);
+ await browser.pressKeys(browser.keys.ARROW_RIGHT);
+ await testSubjects.existOrFail(`docViewerFlyoutNavigationPage-2`);
+ });
+
+ it('should close the flyout with the escape key', async () => {
+ await dataGrid.clickRowToggle({ defaultTabId: false });
+ expect(await discover.isShowingDocViewer()).to.be(true);
+ await browser.pressKeys(browser.keys.ESCAPE);
+ expect(await discover.isShowingDocViewer()).to.be(false);
+ });
+
+ it('should close the flyout with the escape key when the search input is focused', async () => {
+ await dataGrid.clickRowToggle({ defaultTabId: false });
+ expect(await discover.isShowingDocViewer()).to.be(true);
+ await testSubjects.click('unifiedDocViewerFieldsSearchInput');
+ await browser.pressKeys(browser.keys.ESCAPE);
+ expect(await discover.isShowingDocViewer()).to.be(false);
+ });
+
+ it('should not close the flyout with the escape key when the data grid is focused', async () => {
+ await dataGrid.clickRowToggle({ defaultTabId: false });
+ expect(await discover.isShowingDocViewer()).to.be(true);
+ await testSubjects.click('dataGridHeaderCell-name');
+ await browser.pressKeys(browser.keys.ESCAPE);
+ expect(await discover.isShowingDocViewer()).to.be(true);
+ await browser.pressKeys(browser.keys.TAB);
+ await browser.pressKeys(browser.keys.ESCAPE);
+ expect(await discover.isShowingDocViewer()).to.be(false);
+ });
+ });
+
+ describe('accessibility', () => {
+ it('should focus the flyout on open, and retain focus when resizing between push and overlay flyouts', async () => {
+ // push -> overlay -> push
+ await dataGrid.clickRowToggle({ defaultTabId: false });
+ await discover.isShowingDocViewer();
+ let activeElement = await find.activeElement();
+ expect(await activeElement.getAttribute('data-test-subj')).to.be('docViewerFlyout');
+ await reduceScreenWidth();
+ activeElement = await find.activeElement();
+ expect(await activeElement.getAttribute('data-test-subj')).to.be('docViewerFlyout');
+ await restoreScreenWidth();
+ activeElement = await find.activeElement();
+ expect(await activeElement.getAttribute('data-test-subj')).to.be('docViewerFlyout');
+ // overlay -> push -> overlay
+ await browser.pressKeys(browser.keys.ESCAPE);
+ await reduceScreenWidth();
+ await dataGrid.clickRowToggle({ defaultTabId: false });
+ await discover.isShowingDocViewer();
+ activeElement = await find.activeElement();
+ expect(await activeElement.getAttribute('data-test-subj')).to.be('docViewerFlyout');
+ await restoreScreenWidth();
+ activeElement = await find.activeElement();
+ expect(await activeElement.getAttribute('data-test-subj')).to.be('docViewerFlyout');
+ await reduceScreenWidth();
+ activeElement = await find.activeElement();
+ expect(await activeElement.getAttribute('data-test-subj')).to.be('docViewerFlyout');
+ });
+
+ it('should return focus to the trigger element when the flyout is closed', async () => {
+ // push
+ await dataGrid.clickRowToggle({ defaultTabId: false });
+ await discover.isShowingDocViewer();
+ await browser.pressKeys(browser.keys.ESCAPE);
+ let activeElement = await find.activeElement();
+ expect(await activeElement.getAttribute('data-test-subj')).to.be(
+ 'docTableExpandToggleColumn'
+ );
+ // push -> overlay
+ await dataGrid.clickRowToggle({ defaultTabId: false });
+ await discover.isShowingDocViewer();
+ await reduceScreenWidth();
+ await browser.pressKeys(browser.keys.ESCAPE);
+ activeElement = await find.activeElement();
+ expect(await activeElement.getAttribute('data-test-subj')).to.be(
+ 'docTableExpandToggleColumn'
+ );
+ // overlay
+ await dataGrid.clickRowToggle({ defaultTabId: false });
+ await discover.isShowingDocViewer();
+ await browser.pressKeys(browser.keys.ESCAPE);
+ activeElement = await find.activeElement();
+ expect(await activeElement.getAttribute('data-test-subj')).to.be(
+ 'docTableExpandToggleColumn'
+ );
+ // overlay -> push
+ await dataGrid.clickRowToggle({ defaultTabId: false });
+ await discover.isShowingDocViewer();
+ await restoreScreenWidth();
+ await browser.pressKeys(browser.keys.ESCAPE);
+ activeElement = await find.activeElement();
+ expect(await activeElement.getAttribute('data-test-subj')).to.be(
+ 'docTableExpandToggleColumn'
+ );
+ });
+
+ it('should show custom screen reader description push flyout is active', async () => {
+ await dataGrid.clickRowToggle({ defaultTabId: false });
+ await discover.isShowingDocViewer();
+ await testSubjects.existOrFail('unifiedDocViewerScreenReaderDescription', {
+ allowHidden: true,
+ });
+ });
+
+ it('should not show custom screen reader description when overlay flyout active', async () => {
+ await dataGrid.clickRowToggle({ defaultTabId: false });
+ await discover.isShowingDocViewer();
+ await reduceScreenWidth();
+ expect(
+ await testSubjects.exists('unifiedDocViewerScreenReaderDescription', {
+ allowHidden: true,
+ })
+ ).to.be(false);
+ });
+
+ it('should use expected a11y attributes', async () => {
+ // push flyout
+ await dataGrid.clickRowToggle({ defaultTabId: false });
+ await discover.isShowingDocViewer();
+ let role = await testSubjects.getAttribute('docViewerFlyout', 'role');
+ let tabindex = await testSubjects.getAttribute('docViewerFlyout', 'tabindex');
+ let describedBy = await testSubjects.getAttribute('docViewerFlyout', 'aria-describedby');
+ let noFocusLock = await testSubjects.getAttribute(
+ 'docViewerFlyout',
+ 'data-no-focus-lock'
+ );
+ expect(role).to.be('dialog');
+ expect(tabindex).to.be('0');
+ expect(await find.existsByCssSelector(`#${describedBy}`)).to.be(true);
+ expect(noFocusLock).to.be('true');
+ // overlay flyout
+ await reduceScreenWidth();
+ role = await testSubjects.getAttribute('docViewerFlyout', 'role');
+ tabindex = await testSubjects.getAttribute('docViewerFlyout', 'tabindex');
+ describedBy = await testSubjects.getAttribute('docViewerFlyout', 'aria-describedby');
+ noFocusLock = await testSubjects.getAttribute('docViewerFlyout', 'data-no-focus-lock');
+ expect(role).to.be('dialog');
+ expect(tabindex).to.be('0');
+ expect(await find.existsByCssSelector(`#${describedBy}`)).to.be(true);
+ expect(noFocusLock).to.be(null);
+ });
+ });
+ });
});
}
diff --git a/test/functional/services/data_grid.ts b/test/functional/services/data_grid.ts
index efdaeb49933f2..903e38427181b 100644
--- a/test/functional/services/data_grid.ts
+++ b/test/functional/services/data_grid.ts
@@ -357,7 +357,7 @@ export class DataGridService extends FtrService {
}
public async clickRowToggle(
- { defaultTabId, ...options }: SelectOptions & { defaultTabId?: string } = {
+ { defaultTabId, ...options }: SelectOptions & { defaultTabId?: string | false } = {
isAnchorRow: false,
rowIndex: 0,
}
@@ -389,7 +389,9 @@ export class DataGridService extends FtrService {
throw new Error('Unable to find row toggle element');
}
- await this.clickDocViewerTab(defaultTabId ?? 'doc_view_table');
+ if (defaultTabId !== false) {
+ await this.clickDocViewerTab(defaultTabId ?? 'doc_view_table');
+ }
}
public async isShowingDocViewer() {
From 2bb992e173daee83b013ce40ce8e4ae049c629f2 Mon Sep 17 00:00:00 2001
From: Linghao Su
Date: Mon, 30 Sep 2024 11:30:32 +0800
Subject: [PATCH 03/60] [Field_Format][Numeral] Convert `null` values to `'-'`
(#193722)
## Summary
Fixes https://github.com/elastic/kibana/issues/191629
When export to csv, converts `null` to `'-'` instead of the `'null'`
string.
---------
Co-authored-by: Elastic Machine
Co-authored-by: Davis McPhee
---
.../common/converters/number.test.ts | 6 +++
.../common/converters/numeral.ts | 1 +
.../functional/apps/lens/group6/metric.ts | 50 +++++++++----------
3 files changed, 32 insertions(+), 25 deletions(-)
diff --git a/src/plugins/field_formats/common/converters/number.test.ts b/src/plugins/field_formats/common/converters/number.test.ts
index 9a70a1c2d996e..3c447b86c35b6 100644
--- a/src/plugins/field_formats/common/converters/number.test.ts
+++ b/src/plugins/field_formats/common/converters/number.test.ts
@@ -44,4 +44,10 @@ describe('NumberFormat', () => {
}"
`);
});
+
+ test('null input', () => {
+ const formatter = new NumberFormat({}, getConfig);
+ expect(formatter.convert(null)).toMatchInlineSnapshot(`"-"`);
+ expect(formatter.convert(null, 'html')).toMatchInlineSnapshot(`" - "`);
+ });
});
diff --git a/src/plugins/field_formats/common/converters/numeral.ts b/src/plugins/field_formats/common/converters/numeral.ts
index bf3780d002d6d..100898fd558b6 100644
--- a/src/plugins/field_formats/common/converters/numeral.ts
+++ b/src/plugins/field_formats/common/converters/numeral.ts
@@ -37,6 +37,7 @@ export abstract class NumeralFormat extends FieldFormat {
if (val === -Infinity) return '-∞';
if (val === +Infinity) return '+∞';
if (typeof val === 'object') {
+ if (val === null) return '-';
return JSON.stringify(val);
} else if (typeof val !== 'number') {
val = parseFloat(val);
diff --git a/x-pack/test/functional/apps/lens/group6/metric.ts b/x-pack/test/functional/apps/lens/group6/metric.ts
index 7415dd80d5999..fcf8cd6f7e557 100644
--- a/x-pack/test/functional/apps/lens/group6/metric.ts
+++ b/x-pack/test/functional/apps/lens/group6/metric.ts
@@ -16,12 +16,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const inspector = getService('inspector');
const inspectorTrendlineData = [
- ['2015-09-19 06:00', 'null'],
- ['2015-09-19 09:00', 'null'],
- ['2015-09-19 12:00', 'null'],
- ['2015-09-19 15:00', 'null'],
- ['2015-09-19 18:00', 'null'],
- ['2015-09-19 21:00', 'null'],
+ ['2015-09-19 06:00', '-'],
+ ['2015-09-19 09:00', '-'],
+ ['2015-09-19 12:00', '-'],
+ ['2015-09-19 15:00', '-'],
+ ['2015-09-19 18:00', '-'],
+ ['2015-09-19 21:00', '-'],
['2015-09-20 00:00', '6,011.351'],
['2015-09-20 03:00', '5,849.901'],
['2015-09-20 06:00', '5,722.622'],
@@ -39,26 +39,26 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
];
const inspectorExpectedTrenlineDataWithBreakdown = [
- ['97.220.3.248', '2015-09-19 06:00', 'null'],
- ['97.220.3.248', '2015-09-19 09:00', 'null'],
- ['97.220.3.248', '2015-09-19 12:00', 'null'],
- ['97.220.3.248', '2015-09-19 15:00', 'null'],
- ['97.220.3.248', '2015-09-19 18:00', 'null'],
- ['97.220.3.248', '2015-09-19 21:00', 'null'],
- ['97.220.3.248', '2015-09-20 00:00', 'null'],
- ['97.220.3.248', '2015-09-20 03:00', 'null'],
- ['97.220.3.248', '2015-09-20 06:00', 'null'],
- ['97.220.3.248', '2015-09-20 09:00', 'null'],
- ['97.220.3.248', '2015-09-20 12:00', 'null'],
- ['97.220.3.248', '2015-09-20 15:00', 'null'],
- ['97.220.3.248', '2015-09-20 18:00', 'null'],
- ['97.220.3.248', '2015-09-20 21:00', 'null'],
- ['97.220.3.248', '2015-09-21 00:00', 'null'],
- ['97.220.3.248', '2015-09-21 03:00', 'null'],
- ['97.220.3.248', '2015-09-21 06:00', 'null'],
+ ['97.220.3.248', '2015-09-19 06:00', '-'],
+ ['97.220.3.248', '2015-09-19 09:00', '-'],
+ ['97.220.3.248', '2015-09-19 12:00', '-'],
+ ['97.220.3.248', '2015-09-19 15:00', '-'],
+ ['97.220.3.248', '2015-09-19 18:00', '-'],
+ ['97.220.3.248', '2015-09-19 21:00', '-'],
+ ['97.220.3.248', '2015-09-20 00:00', '-'],
+ ['97.220.3.248', '2015-09-20 03:00', '-'],
+ ['97.220.3.248', '2015-09-20 06:00', '-'],
+ ['97.220.3.248', '2015-09-20 09:00', '-'],
+ ['97.220.3.248', '2015-09-20 12:00', '-'],
+ ['97.220.3.248', '2015-09-20 15:00', '-'],
+ ['97.220.3.248', '2015-09-20 18:00', '-'],
+ ['97.220.3.248', '2015-09-20 21:00', '-'],
+ ['97.220.3.248', '2015-09-21 00:00', '-'],
+ ['97.220.3.248', '2015-09-21 03:00', '-'],
+ ['97.220.3.248', '2015-09-21 06:00', '-'],
['97.220.3.248', '2015-09-21 09:00', '19,755'],
- ['97.220.3.248', '2015-09-21 12:00', 'null'],
- ['97.220.3.248', '2015-09-21 15:00', 'null'],
+ ['97.220.3.248', '2015-09-21 12:00', '-'],
+ ['97.220.3.248', '2015-09-21 15:00', '-'],
];
const clickMetric = async (title: string) => {
From 1a39b1324baaae620ca01cd71e327d67b32334d5 Mon Sep 17 00:00:00 2001
From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Date: Mon, 30 Sep 2024 15:02:07 +1000
Subject: [PATCH 04/60] [api-docs] 2024-09-30 Daily api_docs build (#194372)
Generated by
https://buildkite.com/elastic/kibana-api-docs-daily/builds/846
---
api_docs/actions.mdx | 2 +-
api_docs/advanced_settings.mdx | 2 +-
api_docs/ai_assistant_management_selection.mdx | 2 +-
api_docs/aiops.mdx | 2 +-
api_docs/alerting.mdx | 2 +-
api_docs/apm.mdx | 2 +-
api_docs/apm_data_access.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_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_quality.mdx | 2 +-
api_docs/data_query.mdx | 2 +-
api_docs/data_search.mdx | 2 +-
api_docs/data_usage.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.mdx | 2 +-
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/discover_shared.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/entities_data_access.mdx | 2 +-
api_docs/entity_manager.mdx | 2 +-
api_docs/es_ui_shared.mdx | 2 +-
api_docs/esql.mdx | 2 +-
api_docs/esql_data_grid.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/fields_metadata.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/inference.mdx | 2 +-
api_docs/infra.mdx | 2 +-
api_docs/ingest_pipelines.mdx | 2 +-
api_docs/inspector.mdx | 2 +-
api_docs/integration_assistant.mdx | 2 +-
api_docs/interactive_setup.mdx | 2 +-
api_docs/inventory.mdx | 2 +-
api_docs/investigate.mdx | 2 +-
api_docs/investigate_app.mdx | 2 +-
api_docs/kbn_ace.mdx | 2 +-
api_docs/kbn_actions_types.mdx | 2 +-
api_docs/kbn_aiops_components.mdx | 2 +-
api_docs/kbn_aiops_log_pattern_analysis.mdx | 2 +-
api_docs/kbn_aiops_log_rate_analysis.mdx | 2 +-
api_docs/kbn_alerting_api_integration_helpers.mdx | 2 +-
api_docs/kbn_alerting_comparators.mdx | 2 +-
api_docs/kbn_alerting_state_types.mdx | 2 +-
api_docs/kbn_alerting_types.mdx | 2 +-
api_docs/kbn_alerts_as_data_utils.mdx | 2 +-
api_docs/kbn_alerts_grouping.mdx | 2 +-
api_docs/kbn_alerts_ui_shared.mdx | 2 +-
api_docs/kbn_analytics.mdx | 2 +-
api_docs/kbn_analytics_collection_utils.mdx | 2 +-
api_docs/kbn_apm_config_loader.mdx | 2 +-
api_docs/kbn_apm_data_view.mdx | 2 +-
api_docs/kbn_apm_synthtrace.mdx | 2 +-
api_docs/kbn_apm_synthtrace_client.mdx | 2 +-
api_docs/kbn_apm_types.mdx | 2 +-
api_docs/kbn_apm_utils.mdx | 2 +-
api_docs/kbn_avc_banner.mdx | 2 +-
api_docs/kbn_axe_config.mdx | 2 +-
api_docs/kbn_bfetch_error.mdx | 2 +-
api_docs/kbn_calculate_auto.mdx | 2 +-
api_docs/kbn_calculate_width_from_char_count.mdx | 2 +-
api_docs/kbn_cases_components.mdx | 2 +-
api_docs/kbn_cbor.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_cloud_security_posture.mdx | 2 +-
api_docs/kbn_cloud_security_posture_common.mdx | 2 +-
api_docs/kbn_code_editor.mdx | 2 +-
api_docs/kbn_code_editor_mock.mdx | 2 +-
api_docs/kbn_code_owners.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 +-
api_docs/kbn_content_management_content_editor.mdx | 2 +-
api_docs/kbn_content_management_content_insights_public.mdx | 2 +-
api_docs/kbn_content_management_content_insights_server.mdx | 2 +-
api_docs/kbn_content_management_favorites_public.mdx | 2 +-
api_docs/kbn_content_management_favorites_server.mdx | 2 +-
api_docs/kbn_content_management_tabbed_table_list_view.mdx | 2 +-
api_docs/kbn_content_management_table_list_view.mdx | 2 +-
api_docs/kbn_content_management_table_list_view_common.mdx | 2 +-
api_docs/kbn_content_management_table_list_view_table.mdx | 2 +-
api_docs/kbn_content_management_user_profiles.mdx | 2 +-
api_docs/kbn_content_management_utils.mdx | 2 +-
api_docs/kbn_core_analytics_browser.mdx | 2 +-
api_docs/kbn_core_analytics_browser_internal.mdx | 2 +-
api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +-
api_docs/kbn_core_analytics_server.mdx | 2 +-
api_docs/kbn_core_analytics_server_internal.mdx | 2 +-
api_docs/kbn_core_analytics_server_mocks.mdx | 2 +-
api_docs/kbn_core_application_browser.mdx | 2 +-
api_docs/kbn_core_application_browser_internal.mdx | 2 +-
api_docs/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 +-
api_docs/kbn_core_capabilities_browser_mocks.mdx | 2 +-
api_docs/kbn_core_capabilities_common.mdx | 2 +-
api_docs/kbn_core_capabilities_server.mdx | 2 +-
api_docs/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 +-
api_docs/kbn_core_custom_branding_browser_internal.mdx | 2 +-
api_docs/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 +-
api_docs/kbn_core_custom_branding_server_internal.mdx | 2 +-
api_docs/kbn_core_custom_branding_server_mocks.mdx | 2 +-
api_docs/kbn_core_deprecations_browser.mdx | 2 +-
api_docs/kbn_core_deprecations_browser_internal.mdx | 2 +-
api_docs/kbn_core_deprecations_browser_mocks.mdx | 2 +-
api_docs/kbn_core_deprecations_common.mdx | 2 +-
api_docs/kbn_core_deprecations_server.mdx | 2 +-
api_docs/kbn_core_deprecations_server_internal.mdx | 2 +-
api_docs/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 +-
api_docs/kbn_core_elasticsearch_client_server_internal.mdx | 2 +-
api_docs/kbn_core_elasticsearch_client_server_mocks.mdx | 2 +-
api_docs/kbn_core_elasticsearch_server.mdx | 2 +-
api_docs/kbn_core_elasticsearch_server_internal.mdx | 2 +-
api_docs/kbn_core_elasticsearch_server_mocks.mdx | 2 +-
api_docs/kbn_core_environment_server_internal.mdx | 2 +-
api_docs/kbn_core_environment_server_mocks.mdx | 2 +-
api_docs/kbn_core_execution_context_browser.mdx | 2 +-
api_docs/kbn_core_execution_context_browser_internal.mdx | 2 +-
api_docs/kbn_core_execution_context_browser_mocks.mdx | 2 +-
api_docs/kbn_core_execution_context_common.mdx | 2 +-
api_docs/kbn_core_execution_context_server.mdx | 2 +-
api_docs/kbn_core_execution_context_server_internal.mdx | 2 +-
api_docs/kbn_core_execution_context_server_mocks.mdx | 2 +-
api_docs/kbn_core_fatal_errors_browser.mdx | 2 +-
api_docs/kbn_core_fatal_errors_browser_mocks.mdx | 2 +-
api_docs/kbn_core_feature_flags_browser.mdx | 2 +-
api_docs/kbn_core_feature_flags_browser_internal.mdx | 2 +-
api_docs/kbn_core_feature_flags_browser_mocks.mdx | 2 +-
api_docs/kbn_core_feature_flags_server.mdx | 2 +-
api_docs/kbn_core_feature_flags_server_internal.mdx | 2 +-
api_docs/kbn_core_feature_flags_server_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 +-
api_docs/kbn_core_http_context_server_mocks.mdx | 2 +-
api_docs/kbn_core_http_request_handler_context_server.mdx | 2 +-
api_docs/kbn_core_http_resources_server.mdx | 2 +-
api_docs/kbn_core_http_resources_server_internal.mdx | 2 +-
api_docs/kbn_core_http_resources_server_mocks.mdx | 2 +-
api_docs/kbn_core_http_router_server_internal.mdx | 2 +-
api_docs/kbn_core_http_router_server_mocks.mdx | 2 +-
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 +-
api_docs/kbn_core_injected_metadata_browser_mocks.mdx | 2 +-
api_docs/kbn_core_integrations_browser_internal.mdx | 2 +-
api_docs/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 +-
api_docs/kbn_core_metrics_collectors_server_internal.mdx | 2 +-
api_docs/kbn_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 +-
api_docs/kbn_core_notifications_browser_internal.mdx | 2 +-
api_docs/kbn_core_notifications_browser_mocks.mdx | 2 +-
api_docs/kbn_core_overlays_browser.mdx | 2 +-
api_docs/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 +-
api_docs/kbn_core_plugins_contracts_browser.mdx | 2 +-
api_docs/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 +-
api_docs/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 +-
api_docs/kbn_core_saved_objects_api_browser.mdx | 2 +-
api_docs/kbn_core_saved_objects_api_server.mdx | 2 +-
api_docs/kbn_core_saved_objects_api_server_mocks.mdx | 2 +-
api_docs/kbn_core_saved_objects_base_server_internal.mdx | 2 +-
api_docs/kbn_core_saved_objects_base_server_mocks.mdx | 2 +-
api_docs/kbn_core_saved_objects_browser.mdx | 2 +-
api_docs/kbn_core_saved_objects_browser_internal.mdx | 2 +-
api_docs/kbn_core_saved_objects_browser_mocks.mdx | 2 +-
api_docs/kbn_core_saved_objects_common.mdx | 2 +-
.../kbn_core_saved_objects_import_export_server_internal.mdx | 2 +-
api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx | 2 +-
api_docs/kbn_core_saved_objects_migration_server_internal.mdx | 2 +-
api_docs/kbn_core_saved_objects_migration_server_mocks.mdx | 2 +-
api_docs/kbn_core_saved_objects_server.mdx | 2 +-
api_docs/kbn_core_saved_objects_server_internal.mdx | 2 +-
api_docs/kbn_core_saved_objects_server_mocks.mdx | 2 +-
api_docs/kbn_core_saved_objects_utils_server.mdx | 2 +-
api_docs/kbn_core_security_browser.mdx | 2 +-
api_docs/kbn_core_security_browser_internal.mdx | 2 +-
api_docs/kbn_core_security_browser_mocks.mdx | 2 +-
api_docs/kbn_core_security_common.mdx | 2 +-
api_docs/kbn_core_security_server.mdx | 2 +-
api_docs/kbn_core_security_server_internal.mdx | 2 +-
api_docs/kbn_core_security_server_mocks.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 +-
api_docs/kbn_core_test_helpers_deprecations_getters.mdx | 2 +-
api_docs/kbn_core_test_helpers_http_setup_browser.mdx | 2 +-
api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +-
api_docs/kbn_core_test_helpers_model_versions.mdx | 2 +-
api_docs/kbn_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 +-
api_docs/kbn_core_ui_settings_browser_internal.mdx | 2 +-
api_docs/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 +-
api_docs/kbn_core_ui_settings_server_internal.mdx | 2 +-
api_docs/kbn_core_ui_settings_server_mocks.mdx | 2 +-
api_docs/kbn_core_usage_data_server.mdx | 2 +-
api_docs/kbn_core_usage_data_server_internal.mdx | 2 +-
api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +-
api_docs/kbn_core_user_profile_browser.mdx | 2 +-
api_docs/kbn_core_user_profile_browser_internal.mdx | 2 +-
api_docs/kbn_core_user_profile_browser_mocks.mdx | 2 +-
api_docs/kbn_core_user_profile_common.mdx | 2 +-
api_docs/kbn_core_user_profile_server.mdx | 2 +-
api_docs/kbn_core_user_profile_server_internal.mdx | 2 +-
api_docs/kbn_core_user_profile_server_mocks.mdx | 2 +-
api_docs/kbn_core_user_settings_server.mdx | 2 +-
api_docs/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_forge.mdx | 2 +-
api_docs/kbn_data_service.mdx | 2 +-
api_docs/kbn_data_stream_adapter.mdx | 2 +-
api_docs/kbn_data_view_utils.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_fleet.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_deeplinks_security.mdx | 2 +-
api_docs/kbn_deeplinks_shared.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.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_data_quality_dashboard.mdx | 2 +-
api_docs/kbn_elastic_agent_utils.mdx | 2 +-
api_docs/kbn_elastic_assistant.mdx | 2 +-
api_docs/kbn_elastic_assistant_common.mdx | 2 +-
api_docs/kbn_entities_schema.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_esql_ast.mdx | 2 +-
api_docs/kbn_esql_editor.mdx | 2 +-
api_docs/kbn_esql_utils.mdx | 2 +-
api_docs/kbn_esql_validation_autocomplete.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 +-
api_docs/kbn_formatters.mdx | 2 +-
api_docs/kbn_ftr_common_functional_services.mdx | 2 +-
api_docs/kbn_ftr_common_functional_ui_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_grid_layout.mdx | 2 +-
api_docs/kbn_grouping.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_index_management_shared_types.mdx | 2 +-
api_docs/kbn_inference_integration_flyout.mdx | 2 +-
api_docs/kbn_infra_forge.mdx | 2 +-
api_docs/kbn_interpreter.mdx | 2 +-
api_docs/kbn_investigation_shared.mdx | 2 +-
api_docs/kbn_io_ts_utils.mdx | 2 +-
api_docs/kbn_ipynb.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_json_schemas.mdx | 2 +-
api_docs/kbn_kibana_manifest_schema.mdx | 2 +-
api_docs/kbn_language_documentation.mdx | 2 +-
api_docs/kbn_lens_embeddable_utils.mdx | 2 +-
api_docs/kbn_lens_formula_docs.mdx | 2 +-
api_docs/kbn_logging.mdx | 2 +-
api_docs/kbn_logging_mocks.mdx | 2 +-
api_docs/kbn_managed_content_badge.mdx | 2 +-
api_docs/kbn_managed_vscode_config.mdx | 2 +-
api_docs/kbn_management_cards_navigation.mdx | 2 +-
api_docs/kbn_management_settings_application.mdx | 2 +-
api_docs/kbn_management_settings_components_field_category.mdx | 2 +-
api_docs/kbn_management_settings_components_field_input.mdx | 2 +-
api_docs/kbn_management_settings_components_field_row.mdx | 2 +-
api_docs/kbn_management_settings_components_form.mdx | 2 +-
api_docs/kbn_management_settings_field_definition.mdx | 2 +-
api_docs/kbn_management_settings_ids.mdx | 2 +-
api_docs/kbn_management_settings_section_registry.mdx | 2 +-
api_docs/kbn_management_settings_types.mdx | 2 +-
api_docs/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_cancellable_search.mdx | 2 +-
api_docs/kbn_ml_category_validator.mdx | 2 +-
api_docs/kbn_ml_chi2test.mdx | 2 +-
api_docs/kbn_ml_data_frame_analytics_utils.mdx | 2 +-
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_field_stats_flyout.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_parse_interval.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_time_buckets.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_ml_validators.mdx | 2 +-
api_docs/kbn_mock_idp_utils.mdx | 2 +-
api_docs/kbn_monaco.mdx | 2 +-
api_docs/kbn_object_versioning.mdx | 2 +-
api_docs/kbn_object_versioning_utils.mdx | 2 +-
api_docs/kbn_observability_alert_details.mdx | 2 +-
api_docs/kbn_observability_alerting_rule_utils.mdx | 2 +-
api_docs/kbn_observability_alerting_test_data.mdx | 2 +-
api_docs/kbn_observability_get_padded_alert_time_range_util.mdx | 2 +-
api_docs/kbn_openapi_bundler.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 +-
api_docs/kbn_panel_loader.mdx | 2 +-
api_docs/kbn_performance_testing_dataset_extractor.mdx | 2 +-
api_docs/kbn_plugin_check.mdx | 2 +-
api_docs/kbn_plugin_generator.mdx | 2 +-
api_docs/kbn_plugin_helpers.mdx | 2 +-
api_docs/kbn_presentation_containers.mdx | 2 +-
api_docs/kbn_presentation_publishing.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_hooks.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_recently_accessed.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_csv_share_panel.mdx | 2 +-
api_docs/kbn_reporting_export_types_csv.mdx | 2 +-
api_docs/kbn_reporting_export_types_csv_common.mdx | 2 +-
api_docs/kbn_reporting_export_types_pdf.mdx | 2 +-
api_docs/kbn_reporting_export_types_pdf_common.mdx | 2 +-
api_docs/kbn_reporting_export_types_png.mdx | 2 +-
api_docs/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_response_ops_feature_flag_service.mdx | 2 +-
api_docs/kbn_rison.mdx | 2 +-
api_docs/kbn_rollup.mdx | 2 +-
api_docs/kbn_router_to_openapispec.mdx | 2 +-
api_docs/kbn_router_utils.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_screenshotting_server.mdx | 2 +-
api_docs/kbn_search_api_panels.mdx | 2 +-
api_docs/kbn_search_connectors.mdx | 2 +-
api_docs/kbn_search_errors.mdx | 2 +-
api_docs/kbn_search_index_documents.mdx | 2 +-
api_docs/kbn_search_response_warnings.mdx | 2 +-
api_docs/kbn_search_types.mdx | 2 +-
api_docs/kbn_security_api_key_management.mdx | 2 +-
api_docs/kbn_security_authorization_core.mdx | 2 +-
api_docs/kbn_security_form_components.mdx | 2 +-
api_docs/kbn_security_hardening.mdx | 2 +-
api_docs/kbn_security_plugin_types_common.mdx | 2 +-
api_docs/kbn_security_plugin_types_public.mdx | 2 +-
api_docs/kbn_security_plugin_types_server.mdx | 2 +-
api_docs/kbn_security_role_management_model.mdx | 2 +-
api_docs/kbn_security_solution_common.mdx | 2 +-
api_docs/kbn_security_solution_distribution_bar.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 +-
api_docs/kbn_security_solution_storybook_config.mdx | 2 +-
api_docs/kbn_security_ui_components.mdx | 2 +-
api_docs/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 +-
api_docs/kbn_securitysolution_exception_list_components.mdx | 2 +-
api_docs/kbn_securitysolution_hook_utils.mdx | 2 +-
api_docs/kbn_securitysolution_io_ts_alerting_types.mdx | 2 +-
api_docs/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 +-
api_docs/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_server_route_repository_client.mdx | 2 +-
api_docs/kbn_server_route_repository_utils.mdx | 2 +-
api_docs/kbn_serverless_common_settings.mdx | 2 +-
api_docs/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 +-
api_docs/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 +-
api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +-
api_docs/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 +-
api_docs/kbn_shared_ux_page_analytics_no_data.mdx | 2 +-
api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx | 2 +-
api_docs/kbn_shared_ux_page_kibana_no_data.mdx | 2 +-
api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +-
api_docs/kbn_shared_ux_page_kibana_template.mdx | 2 +-
api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx | 2 +-
api_docs/kbn_shared_ux_page_no_data.mdx | 2 +-
api_docs/kbn_shared_ux_page_no_data_config.mdx | 2 +-
api_docs/kbn_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 +-
api_docs/kbn_shared_ux_prompt_no_data_views.mdx | 2 +-
api_docs/kbn_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_tabbed_modal.mdx | 2 +-
api_docs/kbn_shared_ux_table_persist.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_sort_predicates.mdx | 2 +-
api_docs/kbn_sse_utils.mdx | 2 +-
api_docs/kbn_sse_utils_client.mdx | 2 +-
api_docs/kbn_sse_utils_server.mdx | 2 +-
api_docs/kbn_std.mdx | 2 +-
api_docs/kbn_stdio_dev_helpers.mdx | 2 +-
api_docs/kbn_storybook.mdx | 2 +-
api_docs/kbn_synthetics_e2e.mdx | 2 +-
api_docs/kbn_synthetics_private_location.mdx | 2 +-
api_docs/kbn_telemetry_tools.mdx | 2 +-
api_docs/kbn_test.mdx | 2 +-
api_docs/kbn_test_eui_helpers.mdx | 2 +-
api_docs/kbn_test_jest_helpers.mdx | 2 +-
api_docs/kbn_test_subj_selector.mdx | 2 +-
api_docs/kbn_timerange.mdx | 2 +-
api_docs/kbn_tooling_log.mdx | 2 +-
api_docs/kbn_triggers_actions_ui_types.mdx | 2 +-
api_docs/kbn_try_in_console.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_unsaved_changes_prompt.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_visualization_utils.mdx | 2 +-
api_docs/kbn_xstate_utils.mdx | 2 +-
api_docs/kbn_yarn_lock_validator.mdx | 2 +-
api_docs/kbn_zod.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.mdx | 2 +-
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/logs_data_access.mdx | 2 +-
api_docs/logs_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.mdx | 2 +-
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 +-
api_docs/observability_a_i_assistant.mdx | 2 +-
api_docs/observability_a_i_assistant_app.mdx | 2 +-
api_docs/observability_ai_assistant_management.mdx | 2 +-
api_docs/observability_logs_explorer.mdx | 2 +-
api_docs/observability_onboarding.mdx | 2 +-
api_docs/observability_shared.mdx | 2 +-
api_docs/osquery.mdx | 2 +-
api_docs/painless_lab.mdx | 2 +-
api_docs/plugin_directory.mdx | 2 +-
api_docs/presentation_panel.mdx | 2 +-
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.mdx | 2 +-
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/search_assistant.mdx | 2 +-
api_docs/search_connectors.mdx | 2 +-
api_docs/search_homepage.mdx | 2 +-
api_docs/search_indices.mdx | 2 +-
api_docs/search_inference_endpoints.mdx | 2 +-
api_docs/search_notebooks.mdx | 2 +-
api_docs/search_playground.mdx | 2 +-
api_docs/security.mdx | 2 +-
api_docs/security_solution.mdx | 2 +-
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/slo.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/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.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 +-
744 files changed, 744 insertions(+), 744 deletions(-)
diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx
index 1fededed9a626..c2981462a3dde 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: 2024-09-29
+date: 2024-09-30
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 0eea98047cba4..b130cdc81b5e5 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings']
---
import advancedSettingsObj from './advanced_settings.devdocs.json';
diff --git a/api_docs/ai_assistant_management_selection.mdx b/api_docs/ai_assistant_management_selection.mdx
index 94d16278dd399..c41d32eaa284e 100644
--- a/api_docs/ai_assistant_management_selection.mdx
+++ b/api_docs/ai_assistant_management_selection.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiAssistantManagementSelection
title: "aiAssistantManagementSelection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the aiAssistantManagementSelection plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiAssistantManagementSelection']
---
import aiAssistantManagementSelectionObj from './ai_assistant_management_selection.devdocs.json';
diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx
index 461fcbce0d2fe..717f17b25b20e 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: 2024-09-29
+date: 2024-09-30
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 c506f1a6e52a2..9fed55dc03c91 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting']
---
import alertingObj from './alerting.devdocs.json';
diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx
index 3f63b86f6681b..a797cbec70b55 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: 2024-09-29
+date: 2024-09-30
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 f1acc175f2122..36617a8f09fd4 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apmDataAccess']
---
import apmDataAccessObj from './apm_data_access.devdocs.json';
diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx
index b59350569703b..e9dfb8e37e110 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: 2024-09-29
+date: 2024-09-30
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 63f183a083d85..657450f2041d3 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: 2024-09-29
+date: 2024-09-30
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 85546f1ffc3a5..5a7bc30cbd009 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: 2024-09-29
+date: 2024-09-30
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 37196a85cb22d..08e6d5f26b9e4 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: 2024-09-29
+date: 2024-09-30
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 a8c825dd5fad7..0666b497b9358 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: 2024-09-29
+date: 2024-09-30
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 2a1d42d3f736f..9a74d456f3d26 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: 2024-09-29
+date: 2024-09-30
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 97e8c23daf766..c5f10e95b9087 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: 2024-09-29
+date: 2024-09-30
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 2c9fd1880db9c..c7b4fd16b8647 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend']
---
import cloudDefendObj from './cloud_defend.devdocs.json';
diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx
index e9a56df5146b6..ef011394dc959 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: 2024-09-29
+date: 2024-09-30
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 b91626894a916..536404ffec768 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: 2024-09-29
+date: 2024-09-30
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 fda2d795dc40e..d041b4004c47e 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: 2024-09-29
+date: 2024-09-30
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 6c5a054f7aee6..2579dc78f3b94 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: 2024-09-29
+date: 2024-09-30
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 59b41ff17d024..a47d50d6a7d81 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: 2024-09-29
+date: 2024-09-30
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 2836931d089b1..ad380cb8469f5 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: 2024-09-29
+date: 2024-09-30
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 02c759282caa0..f0373a65fbe71 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: 2024-09-29
+date: 2024-09-30
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 f9295f6f64268..3ded579e126c6 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data']
---
import dataObj from './data.devdocs.json';
diff --git a/api_docs/data_quality.mdx b/api_docs/data_quality.mdx
index 54525b38dcad1..983bb8427b472 100644
--- a/api_docs/data_quality.mdx
+++ b/api_docs/data_quality.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataQuality
title: "dataQuality"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataQuality plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataQuality']
---
import dataQualityObj from './data_quality.devdocs.json';
diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx
index fc11314bda074..f5bd254f00b99 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: 2024-09-29
+date: 2024-09-30
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 a74b49a029837..b81fd0a1279f1 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search']
---
import dataSearchObj from './data_search.devdocs.json';
diff --git a/api_docs/data_usage.mdx b/api_docs/data_usage.mdx
index 9b0e8e36af2f5..d9355de82919b 100644
--- a/api_docs/data_usage.mdx
+++ b/api_docs/data_usage.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataUsage
title: "dataUsage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataUsage plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataUsage']
---
import dataUsageObj from './data_usage.devdocs.json';
diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx
index 75851bc897ed7..a7aad8fe59633 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: 2024-09-29
+date: 2024-09-30
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 b85b04bc6127f..383e9189a6317 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: 2024-09-29
+date: 2024-09-30
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 c60cdb63b6c80..a88573e22e4e6 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: 2024-09-29
+date: 2024-09-30
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 e0c9b5a1fec45..36b68475982f0 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: 2024-09-29
+date: 2024-09-30
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 7cf6996406a88..dd7974a423c76 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer']
---
import dataVisualizerObj from './data_visualizer.devdocs.json';
diff --git a/api_docs/dataset_quality.mdx b/api_docs/dataset_quality.mdx
index aaf76c078041c..72011bfdf7ba1 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'datasetQuality']
---
import datasetQualityObj from './dataset_quality.devdocs.json';
diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx
index 8745b28058c35..c76ccc0239ef7 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx
index 107eef3141441..a1d3ff1be5e70 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx
index 53cf85ba35609..0563484b82101 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx
index 34a7eab461c8e..514ea5ade3b96 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: 2024-09-29
+date: 2024-09-30
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 ad293e0e15be8..c2efac47dbcd1 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: 2024-09-29
+date: 2024-09-30
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 d3dac9a9e75e1..2f2fbad030272 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced']
---
import discoverEnhancedObj from './discover_enhanced.devdocs.json';
diff --git a/api_docs/discover_shared.mdx b/api_docs/discover_shared.mdx
index 853eb87b431a0..a4aeef7e436e9 100644
--- a/api_docs/discover_shared.mdx
+++ b/api_docs/discover_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverShared
title: "discoverShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the discoverShared plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverShared']
---
import discoverSharedObj from './discover_shared.devdocs.json';
diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx
index fbad74f776441..182a643444a26 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: 2024-09-29
+date: 2024-09-30
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 b1d26e213973e..95e55d08f284a 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: 2024-09-29
+date: 2024-09-30
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 3e5f8274b2f0a..68952669476d2 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: 2024-09-29
+date: 2024-09-30
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 49802a2cef13c..901e874703dba 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: 2024-09-29
+date: 2024-09-30
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 223bee16c6eef..5b4997612bcdf 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: 2024-09-29
+date: 2024-09-30
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 a048ed7cde712..5917bd1db3990 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch']
---
import enterpriseSearchObj from './enterprise_search.devdocs.json';
diff --git a/api_docs/entities_data_access.mdx b/api_docs/entities_data_access.mdx
index b9f3c6c590f65..a08ca763529db 100644
--- a/api_docs/entities_data_access.mdx
+++ b/api_docs/entities_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/entitiesDataAccess
title: "entitiesDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the entitiesDataAccess plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'entitiesDataAccess']
---
import entitiesDataAccessObj from './entities_data_access.devdocs.json';
diff --git a/api_docs/entity_manager.mdx b/api_docs/entity_manager.mdx
index 1ff2640d4a29b..5861988f99f7f 100644
--- a/api_docs/entity_manager.mdx
+++ b/api_docs/entity_manager.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/entityManager
title: "entityManager"
image: https://source.unsplash.com/400x175/?github
description: API docs for the entityManager plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'entityManager']
---
import entityManagerObj from './entity_manager.devdocs.json';
diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx
index fd964e0c48a4d..fa88431336826 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared']
---
import esUiSharedObj from './es_ui_shared.devdocs.json';
diff --git a/api_docs/esql.mdx b/api_docs/esql.mdx
index 53c7f9acca3fd..c7e57cf778be5 100644
--- a/api_docs/esql.mdx
+++ b/api_docs/esql.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esql
title: "esql"
image: https://source.unsplash.com/400x175/?github
description: API docs for the esql plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esql']
---
import esqlObj from './esql.devdocs.json';
diff --git a/api_docs/esql_data_grid.mdx b/api_docs/esql_data_grid.mdx
index e6699c1d0dce7..29b953cf61034 100644
--- a/api_docs/esql_data_grid.mdx
+++ b/api_docs/esql_data_grid.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esqlDataGrid
title: "esqlDataGrid"
image: https://source.unsplash.com/400x175/?github
description: API docs for the esqlDataGrid plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esqlDataGrid']
---
import esqlDataGridObj from './esql_data_grid.devdocs.json';
diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx
index af81089174127..4250a9188d2d0 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: 2024-09-29
+date: 2024-09-30
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 e552d38c991e8..687832c84621f 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: 2024-09-29
+date: 2024-09-30
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 eade06027ea23..0543b1d8cf8d4 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: 2024-09-29
+date: 2024-09-30
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 b74f083a4f643..94f190e135ce1 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: 2024-09-29
+date: 2024-09-30
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 20df8eff103fa..f2c34114a6c7c 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: 2024-09-29
+date: 2024-09-30
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 9bdc51fecf7cb..74dcee645d27c 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: 2024-09-29
+date: 2024-09-30
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 71eab974a2a03..bcd850cae3eef 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: 2024-09-29
+date: 2024-09-30
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 6dfe13b2ffc32..b4372e691098a 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: 2024-09-29
+date: 2024-09-30
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 6cd0a1aee9ead..cd2eba717787c 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: 2024-09-29
+date: 2024-09-30
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 f04e1e391dc55..f0b415f6af71d 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: 2024-09-29
+date: 2024-09-30
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 046435553462e..a34f1f7c87ad3 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: 2024-09-29
+date: 2024-09-30
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 b87700f093c14..17b40bebb5830 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: 2024-09-29
+date: 2024-09-30
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 1763053c25332..18b6a08712f46 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: 2024-09-29
+date: 2024-09-30
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 e621a94947d8d..b31cb9bfe9950 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: 2024-09-29
+date: 2024-09-30
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 0e30ab01aefaa..9970090f29aeb 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: 2024-09-29
+date: 2024-09-30
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 6fb8ab8970f2a..8788451548ee6 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: 2024-09-29
+date: 2024-09-30
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 d16aaf6aad314..6c37dbc27e7c0 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: 2024-09-29
+date: 2024-09-30
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 c988705d09c71..0115712c02a8c 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: 2024-09-29
+date: 2024-09-30
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 48e15e8e9354f..368587f7c5ab0 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: 2024-09-29
+date: 2024-09-30
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 8be54e6c97f7e..2252e7b08d583 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats']
---
import fieldFormatsObj from './field_formats.devdocs.json';
diff --git a/api_docs/fields_metadata.mdx b/api_docs/fields_metadata.mdx
index 238ae37e20d36..7ad1383260000 100644
--- a/api_docs/fields_metadata.mdx
+++ b/api_docs/fields_metadata.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldsMetadata
title: "fieldsMetadata"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fieldsMetadata plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldsMetadata']
---
import fieldsMetadataObj from './fields_metadata.devdocs.json';
diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx
index 10b509f5368da..19e7af855c29e 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: 2024-09-29
+date: 2024-09-30
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 c608b331a4df8..7092b499fe4c3 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: 2024-09-29
+date: 2024-09-30
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 d8a0ef64b8c21..457b6d2aac888 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: 2024-09-29
+date: 2024-09-30
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 7e4fc827e3e3f..ac5ed60f393b2 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: 2024-09-29
+date: 2024-09-30
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 e571d5a46268f..033d25e962b6b 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: 2024-09-29
+date: 2024-09-30
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 28c2035051621..35c958cc9fa1a 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: 2024-09-29
+date: 2024-09-30
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 52b126b4988bf..41b5c86af75d7 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: 2024-09-29
+date: 2024-09-30
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 6e48fb457055f..bf3d3184ab512 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: 2024-09-29
+date: 2024-09-30
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 7f87c53a63914..7e7df520bda19 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: 2024-09-29
+date: 2024-09-30
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 8efd95becdc35..ce2c034260867 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement']
---
import indexManagementObj from './index_management.devdocs.json';
diff --git a/api_docs/inference.mdx b/api_docs/inference.mdx
index 72cb1da8ea059..2f326e9dc2fd5 100644
--- a/api_docs/inference.mdx
+++ b/api_docs/inference.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inference
title: "inference"
image: https://source.unsplash.com/400x175/?github
description: API docs for the inference plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inference']
---
import inferenceObj from './inference.devdocs.json';
diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx
index 38e8fc4588bc9..d61dd65a0c0b4 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra']
---
import infraObj from './infra.devdocs.json';
diff --git a/api_docs/ingest_pipelines.mdx b/api_docs/ingest_pipelines.mdx
index 26967e62e104b..ac604771619d4 100644
--- a/api_docs/ingest_pipelines.mdx
+++ b/api_docs/ingest_pipelines.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ingestPipelines
title: "ingestPipelines"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ingestPipelines plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ingestPipelines']
---
import ingestPipelinesObj from './ingest_pipelines.devdocs.json';
diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx
index c7fa4718cb3aa..b56426e9d806a 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector']
---
import inspectorObj from './inspector.devdocs.json';
diff --git a/api_docs/integration_assistant.mdx b/api_docs/integration_assistant.mdx
index f2842d620f729..f382c8458e870 100644
--- a/api_docs/integration_assistant.mdx
+++ b/api_docs/integration_assistant.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/integrationAssistant
title: "integrationAssistant"
image: https://source.unsplash.com/400x175/?github
description: API docs for the integrationAssistant plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'integrationAssistant']
---
import integrationAssistantObj from './integration_assistant.devdocs.json';
diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx
index 2877e3e3a9b8a..4a34d4c0912d2 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup']
---
import interactiveSetupObj from './interactive_setup.devdocs.json';
diff --git a/api_docs/inventory.mdx b/api_docs/inventory.mdx
index 2b59661a65c98..833bcccfefeb4 100644
--- a/api_docs/inventory.mdx
+++ b/api_docs/inventory.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inventory
title: "inventory"
image: https://source.unsplash.com/400x175/?github
description: API docs for the inventory plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inventory']
---
import inventoryObj from './inventory.devdocs.json';
diff --git a/api_docs/investigate.mdx b/api_docs/investigate.mdx
index 3c0f8e67f723a..c622580f9fbcb 100644
--- a/api_docs/investigate.mdx
+++ b/api_docs/investigate.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/investigate
title: "investigate"
image: https://source.unsplash.com/400x175/?github
description: API docs for the investigate plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'investigate']
---
import investigateObj from './investigate.devdocs.json';
diff --git a/api_docs/investigate_app.mdx b/api_docs/investigate_app.mdx
index 91fda236527e9..0093151d6bda8 100644
--- a/api_docs/investigate_app.mdx
+++ b/api_docs/investigate_app.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/investigateApp
title: "investigateApp"
image: https://source.unsplash.com/400x175/?github
description: API docs for the investigateApp plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'investigateApp']
---
import investigateAppObj from './investigate_app.devdocs.json';
diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx
index 1182132a0c38c..07bff3d1991dd 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace']
---
import kbnAceObj from './kbn_ace.devdocs.json';
diff --git a/api_docs/kbn_actions_types.mdx b/api_docs/kbn_actions_types.mdx
index 2adb8c5f7e66b..108f79524a676 100644
--- a/api_docs/kbn_actions_types.mdx
+++ b/api_docs/kbn_actions_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-actions-types
title: "@kbn/actions-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/actions-types plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/actions-types']
---
import kbnActionsTypesObj from './kbn_actions_types.devdocs.json';
diff --git a/api_docs/kbn_aiops_components.mdx b/api_docs/kbn_aiops_components.mdx
index 5ff70a02a225c..ff10fb9b3a052 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components']
---
import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json';
diff --git a/api_docs/kbn_aiops_log_pattern_analysis.mdx b/api_docs/kbn_aiops_log_pattern_analysis.mdx
index ba411c1657248..6956773d77523 100644
--- a/api_docs/kbn_aiops_log_pattern_analysis.mdx
+++ b/api_docs/kbn_aiops_log_pattern_analysis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-log-pattern-analysis
title: "@kbn/aiops-log-pattern-analysis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/aiops-log-pattern-analysis plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-log-pattern-analysis']
---
import kbnAiopsLogPatternAnalysisObj from './kbn_aiops_log_pattern_analysis.devdocs.json';
diff --git a/api_docs/kbn_aiops_log_rate_analysis.mdx b/api_docs/kbn_aiops_log_rate_analysis.mdx
index fefca82310c0f..a8e27f6bebfa4 100644
--- a/api_docs/kbn_aiops_log_rate_analysis.mdx
+++ b/api_docs/kbn_aiops_log_rate_analysis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-log-rate-analysis
title: "@kbn/aiops-log-rate-analysis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/aiops-log-rate-analysis plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-log-rate-analysis']
---
import kbnAiopsLogRateAnalysisObj from './kbn_aiops_log_rate_analysis.devdocs.json';
diff --git a/api_docs/kbn_alerting_api_integration_helpers.mdx b/api_docs/kbn_alerting_api_integration_helpers.mdx
index f9395cba01d98..84a62ad868b6a 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: 2024-09-29
+date: 2024-09-30
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_comparators.mdx b/api_docs/kbn_alerting_comparators.mdx
index 315eeb39ccf57..6ea2afc207679 100644
--- a/api_docs/kbn_alerting_comparators.mdx
+++ b/api_docs/kbn_alerting_comparators.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-comparators
title: "@kbn/alerting-comparators"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerting-comparators plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-comparators']
---
import kbnAlertingComparatorsObj from './kbn_alerting_comparators.devdocs.json';
diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx
index 9e79ee6e37ba9..196e9e948a442 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types']
---
import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json';
diff --git a/api_docs/kbn_alerting_types.mdx b/api_docs/kbn_alerting_types.mdx
index e6b9a7a2a0d3d..b2c4eb2566556 100644
--- a/api_docs/kbn_alerting_types.mdx
+++ b/api_docs/kbn_alerting_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-types
title: "@kbn/alerting-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerting-types plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-types']
---
import kbnAlertingTypesObj from './kbn_alerting_types.devdocs.json';
diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx
index b68cc0b1fd417..17ed17fab58f7 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: 2024-09-29
+date: 2024-09-30
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_grouping.mdx b/api_docs/kbn_alerts_grouping.mdx
index 163d280e6e69d..18f4a0eacb3ad 100644
--- a/api_docs/kbn_alerts_grouping.mdx
+++ b/api_docs/kbn_alerts_grouping.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-grouping
title: "@kbn/alerts-grouping"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerts-grouping plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-grouping']
---
import kbnAlertsGroupingObj from './kbn_alerts_grouping.devdocs.json';
diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx
index 50e4fde759297..a820a8de94edc 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: 2024-09-29
+date: 2024-09-30
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 8f6a7e6139f76..6b3f493f65ad3 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics']
---
import kbnAnalyticsObj from './kbn_analytics.devdocs.json';
diff --git a/api_docs/kbn_analytics_collection_utils.mdx b/api_docs/kbn_analytics_collection_utils.mdx
index e816b228742d5..fc9bd8bf28e94 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-collection-utils']
---
import kbnAnalyticsCollectionUtilsObj from './kbn_analytics_collection_utils.devdocs.json';
diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx
index f1494aec4ab86..222e18cc8bc05 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: 2024-09-29
+date: 2024-09-30
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_data_view.mdx b/api_docs/kbn_apm_data_view.mdx
index 5e5592278c7ee..3e8b3c0957c0e 100644
--- a/api_docs/kbn_apm_data_view.mdx
+++ b/api_docs/kbn_apm_data_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-data-view
title: "@kbn/apm-data-view"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-data-view plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-data-view']
---
import kbnApmDataViewObj from './kbn_apm_data_view.devdocs.json';
diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx
index 3c19782d37b22..cb3de865f6a6b 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: 2024-09-29
+date: 2024-09-30
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 e7d95bb38495e..4ce527660c1c7 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: 2024-09-29
+date: 2024-09-30
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_types.mdx b/api_docs/kbn_apm_types.mdx
index 55ccaef05f5df..028cdb22bafca 100644
--- a/api_docs/kbn_apm_types.mdx
+++ b/api_docs/kbn_apm_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-types
title: "@kbn/apm-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-types plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-types']
---
import kbnApmTypesObj from './kbn_apm_types.devdocs.json';
diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx
index 46f18563856cd..5112c31a7a637 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils']
---
import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json';
diff --git a/api_docs/kbn_avc_banner.mdx b/api_docs/kbn_avc_banner.mdx
index b68194aa21f97..17f96bdb5d508 100644
--- a/api_docs/kbn_avc_banner.mdx
+++ b/api_docs/kbn_avc_banner.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-avc-banner
title: "@kbn/avc-banner"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/avc-banner plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/avc-banner']
---
import kbnAvcBannerObj from './kbn_avc_banner.devdocs.json';
diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx
index 3d5614b05acf5..3bef37990f05c 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config']
---
import kbnAxeConfigObj from './kbn_axe_config.devdocs.json';
diff --git a/api_docs/kbn_bfetch_error.mdx b/api_docs/kbn_bfetch_error.mdx
index f8a9c5ad740c3..8d3451765df6c 100644
--- a/api_docs/kbn_bfetch_error.mdx
+++ b/api_docs/kbn_bfetch_error.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-bfetch-error
title: "@kbn/bfetch-error"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/bfetch-error plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/bfetch-error']
---
import kbnBfetchErrorObj from './kbn_bfetch_error.devdocs.json';
diff --git a/api_docs/kbn_calculate_auto.mdx b/api_docs/kbn_calculate_auto.mdx
index 118b978649110..32cf49133021a 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-auto']
---
import kbnCalculateAutoObj from './kbn_calculate_auto.devdocs.json';
diff --git a/api_docs/kbn_calculate_width_from_char_count.mdx b/api_docs/kbn_calculate_width_from_char_count.mdx
index 3b88431ee9582..53433d9b76a78 100644
--- a/api_docs/kbn_calculate_width_from_char_count.mdx
+++ b/api_docs/kbn_calculate_width_from_char_count.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-width-from-char-count
title: "@kbn/calculate-width-from-char-count"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/calculate-width-from-char-count plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-width-from-char-count']
---
import kbnCalculateWidthFromCharCountObj from './kbn_calculate_width_from_char_count.devdocs.json';
diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx
index cce91d717b0ae..d0ad814c3b5d0 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components']
---
import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json';
diff --git a/api_docs/kbn_cbor.mdx b/api_docs/kbn_cbor.mdx
index 0b318c34a3bac..4bebc535d4385 100644
--- a/api_docs/kbn_cbor.mdx
+++ b/api_docs/kbn_cbor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cbor
title: "@kbn/cbor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cbor plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cbor']
---
import kbnCborObj from './kbn_cbor.devdocs.json';
diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx
index 678d402520f8c..5b554a959ad8d 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: 2024-09-29
+date: 2024-09-30
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 c80472a5f5d8d..3f1884d144516 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: 2024-09-29
+date: 2024-09-30
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 f2cb15957d240..4cb8df35823dc 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: 2024-09-29
+date: 2024-09-30
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 4f7d805843c8b..ff7fd468a9467 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: 2024-09-29
+date: 2024-09-30
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 b917cafa36d68..55dbaf66fb30f 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: 2024-09-29
+date: 2024-09-30
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 4462d77c50008..a2fa31ae5b050 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: 2024-09-29
+date: 2024-09-30
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 24f7f3a3bfa8a..feb19650b34ee 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode']
---
import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json';
diff --git a/api_docs/kbn_cloud_security_posture.mdx b/api_docs/kbn_cloud_security_posture.mdx
index 22082e7a49386..3d6645ec5ba52 100644
--- a/api_docs/kbn_cloud_security_posture.mdx
+++ b/api_docs/kbn_cloud_security_posture.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cloud-security-posture
title: "@kbn/cloud-security-posture"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cloud-security-posture plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cloud-security-posture']
---
import kbnCloudSecurityPostureObj from './kbn_cloud_security_posture.devdocs.json';
diff --git a/api_docs/kbn_cloud_security_posture_common.mdx b/api_docs/kbn_cloud_security_posture_common.mdx
index 0b9450ef5191d..8f8e38bd82b1a 100644
--- a/api_docs/kbn_cloud_security_posture_common.mdx
+++ b/api_docs/kbn_cloud_security_posture_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cloud-security-posture-common
title: "@kbn/cloud-security-posture-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cloud-security-posture-common plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cloud-security-posture-common']
---
import kbnCloudSecurityPostureCommonObj from './kbn_cloud_security_posture_common.devdocs.json';
diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx
index d1c050391ad6b..87c6a138cdf09 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor']
---
import kbnCodeEditorObj from './kbn_code_editor.devdocs.json';
diff --git a/api_docs/kbn_code_editor_mock.mdx b/api_docs/kbn_code_editor_mock.mdx
index 8ef442e31a1d7..4fbf4832258e8 100644
--- a/api_docs/kbn_code_editor_mock.mdx
+++ b/api_docs/kbn_code_editor_mock.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mock
title: "@kbn/code-editor-mock"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/code-editor-mock plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mock']
---
import kbnCodeEditorMockObj from './kbn_code_editor_mock.devdocs.json';
diff --git a/api_docs/kbn_code_owners.mdx b/api_docs/kbn_code_owners.mdx
index 6c833e642e761..2e97a5443befe 100644
--- a/api_docs/kbn_code_owners.mdx
+++ b/api_docs/kbn_code_owners.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-owners
title: "@kbn/code-owners"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/code-owners plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-owners']
---
import kbnCodeOwnersObj from './kbn_code_owners.devdocs.json';
diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx
index bf4fab80c0ac3..d6a868584e0e9 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: 2024-09-29
+date: 2024-09-30
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 a62d11f303404..23f8eb144c0c0 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: 2024-09-29
+date: 2024-09-30
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 27f216eae46fd..0eda7eb993687 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: 2024-09-29
+date: 2024-09-30
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 0e4e8e93e1708..6f9e1dc5f0c7c 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: 2024-09-29
+date: 2024-09-30
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 f4e1c29270523..84f4b0ce06a3b 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: 2024-09-29
+date: 2024-09-30
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_content_insights_public.mdx b/api_docs/kbn_content_management_content_insights_public.mdx
index a303a3a626777..6c4e991362c3f 100644
--- a/api_docs/kbn_content_management_content_insights_public.mdx
+++ b/api_docs/kbn_content_management_content_insights_public.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-insights-public
title: "@kbn/content-management-content-insights-public"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-content-insights-public plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-insights-public']
---
import kbnContentManagementContentInsightsPublicObj from './kbn_content_management_content_insights_public.devdocs.json';
diff --git a/api_docs/kbn_content_management_content_insights_server.mdx b/api_docs/kbn_content_management_content_insights_server.mdx
index ef55d66917a26..98006b06f24ae 100644
--- a/api_docs/kbn_content_management_content_insights_server.mdx
+++ b/api_docs/kbn_content_management_content_insights_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-insights-server
title: "@kbn/content-management-content-insights-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-content-insights-server plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-insights-server']
---
import kbnContentManagementContentInsightsServerObj from './kbn_content_management_content_insights_server.devdocs.json';
diff --git a/api_docs/kbn_content_management_favorites_public.mdx b/api_docs/kbn_content_management_favorites_public.mdx
index 53d0e9a0a8478..52ccdecaeb5e0 100644
--- a/api_docs/kbn_content_management_favorites_public.mdx
+++ b/api_docs/kbn_content_management_favorites_public.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-favorites-public
title: "@kbn/content-management-favorites-public"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-favorites-public plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-favorites-public']
---
import kbnContentManagementFavoritesPublicObj from './kbn_content_management_favorites_public.devdocs.json';
diff --git a/api_docs/kbn_content_management_favorites_server.mdx b/api_docs/kbn_content_management_favorites_server.mdx
index eff26c1b88fee..6469d8983f348 100644
--- a/api_docs/kbn_content_management_favorites_server.mdx
+++ b/api_docs/kbn_content_management_favorites_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-favorites-server
title: "@kbn/content-management-favorites-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-favorites-server plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-favorites-server']
---
import kbnContentManagementFavoritesServerObj from './kbn_content_management_favorites_server.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 b381acab18eaa..cfaf4c50d43d9 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: 2024-09-29
+date: 2024-09-30
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 07948f71d1830..e712d9a890ca7 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: 2024-09-29
+date: 2024-09-30
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_common.mdx b/api_docs/kbn_content_management_table_list_view_common.mdx
index 94938309b40a8..b4d7d80e79483 100644
--- a/api_docs/kbn_content_management_table_list_view_common.mdx
+++ b/api_docs/kbn_content_management_table_list_view_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-common
title: "@kbn/content-management-table-list-view-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-table-list-view-common plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-common']
---
import kbnContentManagementTableListViewCommonObj from './kbn_content_management_table_list_view_common.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 0a748f6acd020..ea525aaa88837 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: 2024-09-29
+date: 2024-09-30
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_user_profiles.mdx b/api_docs/kbn_content_management_user_profiles.mdx
index afcf0f49b3951..3c32fbd12e72a 100644
--- a/api_docs/kbn_content_management_user_profiles.mdx
+++ b/api_docs/kbn_content_management_user_profiles.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-user-profiles
title: "@kbn/content-management-user-profiles"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-user-profiles plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-user-profiles']
---
import kbnContentManagementUserProfilesObj from './kbn_content_management_user_profiles.devdocs.json';
diff --git a/api_docs/kbn_content_management_utils.mdx b/api_docs/kbn_content_management_utils.mdx
index 01880f178ba0b..57fab41924d1d 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: 2024-09-29
+date: 2024-09-30
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 d0bf068e9b428..9c96fed17a824 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: 2024-09-29
+date: 2024-09-30
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 1f2cda1fb59f8..ca656e0b61ea5 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: 2024-09-29
+date: 2024-09-30
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 8630f273f7860..d45952f72cc7d 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: 2024-09-29
+date: 2024-09-30
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 9d8ed44e6ab9f..850c53e234998 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: 2024-09-29
+date: 2024-09-30
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 e9c3ad6edd029..26b5d334c332b 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: 2024-09-29
+date: 2024-09-30
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 277edf4d5f184..43f9244f4d4ad 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: 2024-09-29
+date: 2024-09-30
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 6c9e6c1ce26d9..c9ae4ef8d4edd 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: 2024-09-29
+date: 2024-09-30
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 71d8d44da240b..7c7700da55ecf 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: 2024-09-29
+date: 2024-09-30
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 1729228c97642..f1f893e0d71b3 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: 2024-09-29
+date: 2024-09-30
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 3df6a4ebeaab6..c7d4ca64056eb 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: 2024-09-29
+date: 2024-09-30
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 1425808ac367f..7151d0c7064f8 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: 2024-09-29
+date: 2024-09-30
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 c72dee342e26f..887ad618548af 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: 2024-09-29
+date: 2024-09-30
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 b2e272023ec39..e0d64a299f67c 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: 2024-09-29
+date: 2024-09-30
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 2a0b0964931a1..22ade16cda1c5 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: 2024-09-29
+date: 2024-09-30
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 c517968ae93a7..1cb7416ed99d7 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: 2024-09-29
+date: 2024-09-30
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 2caa5377f2e6d..d8784ac43a38c 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: 2024-09-29
+date: 2024-09-30
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 60ba28d8bfa77..e6f9e56968520 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: 2024-09-29
+date: 2024-09-30
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 8d48a266db8e1..479dd5f3916c4 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: 2024-09-29
+date: 2024-09-30
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 a728a16b1724d..c539b39499aae 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: 2024-09-29
+date: 2024-09-30
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 43ed563fbc0bf..70eefbb15b421 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: 2024-09-29
+date: 2024-09-30
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 fa543ea7a7b1e..99d7f64ec7892 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: 2024-09-29
+date: 2024-09-30
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 a31fa24bb09bd..4265005261b83 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: 2024-09-29
+date: 2024-09-30
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 2ff9367d65ef6..4076609dadde7 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: 2024-09-29
+date: 2024-09-30
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 2b1b7c3974bcf..6e8514c3b2a8f 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: 2024-09-29
+date: 2024-09-30
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 2ed5be5bfd5f0..2641966a6256d 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: 2024-09-29
+date: 2024-09-30
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 63c039fa04bf2..4e5e8a66bba3e 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: 2024-09-29
+date: 2024-09-30
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 e42fed0b83218..04b554c3ed8b2 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: 2024-09-29
+date: 2024-09-30
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 ce97df5b549f7..417aa62ace742 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: 2024-09-29
+date: 2024-09-30
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 849f75d84380c..8901b2e131883 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: 2024-09-29
+date: 2024-09-30
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 bf9088992becc..deee85cc12123 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: 2024-09-29
+date: 2024-09-30
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 02fa4cef22a77..c7cc1873ea0b6 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: 2024-09-29
+date: 2024-09-30
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 7e167b9871aec..b50fd885690e0 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: 2024-09-29
+date: 2024-09-30
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 bb4dccbba5547..8f729d0ea0416 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: 2024-09-29
+date: 2024-09-30
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 9726b1e9a36d4..ec54c0d1cf4d4 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: 2024-09-29
+date: 2024-09-30
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 32585bc2a251d..fa621d98db61e 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: 2024-09-29
+date: 2024-09-30
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 11798367c3a54..acfbfd4a95e8e 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: 2024-09-29
+date: 2024-09-30
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 a555d4798e16c..459d0c52df339 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: 2024-09-29
+date: 2024-09-30
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 fda0b8ec65de7..f76cc8e5e52f5 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: 2024-09-29
+date: 2024-09-30
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 98505e4e49a8c..bc1e7490b5d42 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: 2024-09-29
+date: 2024-09-30
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 4f6c97d0e6996..d8628c3b056ab 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: 2024-09-29
+date: 2024-09-30
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 abb89d93a64e8..544529663e8b2 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: 2024-09-29
+date: 2024-09-30
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 f37e2b8277bc3..b60fb3fdf1999 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: 2024-09-29
+date: 2024-09-30
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 f797f3a5d3cbb..a910976cbbd58 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: 2024-09-29
+date: 2024-09-30
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 d438a9a17fcaa..f963da2a15045 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: 2024-09-29
+date: 2024-09-30
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 a6dfc86125024..7441bb0c054e8 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: 2024-09-29
+date: 2024-09-30
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 e253ae3f4ae02..5ae8f40a318dd 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: 2024-09-29
+date: 2024-09-30
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 11d2746f93fc3..22d2b2644c7c4 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: 2024-09-29
+date: 2024-09-30
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 69c8e4471bc35..0687746b37051 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: 2024-09-29
+date: 2024-09-30
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 92b5466484470..d5b88c3cd5104 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: 2024-09-29
+date: 2024-09-30
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 01fb01d30d8b9..46c3ad39662cf 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: 2024-09-29
+date: 2024-09-30
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 d396fa2f72236..b8c4f1cf8714f 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: 2024-09-29
+date: 2024-09-30
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 069f096633d27..7bd69f4a905c6 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: 2024-09-29
+date: 2024-09-30
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 de13a1a532622..399b5e6edf012 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: 2024-09-29
+date: 2024-09-30
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 1e1320a4bf134..ab9cfd2210486 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: 2024-09-29
+date: 2024-09-30
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 b0b93d8c585a3..038b53e8c3e61 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: 2024-09-29
+date: 2024-09-30
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 a71e1d7826423..51c53d89a1b80 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: 2024-09-29
+date: 2024-09-30
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 c4b7411d430f9..5fc0f395e0323 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: 2024-09-29
+date: 2024-09-30
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 eaf0a630c95b1..b8cc529db80aa 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: 2024-09-29
+date: 2024-09-30
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_feature_flags_browser.mdx b/api_docs/kbn_core_feature_flags_browser.mdx
index df24fe7149ba6..51b51dc726db9 100644
--- a/api_docs/kbn_core_feature_flags_browser.mdx
+++ b/api_docs/kbn_core_feature_flags_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-feature-flags-browser
title: "@kbn/core-feature-flags-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-feature-flags-browser plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-feature-flags-browser']
---
import kbnCoreFeatureFlagsBrowserObj from './kbn_core_feature_flags_browser.devdocs.json';
diff --git a/api_docs/kbn_core_feature_flags_browser_internal.mdx b/api_docs/kbn_core_feature_flags_browser_internal.mdx
index bbb9fa3f81ebe..2f4938c766633 100644
--- a/api_docs/kbn_core_feature_flags_browser_internal.mdx
+++ b/api_docs/kbn_core_feature_flags_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-feature-flags-browser-internal
title: "@kbn/core-feature-flags-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-feature-flags-browser-internal plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-feature-flags-browser-internal']
---
import kbnCoreFeatureFlagsBrowserInternalObj from './kbn_core_feature_flags_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_feature_flags_browser_mocks.mdx b/api_docs/kbn_core_feature_flags_browser_mocks.mdx
index 7dd616338c443..2bf157c950928 100644
--- a/api_docs/kbn_core_feature_flags_browser_mocks.mdx
+++ b/api_docs/kbn_core_feature_flags_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-feature-flags-browser-mocks
title: "@kbn/core-feature-flags-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-feature-flags-browser-mocks plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-feature-flags-browser-mocks']
---
import kbnCoreFeatureFlagsBrowserMocksObj from './kbn_core_feature_flags_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_feature_flags_server.mdx b/api_docs/kbn_core_feature_flags_server.mdx
index 7658ccbb01b27..dce024169a0c3 100644
--- a/api_docs/kbn_core_feature_flags_server.mdx
+++ b/api_docs/kbn_core_feature_flags_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-feature-flags-server
title: "@kbn/core-feature-flags-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-feature-flags-server plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-feature-flags-server']
---
import kbnCoreFeatureFlagsServerObj from './kbn_core_feature_flags_server.devdocs.json';
diff --git a/api_docs/kbn_core_feature_flags_server_internal.mdx b/api_docs/kbn_core_feature_flags_server_internal.mdx
index f07db1ac1d23b..866871c7cdd1b 100644
--- a/api_docs/kbn_core_feature_flags_server_internal.mdx
+++ b/api_docs/kbn_core_feature_flags_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-feature-flags-server-internal
title: "@kbn/core-feature-flags-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-feature-flags-server-internal plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-feature-flags-server-internal']
---
import kbnCoreFeatureFlagsServerInternalObj from './kbn_core_feature_flags_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_feature_flags_server_mocks.mdx b/api_docs/kbn_core_feature_flags_server_mocks.mdx
index d1cfc511748a1..79b0e6384d9f4 100644
--- a/api_docs/kbn_core_feature_flags_server_mocks.mdx
+++ b/api_docs/kbn_core_feature_flags_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-feature-flags-server-mocks
title: "@kbn/core-feature-flags-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-feature-flags-server-mocks plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-feature-flags-server-mocks']
---
import kbnCoreFeatureFlagsServerMocksObj from './kbn_core_feature_flags_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_browser.mdx b/api_docs/kbn_core_http_browser.mdx
index 0ddea17bb2852..230090ce59182 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: 2024-09-29
+date: 2024-09-30
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 c619755715791..8d0a6de9c71a4 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: 2024-09-29
+date: 2024-09-30
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 8b0c2aa84e47c..bb0bbd9d71a0f 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: 2024-09-29
+date: 2024-09-30
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 e40db024d0da5..9db29b0d955cc 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: 2024-09-29
+date: 2024-09-30
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 d52260dec40b2..01f456d5d96ea 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: 2024-09-29
+date: 2024-09-30
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 91f736d46d960..f981971a9dba2 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: 2024-09-29
+date: 2024-09-30
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 61493fe34e796..ea8cf5a283905 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: 2024-09-29
+date: 2024-09-30
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 6a91b9936cfd0..109263a7bf6f4 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: 2024-09-29
+date: 2024-09-30
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 757267b413cff..71332556de1fd 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: 2024-09-29
+date: 2024-09-30
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 bdbb596e7d020..5414a33b0e791 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: 2024-09-29
+date: 2024-09-30
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 0262d1d511bbd..213262e4421fa 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks']
---
import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx
index 0727c11568e5a..0548a36b3ba09 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: 2024-09-29
+date: 2024-09-30
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 7a68e71de8b79..10dee3fc5dd42 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: 2024-09-29
+date: 2024-09-30
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 2b486cfb92303..c2b597cc9c44c 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: 2024-09-29
+date: 2024-09-30
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 f2826ee14300d..f4239d7d333bf 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: 2024-09-29
+date: 2024-09-30
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 979d202b99f94..a59b9ce3d143a 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: 2024-09-29
+date: 2024-09-30
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 a91351ea725ea..d988ea5e2e501 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: 2024-09-29
+date: 2024-09-30
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 e51a1bcbc8fcd..22f0702cc9823 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: 2024-09-29
+date: 2024-09-30
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 d7b71ef221812..2d2b26eb1b5ba 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: 2024-09-29
+date: 2024-09-30
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 ad7c559d4a980..6af7e8b65fb46 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: 2024-09-29
+date: 2024-09-30
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 7bd68a0756f55..943d5b3510194 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: 2024-09-29
+date: 2024-09-30
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 2e89233aa87d7..1e17079951e9b 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: 2024-09-29
+date: 2024-09-30
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 a691a37fb0cce..134f0f91ce98e 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: 2024-09-29
+date: 2024-09-30
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 d0a1aad1cc9b8..2050a6be01d36 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: 2024-09-29
+date: 2024-09-30
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 30e9629a773ca..d63cdee34cc2f 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: 2024-09-29
+date: 2024-09-30
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 70af4932ea8fb..8ed31c8856538 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: 2024-09-29
+date: 2024-09-30
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 c90e460154f76..50c807aa0ab5d 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: 2024-09-29
+date: 2024-09-30
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 7b1fe0bd237d8..fcc3067607c60 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: 2024-09-29
+date: 2024-09-30
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 fc1a44c7a2ddd..34e8dd7a2edda 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: 2024-09-29
+date: 2024-09-30
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 b0d3c3ef381c6..3d3eccd8e1014 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: 2024-09-29
+date: 2024-09-30
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 89e4c53131a46..72e4efc783dc8 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: 2024-09-29
+date: 2024-09-30
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 81d664a91c592..fcef748b7adbc 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: 2024-09-29
+date: 2024-09-30
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 23d08154a06ab..e2efed966c022 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: 2024-09-29
+date: 2024-09-30
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 118e80a91716b..5f3f3985a299d 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: 2024-09-29
+date: 2024-09-30
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 e833d7caa83be..5b76f0f7d0cc2 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: 2024-09-29
+date: 2024-09-30
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 9c73df37168f5..69ece9f78d81a 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: 2024-09-29
+date: 2024-09-30
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 7501c18e50737..9889e6d05224c 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: 2024-09-29
+date: 2024-09-30
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 b650586f624fe..f70279ececb46 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: 2024-09-29
+date: 2024-09-30
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 c47f7d1df7de7..eb2347734804d 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: 2024-09-29
+date: 2024-09-30
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 08dbfb08203d7..bff7ce4550429 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: 2024-09-29
+date: 2024-09-30
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 377b5ae10f209..8e77587a94bae 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: 2024-09-29
+date: 2024-09-30
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 731c4c9ffda12..8ca26e2a5874b 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: 2024-09-29
+date: 2024-09-30
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 53f419b916a27..7768916db1a7b 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: 2024-09-29
+date: 2024-09-30
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 ddfa3a489713f..d1cf99186e20b 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: 2024-09-29
+date: 2024-09-30
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 0c421ebe33b53..9ead2b84f5a89 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: 2024-09-29
+date: 2024-09-30
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 fe9043092770f..086dc12bd09f5 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: 2024-09-29
+date: 2024-09-30
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 de33912824e82..bcadf9afc266e 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: 2024-09-29
+date: 2024-09-30
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 28b9e7fee359f..742f50f45f9cc 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: 2024-09-29
+date: 2024-09-30
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 a103dfdb56a1b..7013e7cb7a0dd 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: 2024-09-29
+date: 2024-09-30
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 b6cc000e94d93..1ce86f4285181 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: 2024-09-29
+date: 2024-09-30
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 3607258ff7769..d540bcc984aa2 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: 2024-09-29
+date: 2024-09-30
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 c371d2aec211f..e71ad52c32980 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: 2024-09-29
+date: 2024-09-30
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 ae54f14b93cbb..f3f434ade677c 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: 2024-09-29
+date: 2024-09-30
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 35b6ec7e17e46..73cf5fe0e0282 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: 2024-09-29
+date: 2024-09-30
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 185e9798b791d..6eb796b9fcb27 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: 2024-09-29
+date: 2024-09-30
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 3b0b9613fa886..b309ce2b38716 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: 2024-09-29
+date: 2024-09-30
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 23823e259ad5a..5d48afd33ae32 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: 2024-09-29
+date: 2024-09-30
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 4e57ecf16d936..83ba508ddb82c 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: 2024-09-29
+date: 2024-09-30
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 4b820736aba56..ad7685630af0c 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: 2024-09-29
+date: 2024-09-30
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 7e3b33d1b66fe..a4d820c6480ca 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: 2024-09-29
+date: 2024-09-30
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 8011c2737eb9b..b490a5dc1fe31 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: 2024-09-29
+date: 2024-09-30
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 92bbe8f46bbbc..e8dedb30689c5 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: 2024-09-29
+date: 2024-09-30
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 361c17899163b..a0dfe9aa9711c 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: 2024-09-29
+date: 2024-09-30
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 eb2bb417ad12c..7529f241a4cff 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: 2024-09-29
+date: 2024-09-30
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 e71c7a6c38293..6c48368df7788 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: 2024-09-29
+date: 2024-09-30
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 036b233361f53..8ebbef45ee0ce 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: 2024-09-29
+date: 2024-09-30
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 9d9d9e7ce4eb8..d7491716efe44 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: 2024-09-29
+date: 2024-09-30
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 ef77ad4881c7c..eeeb3f1bab68c 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: 2024-09-29
+date: 2024-09-30
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 22b70205416e1..b00a5acebc6ef 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: 2024-09-29
+date: 2024-09-30
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 e7192829a0c45..04253a4f02a8a 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: 2024-09-29
+date: 2024-09-30
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 586c8ccfc2283..3634c5cbb65cc 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: 2024-09-29
+date: 2024-09-30
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 d63a8c6872bcf..03792f4135333 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: 2024-09-29
+date: 2024-09-30
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 efb11a309d35a..2e39d810f9a35 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: 2024-09-29
+date: 2024-09-30
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 199c7586f6cd5..9e073bd9b1a27 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: 2024-09-29
+date: 2024-09-30
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 3188855160b08..074ad6734db47 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: 2024-09-29
+date: 2024-09-30
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_security_browser.mdx b/api_docs/kbn_core_security_browser.mdx
index 8f8b21a244313..9da787088d0c3 100644
--- a/api_docs/kbn_core_security_browser.mdx
+++ b/api_docs/kbn_core_security_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser
title: "@kbn/core-security-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-browser plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser']
---
import kbnCoreSecurityBrowserObj from './kbn_core_security_browser.devdocs.json';
diff --git a/api_docs/kbn_core_security_browser_internal.mdx b/api_docs/kbn_core_security_browser_internal.mdx
index deee7af4ab608..8b12709ff8c83 100644
--- a/api_docs/kbn_core_security_browser_internal.mdx
+++ b/api_docs/kbn_core_security_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser-internal
title: "@kbn/core-security-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-browser-internal plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser-internal']
---
import kbnCoreSecurityBrowserInternalObj from './kbn_core_security_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_security_browser_mocks.mdx b/api_docs/kbn_core_security_browser_mocks.mdx
index 885fe911c0d26..e8e702f056c80 100644
--- a/api_docs/kbn_core_security_browser_mocks.mdx
+++ b/api_docs/kbn_core_security_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser-mocks
title: "@kbn/core-security-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-browser-mocks plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser-mocks']
---
import kbnCoreSecurityBrowserMocksObj from './kbn_core_security_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_security_common.mdx b/api_docs/kbn_core_security_common.mdx
index 0a35e604ee12c..076f80f900eef 100644
--- a/api_docs/kbn_core_security_common.mdx
+++ b/api_docs/kbn_core_security_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-common
title: "@kbn/core-security-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-common plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-common']
---
import kbnCoreSecurityCommonObj from './kbn_core_security_common.devdocs.json';
diff --git a/api_docs/kbn_core_security_server.mdx b/api_docs/kbn_core_security_server.mdx
index f31713e59468e..8b38faf4646e9 100644
--- a/api_docs/kbn_core_security_server.mdx
+++ b/api_docs/kbn_core_security_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server
title: "@kbn/core-security-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-server plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server']
---
import kbnCoreSecurityServerObj from './kbn_core_security_server.devdocs.json';
diff --git a/api_docs/kbn_core_security_server_internal.mdx b/api_docs/kbn_core_security_server_internal.mdx
index 885d2a0c40e20..7177ec05c5c75 100644
--- a/api_docs/kbn_core_security_server_internal.mdx
+++ b/api_docs/kbn_core_security_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server-internal
title: "@kbn/core-security-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-server-internal plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server-internal']
---
import kbnCoreSecurityServerInternalObj from './kbn_core_security_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_security_server_mocks.mdx b/api_docs/kbn_core_security_server_mocks.mdx
index baff4375b9771..256c41897ed66 100644
--- a/api_docs/kbn_core_security_server_mocks.mdx
+++ b/api_docs/kbn_core_security_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server-mocks
title: "@kbn/core-security-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-server-mocks plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server-mocks']
---
import kbnCoreSecurityServerMocksObj from './kbn_core_security_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx
index f4e9fd5e53694..3866aa57190ed 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: 2024-09-29
+date: 2024-09-30
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 72608a3375166..80dddb98a44d6 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: 2024-09-29
+date: 2024-09-30
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 6323d21fb65c7..b97429db2e558 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: 2024-09-29
+date: 2024-09-30
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 ef543ac3b1c1f..7483ed73530ac 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: 2024-09-29
+date: 2024-09-30
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 5146ce4324f89..f68cafb952495 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: 2024-09-29
+date: 2024-09-30
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 9ae6935bc5717..8d01fa7a3f848 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: 2024-09-29
+date: 2024-09-30
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 b1f9f05e86979..182d35b68040c 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: 2024-09-29
+date: 2024-09-30
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 bcfc79fb886b8..497a7b479bf0d 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: 2024-09-29
+date: 2024-09-30
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 de54b9d3a2d95..1571bc1837e47 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: 2024-09-29
+date: 2024-09-30
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 5d979d4511c97..24c5b6d2c5451 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: 2024-09-29
+date: 2024-09-30
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 5ab71544ed5d4..5c9ca0269a11b 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: 2024-09-29
+date: 2024-09-30
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 46bbf31f80749..d5436958c7001 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: 2024-09-29
+date: 2024-09-30
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 cf3dbec3f0906..3e80690ccea01 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: 2024-09-29
+date: 2024-09-30
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 a6d905c6032cf..75a19b1f819a0 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: 2024-09-29
+date: 2024-09-30
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 86a884bab4f03..ff4638e1ef6b6 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: 2024-09-29
+date: 2024-09-30
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 9c329b942da6d..4860843b3c16f 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: 2024-09-29
+date: 2024-09-30
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 50a6894cde245..ca4152c08924c 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: 2024-09-29
+date: 2024-09-30
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 a3abc1642adaf..65c7013c10b43 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: 2024-09-29
+date: 2024-09-30
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 c9c4e6beebe0d..e25f7e01bf3f7 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: 2024-09-29
+date: 2024-09-30
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 1a51b924fefac..d378db81842bb 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: 2024-09-29
+date: 2024-09-30
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 f58e7680c3441..7a0b7926bf624 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: 2024-09-29
+date: 2024-09-30
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 36585e802c6b4..44ab8e90ff5ef 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: 2024-09-29
+date: 2024-09-30
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 16941ef2fa9cc..6efacde3b9b57 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: 2024-09-29
+date: 2024-09-30
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_profile_browser.mdx b/api_docs/kbn_core_user_profile_browser.mdx
index eccdcfc46eedb..fbf724dbe0552 100644
--- a/api_docs/kbn_core_user_profile_browser.mdx
+++ b/api_docs/kbn_core_user_profile_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-browser
title: "@kbn/core-user-profile-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-browser plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser']
---
import kbnCoreUserProfileBrowserObj from './kbn_core_user_profile_browser.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_browser_internal.mdx b/api_docs/kbn_core_user_profile_browser_internal.mdx
index 8b80daee6d0bc..634d44dbc62f5 100644
--- a/api_docs/kbn_core_user_profile_browser_internal.mdx
+++ b/api_docs/kbn_core_user_profile_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-browser-internal
title: "@kbn/core-user-profile-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-browser-internal plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser-internal']
---
import kbnCoreUserProfileBrowserInternalObj from './kbn_core_user_profile_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_browser_mocks.mdx b/api_docs/kbn_core_user_profile_browser_mocks.mdx
index 99ff0491f3ac1..5ff966a29fceb 100644
--- a/api_docs/kbn_core_user_profile_browser_mocks.mdx
+++ b/api_docs/kbn_core_user_profile_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-browser-mocks
title: "@kbn/core-user-profile-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-browser-mocks plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser-mocks']
---
import kbnCoreUserProfileBrowserMocksObj from './kbn_core_user_profile_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_common.mdx b/api_docs/kbn_core_user_profile_common.mdx
index 812374bdbd722..32eee801057f4 100644
--- a/api_docs/kbn_core_user_profile_common.mdx
+++ b/api_docs/kbn_core_user_profile_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-common
title: "@kbn/core-user-profile-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-common plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-common']
---
import kbnCoreUserProfileCommonObj from './kbn_core_user_profile_common.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_server.mdx b/api_docs/kbn_core_user_profile_server.mdx
index bc0ae03a6c6f8..44f7b5fb1297b 100644
--- a/api_docs/kbn_core_user_profile_server.mdx
+++ b/api_docs/kbn_core_user_profile_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-server
title: "@kbn/core-user-profile-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-server plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server']
---
import kbnCoreUserProfileServerObj from './kbn_core_user_profile_server.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_server_internal.mdx b/api_docs/kbn_core_user_profile_server_internal.mdx
index e097c7a181b38..c59a386708dad 100644
--- a/api_docs/kbn_core_user_profile_server_internal.mdx
+++ b/api_docs/kbn_core_user_profile_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-server-internal
title: "@kbn/core-user-profile-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-server-internal plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server-internal']
---
import kbnCoreUserProfileServerInternalObj from './kbn_core_user_profile_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_server_mocks.mdx b/api_docs/kbn_core_user_profile_server_mocks.mdx
index 036379a76746d..3a17ff8acc281 100644
--- a/api_docs/kbn_core_user_profile_server_mocks.mdx
+++ b/api_docs/kbn_core_user_profile_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-server-mocks
title: "@kbn/core-user-profile-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-server-mocks plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server-mocks']
---
import kbnCoreUserProfileServerMocksObj from './kbn_core_user_profile_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 db93eed76c0f3..3bb9a91db3de5 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: 2024-09-29
+date: 2024-09-30
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_mocks.mdx b/api_docs/kbn_core_user_settings_server_mocks.mdx
index 704b224be1433..6066275fd05ab 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: 2024-09-29
+date: 2024-09-30
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 688faaa35c440..8c3426fea3a6d 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: 2024-09-29
+date: 2024-09-30
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 c7a1918d92767..66ddecbb351e4 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: 2024-09-29
+date: 2024-09-30
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 52ec3e91b9b14..d10b857f988d6 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: 2024-09-29
+date: 2024-09-30
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 d06537c579f0c..0ea94eacfa6f0 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: 2024-09-29
+date: 2024-09-30
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 3c1017d5a1069..c55fd36a97b43 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config']
---
import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json';
diff --git a/api_docs/kbn_data_forge.mdx b/api_docs/kbn_data_forge.mdx
index af631312fb48d..132c108741fde 100644
--- a/api_docs/kbn_data_forge.mdx
+++ b/api_docs/kbn_data_forge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-forge
title: "@kbn/data-forge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/data-forge plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-forge']
---
import kbnDataForgeObj from './kbn_data_forge.devdocs.json';
diff --git a/api_docs/kbn_data_service.mdx b/api_docs/kbn_data_service.mdx
index 511147f7614c9..f6e3c7a81b849 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-service']
---
import kbnDataServiceObj from './kbn_data_service.devdocs.json';
diff --git a/api_docs/kbn_data_stream_adapter.mdx b/api_docs/kbn_data_stream_adapter.mdx
index 53a481a81115d..1ef1c90a34eec 100644
--- a/api_docs/kbn_data_stream_adapter.mdx
+++ b/api_docs/kbn_data_stream_adapter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-stream-adapter
title: "@kbn/data-stream-adapter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/data-stream-adapter plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-stream-adapter']
---
import kbnDataStreamAdapterObj from './kbn_data_stream_adapter.devdocs.json';
diff --git a/api_docs/kbn_data_view_utils.mdx b/api_docs/kbn_data_view_utils.mdx
index 61afd5fbb6544..9fa1be46a7963 100644
--- a/api_docs/kbn_data_view_utils.mdx
+++ b/api_docs/kbn_data_view_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-view-utils
title: "@kbn/data-view-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/data-view-utils plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-view-utils']
---
import kbnDataViewUtilsObj from './kbn_data_view_utils.devdocs.json';
diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx
index fa1b94bfcf0c9..cca3d82a93a38 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: 2024-09-29
+date: 2024-09-30
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 eb43bb9598e6c..6cb61b8ed9aa2 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: 2024-09-29
+date: 2024-09-30
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 b66cfeeff3ccf..a6126739b2a3b 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-devtools']
---
import kbnDeeplinksDevtoolsObj from './kbn_deeplinks_devtools.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_fleet.mdx b/api_docs/kbn_deeplinks_fleet.mdx
index f95604c75635a..99836cf5375fa 100644
--- a/api_docs/kbn_deeplinks_fleet.mdx
+++ b/api_docs/kbn_deeplinks_fleet.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-fleet
title: "@kbn/deeplinks-fleet"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-fleet plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-fleet']
---
import kbnDeeplinksFleetObj from './kbn_deeplinks_fleet.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_management.mdx b/api_docs/kbn_deeplinks_management.mdx
index 940c64edf7b10..d88e56ea131bf 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: 2024-09-29
+date: 2024-09-30
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 532ed85c3215d..72df570915250 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: 2024-09-29
+date: 2024-09-30
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 20b1538326a94..59a72f7f2234a 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: 2024-09-29
+date: 2024-09-30
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 c16ea65f7c4b5..952966dcaa2d0 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-search']
---
import kbnDeeplinksSearchObj from './kbn_deeplinks_search.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_security.mdx b/api_docs/kbn_deeplinks_security.mdx
index e0115b0afdeaa..dcb0a42832c6a 100644
--- a/api_docs/kbn_deeplinks_security.mdx
+++ b/api_docs/kbn_deeplinks_security.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-security
title: "@kbn/deeplinks-security"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-security plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-security']
---
import kbnDeeplinksSecurityObj from './kbn_deeplinks_security.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_shared.mdx b/api_docs/kbn_deeplinks_shared.mdx
index 8ac3ee1e909c6..f5c36d7e047a6 100644
--- a/api_docs/kbn_deeplinks_shared.mdx
+++ b/api_docs/kbn_deeplinks_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-shared
title: "@kbn/deeplinks-shared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-shared plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-shared']
---
import kbnDeeplinksSharedObj from './kbn_deeplinks_shared.devdocs.json';
diff --git a/api_docs/kbn_default_nav_analytics.mdx b/api_docs/kbn_default_nav_analytics.mdx
index ba4ab7a702a58..ee6bb00c8e187 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: 2024-09-29
+date: 2024-09-30
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 24ec74d84e17d..d49684a6a2186 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: 2024-09-29
+date: 2024-09-30
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 7e3dfa092f204..d4c6fb895d68a 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: 2024-09-29
+date: 2024-09-30
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 08cc87cb2e3bb..ace6be4fb5fa4 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: 2024-09-29
+date: 2024-09-30
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 b1e4bfaa04b73..15e82385ea530 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: 2024-09-29
+date: 2024-09-30
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 7133a8506f688..5066e51ebf209 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: 2024-09-29
+date: 2024-09-30
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 d1733b2b0d0b4..2c97807bf54d2 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: 2024-09-29
+date: 2024-09-30
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 2b23868d6a340..b619d4a83c272 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: 2024-09-29
+date: 2024-09-30
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 e8b91531a0410..3a6d3bbb49887 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/discover-utils']
---
import kbnDiscoverUtilsObj from './kbn_discover_utils.devdocs.json';
diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx
index 97416acb0d8a1..a5794f0584ac3 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: 2024-09-29
+date: 2024-09-30
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 6c8d80a2ddbc4..9b1b3ea4f5908 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: 2024-09-29
+date: 2024-09-30
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 9817a95d6a826..c9adc253b6278 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: 2024-09-29
+date: 2024-09-30
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 b9656223a7109..6db98c94b5ae2 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools']
---
import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json';
diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx
index 9fd0cfb968c63..10ddfe6b1b645 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: 2024-09-29
+date: 2024-09-30
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 0a6357edc8cd6..5f8b4fdc363ca 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: 2024-09-29
+date: 2024-09-30
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 14f468d43b032..392aedccdc670 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant']
---
import kbnElasticAssistantObj from './kbn_elastic_assistant.devdocs.json';
diff --git a/api_docs/kbn_elastic_assistant_common.mdx b/api_docs/kbn_elastic_assistant_common.mdx
index f199767a45fe5..51d175e601a67 100644
--- a/api_docs/kbn_elastic_assistant_common.mdx
+++ b/api_docs/kbn_elastic_assistant_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant-common
title: "@kbn/elastic-assistant-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/elastic-assistant-common plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant-common']
---
import kbnElasticAssistantCommonObj from './kbn_elastic_assistant_common.devdocs.json';
diff --git a/api_docs/kbn_entities_schema.mdx b/api_docs/kbn_entities_schema.mdx
index 0390a0722ce18..18f63c088e8a4 100644
--- a/api_docs/kbn_entities_schema.mdx
+++ b/api_docs/kbn_entities_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-entities-schema
title: "@kbn/entities-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/entities-schema plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/entities-schema']
---
import kbnEntitiesSchemaObj from './kbn_entities_schema.devdocs.json';
diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx
index 01eaec80a845b..3e783a0265734 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: 2024-09-29
+date: 2024-09-30
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 4bf0237a14ef9..091a29f8d243b 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: 2024-09-29
+date: 2024-09-30
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 fcbf8b59cc690..d48b846bd5ff3 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: 2024-09-29
+date: 2024-09-30
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 e04e2ab5b9054..cd367c551378f 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: 2024-09-29
+date: 2024-09-30
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 9074723e5b033..411ddc1cd4b2f 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: 2024-09-29
+date: 2024-09-30
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 6b763fd8e1ed9..ce897efc284b7 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports']
---
import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json';
diff --git a/api_docs/kbn_esql_ast.mdx b/api_docs/kbn_esql_ast.mdx
index 7878ac466c505..f538e4d51209b 100644
--- a/api_docs/kbn_esql_ast.mdx
+++ b/api_docs/kbn_esql_ast.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-ast
title: "@kbn/esql-ast"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/esql-ast plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-ast']
---
import kbnEsqlAstObj from './kbn_esql_ast.devdocs.json';
diff --git a/api_docs/kbn_esql_editor.mdx b/api_docs/kbn_esql_editor.mdx
index a83d88cc9b980..f5e51262bee96 100644
--- a/api_docs/kbn_esql_editor.mdx
+++ b/api_docs/kbn_esql_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-editor
title: "@kbn/esql-editor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/esql-editor plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-editor']
---
import kbnEsqlEditorObj from './kbn_esql_editor.devdocs.json';
diff --git a/api_docs/kbn_esql_utils.mdx b/api_docs/kbn_esql_utils.mdx
index 326da799d2f34..fe4344fc4280a 100644
--- a/api_docs/kbn_esql_utils.mdx
+++ b/api_docs/kbn_esql_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-utils
title: "@kbn/esql-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/esql-utils plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-utils']
---
import kbnEsqlUtilsObj from './kbn_esql_utils.devdocs.json';
diff --git a/api_docs/kbn_esql_validation_autocomplete.mdx b/api_docs/kbn_esql_validation_autocomplete.mdx
index 416f160528cb6..0bd81e7dafbd1 100644
--- a/api_docs/kbn_esql_validation_autocomplete.mdx
+++ b/api_docs/kbn_esql_validation_autocomplete.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-validation-autocomplete
title: "@kbn/esql-validation-autocomplete"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/esql-validation-autocomplete plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-validation-autocomplete']
---
import kbnEsqlValidationAutocompleteObj from './kbn_esql_validation_autocomplete.devdocs.json';
diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx
index fa782f215a63f..ed41cd2f52cca 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: 2024-09-29
+date: 2024-09-30
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 0d2aacb48405d..1fa1031fc246f 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: 2024-09-29
+date: 2024-09-30
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 8a62ae3b221e5..046dbbe245069 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: 2024-09-29
+date: 2024-09-30
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 3ad352bd80b38..a61e3e8d5f64f 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: 2024-09-29
+date: 2024-09-30
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 8c9127fc8f5a1..4a53b5fc4ff01 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: 2024-09-29
+date: 2024-09-30
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 b49e15d52f798..2eeccbd0ec0cf 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: 2024-09-29
+date: 2024-09-30
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_formatters.mdx b/api_docs/kbn_formatters.mdx
index 20c4d8a395a44..290a7eff0f7cf 100644
--- a/api_docs/kbn_formatters.mdx
+++ b/api_docs/kbn_formatters.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-formatters
title: "@kbn/formatters"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/formatters plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/formatters']
---
import kbnFormattersObj from './kbn_formatters.devdocs.json';
diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx
index a3f3857af7d5f..52654a7f75451 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: 2024-09-29
+date: 2024-09-30
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_ftr_common_functional_ui_services.mdx b/api_docs/kbn_ftr_common_functional_ui_services.mdx
index 4eccc50c23c9e..5ee23b2719a68 100644
--- a/api_docs/kbn_ftr_common_functional_ui_services.mdx
+++ b/api_docs/kbn_ftr_common_functional_ui_services.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-ui-services
title: "@kbn/ftr-common-functional-ui-services"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ftr-common-functional-ui-services plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-ui-services']
---
import kbnFtrCommonFunctionalUiServicesObj from './kbn_ftr_common_functional_ui_services.devdocs.json';
diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx
index b6aee5e38f3ce..57e0f75170b94 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: 2024-09-29
+date: 2024-09-30
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 c1e5646c3707f..f977e2402cbf3 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: 2024-09-29
+date: 2024-09-30
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 9208b206cf6a3..8df97c078813b 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv']
---
import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json';
diff --git a/api_docs/kbn_grid_layout.mdx b/api_docs/kbn_grid_layout.mdx
index 08365257d14d6..f354852248aef 100644
--- a/api_docs/kbn_grid_layout.mdx
+++ b/api_docs/kbn_grid_layout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-grid-layout
title: "@kbn/grid-layout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/grid-layout plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/grid-layout']
---
import kbnGridLayoutObj from './kbn_grid_layout.devdocs.json';
diff --git a/api_docs/kbn_grouping.mdx b/api_docs/kbn_grouping.mdx
index 7ca2571056d36..8baa1a3401595 100644
--- a/api_docs/kbn_grouping.mdx
+++ b/api_docs/kbn_grouping.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-grouping
title: "@kbn/grouping"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/grouping plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/grouping']
---
import kbnGroupingObj from './kbn_grouping.devdocs.json';
diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx
index 8f353d065c15c..5e4c939d953fc 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: 2024-09-29
+date: 2024-09-30
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 31231a334eb2c..78f5e7c63c45f 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: 2024-09-29
+date: 2024-09-30
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 ded3ed1237bb3..1fbeee682258c 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: 2024-09-29
+date: 2024-09-30
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 b5523747334fe..fc50746562c94 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: 2024-09-29
+date: 2024-09-30
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 398036601bf33..939bf3d0f06da 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: 2024-09-29
+date: 2024-09-30
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 6c6a9af67d7b9..affebd4ef6ef1 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: 2024-09-29
+date: 2024-09-30
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 ca9361c5ca54b..40fff90a10e89 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: 2024-09-29
+date: 2024-09-30
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 bcafa4d553db2..bfc6a850db5b8 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: 2024-09-29
+date: 2024-09-30
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 d6af9128474cc..a7f1c7d516719 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver']
---
import kbnImportResolverObj from './kbn_import_resolver.devdocs.json';
diff --git a/api_docs/kbn_index_management_shared_types.mdx b/api_docs/kbn_index_management_shared_types.mdx
index e673ef7bc7131..74b284e6e7d36 100644
--- a/api_docs/kbn_index_management_shared_types.mdx
+++ b/api_docs/kbn_index_management_shared_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-index-management-shared-types
title: "@kbn/index-management-shared-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/index-management-shared-types plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/index-management-shared-types']
---
import kbnIndexManagementSharedTypesObj from './kbn_index_management_shared_types.devdocs.json';
diff --git a/api_docs/kbn_inference_integration_flyout.mdx b/api_docs/kbn_inference_integration_flyout.mdx
index fd589660f385c..61ca7d876ebe1 100644
--- a/api_docs/kbn_inference_integration_flyout.mdx
+++ b/api_docs/kbn_inference_integration_flyout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-inference_integration_flyout
title: "@kbn/inference_integration_flyout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/inference_integration_flyout plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/inference_integration_flyout']
---
import kbnInferenceIntegrationFlyoutObj from './kbn_inference_integration_flyout.devdocs.json';
diff --git a/api_docs/kbn_infra_forge.mdx b/api_docs/kbn_infra_forge.mdx
index 0667854435a7d..b240f0f8b163c 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: 2024-09-29
+date: 2024-09-30
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 8e4ff89bcbb21..15550631e5943 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter']
---
import kbnInterpreterObj from './kbn_interpreter.devdocs.json';
diff --git a/api_docs/kbn_investigation_shared.mdx b/api_docs/kbn_investigation_shared.mdx
index 391eca83fd0a4..a54f19ffd54c3 100644
--- a/api_docs/kbn_investigation_shared.mdx
+++ b/api_docs/kbn_investigation_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-investigation-shared
title: "@kbn/investigation-shared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/investigation-shared plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/investigation-shared']
---
import kbnInvestigationSharedObj from './kbn_investigation_shared.devdocs.json';
diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx
index 8aa42204119ab..61ef22189b156 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils']
---
import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json';
diff --git a/api_docs/kbn_ipynb.mdx b/api_docs/kbn_ipynb.mdx
index fce7c237855c8..31274a24c6630 100644
--- a/api_docs/kbn_ipynb.mdx
+++ b/api_docs/kbn_ipynb.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ipynb
title: "@kbn/ipynb"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ipynb plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ipynb']
---
import kbnIpynbObj from './kbn_ipynb.devdocs.json';
diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx
index f498591edad04..afd49c0c71ac1 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: 2024-09-29
+date: 2024-09-30
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 506f814814b51..bfd46bf124621 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: 2024-09-29
+date: 2024-09-30
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 c617f2f79192a..a852d3d10b734 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast']
---
import kbnJsonAstObj from './kbn_json_ast.devdocs.json';
diff --git a/api_docs/kbn_json_schemas.mdx b/api_docs/kbn_json_schemas.mdx
index 93cebf7864f30..4d113127e5462 100644
--- a/api_docs/kbn_json_schemas.mdx
+++ b/api_docs/kbn_json_schemas.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-schemas
title: "@kbn/json-schemas"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/json-schemas plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-schemas']
---
import kbnJsonSchemasObj from './kbn_json_schemas.devdocs.json';
diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx
index a4a1d58d9352f..4920f02bd4be1 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: 2024-09-29
+date: 2024-09-30
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.mdx b/api_docs/kbn_language_documentation.mdx
index 7ef153bbd7cfd..c6b45c82e7a76 100644
--- a/api_docs/kbn_language_documentation.mdx
+++ b/api_docs/kbn_language_documentation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation
title: "@kbn/language-documentation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/language-documentation plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation']
---
import kbnLanguageDocumentationObj from './kbn_language_documentation.devdocs.json';
diff --git a/api_docs/kbn_lens_embeddable_utils.mdx b/api_docs/kbn_lens_embeddable_utils.mdx
index 76beafed80104..b7248d0db484b 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-embeddable-utils']
---
import kbnLensEmbeddableUtilsObj from './kbn_lens_embeddable_utils.devdocs.json';
diff --git a/api_docs/kbn_lens_formula_docs.mdx b/api_docs/kbn_lens_formula_docs.mdx
index 80e15647ea293..48d7b9de8a0c9 100644
--- a/api_docs/kbn_lens_formula_docs.mdx
+++ b/api_docs/kbn_lens_formula_docs.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-formula-docs
title: "@kbn/lens-formula-docs"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/lens-formula-docs plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-formula-docs']
---
import kbnLensFormulaDocsObj from './kbn_lens_formula_docs.devdocs.json';
diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx
index da9d0d155706a..15aa7db247687 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: 2024-09-29
+date: 2024-09-30
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 c7f90af586975..43f0fac47a531 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks']
---
import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json';
diff --git a/api_docs/kbn_managed_content_badge.mdx b/api_docs/kbn_managed_content_badge.mdx
index 7022985c585fa..a5f2e3d5486db 100644
--- a/api_docs/kbn_managed_content_badge.mdx
+++ b/api_docs/kbn_managed_content_badge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-content-badge
title: "@kbn/managed-content-badge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/managed-content-badge plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-content-badge']
---
import kbnManagedContentBadgeObj from './kbn_managed_content_badge.devdocs.json';
diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx
index 6abe08909214f..17f665ac54a66 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: 2024-09-29
+date: 2024-09-30
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 22d1a04fa7310..5c3b44aba3912 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: 2024-09-29
+date: 2024-09-30
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 604faa2f5cf41..d8397cb5613e5 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: 2024-09-29
+date: 2024-09-30
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 cb1aa2061c304..a9ec06acb5c6f 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: 2024-09-29
+date: 2024-09-30
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 38216ace92834..262683c5a4566 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: 2024-09-29
+date: 2024-09-30
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 99bfd92309468..ef04a1c04810a 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: 2024-09-29
+date: 2024-09-30
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 db8e074232dcd..51e9f5fbd55d5 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: 2024-09-29
+date: 2024-09-30
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 b2351ad086469..e08979aac3b8a 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: 2024-09-29
+date: 2024-09-30
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 5995d14fb4241..6c9ed97185515 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: 2024-09-29
+date: 2024-09-30
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 92b91680f3754..219b04228d993 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: 2024-09-29
+date: 2024-09-30
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 3d1307bed11e6..19b472c7eb39a 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: 2024-09-29
+date: 2024-09-30
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 0021ef433a865..8529a7107b253 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: 2024-09-29
+date: 2024-09-30
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 5c43aaf502ee2..b2d80783e167a 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: 2024-09-29
+date: 2024-09-30
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 9ebe8a27f37b2..b96aed922a5e0 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: 2024-09-29
+date: 2024-09-30
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 6dd3f00755575..3fed2eff0487b 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: 2024-09-29
+date: 2024-09-30
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 0023ac752aaa4..af6de3fb7f145 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: 2024-09-29
+date: 2024-09-30
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 3f0394dfc017f..34d0c0523b2c4 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: 2024-09-29
+date: 2024-09-30
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_cancellable_search.mdx b/api_docs/kbn_ml_cancellable_search.mdx
index 8d99f2140cb53..397e3a83750d5 100644
--- a/api_docs/kbn_ml_cancellable_search.mdx
+++ b/api_docs/kbn_ml_cancellable_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-cancellable-search
title: "@kbn/ml-cancellable-search"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-cancellable-search plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-cancellable-search']
---
import kbnMlCancellableSearchObj from './kbn_ml_cancellable_search.devdocs.json';
diff --git a/api_docs/kbn_ml_category_validator.mdx b/api_docs/kbn_ml_category_validator.mdx
index b9e5549858f0b..f08b1249dbc48 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: 2024-09-29
+date: 2024-09-30
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 6ebcbe83723ec..c9388d07a7f87 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: 2024-09-29
+date: 2024-09-30
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 dac92c753498f..26b342495be4f 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: 2024-09-29
+date: 2024-09-30
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.mdx b/api_docs/kbn_ml_data_grid.mdx
index 590cbadbfa76a..c792818f55a3d 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: 2024-09-29
+date: 2024-09-30
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 e28e054cf6e74..f3de901060ce7 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: 2024-09-29
+date: 2024-09-30
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 a6d8680ccfbd6..42cc49610fb4e 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: 2024-09-29
+date: 2024-09-30
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 f133bdb2aecde..60490ccd3ee4d 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: 2024-09-29
+date: 2024-09-30
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_field_stats_flyout.mdx b/api_docs/kbn_ml_field_stats_flyout.mdx
index ff59e2adb48b9..a96cf26b39685 100644
--- a/api_docs/kbn_ml_field_stats_flyout.mdx
+++ b/api_docs/kbn_ml_field_stats_flyout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-field-stats-flyout
title: "@kbn/ml-field-stats-flyout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-field-stats-flyout plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-field-stats-flyout']
---
import kbnMlFieldStatsFlyoutObj from './kbn_ml_field_stats_flyout.devdocs.json';
diff --git a/api_docs/kbn_ml_in_memory_table.mdx b/api_docs/kbn_ml_in_memory_table.mdx
index 6b8591f883172..31baf2994ba2e 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: 2024-09-29
+date: 2024-09-30
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 b15b672020fa0..a3e03e88dbde5 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: 2024-09-29
+date: 2024-09-30
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 45c5e27a97f47..217e792c4955b 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: 2024-09-29
+date: 2024-09-30
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 25285871bb55f..c524c9b83457a 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: 2024-09-29
+date: 2024-09-30
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 a11aa86a9e506..44a64004df2be 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: 2024-09-29
+date: 2024-09-30
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 fc673025014fb..6bdd3907aaefe 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: 2024-09-29
+date: 2024-09-30
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 c12b4b6cc5893..627d9eb11c196 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: 2024-09-29
+date: 2024-09-30
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_parse_interval.mdx b/api_docs/kbn_ml_parse_interval.mdx
index aa86ca0f73218..ea1cfa188ca0d 100644
--- a/api_docs/kbn_ml_parse_interval.mdx
+++ b/api_docs/kbn_ml_parse_interval.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-parse-interval
title: "@kbn/ml-parse-interval"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-parse-interval plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-parse-interval']
---
import kbnMlParseIntervalObj from './kbn_ml_parse_interval.devdocs.json';
diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx
index f8c0d5db23813..60f9632f0fcfc 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: 2024-09-29
+date: 2024-09-30
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 eecbae422ea9e..f26760a1773fb 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: 2024-09-29
+date: 2024-09-30
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 9bfd9a605d4a7..ea665c53d213e 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: 2024-09-29
+date: 2024-09-30
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 268525cbd2e0c..fd67b1684e1b3 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: 2024-09-29
+date: 2024-09-30
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 7e83a0bea3dc9..3441cbe42fb0f 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: 2024-09-29
+date: 2024-09-30
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_time_buckets.mdx b/api_docs/kbn_ml_time_buckets.mdx
index f4b263d359da4..06c5b550ef879 100644
--- a/api_docs/kbn_ml_time_buckets.mdx
+++ b/api_docs/kbn_ml_time_buckets.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-time-buckets
title: "@kbn/ml-time-buckets"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-time-buckets plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-time-buckets']
---
import kbnMlTimeBucketsObj from './kbn_ml_time_buckets.devdocs.json';
diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx
index 99c30aa8ba21f..f73a9778f45b1 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: 2024-09-29
+date: 2024-09-30
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 695c04f61bba9..39bf6c7789998 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: 2024-09-29
+date: 2024-09-30
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 07c8420a39c07..ae3be62c009a2 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state']
---
import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json';
diff --git a/api_docs/kbn_ml_validators.mdx b/api_docs/kbn_ml_validators.mdx
index 1663d9d67b946..967d5d2e8709b 100644
--- a/api_docs/kbn_ml_validators.mdx
+++ b/api_docs/kbn_ml_validators.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-validators
title: "@kbn/ml-validators"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-validators plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-validators']
---
import kbnMlValidatorsObj from './kbn_ml_validators.devdocs.json';
diff --git a/api_docs/kbn_mock_idp_utils.mdx b/api_docs/kbn_mock_idp_utils.mdx
index 6f0e37b977779..9fe74b64330f9 100644
--- a/api_docs/kbn_mock_idp_utils.mdx
+++ b/api_docs/kbn_mock_idp_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mock-idp-utils
title: "@kbn/mock-idp-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/mock-idp-utils plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mock-idp-utils']
---
import kbnMockIdpUtilsObj from './kbn_mock_idp_utils.devdocs.json';
diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx
index 64b3c5fc8a12a..7a03275e453e5 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: 2024-09-29
+date: 2024-09-30
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 9c73ad6ee9f2e..894c246d5b897 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning']
---
import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json';
diff --git a/api_docs/kbn_object_versioning_utils.mdx b/api_docs/kbn_object_versioning_utils.mdx
index 2b337e520f069..4fb7513525d72 100644
--- a/api_docs/kbn_object_versioning_utils.mdx
+++ b/api_docs/kbn_object_versioning_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning-utils
title: "@kbn/object-versioning-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/object-versioning-utils plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning-utils']
---
import kbnObjectVersioningUtilsObj from './kbn_object_versioning_utils.devdocs.json';
diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx
index 89dc3e902a350..a3a300c635dd7 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: 2024-09-29
+date: 2024-09-30
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_rule_utils.mdx b/api_docs/kbn_observability_alerting_rule_utils.mdx
index 5f9712c3b904c..437adb49792c0 100644
--- a/api_docs/kbn_observability_alerting_rule_utils.mdx
+++ b/api_docs/kbn_observability_alerting_rule_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alerting-rule-utils
title: "@kbn/observability-alerting-rule-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-alerting-rule-utils plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alerting-rule-utils']
---
import kbnObservabilityAlertingRuleUtilsObj from './kbn_observability_alerting_rule_utils.devdocs.json';
diff --git a/api_docs/kbn_observability_alerting_test_data.mdx b/api_docs/kbn_observability_alerting_test_data.mdx
index a9c2624b057e6..f5bf83a6f3dc9 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: 2024-09-29
+date: 2024-09-30
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_observability_get_padded_alert_time_range_util.mdx b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx
index 56566dd5bc94e..b866ba02496b9 100644
--- a/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx
+++ b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-get-padded-alert-time-range-util
title: "@kbn/observability-get-padded-alert-time-range-util"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-get-padded-alert-time-range-util plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-get-padded-alert-time-range-util']
---
import kbnObservabilityGetPaddedAlertTimeRangeUtilObj from './kbn_observability_get_padded_alert_time_range_util.devdocs.json';
diff --git a/api_docs/kbn_openapi_bundler.mdx b/api_docs/kbn_openapi_bundler.mdx
index e6a709f4fa1ee..d59b23cc65fd9 100644
--- a/api_docs/kbn_openapi_bundler.mdx
+++ b/api_docs/kbn_openapi_bundler.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-bundler
title: "@kbn/openapi-bundler"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/openapi-bundler plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-bundler']
---
import kbnOpenapiBundlerObj from './kbn_openapi_bundler.devdocs.json';
diff --git a/api_docs/kbn_openapi_generator.mdx b/api_docs/kbn_openapi_generator.mdx
index 809314697781d..2d12ca3da2796 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: 2024-09-29
+date: 2024-09-30
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 d4073015400ca..1cdc98385b65d 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: 2024-09-29
+date: 2024-09-30
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 0517d79090a48..468f53c28db96 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: 2024-09-29
+date: 2024-09-30
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 0b7aebc7ef410..062a65af7f3a7 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: 2024-09-29
+date: 2024-09-30
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_panel_loader.mdx b/api_docs/kbn_panel_loader.mdx
index 61aa87c994775..2efd1db56aca0 100644
--- a/api_docs/kbn_panel_loader.mdx
+++ b/api_docs/kbn_panel_loader.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-panel-loader
title: "@kbn/panel-loader"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/panel-loader plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/panel-loader']
---
import kbnPanelLoaderObj from './kbn_panel_loader.devdocs.json';
diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx
index 6e7a5ab2f8f0b..1b1cf32a7fa1d 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: 2024-09-29
+date: 2024-09-30
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_check.mdx b/api_docs/kbn_plugin_check.mdx
index e2ada7729d15e..5cd4db6a9fc27 100644
--- a/api_docs/kbn_plugin_check.mdx
+++ b/api_docs/kbn_plugin_check.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-check
title: "@kbn/plugin-check"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/plugin-check plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-check']
---
import kbnPluginCheckObj from './kbn_plugin_check.devdocs.json';
diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx
index 76ba032a10318..e9f51f3b3c474 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: 2024-09-29
+date: 2024-09-30
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 bb446a798c6f5..fdd8dc355981b 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers']
---
import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json';
diff --git a/api_docs/kbn_presentation_containers.mdx b/api_docs/kbn_presentation_containers.mdx
index 931e1eb02aea0..640a6910cee92 100644
--- a/api_docs/kbn_presentation_containers.mdx
+++ b/api_docs/kbn_presentation_containers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-containers
title: "@kbn/presentation-containers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/presentation-containers plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-containers']
---
import kbnPresentationContainersObj from './kbn_presentation_containers.devdocs.json';
diff --git a/api_docs/kbn_presentation_publishing.mdx b/api_docs/kbn_presentation_publishing.mdx
index b825530a5c71a..5af98de8c35ce 100644
--- a/api_docs/kbn_presentation_publishing.mdx
+++ b/api_docs/kbn_presentation_publishing.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-publishing
title: "@kbn/presentation-publishing"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/presentation-publishing plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-publishing']
---
import kbnPresentationPublishingObj from './kbn_presentation_publishing.devdocs.json';
diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx
index a84d3c4d9d532..5f3c2760ef0bf 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: 2024-09-29
+date: 2024-09-30
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 8bda0c14c7419..f09d4be3143e2 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: 2024-09-29
+date: 2024-09-30
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 a9f46e50007a7..302cff21763c2 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field']
---
import kbnReactFieldObj from './kbn_react_field.devdocs.json';
diff --git a/api_docs/kbn_react_hooks.mdx b/api_docs/kbn_react_hooks.mdx
index e2720ec8be21a..860f5b5e25301 100644
--- a/api_docs/kbn_react_hooks.mdx
+++ b/api_docs/kbn_react_hooks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-hooks
title: "@kbn/react-hooks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-hooks plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-hooks']
---
import kbnReactHooksObj from './kbn_react_hooks.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_common.mdx b/api_docs/kbn_react_kibana_context_common.mdx
index a2375005f0862..40adbf08d705e 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: 2024-09-29
+date: 2024-09-30
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 6912e36cee3a6..7edc2205e8383 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: 2024-09-29
+date: 2024-09-30
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 40a002659da04..674c5dd440b31 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: 2024-09-29
+date: 2024-09-30
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 300f64e2983d5..872f8eb82da88 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: 2024-09-29
+date: 2024-09-30
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 74749d3705844..3eace9bfed7d3 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: 2024-09-29
+date: 2024-09-30
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 992e8e605a9a8..2dc3734b14e3f 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-mount']
---
import kbnReactKibanaMountObj from './kbn_react_kibana_mount.devdocs.json';
diff --git a/api_docs/kbn_recently_accessed.mdx b/api_docs/kbn_recently_accessed.mdx
index 750db61641c89..7af4d042fc4de 100644
--- a/api_docs/kbn_recently_accessed.mdx
+++ b/api_docs/kbn_recently_accessed.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-recently-accessed
title: "@kbn/recently-accessed"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/recently-accessed plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/recently-accessed']
---
import kbnRecentlyAccessedObj from './kbn_recently_accessed.devdocs.json';
diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx
index 2898564513f3a..c1d788e323ac6 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: 2024-09-29
+date: 2024-09-30
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 498bfc505d577..680dc7d0ab64c 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: 2024-09-29
+date: 2024-09-30
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 fc204c914dfcb..ef849b87ec8aa 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: 2024-09-29
+date: 2024-09-30
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 be537e0a20f17..11f0dbc22fa41 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: 2024-09-29
+date: 2024-09-30
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 42ab0d70196f2..fcc64f7c3f21d 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-common']
---
import kbnReportingCommonObj from './kbn_reporting_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_csv_share_panel.mdx b/api_docs/kbn_reporting_csv_share_panel.mdx
index f4a07d7ec5de2..95c555c527255 100644
--- a/api_docs/kbn_reporting_csv_share_panel.mdx
+++ b/api_docs/kbn_reporting_csv_share_panel.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-csv-share-panel
title: "@kbn/reporting-csv-share-panel"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-csv-share-panel plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-csv-share-panel']
---
import kbnReportingCsvSharePanelObj from './kbn_reporting_csv_share_panel.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_csv.mdx b/api_docs/kbn_reporting_export_types_csv.mdx
index 2340516a33592..ba040c0c67725 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: 2024-09-29
+date: 2024-09-30
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 de402ddfd47b8..08d173360ab59 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: 2024-09-29
+date: 2024-09-30
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 6da98d8401dc5..18a956b435370 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: 2024-09-29
+date: 2024-09-30
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 7568c9dfcbec2..55711ffbe68f2 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: 2024-09-29
+date: 2024-09-30
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 eae23e43c0467..bd122073117cd 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: 2024-09-29
+date: 2024-09-30
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 7cb5bc771b302..42531868ba1a4 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: 2024-09-29
+date: 2024-09-30
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 80515e37741bd..60e495fd7a4b3 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: 2024-09-29
+date: 2024-09-30
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 dca693d9c65db..3e28d2d66e37f 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: 2024-09-29
+date: 2024-09-30
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 578811116797a..b8f8188761e4b 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: 2024-09-29
+date: 2024-09-30
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 6b944c3113845..9b2967457bdb1 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/resizable-layout']
---
import kbnResizableLayoutObj from './kbn_resizable_layout.devdocs.json';
diff --git a/api_docs/kbn_response_ops_feature_flag_service.mdx b/api_docs/kbn_response_ops_feature_flag_service.mdx
index 7c3b843857b9e..202fb4ae1cf0e 100644
--- a/api_docs/kbn_response_ops_feature_flag_service.mdx
+++ b/api_docs/kbn_response_ops_feature_flag_service.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-response-ops-feature-flag-service
title: "@kbn/response-ops-feature-flag-service"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/response-ops-feature-flag-service plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/response-ops-feature-flag-service']
---
import kbnResponseOpsFeatureFlagServiceObj from './kbn_response_ops_feature_flag_service.devdocs.json';
diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx
index 0e6a0c89dd64a..fc879a29d0eae 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison']
---
import kbnRisonObj from './kbn_rison.devdocs.json';
diff --git a/api_docs/kbn_rollup.mdx b/api_docs/kbn_rollup.mdx
index 73ebf4cf909bf..69f563a37c50c 100644
--- a/api_docs/kbn_rollup.mdx
+++ b/api_docs/kbn_rollup.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rollup
title: "@kbn/rollup"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/rollup plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rollup']
---
import kbnRollupObj from './kbn_rollup.devdocs.json';
diff --git a/api_docs/kbn_router_to_openapispec.mdx b/api_docs/kbn_router_to_openapispec.mdx
index 50178b935cf37..f7752cf80c5f9 100644
--- a/api_docs/kbn_router_to_openapispec.mdx
+++ b/api_docs/kbn_router_to_openapispec.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-to-openapispec
title: "@kbn/router-to-openapispec"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/router-to-openapispec plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/router-to-openapispec']
---
import kbnRouterToOpenapispecObj from './kbn_router_to_openapispec.devdocs.json';
diff --git a/api_docs/kbn_router_utils.mdx b/api_docs/kbn_router_utils.mdx
index a750e87de5080..370785836306d 100644
--- a/api_docs/kbn_router_utils.mdx
+++ b/api_docs/kbn_router_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-utils
title: "@kbn/router-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/router-utils plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/router-utils']
---
import kbnRouterUtilsObj from './kbn_router_utils.devdocs.json';
diff --git a/api_docs/kbn_rrule.mdx b/api_docs/kbn_rrule.mdx
index 859b29f9adfde..102cb196e6170 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: 2024-09-29
+date: 2024-09-30
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 7cd10fd751eb4..0d7c7f4365346 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: 2024-09-29
+date: 2024-09-30
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 902ae2974b278..814d03e40befd 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings']
---
import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json';
diff --git a/api_docs/kbn_screenshotting_server.mdx b/api_docs/kbn_screenshotting_server.mdx
index 1924997c5cc98..f8a40a7db4a57 100644
--- a/api_docs/kbn_screenshotting_server.mdx
+++ b/api_docs/kbn_screenshotting_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-screenshotting-server
title: "@kbn/screenshotting-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/screenshotting-server plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/screenshotting-server']
---
import kbnScreenshottingServerObj from './kbn_screenshotting_server.devdocs.json';
diff --git a/api_docs/kbn_search_api_panels.mdx b/api_docs/kbn_search_api_panels.mdx
index cd4f18e873893..f194322e6e8c4 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: 2024-09-29
+date: 2024-09-30
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 3dc11c79caac8..6a7cc2e2b67db 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-connectors']
---
import kbnSearchConnectorsObj from './kbn_search_connectors.devdocs.json';
diff --git a/api_docs/kbn_search_errors.mdx b/api_docs/kbn_search_errors.mdx
index a7a2aba663d06..bfb3f502ef731 100644
--- a/api_docs/kbn_search_errors.mdx
+++ b/api_docs/kbn_search_errors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-errors
title: "@kbn/search-errors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-errors plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-errors']
---
import kbnSearchErrorsObj from './kbn_search_errors.devdocs.json';
diff --git a/api_docs/kbn_search_index_documents.mdx b/api_docs/kbn_search_index_documents.mdx
index 469008ce48694..cebb3ede3e7bc 100644
--- a/api_docs/kbn_search_index_documents.mdx
+++ b/api_docs/kbn_search_index_documents.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-index-documents
title: "@kbn/search-index-documents"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-index-documents plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-index-documents']
---
import kbnSearchIndexDocumentsObj from './kbn_search_index_documents.devdocs.json';
diff --git a/api_docs/kbn_search_response_warnings.mdx b/api_docs/kbn_search_response_warnings.mdx
index 4b89083b2cd44..3c2291f41430d 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-response-warnings']
---
import kbnSearchResponseWarningsObj from './kbn_search_response_warnings.devdocs.json';
diff --git a/api_docs/kbn_search_types.mdx b/api_docs/kbn_search_types.mdx
index 70e8a541e9d06..483729522beec 100644
--- a/api_docs/kbn_search_types.mdx
+++ b/api_docs/kbn_search_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-types
title: "@kbn/search-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-types plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-types']
---
import kbnSearchTypesObj from './kbn_search_types.devdocs.json';
diff --git a/api_docs/kbn_security_api_key_management.mdx b/api_docs/kbn_security_api_key_management.mdx
index f35e105ded651..4d593ad366990 100644
--- a/api_docs/kbn_security_api_key_management.mdx
+++ b/api_docs/kbn_security_api_key_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-api-key-management
title: "@kbn/security-api-key-management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-api-key-management plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-api-key-management']
---
import kbnSecurityApiKeyManagementObj from './kbn_security_api_key_management.devdocs.json';
diff --git a/api_docs/kbn_security_authorization_core.mdx b/api_docs/kbn_security_authorization_core.mdx
index 95443001673d5..fc3f7cffc4357 100644
--- a/api_docs/kbn_security_authorization_core.mdx
+++ b/api_docs/kbn_security_authorization_core.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-authorization-core
title: "@kbn/security-authorization-core"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-authorization-core plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-authorization-core']
---
import kbnSecurityAuthorizationCoreObj from './kbn_security_authorization_core.devdocs.json';
diff --git a/api_docs/kbn_security_form_components.mdx b/api_docs/kbn_security_form_components.mdx
index 60b4a3ab53625..0b445960272c2 100644
--- a/api_docs/kbn_security_form_components.mdx
+++ b/api_docs/kbn_security_form_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-form-components
title: "@kbn/security-form-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-form-components plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-form-components']
---
import kbnSecurityFormComponentsObj from './kbn_security_form_components.devdocs.json';
diff --git a/api_docs/kbn_security_hardening.mdx b/api_docs/kbn_security_hardening.mdx
index 7f87607fb5275..2d2755c163eed 100644
--- a/api_docs/kbn_security_hardening.mdx
+++ b/api_docs/kbn_security_hardening.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-hardening
title: "@kbn/security-hardening"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-hardening plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-hardening']
---
import kbnSecurityHardeningObj from './kbn_security_hardening.devdocs.json';
diff --git a/api_docs/kbn_security_plugin_types_common.mdx b/api_docs/kbn_security_plugin_types_common.mdx
index 7e5a719c9810d..0835ccb589a9a 100644
--- a/api_docs/kbn_security_plugin_types_common.mdx
+++ b/api_docs/kbn_security_plugin_types_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-common
title: "@kbn/security-plugin-types-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-plugin-types-common plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-common']
---
import kbnSecurityPluginTypesCommonObj from './kbn_security_plugin_types_common.devdocs.json';
diff --git a/api_docs/kbn_security_plugin_types_public.mdx b/api_docs/kbn_security_plugin_types_public.mdx
index f6ae668481586..5f93b46e5b6fe 100644
--- a/api_docs/kbn_security_plugin_types_public.mdx
+++ b/api_docs/kbn_security_plugin_types_public.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-public
title: "@kbn/security-plugin-types-public"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-plugin-types-public plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-public']
---
import kbnSecurityPluginTypesPublicObj from './kbn_security_plugin_types_public.devdocs.json';
diff --git a/api_docs/kbn_security_plugin_types_server.mdx b/api_docs/kbn_security_plugin_types_server.mdx
index 2f6337eb88c80..1bb2681789148 100644
--- a/api_docs/kbn_security_plugin_types_server.mdx
+++ b/api_docs/kbn_security_plugin_types_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-server
title: "@kbn/security-plugin-types-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-plugin-types-server plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-server']
---
import kbnSecurityPluginTypesServerObj from './kbn_security_plugin_types_server.devdocs.json';
diff --git a/api_docs/kbn_security_role_management_model.mdx b/api_docs/kbn_security_role_management_model.mdx
index 2b202b50070f9..68632f9caa071 100644
--- a/api_docs/kbn_security_role_management_model.mdx
+++ b/api_docs/kbn_security_role_management_model.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-role-management-model
title: "@kbn/security-role-management-model"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-role-management-model plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-role-management-model']
---
import kbnSecurityRoleManagementModelObj from './kbn_security_role_management_model.devdocs.json';
diff --git a/api_docs/kbn_security_solution_common.mdx b/api_docs/kbn_security_solution_common.mdx
index b8e72f2814f8c..1ea0f279e61eb 100644
--- a/api_docs/kbn_security_solution_common.mdx
+++ b/api_docs/kbn_security_solution_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-common
title: "@kbn/security-solution-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-common plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-common']
---
import kbnSecuritySolutionCommonObj from './kbn_security_solution_common.devdocs.json';
diff --git a/api_docs/kbn_security_solution_distribution_bar.mdx b/api_docs/kbn_security_solution_distribution_bar.mdx
index a376af8263ca3..38edb09102e41 100644
--- a/api_docs/kbn_security_solution_distribution_bar.mdx
+++ b/api_docs/kbn_security_solution_distribution_bar.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-distribution-bar
title: "@kbn/security-solution-distribution-bar"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-distribution-bar plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-distribution-bar']
---
import kbnSecuritySolutionDistributionBarObj from './kbn_security_solution_distribution_bar.devdocs.json';
diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx
index 3bd61005a6a60..99e1a97de911f 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: 2024-09-29
+date: 2024-09-30
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 ee1859a637c1d..c4e3a39139850 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: 2024-09-29
+date: 2024-09-30
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 198ed3ec7b8ae..59af464dbe3da 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: 2024-09-29
+date: 2024-09-30
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 368c1c90c05d6..ae68011b424fd 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: 2024-09-29
+date: 2024-09-30
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_security_ui_components.mdx b/api_docs/kbn_security_ui_components.mdx
index a06a28573abcb..068eed0662437 100644
--- a/api_docs/kbn_security_ui_components.mdx
+++ b/api_docs/kbn_security_ui_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-ui-components
title: "@kbn/security-ui-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-ui-components plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-ui-components']
---
import kbnSecurityUiComponentsObj from './kbn_security_ui_components.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx
index f34abad1da03d..c552c2166744a 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: 2024-09-29
+date: 2024-09-30
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 0dd1a2b243d5d..ec9536e8b59bf 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: 2024-09-29
+date: 2024-09-30
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 2b799ab3f9ac3..e0ba10db97a98 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: 2024-09-29
+date: 2024-09-30
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 0653295e4a484..a6b621e2e3c28 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: 2024-09-29
+date: 2024-09-30
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 313635a6869d3..f30827086ad7c 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components']
---
import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx
index 7484f2b9f35d1..2e120754e0e24 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: 2024-09-29
+date: 2024-09-30
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 751f469ac74d7..6193050520d44 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: 2024-09-29
+date: 2024-09-30
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 3da8fdf72eb18..e657674156692 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: 2024-09-29
+date: 2024-09-30
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 114d60b34625f..de593d9b62462 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: 2024-09-29
+date: 2024-09-30
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 46eaea09da716..4fb04972255b2 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: 2024-09-29
+date: 2024-09-30
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 29f2375cc20f0..0244a63ad147b 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: 2024-09-29
+date: 2024-09-30
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 6cb99082cccb6..c8c8ed77a4741 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: 2024-09-29
+date: 2024-09-30
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 f39b38305b747..63c323808cb2e 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: 2024-09-29
+date: 2024-09-30
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 14f43e4af08e3..a022cd1d7a0a4 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: 2024-09-29
+date: 2024-09-30
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 5a3e5c2bf9ac0..dc2ee45d3fbda 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: 2024-09-29
+date: 2024-09-30
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 f04492a0494ae..38ee726adb11e 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: 2024-09-29
+date: 2024-09-30
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 ae5166089ecd2..7ca3d040b2aa8 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: 2024-09-29
+date: 2024-09-30
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 8b452d5bc5bba..273d2e2a2de1f 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: 2024-09-29
+date: 2024-09-30
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 801f02d76a422..bf23a5f788be6 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository']
---
import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json';
diff --git a/api_docs/kbn_server_route_repository_client.mdx b/api_docs/kbn_server_route_repository_client.mdx
index 85c82e6a48652..0332c32f44f44 100644
--- a/api_docs/kbn_server_route_repository_client.mdx
+++ b/api_docs/kbn_server_route_repository_client.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository-client
title: "@kbn/server-route-repository-client"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/server-route-repository-client plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository-client']
---
import kbnServerRouteRepositoryClientObj from './kbn_server_route_repository_client.devdocs.json';
diff --git a/api_docs/kbn_server_route_repository_utils.mdx b/api_docs/kbn_server_route_repository_utils.mdx
index 0dd55b2c17d78..38ba5ccc0c3c2 100644
--- a/api_docs/kbn_server_route_repository_utils.mdx
+++ b/api_docs/kbn_server_route_repository_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository-utils
title: "@kbn/server-route-repository-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/server-route-repository-utils plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository-utils']
---
import kbnServerRouteRepositoryUtilsObj from './kbn_server_route_repository_utils.devdocs.json';
diff --git a/api_docs/kbn_serverless_common_settings.mdx b/api_docs/kbn_serverless_common_settings.mdx
index 9d2df07ae0d6d..fa2eb55d7a3e7 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: 2024-09-29
+date: 2024-09-30
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 070e0c997174d..589fa2f0e6b59 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: 2024-09-29
+date: 2024-09-30
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 85a0134581263..f6c2ee0a17a29 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: 2024-09-29
+date: 2024-09-30
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 26d0ec1ada773..9741a05e5f05f 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: 2024-09-29
+date: 2024-09-30
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 bafd74a6f0343..bd255ffdb18fc 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: 2024-09-29
+date: 2024-09-30
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 2e91b4f8c5c9b..37beb69198437 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: 2024-09-29
+date: 2024-09-30
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 09c79bbe37466..346ee4a630045 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: 2024-09-29
+date: 2024-09-30
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 2b7bde3fbfbe2..a8f4fe4cbb2fa 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: 2024-09-29
+date: 2024-09-30
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 339868aa9f53f..3c21ce35f2ad3 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: 2024-09-29
+date: 2024-09-30
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 e16dd1ea8f50a..344eaa215314f 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: 2024-09-29
+date: 2024-09-30
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 959bacf51ff01..562f1943d0cd6 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: 2024-09-29
+date: 2024-09-30
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 4f5c8bef2f293..4c690ff6019c9 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: 2024-09-29
+date: 2024-09-30
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 674516183544b..6f94d956b975d 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: 2024-09-29
+date: 2024-09-30
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 660fa28503e5c..9a9c42806c0f7 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: 2024-09-29
+date: 2024-09-30
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 dea16bc76395e..e831d7262343f 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: 2024-09-29
+date: 2024-09-30
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 6f71af30e7c4d..e091fb20ae3b6 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: 2024-09-29
+date: 2024-09-30
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 56901fd9a35ca..bbb55c8fc323f 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: 2024-09-29
+date: 2024-09-30
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 a102779dd73ed..4da3dd6ffe07b 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: 2024-09-29
+date: 2024-09-30
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 99b3e45d9c247..163fb05948cb8 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: 2024-09-29
+date: 2024-09-30
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 27661bd44b301..6d2157f6a7c90 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: 2024-09-29
+date: 2024-09-30
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 bde78887b442b..09a8c47c3ac35 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: 2024-09-29
+date: 2024-09-30
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 00c479913d014..a83b00b3ea25d 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-util']
---
import kbnSharedUxFileUtilObj from './kbn_shared_ux_file_util.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_link_redirect_app.mdx b/api_docs/kbn_shared_ux_link_redirect_app.mdx
index 47c350a1d1af3..39417ad1ff129 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: 2024-09-29
+date: 2024-09-30
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 aa1181665c78c..55f1894663209 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: 2024-09-29
+date: 2024-09-30
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 df5c2c26b96e9..b8a587bd7a17b 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: 2024-09-29
+date: 2024-09-30
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 d070e39c044cc..1dcbf3f99c810 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: 2024-09-29
+date: 2024-09-30
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 37575b6a7633f..5061965a38bc6 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: 2024-09-29
+date: 2024-09-30
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 cfb54dd927500..6c21fc625ad2a 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: 2024-09-29
+date: 2024-09-30
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 bc2efdfcc33d2..12fe90544d7da 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: 2024-09-29
+date: 2024-09-30
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 d527b68a0194e..65be20d693c3d 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: 2024-09-29
+date: 2024-09-30
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 3c44c06b0696b..18eb84c9a2571 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: 2024-09-29
+date: 2024-09-30
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 96bc740cca98f..bf18348ffff45 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: 2024-09-29
+date: 2024-09-30
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 f5a5091450e08..8d40dc49fa606 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: 2024-09-29
+date: 2024-09-30
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 a694e1207a067..92bfc86952f73 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: 2024-09-29
+date: 2024-09-30
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 67049438be36d..6780b84958e3e 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: 2024-09-29
+date: 2024-09-30
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 0e13524a7b04e..f5a7fd486dec9 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: 2024-09-29
+date: 2024-09-30
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 77e32fbbf6db0..0bdc472f330c2 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: 2024-09-29
+date: 2024-09-30
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 7bf20aa1d6587..35c51a4176744 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: 2024-09-29
+date: 2024-09-30
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 33006c09653c5..7fb7836849ca0 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: 2024-09-29
+date: 2024-09-30
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 daf2c86c0ad93..f921776f27222 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: 2024-09-29
+date: 2024-09-30
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 5ea9cdf22917e..0924a2d674588 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: 2024-09-29
+date: 2024-09-30
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 fd444b28a1f81..1f3d7b390e249 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: 2024-09-29
+date: 2024-09-30
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 e851a15a45353..0d49dbc9cc673 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: 2024-09-29
+date: 2024-09-30
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 16e8533d6d537..5d07401a58ad8 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: 2024-09-29
+date: 2024-09-30
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_tabbed_modal.mdx b/api_docs/kbn_shared_ux_tabbed_modal.mdx
index ef41d105ed8cb..76c8c00c2811e 100644
--- a/api_docs/kbn_shared_ux_tabbed_modal.mdx
+++ b/api_docs/kbn_shared_ux_tabbed_modal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-tabbed-modal
title: "@kbn/shared-ux-tabbed-modal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-tabbed-modal plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-tabbed-modal']
---
import kbnSharedUxTabbedModalObj from './kbn_shared_ux_tabbed_modal.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_table_persist.mdx b/api_docs/kbn_shared_ux_table_persist.mdx
index e4e8eb98edfe2..b00e412647737 100644
--- a/api_docs/kbn_shared_ux_table_persist.mdx
+++ b/api_docs/kbn_shared_ux_table_persist.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-table-persist
title: "@kbn/shared-ux-table-persist"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-table-persist plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-table-persist']
---
import kbnSharedUxTablePersistObj from './kbn_shared_ux_table_persist.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx
index a018500505c1a..0d6d96e54a118 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: 2024-09-29
+date: 2024-09-30
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 670413d841774..21884042eb227 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: 2024-09-29
+date: 2024-09-30
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 df380c584f855..1856c7b09f4cf 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log']
---
import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json';
diff --git a/api_docs/kbn_sort_predicates.mdx b/api_docs/kbn_sort_predicates.mdx
index 6295cb6743e69..193b5f114c2fe 100644
--- a/api_docs/kbn_sort_predicates.mdx
+++ b/api_docs/kbn_sort_predicates.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sort-predicates
title: "@kbn/sort-predicates"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/sort-predicates plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-predicates']
---
import kbnSortPredicatesObj from './kbn_sort_predicates.devdocs.json';
diff --git a/api_docs/kbn_sse_utils.mdx b/api_docs/kbn_sse_utils.mdx
index 33177ee00a715..354c7a537bcbc 100644
--- a/api_docs/kbn_sse_utils.mdx
+++ b/api_docs/kbn_sse_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sse-utils
title: "@kbn/sse-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/sse-utils plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sse-utils']
---
import kbnSseUtilsObj from './kbn_sse_utils.devdocs.json';
diff --git a/api_docs/kbn_sse_utils_client.mdx b/api_docs/kbn_sse_utils_client.mdx
index 06e7afaa2a116..5002f3ad27535 100644
--- a/api_docs/kbn_sse_utils_client.mdx
+++ b/api_docs/kbn_sse_utils_client.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sse-utils-client
title: "@kbn/sse-utils-client"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/sse-utils-client plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sse-utils-client']
---
import kbnSseUtilsClientObj from './kbn_sse_utils_client.devdocs.json';
diff --git a/api_docs/kbn_sse_utils_server.mdx b/api_docs/kbn_sse_utils_server.mdx
index 22441b158bb6d..e342bd1b1ca0d 100644
--- a/api_docs/kbn_sse_utils_server.mdx
+++ b/api_docs/kbn_sse_utils_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sse-utils-server
title: "@kbn/sse-utils-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/sse-utils-server plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sse-utils-server']
---
import kbnSseUtilsServerObj from './kbn_sse_utils_server.devdocs.json';
diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx
index e647e4354b587..ddd48d3684709 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: 2024-09-29
+date: 2024-09-30
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 92a60a547f575..5cfd9a7bf8574 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: 2024-09-29
+date: 2024-09-30
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 b70b5ab1335a6..42ea8e5259cf5 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook']
---
import kbnStorybookObj from './kbn_storybook.devdocs.json';
diff --git a/api_docs/kbn_synthetics_e2e.mdx b/api_docs/kbn_synthetics_e2e.mdx
index bcd087f255867..6f18bc079e06e 100644
--- a/api_docs/kbn_synthetics_e2e.mdx
+++ b/api_docs/kbn_synthetics_e2e.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-synthetics-e2e
title: "@kbn/synthetics-e2e"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/synthetics-e2e plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/synthetics-e2e']
---
import kbnSyntheticsE2eObj from './kbn_synthetics_e2e.devdocs.json';
diff --git a/api_docs/kbn_synthetics_private_location.mdx b/api_docs/kbn_synthetics_private_location.mdx
index 776e7d7a61d04..922024cd586ad 100644
--- a/api_docs/kbn_synthetics_private_location.mdx
+++ b/api_docs/kbn_synthetics_private_location.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-synthetics-private-location
title: "@kbn/synthetics-private-location"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/synthetics-private-location plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/synthetics-private-location']
---
import kbnSyntheticsPrivateLocationObj from './kbn_synthetics_private_location.devdocs.json';
diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx
index aad19406ce9f3..3a699877ba849 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools']
---
import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json';
diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx
index 38346a129b051..087b39638a077 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test']
---
import kbnTestObj from './kbn_test.devdocs.json';
diff --git a/api_docs/kbn_test_eui_helpers.mdx b/api_docs/kbn_test_eui_helpers.mdx
index dfb376ee9ab39..83500b2e84702 100644
--- a/api_docs/kbn_test_eui_helpers.mdx
+++ b/api_docs/kbn_test_eui_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-eui-helpers
title: "@kbn/test-eui-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test-eui-helpers plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-eui-helpers']
---
import kbnTestEuiHelpersObj from './kbn_test_eui_helpers.devdocs.json';
diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx
index 43dd9ead683a7..ff05e3f7f5e53 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: 2024-09-29
+date: 2024-09-30
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 f726174d80730..2f3e8848dc798 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector']
---
import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json';
diff --git a/api_docs/kbn_timerange.mdx b/api_docs/kbn_timerange.mdx
index 6ec41c579c419..afa75182c343b 100644
--- a/api_docs/kbn_timerange.mdx
+++ b/api_docs/kbn_timerange.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-timerange
title: "@kbn/timerange"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/timerange plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/timerange']
---
import kbnTimerangeObj from './kbn_timerange.devdocs.json';
diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx
index 286fe63c6f9ea..a6c59436bf8fa 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log']
---
import kbnToolingLogObj from './kbn_tooling_log.devdocs.json';
diff --git a/api_docs/kbn_triggers_actions_ui_types.mdx b/api_docs/kbn_triggers_actions_ui_types.mdx
index fb8a53a49fba9..c380e82b60b58 100644
--- a/api_docs/kbn_triggers_actions_ui_types.mdx
+++ b/api_docs/kbn_triggers_actions_ui_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-triggers-actions-ui-types
title: "@kbn/triggers-actions-ui-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/triggers-actions-ui-types plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/triggers-actions-ui-types']
---
import kbnTriggersActionsUiTypesObj from './kbn_triggers_actions_ui_types.devdocs.json';
diff --git a/api_docs/kbn_try_in_console.mdx b/api_docs/kbn_try_in_console.mdx
index 9e63caa83f2b3..1784b9d0fd831 100644
--- a/api_docs/kbn_try_in_console.mdx
+++ b/api_docs/kbn_try_in_console.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-try-in-console
title: "@kbn/try-in-console"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/try-in-console plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/try-in-console']
---
import kbnTryInConsoleObj from './kbn_try_in_console.devdocs.json';
diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx
index 8208a95bbaf06..13e0a46279cd4 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: 2024-09-29
+date: 2024-09-30
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 34eec6c7b545e..88388edc2f007 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: 2024-09-29
+date: 2024-09-30
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 2e0975f6cdc09..cb42effffee9d 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: 2024-09-29
+date: 2024-09-30
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 dc5a2bdd08f02..a33f732fe5a63 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: 2024-09-29
+date: 2024-09-30
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 beed23d69da24..76a75c8cf1b2d 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: 2024-09-29
+date: 2024-09-30
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 4dce038629a45..0df7a92d3e807 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: 2024-09-29
+date: 2024-09-30
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 7d6a372b425cf..490b379b3e8f3 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: 2024-09-29
+date: 2024-09-30
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 4ab72e1db842a..2be4019f471a0 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: 2024-09-29
+date: 2024-09-30
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 bdd274a78dca1..a9a945bbd644d 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-badge']
---
import kbnUnsavedChangesBadgeObj from './kbn_unsaved_changes_badge.devdocs.json';
diff --git a/api_docs/kbn_unsaved_changes_prompt.mdx b/api_docs/kbn_unsaved_changes_prompt.mdx
index 3dea74d77b408..5d7c4b50c4ecb 100644
--- a/api_docs/kbn_unsaved_changes_prompt.mdx
+++ b/api_docs/kbn_unsaved_changes_prompt.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unsaved-changes-prompt
title: "@kbn/unsaved-changes-prompt"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unsaved-changes-prompt plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-prompt']
---
import kbnUnsavedChangesPromptObj from './kbn_unsaved_changes_prompt.devdocs.json';
diff --git a/api_docs/kbn_use_tracked_promise.mdx b/api_docs/kbn_use_tracked_promise.mdx
index efb85730f908c..ba709ffc87e28 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: 2024-09-29
+date: 2024-09-30
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 fd842182daae1..a7e60d264c71c 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: 2024-09-29
+date: 2024-09-30
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 fbcb80188fc65..6fe9c03c1ab83 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: 2024-09-29
+date: 2024-09-30
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 be24e7d0784a4..36a1c1e332704 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: 2024-09-29
+date: 2024-09-30
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 80d14a7d5b786..0434d38389775 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: 2024-09-29
+date: 2024-09-30
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 d303d5457fdb8..3c0472c036d06 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-ui-components']
---
import kbnVisualizationUiComponentsObj from './kbn_visualization_ui_components.devdocs.json';
diff --git a/api_docs/kbn_visualization_utils.mdx b/api_docs/kbn_visualization_utils.mdx
index 5d3f978e09851..30601fb671e54 100644
--- a/api_docs/kbn_visualization_utils.mdx
+++ b/api_docs/kbn_visualization_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-utils
title: "@kbn/visualization-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/visualization-utils plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-utils']
---
import kbnVisualizationUtilsObj from './kbn_visualization_utils.devdocs.json';
diff --git a/api_docs/kbn_xstate_utils.mdx b/api_docs/kbn_xstate_utils.mdx
index 5523c6913c19c..214e50366c8dd 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: 2024-09-29
+date: 2024-09-30
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 10c2f81a3a691..46609dddd0d44 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: 2024-09-29
+date: 2024-09-30
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.mdx b/api_docs/kbn_zod.mdx
index 1ab5d167a40ca..3edc5fd608a3d 100644
--- a/api_docs/kbn_zod.mdx
+++ b/api_docs/kbn_zod.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-zod
title: "@kbn/zod"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/zod plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/zod']
---
import kbnZodObj from './kbn_zod.devdocs.json';
diff --git a/api_docs/kbn_zod_helpers.mdx b/api_docs/kbn_zod_helpers.mdx
index 1dcfb72ab40ff..f4a4ce5a2907f 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: 2024-09-29
+date: 2024-09-30
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 7fc94c5499bfb..e7970204f2717 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: 2024-09-29
+date: 2024-09-30
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 1190cfa6fbefc..69985044c2667 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: 2024-09-29
+date: 2024-09-30
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 5d23508909c40..7470e26f8df42 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: 2024-09-29
+date: 2024-09-30
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 5a53f3c9e0d1b..9f01614eab5f3 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity']
---
import kubernetesSecurityObj from './kubernetes_security.devdocs.json';
diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx
index fabad66f612e4..be2530bcdc508 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens']
---
import lensObj from './lens.devdocs.json';
diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx
index c2c7f502fbd96..376b4adf15032 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: 2024-09-29
+date: 2024-09-30
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 fd0b335d1693f..7a4b23f08a0ef 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: 2024-09-29
+date: 2024-09-30
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 a37b232014075..9cc9fcf4834a5 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: 2024-09-29
+date: 2024-09-30
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 4b6326165ad64..c96b66e32f9f5 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: 2024-09-29
+date: 2024-09-30
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 f812d48ad582f..954d946e0d280 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists']
---
import listsObj from './lists.devdocs.json';
diff --git a/api_docs/logs_data_access.mdx b/api_docs/logs_data_access.mdx
index 4356c202b0990..46c3496f4ce15 100644
--- a/api_docs/logs_data_access.mdx
+++ b/api_docs/logs_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsDataAccess
title: "logsDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the logsDataAccess plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsDataAccess']
---
import logsDataAccessObj from './logs_data_access.devdocs.json';
diff --git a/api_docs/logs_explorer.mdx b/api_docs/logs_explorer.mdx
index 00bd6cd59a129..1d82ca228ab8a 100644
--- a/api_docs/logs_explorer.mdx
+++ b/api_docs/logs_explorer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsExplorer
title: "logsExplorer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the logsExplorer plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsExplorer']
---
import logsExplorerObj from './logs_explorer.devdocs.json';
diff --git a/api_docs/logs_shared.mdx b/api_docs/logs_shared.mdx
index c676cecbc44e7..3c21db5160fe2 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: 2024-09-29
+date: 2024-09-30
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 a4fcfe1d7652a..e8b0da57f1164 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: 2024-09-29
+date: 2024-09-30
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 e3ac1f74145dc..2dc705d16f3ff 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: 2024-09-29
+date: 2024-09-30
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 6b68f3b39e5b3..d7394cb0ba45d 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: 2024-09-29
+date: 2024-09-30
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 c8cbe9ef262d3..5245f77603d4a 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: 2024-09-29
+date: 2024-09-30
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 1f08a1bcaf145..39418c0a212b5 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml']
---
import mlObj from './ml.devdocs.json';
diff --git a/api_docs/mock_idp_plugin.mdx b/api_docs/mock_idp_plugin.mdx
index 76f11123e546b..0a1cebec9624b 100644
--- a/api_docs/mock_idp_plugin.mdx
+++ b/api_docs/mock_idp_plugin.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mockIdpPlugin
title: "mockIdpPlugin"
image: https://source.unsplash.com/400x175/?github
description: API docs for the mockIdpPlugin plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mockIdpPlugin']
---
import mockIdpPluginObj from './mock_idp_plugin.devdocs.json';
diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx
index e2501c7dc7797..ec09caeeb8376 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: 2024-09-29
+date: 2024-09-30
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 c2db762832fb2..1b025cd8be5c6 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: 2024-09-29
+date: 2024-09-30
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 02ed9df5acecb..6c1a9ddad4ed6 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: 2024-09-29
+date: 2024-09-30
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 cabcf4d19d2fb..fe466f0106497 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: 2024-09-29
+date: 2024-09-30
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 f00868e6b5f9e..271ef9cb39d7f 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: 2024-09-29
+date: 2024-09-30
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 ce53c854d21ce..b57aec54fb781 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: 2024-09-29
+date: 2024-09-30
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 10ef6e9e9386b..b12159bcddf8c 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability']
---
import observabilityObj from './observability.devdocs.json';
diff --git a/api_docs/observability_a_i_assistant.mdx b/api_docs/observability_a_i_assistant.mdx
index ea92905ce7413..6e48bd5310892 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistant']
---
import observabilityAIAssistantObj from './observability_a_i_assistant.devdocs.json';
diff --git a/api_docs/observability_a_i_assistant_app.mdx b/api_docs/observability_a_i_assistant_app.mdx
index 197e680d591b2..478d83805ded2 100644
--- a/api_docs/observability_a_i_assistant_app.mdx
+++ b/api_docs/observability_a_i_assistant_app.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistantApp
title: "observabilityAIAssistantApp"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityAIAssistantApp plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistantApp']
---
import observabilityAIAssistantAppObj from './observability_a_i_assistant_app.devdocs.json';
diff --git a/api_docs/observability_ai_assistant_management.mdx b/api_docs/observability_ai_assistant_management.mdx
index d773defee8c26..09e3b37e0994b 100644
--- a/api_docs/observability_ai_assistant_management.mdx
+++ b/api_docs/observability_ai_assistant_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAiAssistantManagement
title: "observabilityAiAssistantManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityAiAssistantManagement plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAiAssistantManagement']
---
import observabilityAiAssistantManagementObj from './observability_ai_assistant_management.devdocs.json';
diff --git a/api_docs/observability_logs_explorer.mdx b/api_docs/observability_logs_explorer.mdx
index 1b016bf6dcb67..af5d9242498fb 100644
--- a/api_docs/observability_logs_explorer.mdx
+++ b/api_docs/observability_logs_explorer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityLogsExplorer
title: "observabilityLogsExplorer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityLogsExplorer plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityLogsExplorer']
---
import observabilityLogsExplorerObj from './observability_logs_explorer.devdocs.json';
diff --git a/api_docs/observability_onboarding.mdx b/api_docs/observability_onboarding.mdx
index 753122098fcd5..a8d754fb07def 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityOnboarding']
---
import observabilityOnboardingObj from './observability_onboarding.devdocs.json';
diff --git a/api_docs/observability_shared.mdx b/api_docs/observability_shared.mdx
index afff6089e8b62..41b83f009305c 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityShared']
---
import observabilitySharedObj from './observability_shared.devdocs.json';
diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx
index a28a3d4680da9..e60a1f050046c 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: 2024-09-29
+date: 2024-09-30
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 b18f1af44cb85..0759edc108820 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: 2024-09-29
+date: 2024-09-30
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 2077c102bc5bb..a812ec47c62d5 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
diff --git a/api_docs/presentation_panel.mdx b/api_docs/presentation_panel.mdx
index fba31a8a9dca8..3c411143e6bc2 100644
--- a/api_docs/presentation_panel.mdx
+++ b/api_docs/presentation_panel.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationPanel
title: "presentationPanel"
image: https://source.unsplash.com/400x175/?github
description: API docs for the presentationPanel plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationPanel']
---
import presentationPanelObj from './presentation_panel.devdocs.json';
diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx
index a01b804631857..c37ae92418cc0 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: 2024-09-29
+date: 2024-09-30
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 2f2557be2e243..3930932cd4559 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: 2024-09-29
+date: 2024-09-30
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 7d4ba0744acf5..71138344d5303 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: 2024-09-29
+date: 2024-09-30
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 1907227a8f88a..165ec64f812b9 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: 2024-09-29
+date: 2024-09-30
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 67c8b14fc4a43..ed8f82d1e1fda 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: 2024-09-29
+date: 2024-09-30
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 97e864cf9099f..ecfd27575404a 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup']
---
import rollupObj from './rollup.devdocs.json';
diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx
index eb6681963e5aa..d574c84e8ff7f 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry']
---
import ruleRegistryObj from './rule_registry.devdocs.json';
diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx
index 15441e9cc41f9..c5ff2853c1f1b 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: 2024-09-29
+date: 2024-09-30
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 0fc762a72aafd..e085f0ff58bef 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: 2024-09-29
+date: 2024-09-30
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 71f8f29c928fc..152443f911f7e 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: 2024-09-29
+date: 2024-09-30
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 93b0c1cf6091a..cb85671033386 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: 2024-09-29
+date: 2024-09-30
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 03f1d3bcd593b..0f70d48b862eb 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: 2024-09-29
+date: 2024-09-30
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 ba8af191914fd..5a38434868201 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: 2024-09-29
+date: 2024-09-30
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 dfba0a8274d46..0666295dde691 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: 2024-09-29
+date: 2024-09-30
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 0416bd8252d87..8c9a9d5f008f4 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: 2024-09-29
+date: 2024-09-30
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 21ab44e05decb..8929a01aae630 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting']
---
import screenshottingObj from './screenshotting.devdocs.json';
diff --git a/api_docs/search_assistant.mdx b/api_docs/search_assistant.mdx
index f55d34813956a..7e024597324a0 100644
--- a/api_docs/search_assistant.mdx
+++ b/api_docs/search_assistant.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchAssistant
title: "searchAssistant"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchAssistant plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchAssistant']
---
import searchAssistantObj from './search_assistant.devdocs.json';
diff --git a/api_docs/search_connectors.mdx b/api_docs/search_connectors.mdx
index 67cfef094e022..63808cbaa0891 100644
--- a/api_docs/search_connectors.mdx
+++ b/api_docs/search_connectors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchConnectors
title: "searchConnectors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchConnectors plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchConnectors']
---
import searchConnectorsObj from './search_connectors.devdocs.json';
diff --git a/api_docs/search_homepage.mdx b/api_docs/search_homepage.mdx
index b927de8eb18b0..dc80035f89f06 100644
--- a/api_docs/search_homepage.mdx
+++ b/api_docs/search_homepage.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchHomepage
title: "searchHomepage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchHomepage plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchHomepage']
---
import searchHomepageObj from './search_homepage.devdocs.json';
diff --git a/api_docs/search_indices.mdx b/api_docs/search_indices.mdx
index ebca0b819ed55..8a8c3d1642603 100644
--- a/api_docs/search_indices.mdx
+++ b/api_docs/search_indices.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchIndices
title: "searchIndices"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchIndices plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchIndices']
---
import searchIndicesObj from './search_indices.devdocs.json';
diff --git a/api_docs/search_inference_endpoints.mdx b/api_docs/search_inference_endpoints.mdx
index 94b2de45c04d1..55de2c0c3aeb7 100644
--- a/api_docs/search_inference_endpoints.mdx
+++ b/api_docs/search_inference_endpoints.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchInferenceEndpoints
title: "searchInferenceEndpoints"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchInferenceEndpoints plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchInferenceEndpoints']
---
import searchInferenceEndpointsObj from './search_inference_endpoints.devdocs.json';
diff --git a/api_docs/search_notebooks.mdx b/api_docs/search_notebooks.mdx
index 00ccb060096d5..e4f8e7aa5e196 100644
--- a/api_docs/search_notebooks.mdx
+++ b/api_docs/search_notebooks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchNotebooks
title: "searchNotebooks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchNotebooks plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchNotebooks']
---
import searchNotebooksObj from './search_notebooks.devdocs.json';
diff --git a/api_docs/search_playground.mdx b/api_docs/search_playground.mdx
index 43443bfff2061..0a6409f98ae58 100644
--- a/api_docs/search_playground.mdx
+++ b/api_docs/search_playground.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchPlayground
title: "searchPlayground"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchPlayground plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchPlayground']
---
import searchPlaygroundObj from './search_playground.devdocs.json';
diff --git a/api_docs/security.mdx b/api_docs/security.mdx
index dea693c6e7012..23cda2a61ce08 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security']
---
import securityObj from './security.devdocs.json';
diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx
index 439ebd3c5e21c..e2dfdd33a7dab 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution']
---
import securitySolutionObj from './security_solution.devdocs.json';
diff --git a/api_docs/security_solution_ess.mdx b/api_docs/security_solution_ess.mdx
index 944168c8e696c..5523c1f940f06 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: 2024-09-29
+date: 2024-09-30
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 5e2802960a9b0..8383709fc6b3c 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: 2024-09-29
+date: 2024-09-30
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 7a98c3e83d390..eeae132ef6b53 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: 2024-09-29
+date: 2024-09-30
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 8cb33e6107ff1..5cbd6e28cce7f 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: 2024-09-29
+date: 2024-09-30
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 3f295d87faac1..2ee08bacffcd0 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: 2024-09-29
+date: 2024-09-30
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 60580e4fdaff4..1fab24248e431 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: 2024-09-29
+date: 2024-09-30
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 2a295137064c9..1479191871765 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share']
---
import shareObj from './share.devdocs.json';
diff --git a/api_docs/slo.mdx b/api_docs/slo.mdx
index 890873f34546e..34e14029dea76 100644
--- a/api_docs/slo.mdx
+++ b/api_docs/slo.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/slo
title: "slo"
image: https://source.unsplash.com/400x175/?github
description: API docs for the slo plugin
-date: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'slo']
---
import sloObj from './slo.devdocs.json';
diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx
index 91b05fed20347..3aa01b4222dc2 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: 2024-09-29
+date: 2024-09-30
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 e8755571d0dc3..5e1e89c153ade 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: 2024-09-29
+date: 2024-09-30
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 9bbfc58663f85..45f32f25805a1 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: 2024-09-29
+date: 2024-09-30
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 25295085caff0..8334becb04701 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: 2024-09-29
+date: 2024-09-30
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 8753ee37c761d..653094e76024d 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: 2024-09-29
+date: 2024-09-30
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 13516c8dd718e..a596cca06552a 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: 2024-09-29
+date: 2024-09-30
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 2db3c43a20bea..2529c1593ee0b 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: 2024-09-29
+date: 2024-09-30
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 2cfc6e7ba6ff8..b3ae5fe918f3c 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: 2024-09-29
+date: 2024-09-30
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 eb2ace6a25731..ed97be0e59a5e 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection']
---
import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json';
diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx
index 65c0580f91b4d..43bd1340c50d0 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: 2024-09-29
+date: 2024-09-30
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 5f6272c9873c9..ed514a70e8f63 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: 2024-09-29
+date: 2024-09-30
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 3a1d797e36bf2..71e722b0117b1 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: 2024-09-29
+date: 2024-09-30
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 4b44a23dda409..9159ed2e6dcbb 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: 2024-09-29
+date: 2024-09-30
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 727e50442ef00..52df3b914b3be 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: 2024-09-29
+date: 2024-09-30
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 93b00c28f7831..1d5f7cd653be8 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: 2024-09-29
+date: 2024-09-30
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 00dac496e7775..45317d8df3425 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: 2024-09-29
+date: 2024-09-30
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 1303b13b9b7d0..fd319eafe595b 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram']
---
import unifiedHistogramObj from './unified_histogram.devdocs.json';
diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx
index 5d34401628db1..42b11395fead7 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: 2024-09-29
+date: 2024-09-30
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 d8b2736cbd36f..8033db5116988 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: 2024-09-29
+date: 2024-09-30
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 e49efdec99827..04f3c093e845d 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: 2024-09-29
+date: 2024-09-30
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 85c2ef8dc96b5..81eb182c0e99f 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: 2024-09-29
+date: 2024-09-30
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 29a181dc790d1..530ef57462fa5 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: 2024-09-29
+date: 2024-09-30
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 6a5c32739c546..066241addf6bd 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: 2024-09-29
+date: 2024-09-30
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 5794f61674115..d5fb3191150ee 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: 2024-09-29
+date: 2024-09-30
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 36ceda9458dc9..7cf44073fabb9 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: 2024-09-29
+date: 2024-09-30
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 0ac17deb246d9..d2413ede759a6 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: 2024-09-29
+date: 2024-09-30
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 e9ffb88989c44..5d918e9b65c99 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: 2024-09-29
+date: 2024-09-30
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 6e163278b3d3f..28b74ac21f59f 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: 2024-09-29
+date: 2024-09-30
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 634552b1c3bbd..1042bc5052d61 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: 2024-09-29
+date: 2024-09-30
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 6ef6f687fe17a..2a83e18fa1fcc 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: 2024-09-29
+date: 2024-09-30
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 ac9e492326f89..54383966923b4 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: 2024-09-29
+date: 2024-09-30
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 6da3907aa9dd5..eddfd2633ba70 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: 2024-09-29
+date: 2024-09-30
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 46181168947f8..5543b5f15529f 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: 2024-09-29
+date: 2024-09-30
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 9f5a532dbbec8..bd2f8ad01e6f6 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: 2024-09-29
+date: 2024-09-30
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations']
---
import visualizationsObj from './visualizations.devdocs.json';
From 4994e4141d45db4c404bafa034589b14262ef497 Mon Sep 17 00:00:00 2001
From: Alexey Antonov
Date: Mon, 30 Sep 2024 10:10:23 +0300
Subject: [PATCH 05/60] fix: [Obs Alerts > Alert Detail][SCREEN READER]: H1 tag
should not include secondary information: 0002 (#193958)
Closes: https://github.com/elastic/observability-accessibility/issues/60
# Description
Observability has a few pages that wrap related information like alert
counts in the H1 tag. This presents a challenge to screen readers
because all of that information now becomes the heading level one. It
clogs up the Headings menu and makes it harder to reason about the page
and what's primary information vs. secondary.
# What was changed?:
- `pageTitle` was renamed to `pageTitleContent`. The title portion was
moved out of that component.
- `ObservabilityPageTemplate.pageHeader` for the `Alert Detail` page was
updated to separate the title from the other content.
> [!NOTE]
> Related PR: https://github.com/elastic/kibana/pull/193961 for `Rule
Detail`
# Screen:
---
.../alert_details/alert_details.test.tsx | 30 +++-
.../pages/alert_details/alert_details.tsx | 24 +++-
.../components/page_title.stories.tsx | 30 ++--
.../alert_details/components/page_title.tsx | 128 ------------------
...e.test.tsx => page_title_content.test.tsx} | 51 +------
.../components/page_title_content.tsx | 101 ++++++++++++++
6 files changed, 163 insertions(+), 201 deletions(-)
delete mode 100644 x-pack/plugins/observability_solution/observability/public/pages/alert_details/components/page_title.tsx
rename x-pack/plugins/observability_solution/observability/public/pages/alert_details/components/{page_title.test.tsx => page_title_content.test.tsx} (58%)
create mode 100644 x-pack/plugins/observability_solution/observability/public/pages/alert_details/components/page_title_content.tsx
diff --git a/x-pack/plugins/observability_solution/observability/public/pages/alert_details/alert_details.test.tsx b/x-pack/plugins/observability_solution/observability/public/pages/alert_details/alert_details.test.tsx
index 1089bb52b7ed4..877b0b965d1ce 100644
--- a/x-pack/plugins/observability_solution/observability/public/pages/alert_details/alert_details.test.tsx
+++ b/x-pack/plugins/observability_solution/observability/public/pages/alert_details/alert_details.test.tsx
@@ -23,7 +23,7 @@ import { Subset } from '../../typings';
import { useKibana } from '../../utils/kibana_react';
import { kibanaStartMock } from '../../utils/kibana_react.mock';
import { render } from '../../utils/test_helper';
-import { AlertDetails } from './alert_details';
+import { AlertDetails, getPageTitle } from './alert_details';
import { alertDetail, alertWithNoData } from './mock/alert';
jest.mock('react-router-dom', () => ({
@@ -128,6 +128,34 @@ describe('Alert details', () => {
config
);
+ describe('getPageTitle', () => {
+ const renderPageTitle = (ruleCategory: string) =>
+ render(
+
+ {getPageTitle(ruleCategory)}
+ ,
+ config
+ );
+
+ it('should display Log threshold title', () => {
+ const { getByTestId } = renderPageTitle('Log threshold');
+
+ expect(getByTestId('title').textContent).toContain('Log threshold breached');
+ });
+
+ it('should display Anomaly title', () => {
+ const { getByTestId } = renderPageTitle('Anomaly');
+
+ expect(getByTestId('title').textContent).toContain('Anomaly detected');
+ });
+
+ it('should display Inventory title', () => {
+ const { getByTestId } = renderPageTitle('Inventory');
+
+ expect(getByTestId('title').textContent).toContain('Inventory threshold breached');
+ });
+ });
+
it('should show the alert detail page with all necessary components', async () => {
useFetchAlertDetailMock.mockReturnValue([false, alertDetail]);
diff --git a/x-pack/plugins/observability_solution/observability/public/pages/alert_details/alert_details.tsx b/x-pack/plugins/observability_solution/observability/public/pages/alert_details/alert_details.tsx
index 9561dc37b3e7f..e7533c226df58 100644
--- a/x-pack/plugins/observability_solution/observability/public/pages/alert_details/alert_details.tsx
+++ b/x-pack/plugins/observability_solution/observability/public/pages/alert_details/alert_details.tsx
@@ -13,6 +13,7 @@ import {
EuiPanel,
EuiSpacer,
EuiTabbedContent,
+ EuiLoadingSpinner,
EuiTabbedContentTab,
useEuiTheme,
} from '@elastic/eui';
@@ -36,7 +37,7 @@ import { useKibana } from '../../utils/kibana_react';
import { useFetchRule } from '../../hooks/use_fetch_rule';
import { usePluginContext } from '../../hooks/use_plugin_context';
import { AlertData, useFetchAlertDetail } from '../../hooks/use_fetch_alert_detail';
-import { PageTitle, pageTitleContent } from './components/page_title';
+import { PageTitleContent } from './components/page_title_content';
import { HeaderActions } from './components/header_actions';
import { AlertSummary, AlertSummaryField } from './components/alert_summary';
import { CenterJustifiedSpinner } from '../../components/center_justified_spinner';
@@ -68,6 +69,16 @@ const RELATED_ALERTS_TAB_ID = 'related_alerts';
const ALERT_DETAILS_TAB_URL_STORAGE_KEY = 'tabId';
type TabId = typeof OVERVIEW_TAB_ID | typeof METADATA_TAB_ID | typeof RELATED_ALERTS_TAB_ID;
+export const getPageTitle = (ruleCategory: string) => {
+ return i18n.translate('xpack.observability.pages.alertDetails.pageTitle.title', {
+ defaultMessage:
+ '{ruleCategory} {ruleCategory, select, Anomaly {detected} Inventory {threshold breached} other {breached}}',
+ values: {
+ ruleCategory,
+ },
+ });
+};
+
export function AlertDetails() {
const {
cases: {
@@ -154,7 +165,7 @@ export function AlertDetails() {
},
{
text: alertDetail
- ? pageTitleContent(alertDetail.formatted.fields[ALERT_RULE_CATEGORY])
+ ? getPageTitle(alertDetail.formatted.fields[ALERT_RULE_CATEGORY])
: defaultBreadcrumb,
},
]);
@@ -274,8 +285,13 @@ export function AlertDetails() {
return (
+ ),
+ children: (
+ = (props: PageTitleProps) => (
+const Template: ComponentStory = (props: PageTitleContentProps) => (
);
-const TemplateWithPageTemplate: ComponentStory = (props: PageTitleProps) => (
+const TemplateWithPageTemplate: ComponentStory = (
+ props: PageTitleContentProps
+) => (
- } bottomBorder={false} />
+ } bottomBorder={false} />
);
@@ -33,21 +34,8 @@ const defaultProps = {
alert,
};
-export const PageTitle = Template.bind({});
-PageTitle.args = defaultProps;
-
-export const PageTitleForAnomaly = Template.bind({});
-PageTitleForAnomaly.args = {
- ...{
- alert: {
- ...defaultProps.alert,
- fields: {
- ...defaultProps.alert.fields,
- [ALERT_RULE_CATEGORY]: 'Anomaly',
- },
- },
- },
-};
+export const PageTitleContent = Template.bind({});
+PageTitleContent.args = defaultProps;
export const PageTitleUsedWithinPageTemplate = TemplateWithPageTemplate.bind({});
PageTitleUsedWithinPageTemplate.args = {
diff --git a/x-pack/plugins/observability_solution/observability/public/pages/alert_details/components/page_title.tsx b/x-pack/plugins/observability_solution/observability/public/pages/alert_details/components/page_title.tsx
deleted file mode 100644
index 91ba564df7216..0000000000000
--- a/x-pack/plugins/observability_solution/observability/public/pages/alert_details/components/page_title.tsx
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import moment from 'moment';
-import React from 'react';
-import {
- EuiFlexGroup,
- EuiFlexItem,
- EuiLoadingSpinner,
- EuiSpacer,
- EuiText,
- useEuiTheme,
-} from '@elastic/eui';
-import { AlertLifecycleStatusBadge } from '@kbn/alerts-ui-shared';
-import { i18n } from '@kbn/i18n';
-import { FormattedMessage } from '@kbn/i18n-react';
-import {
- AlertStatus,
- ALERT_DURATION,
- ALERT_FLAPPING,
- ALERT_RULE_CATEGORY,
- TIMESTAMP,
-} from '@kbn/rule-data-utils';
-import { css } from '@emotion/react';
-import { asDuration } from '../../../../common/utils/formatters';
-import { TopAlert } from '../../../typings/alerts';
-
-export interface PageTitleProps {
- alert: TopAlert | null;
- alertStatus?: AlertStatus;
- dataTestSubj: string;
-}
-
-export function pageTitleContent(ruleCategory: string) {
- return i18n.translate('xpack.observability.pages.alertDetails.pageTitle.title', {
- defaultMessage:
- '{ruleCategory} {ruleCategory, select, Anomaly {detected} Inventory {threshold breached} other {breached}}',
- values: {
- ruleCategory,
- },
- });
-}
-
-export function PageTitle({ alert, alertStatus, dataTestSubj }: PageTitleProps) {
- const { euiTheme } = useEuiTheme();
-
- if (!alert) return ;
-
- return (
-
) as unknown as HTMLDivElement,
};
-const renderTestComponent = () => {
+const renderTestComponent = (overrideProps = {}) => {
const Renderer = getCustomCellPopoverRenderer();
- render();
+ render();
};
describe('getCustomCellPopoverRenderer', () => {
@@ -45,4 +45,17 @@ describe('getCustomCellPopoverRenderer', () => {
panelClassName: 'unifiedDataTable__cellPopover',
});
});
+
+ it('should render a DefaultCellPopover with a wider panel for allowed columns', () => {
+ renderTestComponent({ columnId: '_source' });
+
+ expect(setCellPopoverPropsMocks).toHaveBeenCalledWith({
+ panelClassName: 'unifiedDataTable__cellPopover',
+ panelProps: {
+ css: {
+ maxInlineSize: 'min(75vw, 600px) !important',
+ },
+ },
+ });
+ });
});
diff --git a/packages/kbn-unified-data-table/src/utils/get_render_cell_popover.tsx b/packages/kbn-unified-data-table/src/utils/get_render_cell_popover.tsx
index 5bcdfda20cfb6..c685f0c007d40 100644
--- a/packages/kbn-unified-data-table/src/utils/get_render_cell_popover.tsx
+++ b/packages/kbn-unified-data-table/src/utils/get_render_cell_popover.tsx
@@ -9,6 +9,9 @@
import { EuiDataGridCellPopoverElementProps } from '@elastic/eui';
import React, { memo, useEffect } from 'react';
+import { SOURCE_COLUMN } from './columns';
+
+const FIELDS_WITH_WIDE_POPOVER = [SOURCE_COLUMN];
/*
*
@@ -23,13 +26,20 @@ export const getCustomCellPopoverRenderer = () => {
const RenderCustomCellPopoverMemoized = memo(function RenderCustomCellPopoverMemoized(
props: EuiDataGridCellPopoverElementProps
) {
- const { setCellPopoverProps, DefaultCellPopover } = props;
+ const { columnId, setCellPopoverProps, DefaultCellPopover } = props;
useEffect(() => {
- setCellPopoverProps({
+ const popoverProps: Parameters[0] = {
panelClassName: 'unifiedDataTable__cellPopover',
- });
- }, [setCellPopoverProps]);
+ };
+
+ const shouldRenderWidePopover = FIELDS_WITH_WIDE_POPOVER.includes(columnId);
+ if (shouldRenderWidePopover) {
+ popoverProps.panelProps = { css: { maxInlineSize: 'min(75vw, 600px) !important' } };
+ }
+
+ setCellPopoverProps(popoverProps);
+ }, [columnId, setCellPopoverProps]);
return ;
});
diff --git a/src/plugins/discover/public/application/context/context_app_content.tsx b/src/plugins/discover/public/application/context/context_app_content.tsx
index b822286ae72a9..b6b4be221377a 100644
--- a/src/plugins/discover/public/application/context/context_app_content.tsx
+++ b/src/plugins/discover/public/application/context/context_app_content.tsx
@@ -28,7 +28,12 @@ import {
ROW_HEIGHT_OPTION,
SHOW_MULTIFIELDS,
} from '@kbn/discover-utils';
-import { DataLoadingState, UnifiedDataTableProps } from '@kbn/unified-data-table';
+import {
+ DataLoadingState,
+ UnifiedDataTableProps,
+ getDataGridDensity,
+ getRowHeight,
+} from '@kbn/unified-data-table';
import { DocViewFilterFn } from '@kbn/unified-doc-viewer/types';
import { useQuerySubscriber } from '@kbn/unified-field-list';
import useObservable from 'react-use/lib/useObservable';
@@ -170,11 +175,21 @@ export function ContextAppContent({
[grid, setAppState]
);
+ const configRowHeight = services.uiSettings.get(ROW_HEIGHT_OPTION);
const getCellRenderersAccessor = useProfileAccessor('getCellRenderers');
const cellRenderers = useMemo(() => {
const getCellRenderers = getCellRenderersAccessor(() => ({}));
- return getCellRenderers();
- }, [getCellRenderersAccessor]);
+ return getCellRenderers({
+ actions: { addFilter },
+ dataView,
+ density: getDataGridDensity(services.storage, 'discover'),
+ rowHeight: getRowHeight({
+ storage: services.storage,
+ consumer: 'discover',
+ configRowHeight,
+ }),
+ });
+ }, [addFilter, configRowHeight, dataView, getCellRenderersAccessor, services.storage]);
const dataSource = useMemo(() => createDataSource({ dataView, query: undefined }), [dataView]);
const { filters } = useQuerySubscriber({ data: services.data });
@@ -249,7 +264,7 @@ export function ContextAppContent({
setExpandedDoc={setExpandedDoc}
onFilter={addFilter}
onSetColumns={onSetColumns}
- configRowHeight={services.uiSettings.get(ROW_HEIGHT_OPTION)}
+ configRowHeight={configRowHeight}
showMultiFields={services.uiSettings.get(SHOW_MULTIFIELDS)}
maxDocFieldsDisplayed={services.uiSettings.get(MAX_DOC_FIELDS_DISPLAYED)}
renderDocumentView={renderDocumentView}
diff --git a/src/plugins/discover/public/application/main/components/layout/discover_documents.test.tsx b/src/plugins/discover/public/application/main/components/layout/discover_documents.test.tsx
index 564e4fc23ea90..effa9f99d6c4b 100644
--- a/src/plugins/discover/public/application/main/components/layout/discover_documents.test.tsx
+++ b/src/plugins/discover/public/application/main/components/layout/discover_documents.test.tsx
@@ -144,8 +144,7 @@ describe('Discover documents layout', () => {
const discoverGridComponent = component.find(DiscoverGrid);
expect(discoverGridComponent.exists()).toBeTruthy();
expect(Object.keys(discoverGridComponent.prop('externalCustomRenderers')!)).toEqual([
- 'content',
- 'resource',
+ '_source',
'rootProfile',
]);
});
diff --git a/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx b/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx
index 4d8fd0fbccb95..2fe2a4f5a8f93 100644
--- a/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx
+++ b/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx
@@ -29,9 +29,11 @@ import {
type DataTableColumnsMeta,
getTextBasedColumnsMeta,
getRenderCustomToolbarWithElements,
- type DataGridDensity,
+ DataGridDensity,
UnifiedDataTableProps,
UseColumnsProps,
+ getDataGridDensity,
+ getRowHeight,
} from '@kbn/unified-data-table';
import {
DOC_HIDE_TIME_COLUMN_SETTING,
@@ -72,6 +74,7 @@ import { useContextualGridCustomisations } from '../../hooks/grid_customisations
import { useIsEsqlMode } from '../../hooks/use_is_esql_mode';
import { useAdditionalFieldGroups } from '../../hooks/sidebar/use_additional_field_groups';
import {
+ CellRenderersExtensionParams,
DISCOVER_CELL_ACTIONS_TRIGGER,
useAdditionalCellActions,
useProfileAccessor,
@@ -306,16 +309,32 @@ function DiscoverDocumentsComponent({
[dataView, onAddColumn, onAddFilter, onRemoveColumn, query, savedSearch.id, setExpandedDoc]
);
+ const configRowHeight = uiSettings.get(ROW_HEIGHT_OPTION);
+ const cellRendererParams: CellRenderersExtensionParams = useMemo(
+ () => ({
+ actions: { addFilter: onAddFilter },
+ dataView,
+ density: density ?? getDataGridDensity(services.storage, 'discover'),
+ rowHeight: getRowHeight({
+ storage: services.storage,
+ consumer: 'discover',
+ rowHeightState: rowHeight,
+ configRowHeight,
+ }),
+ }),
+ [onAddFilter, dataView, density, services.storage, rowHeight, configRowHeight]
+ );
+
const { rowAdditionalLeadingControls } = useDiscoverCustomization('data_table') || {};
const { customCellRenderer, customGridColumnsConfiguration } =
- useContextualGridCustomisations() || {};
+ useContextualGridCustomisations(cellRendererParams) || {};
const additionalFieldGroups = useAdditionalFieldGroups();
const getCellRenderersAccessor = useProfileAccessor('getCellRenderers');
const cellRenderers = useMemo(() => {
const getCellRenderers = getCellRenderersAccessor(() => customCellRenderer ?? {});
- return getCellRenderers();
- }, [customCellRenderer, getCellRenderersAccessor]);
+ return getCellRenderers(cellRendererParams);
+ }, [cellRendererParams, customCellRenderer, getCellRenderersAccessor]);
const documents = useObservable(stateContainer.dataState.data$.documents$);
@@ -458,7 +477,7 @@ function DiscoverDocumentsComponent({
sampleSizeState={getAllowedSampleSize(sampleSizeState, services.uiSettings)}
onUpdateSampleSize={!isEsqlMode ? onUpdateSampleSize : undefined}
onFieldEdited={onFieldEdited}
- configRowHeight={uiSettings.get(ROW_HEIGHT_OPTION)}
+ configRowHeight={configRowHeight}
showMultiFields={uiSettings.get(SHOW_MULTIFIELDS)}
maxDocFieldsDisplayed={uiSettings.get(MAX_DOC_FIELDS_DISPLAYED)}
renderDocumentView={renderDocumentView}
diff --git a/src/plugins/discover/public/application/main/hooks/grid_customisations/index.ts b/src/plugins/discover/public/application/main/hooks/grid_customisations/index.ts
index 88b7d27633bbe..996c64d34bd12 100644
--- a/src/plugins/discover/public/application/main/hooks/grid_customisations/index.ts
+++ b/src/plugins/discover/public/application/main/hooks/grid_customisations/index.ts
@@ -8,22 +8,23 @@
*/
import { useMemo } from 'react';
-import { useDiscoverServices } from '../../../../hooks/use_discover_services';
import { useDiscoverCustomization } from '../../../../customizations';
-import { getLogsVirtualColumnsConfiguration } from './logs';
+import { DataGridColumnsDeps, getDataGridColumnsConfiguration } from './logs';
export * from './logs';
-export const useContextualGridCustomisations = () => {
- const { data } = useDiscoverServices();
+type ContextualGridCustomizationParams = DataGridColumnsDeps;
+
+export const useContextualGridCustomisations = (params: ContextualGridCustomizationParams) => {
// TODO / NOTE: This will eventually rely on Discover's context resolution to determine which fields
// are returned based on the data type.
const isLogsContext = useDiscoverCustomization('data_table')?.logsEnabled;
const virtualColumnsConfiguration = useMemo(() => {
if (!isLogsContext) return null;
- if (isLogsContext) return getLogsVirtualColumnsConfiguration(data);
- }, [data, isLogsContext]);
+
+ return getDataGridColumnsConfiguration(params);
+ }, [isLogsContext, params]);
return virtualColumnsConfiguration;
};
diff --git a/src/plugins/discover/public/application/main/hooks/grid_customisations/logs.tsx b/src/plugins/discover/public/application/main/hooks/grid_customisations/logs.tsx
index b14605663d50b..409c1e03fa737 100644
--- a/src/plugins/discover/public/application/main/hooks/grid_customisations/logs.tsx
+++ b/src/plugins/discover/public/application/main/hooks/grid_customisations/logs.tsx
@@ -7,26 +7,27 @@
* License v3.0 only", or the "Server Side Public License, v 1".
*/
-import { DataPublicPluginStart } from '@kbn/data-plugin/public';
-import { CONTENT_FIELD, RESOURCE_FIELD } from '../../../../../common/data_types/logs/constants';
-import { renderCell } from '../../../../components/discover_grid/virtual_columns/logs/cell_renderer';
-import { renderColumn } from '../../../../components/discover_grid/virtual_columns/logs/column';
+import { SOURCE_COLUMN } from '@kbn/unified-data-table';
+import {
+ SummaryColumnGetterDeps,
+ getSummaryColumn,
+} from '../../../../components/data_types/logs/summary_column';
-export const getLogsVirtualColumnsConfiguration = (data: DataPublicPluginStart) => {
+export type DataGridColumnsDeps = CustomCellRendererDeps;
+
+export const getDataGridColumnsConfiguration = (params: DataGridColumnsDeps) => {
return {
- customCellRenderer: createCustomCellRenderer({ data }),
+ customCellRenderer: createCustomCellRenderer(params),
customGridColumnsConfiguration: createCustomGridColumnsConfiguration(),
};
};
-export const createCustomCellRenderer = ({ data }: { data: DataPublicPluginStart }) => {
+type CustomCellRendererDeps = SummaryColumnGetterDeps;
+
+export const createCustomCellRenderer = (params: CustomCellRendererDeps) => {
return {
- [CONTENT_FIELD]: renderCell(CONTENT_FIELD, { data }),
- [RESOURCE_FIELD]: renderCell(RESOURCE_FIELD, { data }),
+ [SOURCE_COLUMN]: getSummaryColumn(params),
};
};
-export const createCustomGridColumnsConfiguration = () => ({
- [CONTENT_FIELD]: renderColumn(CONTENT_FIELD),
- [RESOURCE_FIELD]: renderColumn(RESOURCE_FIELD),
-});
+export const createCustomGridColumnsConfiguration = () => ({});
diff --git a/src/plugins/discover/public/application/main/hooks/grid_customisations/use_virtual_column_services.tsx b/src/plugins/discover/public/application/main/hooks/grid_customisations/use_virtual_column_services.tsx
deleted file mode 100644
index df8cb411b6e16..0000000000000
--- a/src/plugins/discover/public/application/main/hooks/grid_customisations/use_virtual_column_services.tsx
+++ /dev/null
@@ -1,24 +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", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
- * License v3.0 only", or the "Server Side Public License, v 1".
- */
-
-import createContainer from 'constate';
-import type { DataView } from '@kbn/data-views-plugin/common';
-import { DataPublicPluginStart } from '@kbn/data-plugin/public';
-
-export interface UseVirtualColumnServices {
- services: {
- data: DataPublicPluginStart;
- dataView: DataView;
- };
-}
-
-const useVirtualColumns = ({ services }: UseVirtualColumnServices) => services;
-
-export const [VirtualColumnServiceProvider, useVirtualColumnServiceContext] =
- createContainer(useVirtualColumns);
diff --git a/src/plugins/discover/public/build_services.ts b/src/plugins/discover/public/build_services.ts
index f4ee14fcf04f7..3d12e16a07694 100644
--- a/src/plugins/discover/public/build_services.ts
+++ b/src/plugins/discover/public/build_services.ts
@@ -58,6 +58,7 @@ import type { NoDataPagePluginStart } from '@kbn/no-data-page-plugin/public';
import type { AiopsPluginStart } from '@kbn/aiops-plugin/public';
import type { DataVisualizerPluginStart } from '@kbn/data-visualizer-plugin/public';
import type { FieldsMetadataPublicStart } from '@kbn/fields-metadata-plugin/public';
+import { LogsDataAccessPluginStart } from '@kbn/logs-data-access-plugin/public';
import type { DiscoverStartPlugins } from './types';
import type { DiscoverContextAppLocator } from './application/context/services/locator';
import type { DiscoverSingleDocLocator } from './application/doc/locator';
@@ -133,6 +134,7 @@ export interface DiscoverServices {
profilesManager: ProfilesManager;
ebtContextManager: DiscoverEBTContextManager;
fieldsMetadata?: FieldsMetadataPublicStart;
+ logsDataAccess?: LogsDataAccessPluginStart;
}
export const buildServices = memoize(
@@ -223,6 +225,7 @@ export const buildServices = memoize(
profilesManager,
ebtContextManager,
fieldsMetadata: plugins.fieldsMetadata,
+ logsDataAccess: plugins.logsDataAccess,
};
}
);
diff --git a/src/plugins/discover/public/components/data_types/logs/cell_actions_popover.tsx b/src/plugins/discover/public/components/data_types/logs/cell_actions_popover.tsx
new file mode 100644
index 0000000000000..7b9d68e8f3dd7
--- /dev/null
+++ b/src/plugins/discover/public/components/data_types/logs/cell_actions_popover.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", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
+ * License v3.0 only", or the "Server Side Public License, v 1".
+ */
+
+import React, { ReactElement } from 'react';
+import {
+ EuiBadge,
+ type EuiBadgeProps,
+ EuiFlexGroup,
+ EuiFlexItem,
+ EuiPopover,
+ EuiPopoverFooter,
+ EuiText,
+ EuiButtonIcon,
+ EuiTextTruncate,
+ EuiButtonEmpty,
+ EuiCopy,
+} from '@elastic/eui';
+import { css } from '@emotion/react';
+import { useBoolean } from '@kbn/react-hooks';
+import { euiThemeVars } from '@kbn/ui-theme';
+import { DocViewFilterFn } from '@kbn/unified-doc-viewer/types';
+import {
+ actionFilterForText,
+ actionFilterOutText,
+ closeCellActionPopoverText,
+ copyValueAriaText,
+ copyValueText,
+ filterForText,
+ filterOutText,
+ openCellActionPopoverAriaText,
+} from './translations';
+
+const codeFontCSS = css`
+ font-family: ${euiThemeVars.euiCodeFontFamily};
+`;
+
+interface CellActionsPopoverProps {
+ onFilter?: DocViewFilterFn;
+ /* ECS mapping for the key */
+ property: string;
+ /* Value for the mapping, which will be displayed */
+ value: string;
+ /* Optional callback to render the value */
+ renderValue?: (value: string) => React.ReactNode;
+ /* Props to forward to the trigger Badge */
+ renderPopoverTrigger: (props: {
+ popoverTriggerProps: {
+ onClick: () => void;
+ onClickAriaLabel: string;
+ 'data-test-subj': string;
+ };
+ }) => ReactElement;
+}
+
+export function CellActionsPopover({
+ onFilter,
+ property,
+ value,
+ renderValue,
+ renderPopoverTrigger,
+}: CellActionsPopoverProps) {
+ const [isPopoverOpen, { toggle: togglePopover, off: closePopover }] = useBoolean(false);
+
+ const makeFilterHandlerByOperator = (operator: '+' | '-') => () => {
+ if (onFilter) {
+ onFilter(property, value, operator);
+ }
+ };
+
+ const popoverTriggerProps = {
+ onClick: togglePopover,
+ onClickAriaLabel: openCellActionPopoverAriaText,
+ 'data-test-subj': `dataTableCellActionsPopover_${property}`,
+ };
+
+ return (
+
+
+
+
+ {property}{' '}
+ {typeof renderValue === 'function' ? renderValue(value) : value}
+
+
+
+
+
+
+
+
+
+ {filterForText}
+
+
+ {filterOutText}
+
+
+
+
+
+ {(copy) => (
+
+ {copyValueText}
+
+ )}
+
+
+
+ );
+}
+
+export interface FieldBadgeWithActionsProps
+ extends Pick {
+ icon?: EuiBadgeProps['iconType'];
+}
+
+export function FieldBadgeWithActions({
+ icon,
+ onFilter,
+ property,
+ renderValue,
+ value,
+}: FieldBadgeWithActionsProps) {
+ return (
+ (
+
+
+
+ )}
+ />
+ );
+}
diff --git a/src/plugins/discover/public/components/data_types/logs/copy_button.tsx b/src/plugins/discover/public/components/data_types/logs/copy_button.tsx
deleted file mode 100644
index a609187ffde9b..0000000000000
--- a/src/plugins/discover/public/components/data_types/logs/copy_button.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the "Elastic License
- * 2.0", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
- * License v3.0 only", or the "Server Side Public License, v 1".
- */
-
-import { EuiButtonEmpty, EuiFlexItem, copyToClipboard } from '@elastic/eui';
-import React from 'react';
-import { copyValueAriaText, copyValueText } from './translations';
-
-export const CopyButton = ({ property, value }: { property: string; value: string }) => {
- const ariaCopyValueText = copyValueAriaText(property);
-
- return (
-
- copyToClipboard(value)}
- data-test-subj={`dataTableCellAction_copyToClipboardAction_${property}`}
- >
- {copyValueText}
-
-
- );
-};
diff --git a/src/plugins/discover/public/components/data_types/logs/filter_in_button.tsx b/src/plugins/discover/public/components/data_types/logs/filter_in_button.tsx
deleted file mode 100644
index 58822a4c84e4d..0000000000000
--- a/src/plugins/discover/public/components/data_types/logs/filter_in_button.tsx
+++ /dev/null
@@ -1,42 +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", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
- * License v3.0 only", or the "Server Side Public License, v 1".
- */
-
-import { EuiButtonEmpty, EuiFlexItem } from '@elastic/eui';
-import React from 'react';
-import { generateFilters } from '@kbn/data-plugin/public';
-import { useVirtualColumnServiceContext } from '../../../application/main/hooks/grid_customisations/use_virtual_column_services';
-import { actionFilterForText, filterForText } from './translations';
-
-export const FilterInButton = ({ property, value }: { property: string; value: string }) => {
- const ariaFilterForText = actionFilterForText(value);
- const serviceContext = useVirtualColumnServiceContext();
- const filterManager = serviceContext?.data.query.filterManager;
- const dataView = serviceContext.dataView;
-
- const onFilterForAction = () => {
- if (filterManager != null) {
- const filter = generateFilters(filterManager, property, [value], '+', dataView);
- filterManager.addFilters(filter);
- }
- };
-
- return (
-
-
- {filterForText}
-
-
- );
-};
diff --git a/src/plugins/discover/public/components/data_types/logs/filter_out_button.tsx b/src/plugins/discover/public/components/data_types/logs/filter_out_button.tsx
deleted file mode 100644
index a08b54e2436cd..0000000000000
--- a/src/plugins/discover/public/components/data_types/logs/filter_out_button.tsx
+++ /dev/null
@@ -1,42 +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", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
- * License v3.0 only", or the "Server Side Public License, v 1".
- */
-
-import { EuiButtonEmpty, EuiFlexItem } from '@elastic/eui';
-import React from 'react';
-import { generateFilters } from '@kbn/data-plugin/public';
-import { useVirtualColumnServiceContext } from '../../../application/main/hooks/grid_customisations/use_virtual_column_services';
-import { actionFilterOutText, filterOutText } from './translations';
-
-export const FilterOutButton = ({ property, value }: { property: string; value: string }) => {
- const ariaFilterOutText = actionFilterOutText(value);
- const serviceContext = useVirtualColumnServiceContext();
- const filterManager = serviceContext?.data.query.filterManager;
- const dataView = serviceContext.dataView;
-
- const onFilterOutAction = () => {
- if (filterManager != null) {
- const filter = generateFilters(filterManager, property, [value], '-', dataView);
- filterManager.addFilters(filter);
- }
- };
-
- return (
-
-
- {filterOutText}
-
-
- );
-};
diff --git a/src/plugins/discover/public/components/data_types/logs/log_level.tsx b/src/plugins/discover/public/components/data_types/logs/log_level.tsx
deleted file mode 100644
index 096c3bf51734e..0000000000000
--- a/src/plugins/discover/public/components/data_types/logs/log_level.tsx
+++ /dev/null
@@ -1,38 +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", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
- * License v3.0 only", or the "Server Side Public License, v 1".
- */
-
-import React from 'react';
-import { LogFlyoutDoc, LogLevelBadge } from '@kbn/discover-utils/src';
-import * as constants from '../../../../common/data_types/logs/constants';
-import { ChipPopover } from './popover_chip';
-
-interface LogLevelProps {
- level: LogFlyoutDoc['log.level'];
-}
-
-export function LogLevel({ level }: LogLevelProps) {
- if (!level) return null;
-
- return (
- (
-
- )}
- />
- );
-}
diff --git a/src/plugins/discover/public/components/data_types/logs/log_level_badge_cell.tsx b/src/plugins/discover/public/components/data_types/logs/log_level_badge_cell.tsx
index 883452c7cd12c..bff3bdddee026 100644
--- a/src/plugins/discover/public/components/data_types/logs/log_level_badge_cell.tsx
+++ b/src/plugins/discover/public/components/data_types/logs/log_level_badge_cell.tsx
@@ -8,9 +8,9 @@
*/
import type { CSSObject } from '@emotion/react';
+import React from 'react';
import { LogLevelBadge } from '@kbn/discover-utils';
import type { DataGridCellValueElementProps } from '@kbn/unified-data-table';
-import React from 'react';
const dataTestSubj = 'logLevelBadgeCell';
const badgeCss: CSSObject = { marginTop: '-4px' };
diff --git a/src/plugins/discover/public/components/data_types/logs/popover_chip.tsx b/src/plugins/discover/public/components/data_types/logs/popover_chip.tsx
deleted file mode 100644
index e84fcca52d627..0000000000000
--- a/src/plugins/discover/public/components/data_types/logs/popover_chip.tsx
+++ /dev/null
@@ -1,173 +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", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
- * License v3.0 only", or the "Server Side Public License, v 1".
- */
-
-import React, { ReactElement, useCallback, useState } from 'react';
-import {
- EuiBadge,
- type EuiBadgeProps,
- EuiFlexGroup,
- EuiFlexItem,
- EuiPopover,
- useEuiFontSize,
- EuiPopoverFooter,
- EuiText,
- EuiButtonIcon,
-} from '@elastic/eui';
-import { css, SerializedStyles } from '@emotion/react';
-import { dynamic } from '@kbn/shared-ux-utility';
-import { closeCellActionPopoverText, openCellActionPopoverAriaText } from './translations';
-import { FilterInButton } from './filter_in_button';
-import { FilterOutButton } from './filter_out_button';
-import { CopyButton } from './copy_button';
-
-const DataTablePopoverCellValue = dynamic(
- () => import('@kbn/unified-data-table/src/components/data_table_cell_value')
-);
-
-type ChipWithPopoverChildrenType = (props: {
- content: string;
-}) => React.ReactNode | React.ReactNode;
-
-export interface ChipWithPopoverProps {
- /**
- * ECS mapping for the key
- */
- property: string;
- /**
- * Value for the mapping, which will be displayed
- */
- text: string;
- dataTestSubj?: string;
- leftSideIcon?: React.ReactNode;
- rightSideIcon?: EuiBadgeProps['iconType'];
- children?: ChipWithPopoverChildrenType;
-}
-
-export function ChipWithPopover({
- property,
- text,
- dataTestSubj = `dataTablePopoverChip_${property}`,
- leftSideIcon,
- rightSideIcon,
- children,
-}: ChipWithPopoverProps) {
- return (
- (
-
-
- {leftSideIcon && {leftSideIcon}}
- {text}
-
-
- )}
- >
- {children}
-
- );
-}
-
-interface ChipPopoverProps {
- /**
- * ECS mapping for the key
- */
- property: string;
- /**
- * Value for the mapping, which will be displayed
- */
- text: string;
- renderChip: (props: {
- handleChipClick: () => void;
- handleChipClickAriaLabel: string;
- chipCss: SerializedStyles;
- }) => ReactElement;
- children?: ChipWithPopoverChildrenType;
-}
-
-export function ChipPopover({ property, text, renderChip, children }: ChipPopoverProps) {
- const xsFontSize = useEuiFontSize('xs').fontSize;
- const [isPopoverOpen, setIsPopoverOpen] = useState(false);
-
- const handleChipClick = useCallback(() => {
- setIsPopoverOpen(!isPopoverOpen);
- }, [isPopoverOpen]);
-
- const closePopover = () => setIsPopoverOpen(false);
-
- return (
-
-
-
-
-
-
- {property}{' '}
- {typeof children === 'function' ? children({ content: text }) : text}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- );
-}
diff --git a/src/plugins/discover/public/components/data_types/logs/service_name_chip_with_popover.tsx b/src/plugins/discover/public/components/data_types/logs/service_name_badge_with_actions.tsx
similarity index 56%
rename from src/plugins/discover/public/components/data_types/logs/service_name_chip_with_popover.tsx
rename to src/plugins/discover/public/components/data_types/logs/service_name_badge_with_actions.tsx
index ecb456017c7a9..581c889b8e98e 100644
--- a/src/plugins/discover/public/components/data_types/logs/service_name_chip_with_popover.tsx
+++ b/src/plugins/discover/public/components/data_types/logs/service_name_badge_with_actions.tsx
@@ -11,38 +11,50 @@ import React from 'react';
import { getRouterLinkProps } from '@kbn/router-utils';
import { EuiLink } from '@elastic/eui';
import { OBSERVABILITY_ENTITY_CENTRIC_EXPERIENCE } from '@kbn/management-settings-ids';
-import { type ChipWithPopoverProps, ChipWithPopover } from './popover_chip';
+import { SharePublicStart } from '@kbn/share-plugin/public/plugin';
import { useDiscoverServices } from '../../../hooks/use_discover_services';
+import { FieldBadgeWithActions, FieldBadgeWithActionsProps } from './cell_actions_popover';
const SERVICE_ENTITY_LOCATOR = 'SERVICE_ENTITY_LOCATOR';
-export function ServiceNameChipWithPopover(props: ChipWithPopoverProps) {
+export function ServiceNameBadgeWithActions(props: FieldBadgeWithActionsProps) {
const { share, core } = useDiscoverServices();
const canViewApm = core.application.capabilities.apm?.show || false;
const isEntityCentricExperienceSettingEnabled = canViewApm
? core.uiSettings.get(OBSERVABILITY_ENTITY_CENTRIC_EXPERIENCE)
: false;
- const urlService = share?.url;
- const apmLinkToServiceEntityLocator = urlService?.locators.get<{ serviceName: string }>(
+ const derivedPropsForEntityExperience = isEntityCentricExperienceSettingEnabled
+ ? getDerivedPropsForEntityExperience({ serviceName: props.value, share })
+ : {};
+
+ return ;
+}
+
+const getDerivedPropsForEntityExperience = ({
+ serviceName,
+ share,
+}: {
+ serviceName: string;
+ share?: SharePublicStart;
+}): Pick => {
+ const apmLinkToServiceEntityLocator = share?.url?.locators.get<{ serviceName: string }>(
SERVICE_ENTITY_LOCATOR
);
- const href = apmLinkToServiceEntityLocator?.getRedirectUrl({
- serviceName: props.text,
- });
+ const href = apmLinkToServiceEntityLocator?.getRedirectUrl({ serviceName });
const routeLinkProps = href
? getRouterLinkProps({
href,
- onClick: () => apmLinkToServiceEntityLocator?.navigate({ serviceName: props.text }),
+ onClick: () => apmLinkToServiceEntityLocator?.navigate({ serviceName }),
})
: undefined;
- return (
-
- {canViewApm && isEntityCentricExperienceSettingEnabled && routeLinkProps
- ? ({ content }) => {content}
- : undefined}
-
- );
-}
+ if (routeLinkProps) {
+ return {
+ renderValue: (value) => {value},
+ };
+ }
+
+ return {};
+};
diff --git a/src/plugins/discover/public/components/data_types/logs/summary_column/content.tsx b/src/plugins/discover/public/components/data_types/logs/summary_column/content.tsx
new file mode 100644
index 0000000000000..0da98cbf7145e
--- /dev/null
+++ b/src/plugins/discover/public/components/data_types/logs/summary_column/content.tsx
@@ -0,0 +1,104 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the "Elastic License
+ * 2.0", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
+ * License v3.0 only", or the "Server Side Public License, v 1".
+ */
+
+import React, { useMemo } from 'react';
+import { SourceDocument, type DataGridCellValueElementProps } from '@kbn/unified-data-table';
+import {
+ ShouldShowFieldInTableHandler,
+ getLogDocumentOverview,
+ getMessageFieldWithFallbacks,
+} from '@kbn/discover-utils';
+import * as constants from '../../../../../common/data_types/logs/constants';
+import { formatJsonDocumentForContent } from './utils';
+
+interface ContentProps extends DataGridCellValueElementProps {
+ isCompressed: boolean;
+ isSingleLine?: boolean;
+ shouldShowFieldHandler: ShouldShowFieldInTableHandler;
+}
+
+const LogMessage = ({
+ field,
+ value,
+ className,
+}: {
+ field: string;
+ value: string;
+ className: string;
+}) => {
+ const shouldRenderFieldName = field !== constants.MESSAGE_FIELD;
+
+ if (shouldRenderFieldName) {
+ return (
+
+ {field}{' '}
+
+
+ );
+ }
+
+ return (
+
+ );
+};
+
+export const Content = ({
+ columnId,
+ dataView,
+ fieldFormats,
+ isCompressed,
+ isSingleLine = false,
+ row,
+ shouldShowFieldHandler,
+}: ContentProps) => {
+ const documentOverview = getLogDocumentOverview(row, { dataView, fieldFormats });
+ const { field, value } = getMessageFieldWithFallbacks(documentOverview);
+ const shouldRenderContent = !!field && !!value;
+
+ return shouldRenderContent ? (
+
+ ) : (
+
+ );
+};
+
+type FormattedSourceDocumentProps = Pick<
+ ContentProps,
+ 'columnId' | 'dataView' | 'fieldFormats' | 'isCompressed' | 'row' | 'shouldShowFieldHandler'
+>;
+
+const FormattedSourceDocument = ({ row, ...props }: FormattedSourceDocumentProps) => {
+ const formattedRow = useMemo(() => formatJsonDocumentForContent(row), [row]);
+
+ return (
+
+ );
+};
diff --git a/src/plugins/discover/public/components/data_types/logs/summary_column/index.tsx b/src/plugins/discover/public/components/data_types/logs/summary_column/index.tsx
new file mode 100644
index 0000000000000..20fe4380199f3
--- /dev/null
+++ b/src/plugins/discover/public/components/data_types/logs/summary_column/index.tsx
@@ -0,0 +1,39 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the "Elastic License
+ * 2.0", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
+ * License v3.0 only", or the "Server Side Public License, v 1".
+ */
+
+import React from 'react';
+import { dynamic } from '@kbn/shared-ux-utility';
+import { getShouldShowFieldHandler } from '@kbn/discover-utils';
+import { DataView } from '@kbn/data-views-plugin/common';
+import { CellRenderersExtensionParams } from '../../../../context_awareness';
+import type { SummaryColumnProps } from './summary_column';
+
+const SummaryColumn = dynamic(() => import('./summary_column'));
+
+export type SummaryColumnGetterDeps = CellRenderersExtensionParams;
+
+export const getSummaryColumn = (params: SummaryColumnGetterDeps) => {
+ const { actions, dataView, density, rowHeight } = params;
+ const shouldShowFieldHandler = createGetShouldShowFieldHandler(dataView);
+
+ return (props: SummaryColumnProps) => (
+
+ );
+};
+
+const createGetShouldShowFieldHandler = (dataView: DataView) => {
+ const dataViewFields = dataView.fields.getAll().map((fld) => fld.name);
+ return getShouldShowFieldHandler(dataViewFields, dataView, true);
+};
diff --git a/src/plugins/discover/public/components/data_types/logs/summary_column/resource.tsx b/src/plugins/discover/public/components/data_types/logs/summary_column/resource.tsx
new file mode 100644
index 0000000000000..a7955fadde622
--- /dev/null
+++ b/src/plugins/discover/public/components/data_types/logs/summary_column/resource.tsx
@@ -0,0 +1,40 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the "Elastic License
+ * 2.0", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
+ * License v3.0 only", or the "Server Side Public License, v 1".
+ */
+
+import React from 'react';
+import { EuiBadge, EuiFlexGroup } from '@elastic/eui';
+import { DocViewFilterFn } from '@kbn/unified-doc-viewer/types';
+import { ResourceFieldDescriptor } from './utils';
+
+const MAX_LIMITED_FIELDS_VISIBLE = 3;
+
+interface ResourceProps {
+ fields: ResourceFieldDescriptor[];
+ /* When true, the column will render a predefined number of resources and indicates with a badge how many more we have */
+ limited?: boolean;
+ onFilter?: DocViewFilterFn;
+}
+
+export const Resource = ({ fields, limited = false, onFilter, ...props }: ResourceProps) => {
+ const displayedFields = limited ? fields.slice(0, MAX_LIMITED_FIELDS_VISIBLE) : fields;
+ const extraFieldsCount = limited ? fields.length - MAX_LIMITED_FIELDS_VISIBLE : 0;
+
+ return (
+
+ {displayedFields.map(({ name, value, ResourceBadge, Icon }) => (
+
+ ))}
+ {extraFieldsCount > 0 && (
+
+ +{extraFieldsCount}
+
+ )}
+
+ );
+};
diff --git a/src/plugins/discover/public/components/data_types/logs/summary_column/summary_column.test.tsx b/src/plugins/discover/public/components/data_types/logs/summary_column/summary_column.test.tsx
new file mode 100644
index 0000000000000..b8eeea613c9c6
--- /dev/null
+++ b/src/plugins/discover/public/components/data_types/logs/summary_column/summary_column.test.tsx
@@ -0,0 +1,176 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the "Elastic License
+ * 2.0", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
+ * License v3.0 only", or the "Server Side Public License, v 1".
+ */
+
+import React from 'react';
+import { buildDataTableRecord, DataTableRecord } from '@kbn/discover-utils';
+import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
+import { fieldFormatsMock } from '@kbn/field-formats-plugin/common/mocks';
+import { render, screen } from '@testing-library/react';
+import SummaryColumn, { SummaryColumnFactoryDeps, SummaryColumnProps } from './summary_column';
+import { DataGridDensity, ROWS_HEIGHT_OPTIONS } from '@kbn/unified-data-table';
+import * as constants from '../../../../../common/data_types/logs/constants';
+import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
+import { discoverServiceMock } from '../../../../__mocks__/services';
+
+const renderSummary = (
+ record: DataTableRecord,
+ opts: Partial = {}
+) => {
+ render(
+
+ {}}
+ closePopover={() => {}}
+ density={DataGridDensity.COMPACT}
+ rowHeight={ROWS_HEIGHT_OPTIONS.single}
+ onFilter={jest.fn()}
+ shouldShowFieldHandler={() => true}
+ {...opts}
+ />
+
+ );
+};
+
+const getBaseRecord = (overrides: Record = {}) =>
+ buildDataTableRecord(
+ {
+ fields: {
+ '@timestamp': 1726218404776,
+ 'agent.name': 'nodejs',
+ 'cloud.availability_zone': 'area-51a',
+ 'cloud.instance.id': '3275100000000076',
+ 'cloud.project.id': '3275100000000075',
+ 'cloud.provider': 'azure',
+ 'cloud.region': 'area-51',
+ 'container.name': 'synth-service-2-3275100000000073',
+ 'error.log.stacktrace': 'Error message in error.log.stacktrace',
+ 'event.original': 'Error with certificate: "ca_trusted_fingerprint"',
+ 'host.name': 'synth-host',
+ 'orchestrator.cluster.id': '3275100000000002',
+ 'orchestrator.cluster.name': 'synth-cluster-3',
+ 'orchestrator.namespace': 'kube',
+ 'orchestrator.resource.id': '3275100000000074',
+ 'service.name': 'synth-service-2',
+ 'trace.id': '3275100000000072',
+ message: 'Yet another debug log',
+ ...overrides,
+ },
+ },
+ dataViewMock
+ );
+
+describe('SummaryColumn', () => {
+ describe('when rendering resource badges', () => {
+ it('should render a maximum of 3 resource badges in row compact mode', () => {
+ const record = getBaseRecord();
+ renderSummary(record);
+ expect(
+ screen.queryByTestId(`dataTableCellActionsPopover_${constants.SERVICE_NAME_FIELD}`)
+ ).toBeInTheDocument();
+ expect(
+ screen.queryByTestId(`dataTableCellActionsPopover_${constants.CONTAINER_NAME_FIELD}`)
+ ).toBeInTheDocument();
+ expect(
+ screen.queryByTestId(`dataTableCellActionsPopover_${constants.HOST_NAME_FIELD}`)
+ ).toBeInTheDocument();
+ expect(
+ screen.queryByTestId(
+ `dataTableCellActionsPopover_${constants.ORCHESTRATOR_NAMESPACE_FIELD}`
+ )
+ ).not.toBeInTheDocument();
+ expect(
+ screen.queryByTestId(`dataTableCellActionsPopover_${constants.CLOUD_INSTANCE_ID_FIELD}`)
+ ).not.toBeInTheDocument();
+ });
+
+ it('should render a badge indicating the count of additional resources', () => {
+ const record = getBaseRecord();
+ renderSummary(record);
+ expect(screen.queryByText('+2')).toBeInTheDocument();
+ expect(screen.queryByText('+3')).not.toBeInTheDocument();
+ });
+
+ it('should render all the available resources in row autofit/custom mode', () => {
+ const record = getBaseRecord();
+ renderSummary(record, {
+ density: DataGridDensity.COMPACT,
+ rowHeight: ROWS_HEIGHT_OPTIONS.auto,
+ });
+ expect(
+ screen.queryByTestId(`dataTableCellActionsPopover_${constants.SERVICE_NAME_FIELD}`)
+ ).toBeInTheDocument();
+ expect(
+ screen.queryByTestId(`dataTableCellActionsPopover_${constants.CONTAINER_NAME_FIELD}`)
+ ).toBeInTheDocument();
+ expect(
+ screen.queryByTestId(`dataTableCellActionsPopover_${constants.HOST_NAME_FIELD}`)
+ ).toBeInTheDocument();
+ expect(
+ screen.queryByTestId(
+ `dataTableCellActionsPopover_${constants.ORCHESTRATOR_NAMESPACE_FIELD}`
+ )
+ ).toBeInTheDocument();
+ expect(
+ screen.queryByTestId(`dataTableCellActionsPopover_${constants.CLOUD_INSTANCE_ID_FIELD}`)
+ ).toBeInTheDocument();
+ expect(screen.queryByText('+2')).not.toBeInTheDocument();
+ });
+
+ it('should display a popover with details and actions upon a badge click', () => {
+ const record = getBaseRecord();
+ renderSummary(record);
+ // Open badge popover
+ screen.getByTestId(`dataTableCellActionsPopover_${constants.SERVICE_NAME_FIELD}`).click();
+
+ expect(screen.getByTestId('dataTableCellActionPopoverTitle')).toHaveTextContent(
+ 'service.name synth-service-2'
+ );
+ expect(
+ screen.getByTestId(`dataTableCellAction_addToFilterAction_${constants.SERVICE_NAME_FIELD}`)
+ ).toBeInTheDocument();
+ expect(
+ screen.getByTestId(
+ `dataTableCellAction_removeFromFilterAction_${constants.SERVICE_NAME_FIELD}`
+ )
+ ).toBeInTheDocument();
+ expect(
+ screen.getByTestId(
+ `dataTableCellAction_copyToClipboardAction_${constants.SERVICE_NAME_FIELD}`
+ )
+ ).toBeInTheDocument();
+ });
+ });
+
+ describe('when rendering the main content', () => {
+ it('should display the message field as first choice', () => {
+ const record = getBaseRecord();
+ renderSummary(record);
+ expect(screen.queryByTestId('discoverDataTableMessageValue')).toHaveTextContent(
+ record.flattened.message as string
+ );
+ });
+
+ it(`should fallback to ${constants.ERROR_MESSAGE_FIELD} and ${constants.EVENT_ORIGINAL_FIELD} fields if message does not exist`, () => {
+ const recordWithoutMessage = getBaseRecord({ message: undefined });
+ renderSummary(recordWithoutMessage);
+ expect(screen.queryByTestId('discoverDataTableMessageValue')).toHaveTextContent(
+ recordWithoutMessage.flattened[constants.EVENT_ORIGINAL_FIELD] as string
+ );
+ });
+ });
+});
diff --git a/src/plugins/discover/public/components/data_types/logs/summary_column/summary_column.tsx b/src/plugins/discover/public/components/data_types/logs/summary_column/summary_column.tsx
new file mode 100644
index 0000000000000..ac7e20b944a4a
--- /dev/null
+++ b/src/plugins/discover/public/components/data_types/logs/summary_column/summary_column.tsx
@@ -0,0 +1,169 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the "Elastic License
+ * 2.0", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
+ * License v3.0 only", or the "Server Side Public License, v 1".
+ */
+
+import {
+ ROWS_HEIGHT_OPTIONS,
+ type DataGridCellValueElementProps,
+ DataGridDensity,
+} from '@kbn/unified-data-table';
+import React from 'react';
+import { EuiButtonIcon, EuiCodeBlock, EuiFlexGroup, EuiText, EuiTitle } from '@elastic/eui';
+import {
+ ShouldShowFieldInTableHandler,
+ getLogDocumentOverview,
+ getMessageFieldWithFallbacks,
+} from '@kbn/discover-utils';
+import { JsonCodeEditor } from '@kbn/unified-doc-viewer-plugin/public';
+import { DocViewFilterFn } from '@kbn/unified-doc-viewer/types';
+import { Resource } from './resource';
+import { Content } from './content';
+import {
+ closeCellActionPopoverText,
+ contentLabel,
+ jsonLabel,
+ resourceLabel,
+} from '../translations';
+import { createResourceFields, formatJsonDocumentForContent } from './utils';
+
+export interface SummaryColumnFactoryDeps {
+ density: DataGridDensity | undefined;
+ rowHeight: number | undefined;
+ shouldShowFieldHandler: ShouldShowFieldInTableHandler;
+ onFilter?: DocViewFilterFn;
+}
+
+export type SummaryColumnProps = DataGridCellValueElementProps;
+
+const SummaryColumn = (props: SummaryColumnProps & SummaryColumnFactoryDeps) => {
+ const { isDetails } = props;
+
+ if (isDetails) {
+ return ;
+ }
+
+ return ;
+};
+
+// eslint-disable-next-line import/no-default-export
+export default SummaryColumn;
+
+const SummaryCell = ({
+ density: maybeNullishDensity,
+ rowHeight: maybeNullishRowHeight,
+ ...props
+}: SummaryColumnProps & SummaryColumnFactoryDeps) => {
+ const { onFilter, row } = props;
+
+ const density = maybeNullishDensity ?? DataGridDensity.COMPACT;
+ const isCompressed = density === DataGridDensity.COMPACT;
+
+ const rowHeight = maybeNullishRowHeight ?? ROWS_HEIGHT_OPTIONS.single;
+ const isSingleLine = rowHeight === ROWS_HEIGHT_OPTIONS.single || rowHeight === 1;
+
+ const resourceFields = createResourceFields(row);
+ const shouldRenderResource = resourceFields.length > 0;
+
+ return isSingleLine ? (
+
+ {shouldRenderResource && (
+
+ )}
+
+
+ ) : (
+ <>
+ {shouldRenderResource && (
+
+ )}
+
+ >
+ );
+};
+
+const SummaryCellPopover = (props: SummaryColumnProps & SummaryColumnFactoryDeps) => {
+ const { row, dataView, fieldFormats, onFilter, closePopover } = props;
+
+ const resourceFields = createResourceFields(row);
+ const shouldRenderResource = resourceFields.length > 0;
+
+ const documentOverview = getLogDocumentOverview(row, { dataView, fieldFormats });
+ const { field, value } = getMessageFieldWithFallbacks(documentOverview);
+ const shouldRenderContent = Boolean(field && value);
+
+ const shouldRenderSource = !shouldRenderContent;
+
+ return (
+
+
+ {shouldRenderResource && (
+
+
+ {resourceLabel}
+
+
+
+ )}
+
+
+ {contentLabel}
+
+ {shouldRenderContent && (
+
+
+ {field}
+
+
+ {value}
+
+
+ )}
+ {shouldRenderSource && (
+
+
+ {jsonLabel}
+
+
+
+ )}
+
+
+ );
+};
+
+const singleLineResourceCss = {
+ flexGrow: 0,
+ lineHeight: 'normal',
+ marginTop: -1,
+};
+
+const multiLineResourceCss = { display: 'inline-flex' };
diff --git a/src/plugins/discover/public/components/data_types/logs/summary_column/utils.tsx b/src/plugins/discover/public/components/data_types/logs/summary_column/utils.tsx
new file mode 100644
index 0000000000000..470ec8a0f86fa
--- /dev/null
+++ b/src/plugins/discover/public/components/data_types/logs/summary_column/utils.tsx
@@ -0,0 +1,126 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the "Elastic License
+ * 2.0", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
+ * License v3.0 only", or the "Server Side Public License, v 1".
+ */
+
+import { getFieldValue, LogDocument, ResourceFields } from '@kbn/discover-utils/src';
+import { DataTableRecord } from '@kbn/discover-utils';
+import { dynamic } from '@kbn/shared-ux-utility';
+import React from 'react';
+import { css } from '@emotion/react';
+import { AgentName } from '@kbn/elastic-agent-utils';
+import { euiThemeVars } from '@kbn/ui-theme';
+import { getAvailableResourceFields } from '../../../../utils/get_available_resource_fields';
+import * as constants from '../../../../../common/data_types/logs/constants';
+import { ServiceNameBadgeWithActions } from '../service_name_badge_with_actions';
+import { FieldBadgeWithActions, FieldBadgeWithActionsProps } from '../cell_actions_popover';
+
+/**
+ * getUnformattedResourceFields definitions
+ */
+export const getUnformattedResourceFields = (doc: LogDocument): ResourceFields => {
+ const serviceName = getFieldValue(doc, constants.SERVICE_NAME_FIELD);
+ const hostName = getFieldValue(doc, constants.HOST_NAME_FIELD);
+ const agentName = getFieldValue(doc, constants.AGENT_NAME_FIELD);
+ const orchestratorClusterName = getFieldValue(doc, constants.ORCHESTRATOR_CLUSTER_NAME_FIELD);
+ const orchestratorResourceId = getFieldValue(doc, constants.ORCHESTRATOR_RESOURCE_ID_FIELD);
+ const orchestratorNamespace = getFieldValue(doc, constants.ORCHESTRATOR_NAMESPACE_FIELD);
+ const containerName = getFieldValue(doc, constants.CONTAINER_NAME_FIELD);
+ const containerId = getFieldValue(doc, constants.CONTAINER_ID_FIELD);
+ const cloudInstanceId = getFieldValue(doc, constants.CLOUD_INSTANCE_ID_FIELD);
+
+ return {
+ [constants.SERVICE_NAME_FIELD]: serviceName,
+ [constants.HOST_NAME_FIELD]: hostName,
+ [constants.AGENT_NAME_FIELD]: agentName,
+ [constants.ORCHESTRATOR_CLUSTER_NAME_FIELD]: orchestratorClusterName,
+ [constants.ORCHESTRATOR_RESOURCE_ID_FIELD]: orchestratorResourceId,
+ [constants.ORCHESTRATOR_NAMESPACE_FIELD]: orchestratorNamespace,
+ [constants.CONTAINER_NAME_FIELD]: containerName,
+ [constants.CONTAINER_ID_FIELD]: containerId,
+ [constants.CLOUD_INSTANCE_ID_FIELD]: cloudInstanceId,
+ };
+};
+
+/**
+ * createResourceFields definitions
+ */
+const AgentIcon = dynamic(() => import('@kbn/custom-icons/src/components/agent_icon'));
+
+const resourceCustomComponentsMap: Partial<
+ Record>
+> = {
+ [constants.SERVICE_NAME_FIELD]: ServiceNameBadgeWithActions,
+};
+
+export interface ResourceFieldDescriptor {
+ ResourceBadge: React.ComponentType;
+ Icon?: () => JSX.Element;
+ name: keyof ResourceFields;
+ value: string;
+}
+
+export const createResourceFields = (row: DataTableRecord): ResourceFieldDescriptor[] => {
+ const resourceDoc = getUnformattedResourceFields(row as LogDocument);
+
+ const availableResourceFields = getAvailableResourceFields(resourceDoc);
+
+ const resourceFields = availableResourceFields.map((name) => ({
+ name,
+ value: resourceDoc[name] as string,
+ ResourceBadge: resourceCustomComponentsMap[name] ?? FieldBadgeWithActions,
+ ...(name === constants.SERVICE_NAME_FIELD && {
+ Icon: () => (
+
+ ),
+ }),
+ }));
+
+ return resourceFields;
+};
+
+/**
+ * formatJsonDocumentForContent definitions
+ */
+export const formatJsonDocumentForContent = (row: DataTableRecord) => {
+ const flattenedResult: DataTableRecord['flattened'] = {};
+ const rawFieldResult: DataTableRecord['raw']['fields'] = {};
+ const { raw, flattened } = row;
+ const { fields } = raw;
+
+ // We need 2 loops here for flattened and raw.fields. Flattened contains all fields,
+ // whereas raw.fields only contains certain fields excluding _ignored
+ for (const fieldName in flattened) {
+ if (isFieldAllowed(fieldName) && flattened[fieldName]) {
+ flattenedResult[fieldName] = flattened[fieldName];
+ }
+ }
+
+ for (const fieldName in fields) {
+ if (isFieldAllowed(fieldName) && fields[fieldName]) {
+ rawFieldResult[fieldName] = fields[fieldName];
+ }
+ }
+
+ return {
+ ...row,
+ flattened: flattenedResult,
+ raw: {
+ ...raw,
+ fields: rawFieldResult,
+ },
+ };
+};
+
+const isFieldAllowed = (field: string) =>
+ !constants.FILTER_OUT_FIELDS_PREFIXES_FOR_CONTENT.some((prefix) => field.startsWith(prefix));
diff --git a/src/plugins/discover/public/components/data_types/logs/translations.tsx b/src/plugins/discover/public/components/data_types/logs/translations.tsx
index a09675c66bcd7..bbc39022bd503 100644
--- a/src/plugins/discover/public/components/data_types/logs/translations.tsx
+++ b/src/plugins/discover/public/components/data_types/logs/translations.tsx
@@ -16,6 +16,10 @@ export const flyoutContentLabel = i18n.translate('discover.logs.flyoutDetail.lab
defaultMessage: 'Content breakdown',
});
+export const jsonLabel = i18n.translate('discover.logs.dataTable.header.popover.json', {
+ defaultMessage: 'JSON',
+});
+
export const contentLabel = i18n.translate('discover.logs.dataTable.header.popover.content', {
defaultMessage: 'Content',
});
diff --git a/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/cell_renderer.tsx b/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/cell_renderer.tsx
deleted file mode 100644
index 87d07d073dde3..0000000000000
--- a/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/cell_renderer.tsx
+++ /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", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
- * License v3.0 only", or the "Server Side Public License, v 1".
- */
-
-import React from 'react';
-import type { DataGridCellValueElementProps } from '@kbn/unified-data-table';
-import { DataPublicPluginStart } from '@kbn/data-plugin/public';
-import { VirtualColumnServiceProvider } from '../../../../application/main/hooks/grid_customisations/use_virtual_column_services';
-import { CONTENT_FIELD, RESOURCE_FIELD } from '../../../../../common/data_types/logs/constants';
-import { Content } from './content';
-import { Resource } from './resource';
-
-export const renderCell =
- (type: string, { data }: { data: DataPublicPluginStart }) =>
- (props: DataGridCellValueElementProps) => {
- const { dataView } = props;
- const virtualColumnServices = {
- data,
- dataView,
- };
-
- let renderedCell = null;
-
- switch (type) {
- case CONTENT_FIELD:
- renderedCell = ;
- break;
- case RESOURCE_FIELD:
- renderedCell = ;
- break;
- default:
- break;
- }
-
- return (
-
- {renderedCell}
-
- );
- };
diff --git a/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/column.tsx b/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/column.tsx
deleted file mode 100644
index 61b77df7e0be1..0000000000000
--- a/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/column.tsx
+++ /dev/null
@@ -1,32 +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", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
- * License v3.0 only", or the "Server Side Public License, v 1".
- */
-
-import React from 'react';
-import { CustomGridColumnProps } from '@kbn/unified-data-table';
-import { CONTENT_FIELD, RESOURCE_FIELD } from '../../../../../common/data_types/logs/constants';
-import { ContentColumnTooltip } from './column_tooltips/content_column_tooltip';
-import { ResourceColumnTooltip } from './column_tooltips/resource_column_tooltip';
-
-export const renderColumn =
- (field: string) =>
- ({ column, headerRowHeight }: CustomGridColumnProps) => {
- switch (field) {
- case CONTENT_FIELD:
- column.display = ;
- break;
- case RESOURCE_FIELD:
- column.display = (
-
- );
- break;
- default:
- break;
- }
- return column;
- };
diff --git a/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/column_tooltips/content_column_tooltip.tsx b/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/column_tooltips/content_column_tooltip.tsx
deleted file mode 100644
index db2cbd8ed6fc4..0000000000000
--- a/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/column_tooltips/content_column_tooltip.tsx
+++ /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", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
- * License v3.0 only", or the "Server Side Public License, v 1".
- */
-
-import { EuiText, useEuiTheme } from '@elastic/eui';
-import React from 'react';
-import { CustomGridColumnProps } from '@kbn/unified-data-table';
-import { css } from '@emotion/react';
-import {
- contentHeaderTooltipParagraph1,
- contentHeaderTooltipParagraph2,
- contentLabel,
-} from '../../../../data_types/logs/translations';
-import * as constants from '../../../../../../common/data_types/logs/constants';
-import { TooltipButton } from './tooltip_button';
-import { FieldWithToken } from './field_with_token';
-
-export const ContentColumnTooltip = ({ column, headerRowHeight }: CustomGridColumnProps) => {
- const { euiTheme } = useEuiTheme();
- const spacingCSS = css`
- margin-bottom: ${euiTheme.size.s};
- `;
-
- return (
-
-
-
-
{contentHeaderTooltipParagraph1}
-
-
-
{contentHeaderTooltipParagraph2}
-
-
-
-
-
- );
-};
diff --git a/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/column_tooltips/field_with_token.tsx b/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/column_tooltips/field_with_token.tsx
deleted file mode 100644
index db334734670e6..0000000000000
--- a/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/column_tooltips/field_with_token.tsx
+++ /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", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
- * License v3.0 only", or the "Server Side Public License, v 1".
- */
-
-import { EuiFlexGroup, EuiFlexItem, EuiText, EuiToken } from '@elastic/eui';
-import React from 'react';
-import { css } from '@emotion/react';
-import { euiThemeVars } from '@kbn/ui-theme';
-
-const spacingXsCss = css`
- margin-bottom: ${euiThemeVars.euiSizeXS};
-`;
-
-export const FieldWithToken = ({
- field,
- iconType = 'tokenKeyword',
-}: {
- field: string;
- iconType?: string;
-}) => {
- return (
-
-
-
-
-
-
-
- {field}
-
-
-
-
- );
-};
diff --git a/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/column_tooltips/hover_popover.tsx b/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/column_tooltips/hover_popover.tsx
deleted file mode 100644
index aab0e704dfc41..0000000000000
--- a/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/column_tooltips/hover_popover.tsx
+++ /dev/null
@@ -1,60 +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", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
- * License v3.0 only", or the "Server Side Public License, v 1".
- */
-
-import React, { useEffect, useRef, useState } from 'react';
-import { EuiPopover, EuiPopoverTitle } from '@elastic/eui';
-
-export const HoverPopover = ({
- children,
- button,
- title,
-}: {
- children: React.ReactChild;
- button: React.ReactElement;
- title: string;
-}) => {
- const [isPopoverOpen, setIsPopoverOpen] = useState(false);
- const leaveTimer = useRef(null);
-
- const clearTimer = () => {
- if (leaveTimer.current) {
- clearTimeout(leaveTimer.current);
- }
- };
-
- const onMouseEnter = () => {
- clearTimer();
- setIsPopoverOpen(true);
- };
-
- const onMouseLeave = () => {
- leaveTimer.current = setTimeout(() => setIsPopoverOpen(false), 100);
- };
-
- useEffect(() => {
- return () => {
- clearTimer();
- };
- }, []);
-
- return (
-
-
- {title}
- {children}
-
-
- );
-};
diff --git a/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/column_tooltips/resource_column_tooltip.tsx b/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/column_tooltips/resource_column_tooltip.tsx
deleted file mode 100644
index bbe5992724e52..0000000000000
--- a/src/plugins/discover/public/components/discover_grid/virtual_columns/logs/column_tooltips/resource_column_tooltip.tsx
+++ /dev/null
@@ -1,50 +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", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
- * License v3.0 only", or the "Server Side Public License, v 1".
- */
-
-import React from 'react';
-import { css } from '@emotion/react';
-import { EuiText } from '@elastic/eui';
-import type { CustomGridColumnProps } from '@kbn/unified-data-table';
-import { euiThemeVars } from '@kbn/ui-theme';
-import {
- resourceHeaderTooltipParagraph,
- resourceLabel,
-} from '../../../../data_types/logs/translations';
-import * as constants from '../../../../../../common/data_types/logs/constants';
-import { TooltipButton } from './tooltip_button';
-import { FieldWithToken } from './field_with_token';
-
-const spacingCSS = css`
- margin-bottom: ${euiThemeVars.euiSizeS};
-`;
-
-export const ResourceColumnTooltip = ({ column, headerRowHeight }: CustomGridColumnProps) => {
- return (
-
-
,
+ 'security'
+> & {
+ security?: RouteSecurityGetter | RouteSecurity;
+};
diff --git a/packages/core/http/core-http-router-server-internal/src/router.test.ts b/packages/core/http/core-http-router-server-internal/src/router.test.ts
index 18589d5d39d52..65f5b41f91fba 100644
--- a/packages/core/http/core-http-router-server-internal/src/router.test.ts
+++ b/packages/core/http/core-http-router-server-internal/src/router.test.ts
@@ -232,6 +232,47 @@ describe('Router', () => {
);
});
+ it('throws if enabled security config is not valid', () => {
+ const router = new Router('', logger, enhanceWithContext, routerOptions);
+ expect(() =>
+ router.get(
+ {
+ path: '/',
+ validate: false,
+ security: {
+ authz: {
+ requiredPrivileges: [],
+ },
+ },
+ },
+ (context, req, res) => res.ok({})
+ )
+ ).toThrowErrorMatchingInlineSnapshot(
+ `"[authz.requiredPrivileges]: array size is [0], but cannot be smaller than [1]"`
+ );
+ });
+
+ it('throws if disabled security config does not provide opt-out reason', () => {
+ const router = new Router('', logger, enhanceWithContext, routerOptions);
+ expect(() =>
+ router.get(
+ {
+ path: '/',
+ validate: false,
+ security: {
+ // @ts-expect-error
+ authz: {
+ enabled: false,
+ },
+ },
+ },
+ (context, req, res) => res.ok({})
+ )
+ ).toThrowErrorMatchingInlineSnapshot(
+ `"[authz.reason]: expected value of type [string] but got [undefined]"`
+ );
+ });
+
it('should default `output: "stream" and parse: false` when no body validation is required but not a GET', () => {
const router = new Router('', logger, enhanceWithContext, routerOptions);
router.post({ path: '/', validate: {} }, (context, req, res) => res.ok({}));
diff --git a/packages/core/http/core-http-router-server-internal/src/router.ts b/packages/core/http/core-http-router-server-internal/src/router.ts
index a6f2ccc35f56b..ddfa8980cb8f2 100644
--- a/packages/core/http/core-http-router-server-internal/src/router.ts
+++ b/packages/core/http/core-http-router-server-internal/src/router.ts
@@ -26,9 +26,12 @@ import type {
RequestHandler,
VersionedRouter,
RouteRegistrar,
+ RouteSecurity,
} from '@kbn/core-http-server';
import { isZod } from '@kbn/zod';
import { validBodyOutput, getRequestValidation } from '@kbn/core-http-server';
+import type { RouteSecurityGetter } from '@kbn/core-http-server';
+import type { DeepPartial } from '@kbn/utility-types';
import { RouteValidator } from './validator';
import { CoreVersionedRouter } from './versioned_router';
import { CoreKibanaRequest } from './request';
@@ -38,6 +41,8 @@ import { wrapErrors } from './error_wrapper';
import { Method } from './versioned_router/types';
import { prepareRouteConfigValidation } from './util';
import { stripIllegalHttp2Headers } from './strip_illegal_http2_headers';
+import { validRouteSecurity } from './security_route_config_validator';
+import { InternalRouteConfig } from './route';
export type ContextEnhancer<
P,
@@ -61,7 +66,7 @@ function getRouteFullPath(routerPath: string, routePath: string) {
* undefined.
*/
function routeSchemasFromRouteConfig
(
- route: RouteConfig
,
+ route: InternalRouteConfig
,
routeMethod: RouteMethod
) {
// The type doesn't allow `validate` to be undefined, but it can still
@@ -93,7 +98,7 @@ function routeSchemasFromRouteConfig
- {i18n.translate('xpack.apm.customEmtpyState.title', {
- defaultMessage: 'Detect and resolve problems with your application',
- })}
-
-
-
- {i18n.translate('xpack.apm.customEmtpyState.description', {
- defaultMessage:
- 'Start collecting data for your applications and services so you can detect and resolve problems faster.',
- })}
-
-
-
-
-
-
- {i18n.translate('xpack.apm.customEmtpyState.title.reader', {
- defaultMessage: 'Add APM data',
- })}
-
-
- }
- description={i18n.translate('xpack.apm.customEmtpyState.card.description', {
- defaultMessage:
- 'Use APM agents to collect APM data. We make it easy with agents for many popular languages.',
- })}
- footer={
-
-
-
- {noDataConfig?.action.elasticAgent.title}
-
-
-
-
- {i18n.translate('xpack.apm.entityEnablement.content', {
- defaultMessage:
- 'Our new experience combines both APM-instrumented services with services detected from logs in a single service inventory.',
- })}
-
-
-
-
-
-
- {i18n.translate('xpack.apm.entityEnablement.footer', {
- defaultMessage: 'Learn more',
- })}
-
-
-
-
-
- )}
- {isEntityCentricExperienceViewEnabled && (
-
-
- {i18n.translate('xpack.apm.eemEnablement.restoreClassicView.', {
- defaultMessage: 'Restore classic view',
- })}
-
-
- )}
-
- setsIsUnauthorizedModalVisible(false)}
- label={label}
- />
-
- );
-}
diff --git a/x-pack/plugins/observability_solution/apm/public/context/entity_manager_context/entity_manager_context.tsx b/x-pack/plugins/observability_solution/apm/public/context/entity_manager_context/entity_manager_context.tsx
index 93205c907caa0..95a246ddce566 100644
--- a/x-pack/plugins/observability_solution/apm/public/context/entity_manager_context/entity_manager_context.tsx
+++ b/x-pack/plugins/observability_solution/apm/public/context/entity_manager_context/entity_manager_context.tsx
@@ -62,11 +62,6 @@ export function EntityManagerEnablementContextProvider({
true
);
- const isEntityCentricExperienceViewEnabled =
- isEntityManagerEnabled &&
- serviceInventoryViewLocalStorageSetting === ServiceInventoryView.entity &&
- isEntityCentricExperienceSettingEnabled;
-
function handleServiceInventoryViewChange(nextView: ServiceInventoryView) {
setServiceInventoryViewLocalStorageSetting(nextView);
// Updates the telemetry context variable every time the user switches views
@@ -88,7 +83,7 @@ export function EntityManagerEnablementContextProvider({
refetch,
serviceInventoryViewLocalStorageSetting,
setServiceInventoryViewLocalStorageSetting: handleServiceInventoryViewChange,
- isEntityCentricExperienceViewEnabled,
+ isEntityCentricExperienceViewEnabled: isEntityCentricExperienceSettingEnabled,
tourState,
updateTourState: handleTourStateUpdate,
}}
diff --git a/x-pack/plugins/observability_solution/apm/tsconfig.json b/x-pack/plugins/observability_solution/apm/tsconfig.json
index 9195c2547a71a..6f3ff13a2af3e 100644
--- a/x-pack/plugins/observability_solution/apm/tsconfig.json
+++ b/x-pack/plugins/observability_solution/apm/tsconfig.json
@@ -120,10 +120,6 @@
"@kbn/test-jest-helpers",
"@kbn/security-plugin-types-common",
"@kbn/entityManager-plugin",
- "@kbn/react-hooks",
- "@kbn/shared-ux-avatar-solution",
- "@kbn/shared-ux-page-no-data-config-types",
- "@kbn/react-hooks",
"@kbn/server-route-repository-utils",
"@kbn/core-analytics-browser",
"@kbn/apm-types",
@@ -131,6 +127,7 @@
"@kbn/serverless",
"@kbn/aiops-log-rate-analysis",
"@kbn/router-utils",
+ "@kbn/react-hooks",
],
"exclude": ["target/**/*"]
}
diff --git a/x-pack/plugins/observability_solution/inventory/public/types.ts b/x-pack/plugins/observability_solution/inventory/public/types.ts
index ed4a500edca68..2393b1b55e2b6 100644
--- a/x-pack/plugins/observability_solution/inventory/public/types.ts
+++ b/x-pack/plugins/observability_solution/inventory/public/types.ts
@@ -13,10 +13,10 @@ import {
EntityManagerPublicPluginStart,
} from '@kbn/entityManager-plugin/public';
import type { InferencePublicStart, InferencePublicSetup } from '@kbn/inference-plugin/public';
+import type { SharePluginSetup, SharePluginStart } from '@kbn/share-plugin/public';
import type { UnifiedSearchPublicPluginStart } from '@kbn/unified-search-plugin/public';
import type { DataViewsPublicPluginStart } from '@kbn/data-views-plugin/public';
import type { DataPublicPluginSetup, DataPublicPluginStart } from '@kbn/data-plugin/public';
-import type { SharePluginStart } from '@kbn/share-plugin/public';
/* eslint-disable @typescript-eslint/no-empty-interface*/
@@ -25,6 +25,7 @@ export interface ConfigSchema {}
export interface InventorySetupDependencies {
observabilityShared: ObservabilitySharedPluginSetup;
inference: InferencePublicSetup;
+ share: SharePluginSetup;
data: DataPublicPluginSetup;
entityManager: EntityManagerPublicPluginSetup;
}
diff --git a/x-pack/plugins/observability_solution/observability_shared/common/index.ts b/x-pack/plugins/observability_solution/observability_shared/common/index.ts
index d845ea1d398fd..d13e2b32839d6 100644
--- a/x-pack/plugins/observability_solution/observability_shared/common/index.ts
+++ b/x-pack/plugins/observability_solution/observability_shared/common/index.ts
@@ -178,6 +178,7 @@ export type {
ServiceEntityLocatorParams,
TransactionDetailsByTraceIdLocator,
TransactionDetailsByTraceIdLocatorParams,
+ EntitiesInventoryLocator,
} from './locators';
export {
@@ -201,6 +202,8 @@ export {
SERVICE_ENTITY_LOCATOR,
TransactionDetailsByTraceIdLocatorDefinition,
TRANSACTION_DETAILS_BY_TRACE_ID_LOCATOR,
+ EntitiesInventoryLocatorDefinition,
+ ENTITIES_INVENTORY_LOCATOR_ID,
} from './locators';
export { COMMON_OBSERVABILITY_GROUPING } from './embeddable_grouping';
diff --git a/x-pack/plugins/observability_solution/observability_shared/common/locators/entity_inventory/entity_inventory_locator.ts b/x-pack/plugins/observability_solution/observability_shared/common/locators/entity_inventory/entity_inventory_locator.ts
new file mode 100644
index 0000000000000..deb820b0d5e0a
--- /dev/null
+++ b/x-pack/plugins/observability_solution/observability_shared/common/locators/entity_inventory/entity_inventory_locator.ts
@@ -0,0 +1,24 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+import type { SerializableRecord } from '@kbn/utility-types';
+import { LocatorDefinition, LocatorPublic } from '@kbn/share-plugin/common';
+
+export type EntitiesInventoryLocator = LocatorPublic;
+
+export const ENTITIES_INVENTORY_LOCATOR_ID = 'ENTITY_INVENTORY_LOCATOR';
+
+export class EntitiesInventoryLocatorDefinition implements LocatorDefinition {
+ public readonly id = ENTITIES_INVENTORY_LOCATOR_ID;
+
+ public readonly getLocation = async () => {
+ return {
+ app: 'observability',
+ path: `/inventory`,
+ state: {},
+ };
+ };
+}
diff --git a/x-pack/plugins/observability_solution/observability_shared/common/locators/index.ts b/x-pack/plugins/observability_solution/observability_shared/common/locators/index.ts
index 9c5ded4940d5a..34a6ff391d672 100644
--- a/x-pack/plugins/observability_solution/observability_shared/common/locators/index.ts
+++ b/x-pack/plugins/observability_solution/observability_shared/common/locators/index.ts
@@ -17,3 +17,4 @@ export * from './infra/metrics_explorer_locator';
export * from './profiling/flamegraph_locator';
export * from './profiling/stacktraces_locator';
export * from './profiling/topn_functions_locator';
+export * from './entity_inventory/entity_inventory_locator';
diff --git a/x-pack/plugins/observability_solution/observability_shared/public/plugin.ts b/x-pack/plugins/observability_solution/observability_shared/public/plugin.ts
index 7cd63d7be7602..7a131a2686ad0 100644
--- a/x-pack/plugins/observability_solution/observability_shared/public/plugin.ts
+++ b/x-pack/plugins/observability_solution/observability_shared/public/plugin.ts
@@ -45,6 +45,8 @@ import {
type MetricsExplorerLocator,
type ServiceEntityLocator,
type TransactionDetailsByTraceIdLocator,
+ type EntitiesInventoryLocator,
+ EntitiesInventoryLocatorDefinition,
} from '../common';
import { updateGlobalNavigation } from './services/update_global_navigation';
export interface ObservabilitySharedSetup {
@@ -82,6 +84,7 @@ interface ObservabilitySharedLocators {
transactionDetailsByTraceId: TransactionDetailsByTraceIdLocator;
serviceEntity: ServiceEntityLocator;
};
+ entitiesInventory: EntitiesInventoryLocator;
}
export class ObservabilitySharedPlugin implements Plugin {
@@ -159,6 +162,7 @@ export class ObservabilitySharedPlugin implements Plugin {
),
serviceEntity: urlService.locators.create(new ServiceEntityLocatorDefinition()),
},
+ entitiesInventory: urlService.locators.create(new EntitiesInventoryLocatorDefinition()),
};
}
}
From 05926c20c57b7abc69c6c068d5733f29306f73ba Mon Sep 17 00:00:00 2001
From: Ying Mao
Date: Mon, 30 Sep 2024 10:40:02 -0400
Subject: [PATCH 28/60] [Response Ops][Alerting] Use ES client to update rule
SO at end of rule run instead of SO client. (#193341)
Resolves https://github.com/elastic/kibana/issues/192397
## Summary
Updates alerting task runner end of run updates to use the ES client
update function for a true partial update instead of the saved objects
client update function that performs a GET then an update.
## To verify
Create a rule in multiple spaces and ensure they run correctly and their
execution status and monitoring history are updated at the end of each
run. Because we're performing a partial update on attributes that are
not in the AAD, the rule should continue running without any encryption
errors.
## Risk Matrix
| Risk | Probability | Severity | Mitigation/Notes |
|---------------------------|-------------|----------|-------------------------|
| Updating saved object directly using ES client will break BWC | Medium
| High | Response Ops follows an intermediate release strategy for any
changes to the rule saved object where schema changes are introduced in
an intermediate release before any changes to the saved object are
actually made in a followup release. This ensures that any rollbacks
that may be required in a release will roll back to a version that is
already aware of the new schema. The team is socialized to this strategy
as we are requiring users of the alerting framework to also follow this
strategy. This should address any backward compatibility issues that
might arise by circumventing the saved objects client update function. |
| Updating saved object directly using ES client will break AAD | Medium
| High | An explicit allowlist of non-AAD fields that are allowed to be
partially updated has been introduced and any fields not in this
allowlist will not be included in the partial update. Any updates to the
rule saved object that might break AAD would show up with > 1 execution
of a rule and we have a plethora of functional tests that rely on
multiple executions of a rule that would flag if there were issues
running due to AAD issues. |
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine
---
.../alerting/server/saved_objects/index.ts | 2 +-
.../partially_update_rule.test.ts | 164 +++++++++++++++++-
.../saved_objects/partially_update_rule.ts | 50 ++++++
.../alerting/server/task_runner/fixtures.ts | 89 +++++-----
.../server/task_runner/task_runner.test.ts | 51 ++----
.../server/task_runner/task_runner.ts | 19 +-
.../task_runner_alerts_client.test.ts | 18 +-
.../task_runner/task_runner_cancel.test.ts | 85 ++++-----
x-pack/plugins/alerting/tsconfig.json | 3 +-
9 files changed, 340 insertions(+), 141 deletions(-)
diff --git a/x-pack/plugins/alerting/server/saved_objects/index.ts b/x-pack/plugins/alerting/server/saved_objects/index.ts
index eb07a84950d14..a3bb0b4f0afe8 100644
--- a/x-pack/plugins/alerting/server/saved_objects/index.ts
+++ b/x-pack/plugins/alerting/server/saved_objects/index.ts
@@ -23,7 +23,7 @@ import { RawRule } from '../types';
import { getImportWarnings } from './get_import_warnings';
import { isRuleExportable } from './is_rule_exportable';
import { RuleTypeRegistry } from '../rule_type_registry';
-export { partiallyUpdateRule } from './partially_update_rule';
+export { partiallyUpdateRule, partiallyUpdateRuleWithEs } from './partially_update_rule';
import {
RULES_SETTINGS_SAVED_OBJECT_TYPE,
MAINTENANCE_WINDOW_SAVED_OBJECT_TYPE,
diff --git a/x-pack/plugins/alerting/server/saved_objects/partially_update_rule.test.ts b/x-pack/plugins/alerting/server/saved_objects/partially_update_rule.test.ts
index 5fcf23cbae6fb..294bc81481540 100644
--- a/x-pack/plugins/alerting/server/saved_objects/partially_update_rule.test.ts
+++ b/x-pack/plugins/alerting/server/saved_objects/partially_update_rule.test.ts
@@ -10,16 +10,23 @@ import {
ISavedObjectsRepository,
SavedObjectsErrorHelpers,
} from '@kbn/core/server';
-
-import { PartiallyUpdateableRuleAttributes, partiallyUpdateRule } from './partially_update_rule';
-import { savedObjectsClientMock } from '@kbn/core/server/mocks';
+import {
+ PartiallyUpdateableRuleAttributes,
+ partiallyUpdateRule,
+ partiallyUpdateRuleWithEs,
+} from './partially_update_rule';
+import { elasticsearchServiceMock, savedObjectsClientMock } from '@kbn/core/server/mocks';
import { RULE_SAVED_OBJECT_TYPE } from '.';
+import { ALERTING_CASES_SAVED_OBJECT_INDEX } from '@kbn/core-saved-objects-server';
+import { estypes } from '@elastic/elasticsearch';
+import { RuleExecutionStatuses } from '@kbn/alerting-types';
const MockSavedObjectsClientContract = savedObjectsClientMock.create();
const MockISavedObjectsRepository =
MockSavedObjectsClientContract as unknown as jest.Mocked;
+const esClient = elasticsearchServiceMock.createClusterClient().asInternalUser;
-describe('partially_update_rule', () => {
+describe('partiallyUpdateRule', () => {
beforeEach(() => {
jest.resetAllMocks();
});
@@ -104,6 +111,101 @@ describe('partially_update_rule', () => {
});
});
+describe('partiallyUpdateRuleWithEs', () => {
+ beforeEach(() => {
+ jest.resetAllMocks();
+ jest.clearAllMocks();
+ });
+
+ test('should work with no options', async () => {
+ esClient.update.mockResolvedValueOnce(MockEsUpdateResponse(MockRuleId));
+
+ await partiallyUpdateRuleWithEs(esClient, MockRuleId, DefaultAttributesForEsUpdate);
+ expect(esClient.update).toHaveBeenCalledTimes(1);
+ expect(esClient.update).toHaveBeenCalledWith({
+ id: `alert:${MockRuleId}`,
+ index: ALERTING_CASES_SAVED_OBJECT_INDEX,
+ doc: {
+ alert: DefaultAttributesForEsUpdate,
+ },
+ });
+ });
+
+ test('should strip unallowed attributes ', async () => {
+ const attributes =
+ AttributesForEsUpdateWithUnallowedFields as unknown as PartiallyUpdateableRuleAttributes;
+ esClient.update.mockResolvedValueOnce(MockEsUpdateResponse(MockRuleId));
+
+ await partiallyUpdateRuleWithEs(esClient, MockRuleId, attributes);
+ expect(esClient.update).toHaveBeenCalledWith({
+ id: `alert:${MockRuleId}`,
+ index: ALERTING_CASES_SAVED_OBJECT_INDEX,
+ doc: {
+ alert: DefaultAttributesForEsUpdate,
+ },
+ });
+ });
+
+ test('should handle ES errors', async () => {
+ esClient.update.mockRejectedValueOnce(new Error('wops'));
+
+ await expect(
+ partiallyUpdateRuleWithEs(esClient, MockRuleId, DefaultAttributes)
+ ).rejects.toThrowError('wops');
+ });
+
+ test('should handle the version option', async () => {
+ esClient.update.mockResolvedValueOnce(MockEsUpdateResponse(MockRuleId));
+
+ await partiallyUpdateRuleWithEs(esClient, MockRuleId, DefaultAttributesForEsUpdate, {
+ version: 'WzQsMV0=',
+ });
+ expect(esClient.update).toHaveBeenCalledWith({
+ id: `alert:${MockRuleId}`,
+ index: ALERTING_CASES_SAVED_OBJECT_INDEX,
+ if_primary_term: 1,
+ if_seq_no: 4,
+ doc: {
+ alert: DefaultAttributesForEsUpdate,
+ },
+ });
+ });
+
+ test('should handle the ignore404 option', async () => {
+ esClient.update.mockResolvedValueOnce(MockEsUpdateResponse(MockRuleId));
+
+ await partiallyUpdateRuleWithEs(esClient, MockRuleId, DefaultAttributesForEsUpdate, {
+ ignore404: true,
+ });
+ expect(esClient.update).toHaveBeenCalledWith(
+ {
+ id: `alert:${MockRuleId}`,
+ index: ALERTING_CASES_SAVED_OBJECT_INDEX,
+ doc: {
+ alert: DefaultAttributesForEsUpdate,
+ },
+ },
+ { ignore: [404] }
+ );
+ });
+
+ test('should handle the refresh option', async () => {
+ esClient.update.mockResolvedValueOnce(MockEsUpdateResponse(MockRuleId));
+
+ await partiallyUpdateRuleWithEs(esClient, MockRuleId, DefaultAttributesForEsUpdate, {
+ refresh: 'wait_for',
+ });
+ expect(esClient.update).toHaveBeenCalledWith({
+ id: `alert:${MockRuleId}`,
+ index: ALERTING_CASES_SAVED_OBJECT_INDEX,
+ doc: {
+ alert: DefaultAttributesForEsUpdate,
+ },
+ refresh: 'wait_for',
+ });
+ });
+});
+
function getMockSavedObjectClients(): Record<
string,
jest.Mocked
@@ -126,6 +228,50 @@ const DefaultAttributes = {
const ExtraneousAttributes = { ...DefaultAttributes, foo: 'bar' };
+const DefaultAttributesForEsUpdate = {
+ running: false,
+ executionStatus: {
+ status: 'active' as RuleExecutionStatuses,
+ lastExecutionDate: '2023-01-01T08:44:40.000Z',
+ lastDuration: 12,
+ error: null,
+ warning: null,
+ },
+ monitoring: {
+ run: {
+ calculated_metrics: {
+ success_ratio: 20,
+ },
+ history: [
+ {
+ success: true,
+ timestamp: 1640991880000,
+ duration: 12,
+ outcome: 'success',
+ },
+ ],
+ last_run: {
+ timestamp: '2023-01-01T08:44:40.000Z',
+ metrics: {
+ duration: 12,
+ gap_duration_s: null,
+ total_alerts_created: null,
+ total_alerts_detected: null,
+ total_indexing_duration_ms: null,
+ total_search_duration_ms: null,
+ },
+ },
+ },
+ },
+};
+
+const AttributesForEsUpdateWithUnallowedFields = {
+ ...DefaultAttributesForEsUpdate,
+ alertTypeId: 'foo',
+ consumer: 'consumer',
+ randomField: 'bar',
+};
+
const MockRuleId = 'rule-id';
const MockUpdateValue = {
@@ -137,3 +283,13 @@ const MockUpdateValue = {
},
references: [],
};
+
+const MockEsUpdateResponse = (id: string) => ({
+ _index: '.kibana_alerting_cases_9.0.0_001',
+ _id: `alert:${id}`,
+ _version: 3,
+ result: 'updated' as estypes.Result,
+ _shards: { total: 1, successful: 1, failed: 0 },
+ _seq_no: 5,
+ _primary_term: 1,
+});
diff --git a/x-pack/plugins/alerting/server/saved_objects/partially_update_rule.ts b/x-pack/plugins/alerting/server/saved_objects/partially_update_rule.ts
index 2665845a1110f..f9b4da5ed767b 100644
--- a/x-pack/plugins/alerting/server/saved_objects/partially_update_rule.ts
+++ b/x-pack/plugins/alerting/server/saved_objects/partially_update_rule.ts
@@ -7,10 +7,13 @@
import { omit, pick } from 'lodash';
import {
+ ElasticsearchClient,
SavedObjectsClient,
SavedObjectsErrorHelpers,
SavedObjectsUpdateOptions,
} from '@kbn/core/server';
+import { decodeRequestVersion } from '@kbn/core-saved-objects-base-server-internal';
+import { ALERTING_CASES_SAVED_OBJECT_INDEX } from '@kbn/core-saved-objects-server';
import { RawRule } from '../types';
import {
@@ -67,3 +70,50 @@ export async function partiallyUpdateRule(
throw err;
}
}
+
+// Explicit list of attributes that we allow to be partially updated
+// There should be no overlap between this list and RuleAttributesIncludedInAAD or RuleAttributesToEncrypt
+const RuleAttributesAllowedForPartialUpdate = [
+ 'executionStatus',
+ 'lastRun',
+ 'monitoring',
+ 'nextRun',
+ 'running',
+];
+
+// direct, partial update to a rule saved object via ElasticsearchClient
+
+// we do this direct partial update to avoid the overhead of the SavedObjectsClient for
+// only these allow-listed fields which don't impact encryption. in addition, because these
+// fields are only updated by the system user at the end of a rule run, they should not
+// need to be included in any (user-centric) audit logs.
+export async function partiallyUpdateRuleWithEs(
+ esClient: ElasticsearchClient,
+ id: string,
+ attributes: PartiallyUpdateableRuleAttributes,
+ options: PartiallyUpdateRuleSavedObjectOptions = {}
+): Promise {
+ // ensure we only have the valid attributes that are not encrypted and are excluded from AAD
+ const attributeUpdates = omit(attributes, [
+ ...RuleAttributesToEncrypt,
+ ...RuleAttributesIncludedInAAD,
+ ]);
+ // ensure we only have attributes that we explicitly allow to be updated
+ const attributesAllowedForUpdate = pick(attributeUpdates, RuleAttributesAllowedForPartialUpdate);
+
+ const updateParams = {
+ id: `alert:${id}`,
+ index: ALERTING_CASES_SAVED_OBJECT_INDEX,
+ ...(options.version ? decodeRequestVersion(options.version) : {}),
+ doc: {
+ alert: attributesAllowedForUpdate,
+ },
+ ...(options.refresh ? { refresh: options.refresh } : {}),
+ };
+
+ if (options.ignore404) {
+ await esClient.update(updateParams, { ignore: [404] });
+ } else {
+ await esClient.update(updateParams);
+ }
+}
diff --git a/x-pack/plugins/alerting/server/task_runner/fixtures.ts b/x-pack/plugins/alerting/server/task_runner/fixtures.ts
index ae8eccfcb1f86..5174aa9b965ec 100644
--- a/x-pack/plugins/alerting/server/task_runner/fixtures.ts
+++ b/x-pack/plugins/alerting/server/task_runner/fixtures.ts
@@ -7,6 +7,7 @@
import { TaskStatus } from '@kbn/task-manager-plugin/server';
import { SavedObject } from '@kbn/core/server';
+import { ALERTING_CASES_SAVED_OBJECT_INDEX } from '@kbn/core-saved-objects-server';
import {
Rule,
RuleTypeParams,
@@ -64,7 +65,7 @@ const defaultHistory = [
},
];
-export const generateSavedObjectParams = ({
+export const generateRuleUpdateParams = ({
error = null,
warning = null,
status = 'ok',
@@ -83,53 +84,59 @@ export const generateSavedObjectParams = ({
history?: RuleMonitoring['run']['history'];
alertsCount?: Record;
}) => [
- RULE_SAVED_OBJECT_TYPE,
- '1',
{
- monitoring: {
- run: {
- calculated_metrics: {
- success_ratio: successRatio,
+ id: `alert:1`,
+ index: ALERTING_CASES_SAVED_OBJECT_INDEX,
+ doc: {
+ alert: {
+ monitoring: {
+ run: {
+ calculated_metrics: {
+ success_ratio: successRatio,
+ },
+ history,
+ last_run: {
+ timestamp: '1970-01-01T00:00:00.000Z',
+ metrics: {
+ duration: 0,
+ gap_duration_s: null,
+ total_alerts_created: null,
+ total_alerts_detected: null,
+ total_indexing_duration_ms: null,
+ total_search_duration_ms: null,
+ },
+ },
+ },
},
- history,
- last_run: {
- timestamp: '1970-01-01T00:00:00.000Z',
- metrics: {
- duration: 0,
- gap_duration_s: null,
- total_alerts_created: null,
- total_alerts_detected: null,
- total_indexing_duration_ms: null,
- total_search_duration_ms: null,
+ executionStatus: {
+ error,
+ lastDuration: 0,
+ lastExecutionDate: '1970-01-01T00:00:00.000Z',
+ status,
+ warning,
+ },
+ lastRun: {
+ outcome,
+ outcomeOrder: RuleLastRunOutcomeOrderMap[outcome],
+ outcomeMsg:
+ (error?.message && [error?.message]) ||
+ (warning?.message && [warning?.message]) ||
+ null,
+ warning: error?.reason || warning?.reason || null,
+ alertsCount: {
+ active: 0,
+ ignored: 0,
+ new: 0,
+ recovered: 0,
+ ...(alertsCount || {}),
},
},
+ nextRun,
+ running: false,
},
},
- executionStatus: {
- error,
- lastDuration: 0,
- lastExecutionDate: '1970-01-01T00:00:00.000Z',
- status,
- warning,
- },
- lastRun: {
- outcome,
- outcomeOrder: RuleLastRunOutcomeOrderMap[outcome],
- outcomeMsg:
- (error?.message && [error?.message]) || (warning?.message && [warning?.message]) || null,
- warning: error?.reason || warning?.reason || null,
- alertsCount: {
- active: 0,
- ignored: 0,
- new: 0,
- recovered: 0,
- ...(alertsCount || {}),
- },
- },
- nextRun,
- running: false,
},
- { refresh: false, namespace: undefined },
+ { ignore: [404] },
];
export const GENERIC_ERROR_MESSAGE = 'GENERIC ERROR MESSAGE';
diff --git a/x-pack/plugins/alerting/server/task_runner/task_runner.test.ts b/x-pack/plugins/alerting/server/task_runner/task_runner.test.ts
index 438ffb3685e2a..e06c260109b76 100644
--- a/x-pack/plugins/alerting/server/task_runner/task_runner.test.ts
+++ b/x-pack/plugins/alerting/server/task_runner/task_runner.test.ts
@@ -59,7 +59,7 @@ import {
generateRunnerResult,
RULE_ACTIONS,
generateEnqueueFunctionInput,
- generateSavedObjectParams,
+ generateRuleUpdateParams,
mockTaskInstance,
GENERIC_ERROR_MESSAGE,
generateAlertInstance,
@@ -341,8 +341,8 @@ describe('Task Runner', () => {
testAlertingEventLogCalls({ status: 'ok' });
- expect(internalSavedObjectsRepository.update).toHaveBeenCalledWith(
- ...generateSavedObjectParams({})
+ expect(elasticsearchService.client.asInternalUser.update).toHaveBeenCalledWith(
+ ...generateRuleUpdateParams({})
);
expect(taskRunnerFactoryInitializerParams.executionContext.withContext).toBeCalledTimes(1);
@@ -2676,8 +2676,8 @@ describe('Task Runner', () => {
status: 'ok',
});
- expect(internalSavedObjectsRepository.update).toHaveBeenCalledWith(
- ...generateSavedObjectParams({})
+ expect(elasticsearchService.client.asInternalUser.update).toHaveBeenCalledWith(
+ ...generateRuleUpdateParams({})
);
expect(mockUsageCounter.incrementCounter).not.toHaveBeenCalled();
});
@@ -2789,10 +2789,8 @@ describe('Task Runner', () => {
});
await taskRunner.run();
- expect(internalSavedObjectsRepository.update).toHaveBeenCalledWith(
- ...generateSavedObjectParams({
- nextRun: '1970-01-01T00:00:10.000Z',
- })
+ expect(elasticsearchService.client.asInternalUser.update).toHaveBeenCalledWith(
+ ...generateRuleUpdateParams({ nextRun: '1970-01-01T00:00:10.000Z' })
);
});
@@ -2825,21 +2823,14 @@ describe('Task Runner', () => {
);
await taskRunner.run();
ruleType.executor.mockClear();
- expect(internalSavedObjectsRepository.update).toHaveBeenCalledWith(
- ...generateSavedObjectParams({
- error: {
- message: GENERIC_ERROR_MESSAGE,
- reason: 'execute',
- },
+
+ expect(elasticsearchService.client.asInternalUser.update).toHaveBeenCalledWith(
+ ...generateRuleUpdateParams({
+ error: { message: GENERIC_ERROR_MESSAGE, reason: 'execute' },
outcome: 'failed',
status: 'error',
successRatio: 0,
- history: [
- {
- success: false,
- timestamp: 0,
- },
- ],
+ history: [{ success: false, timestamp: 0 }],
})
);
});
@@ -2947,15 +2938,12 @@ describe('Task Runner', () => {
expect(actionsClient.bulkEnqueueExecution).toHaveBeenCalledTimes(1);
- expect(internalSavedObjectsRepository.update).toHaveBeenCalledWith(
- ...generateSavedObjectParams({
+ expect(elasticsearchService.client.asInternalUser.update).toHaveBeenCalledWith(
+ ...generateRuleUpdateParams({
status: 'warning',
outcome: 'warning',
warning,
- alertsCount: {
- active: 1,
- new: 1,
- },
+ alertsCount: { active: 1, new: 1 },
})
);
@@ -3117,15 +3105,12 @@ describe('Task Runner', () => {
expect(actionsClient.bulkEnqueueExecution).toHaveBeenCalledTimes(1);
- expect(internalSavedObjectsRepository.update).toHaveBeenCalledWith(
- ...generateSavedObjectParams({
+ expect(elasticsearchService.client.asInternalUser.update).toHaveBeenCalledWith(
+ ...generateRuleUpdateParams({
status: 'warning',
outcome: 'warning',
warning,
- alertsCount: {
- active: 2,
- new: 2,
- },
+ alertsCount: { active: 2, new: 2 },
})
);
diff --git a/x-pack/plugins/alerting/server/task_runner/task_runner.ts b/x-pack/plugins/alerting/server/task_runner/task_runner.ts
index e01dd73df7e58..b5a1854581bf3 100644
--- a/x-pack/plugins/alerting/server/task_runner/task_runner.ts
+++ b/x-pack/plugins/alerting/server/task_runner/task_runner.ts
@@ -42,7 +42,7 @@ import {
import { asErr, asOk, isErr, isOk, map, resolveErr, Result } from '../lib/result_type';
import { taskInstanceToAlertTaskInstance } from './alert_task_instance';
import { isAlertSavedObjectNotFoundError, isEsUnavailableError } from '../lib/is_alerting_error';
-import { partiallyUpdateRule, RULE_SAVED_OBJECT_TYPE } from '../saved_objects';
+import { partiallyUpdateRuleWithEs, RULE_SAVED_OBJECT_TYPE } from '../saved_objects';
import {
AlertInstanceContext,
AlertInstanceState,
@@ -204,7 +204,6 @@ export class TaskRunner<
private async updateRuleSavedObjectPostRun(
ruleId: string,
- namespace: string | undefined,
attributes: {
executionStatus?: RawRuleExecutionStatus;
monitoring?: RawRuleMonitoring;
@@ -212,7 +211,7 @@ export class TaskRunner<
lastRun?: RawRuleLastRun | null;
}
) {
- const client = this.internalSavedObjectsRepository;
+ const client = this.context.elasticsearch.client.asInternalUser;
try {
// Future engineer -> Here we are just checking if we need to wait for
// the update of the attribute `running` in the rule's saved object
@@ -223,13 +222,12 @@ export class TaskRunner<
// eslint-disable-next-line no-empty
} catch {}
try {
- await partiallyUpdateRule(
+ await partiallyUpdateRuleWithEs(
client,
ruleId,
{ ...attributes, running: false },
{
ignore404: true,
- namespace,
refresh: false,
}
);
@@ -548,7 +546,7 @@ export class TaskRunner<
const { executionStatus: execStatus, executionMetrics: execMetrics } =
await this.timer.runWithTimer(TaskRunnerTimerSpan.ProcessRuleRun, async () => {
const {
- params: { alertId: ruleId, spaceId },
+ params: { alertId: ruleId },
startedAt,
schedule: taskSchedule,
} = this.taskInstance;
@@ -560,8 +558,6 @@ export class TaskRunner<
nextRun = getNextRun({ startDate: startedAt, interval: taskSchedule.interval });
}
- const namespace = this.context.spaceIdToNamespace(spaceId);
-
const { executionStatus, executionMetrics, lastRun, outcome } = processRunResults({
logger: this.logger,
logPrefix: `${this.ruleType.id}:${ruleId}`,
@@ -602,7 +598,7 @@ export class TaskRunner<
)} - ${JSON.stringify(lastRun)}`
);
}
- await this.updateRuleSavedObjectPostRun(ruleId, namespace, {
+ await this.updateRuleSavedObjectPostRun(ruleId, {
executionStatus: ruleExecutionStatusToRaw(executionStatus),
nextRun,
lastRun: lastRunToRaw(lastRun),
@@ -758,11 +754,10 @@ export class TaskRunner<
// Write event log entry
const {
- params: { alertId: ruleId, spaceId, consumer },
+ params: { alertId: ruleId, consumer },
schedule: taskSchedule,
startedAt,
} = this.taskInstance;
- const namespace = this.context.spaceIdToNamespace(spaceId);
if (consumer && !this.ruleConsumer) {
this.ruleConsumer = consumer;
@@ -803,7 +798,7 @@ export class TaskRunner<
`Updating rule task for ${this.ruleType.id} rule with id ${ruleId} - execution error due to timeout`
);
const outcome = 'failed';
- await this.updateRuleSavedObjectPostRun(ruleId, namespace, {
+ await this.updateRuleSavedObjectPostRun(ruleId, {
executionStatus: ruleExecutionStatusToRaw(executionStatus),
lastRun: {
outcome,
diff --git a/x-pack/plugins/alerting/server/task_runner/task_runner_alerts_client.test.ts b/x-pack/plugins/alerting/server/task_runner/task_runner_alerts_client.test.ts
index c116230016e9b..6c7331de463ea 100644
--- a/x-pack/plugins/alerting/server/task_runner/task_runner_alerts_client.test.ts
+++ b/x-pack/plugins/alerting/server/task_runner/task_runner_alerts_client.test.ts
@@ -46,7 +46,7 @@ import {
RULE_NAME,
generateRunnerResult,
RULE_ACTIONS,
- generateSavedObjectParams,
+ generateRuleUpdateParams,
mockTaskInstance,
DATE_1970,
DATE_1970_5_MIN,
@@ -376,8 +376,8 @@ describe('Task Runner', () => {
{ tags: ['1', 'test'] }
);
- expect(internalSavedObjectsRepository.update).toHaveBeenCalledWith(
- ...generateSavedObjectParams({})
+ expect(elasticsearchService.client.asInternalUser.update).toHaveBeenCalledWith(
+ ...generateRuleUpdateParams({})
);
expect(taskRunnerFactoryInitializerParams.executionContext.withContext).toBeCalledTimes(1);
@@ -510,8 +510,8 @@ describe('Task Runner', () => {
'ruleRunMetrics for test:1: {"numSearches":3,"totalSearchDurationMs":23423,"esSearchDurationMs":33,"numberOfTriggeredActions":0,"numberOfGeneratedActions":0,"numberOfActiveAlerts":0,"numberOfRecoveredAlerts":0,"numberOfNewAlerts":0,"numberOfDelayedAlerts":0,"hasReachedAlertLimit":false,"hasReachedQueuedActionsLimit":false,"triggeredActionsStatus":"complete"}',
{ tags: ['1', 'test'] }
);
- expect(internalSavedObjectsRepository.update).toHaveBeenCalledWith(
- ...generateSavedObjectParams({})
+ expect(elasticsearchService.client.asInternalUser.update).toHaveBeenCalledWith(
+ ...generateRuleUpdateParams({})
);
expect(taskRunnerFactoryInitializerParams.executionContext.withContext).toBeCalledTimes(1);
expect(
@@ -708,8 +708,8 @@ describe('Task Runner', () => {
tags: ['1', 'test'],
});
- expect(internalSavedObjectsRepository.update).toHaveBeenCalledWith(
- ...generateSavedObjectParams({})
+ expect(elasticsearchService.client.asInternalUser.update).toHaveBeenCalledWith(
+ ...generateRuleUpdateParams({})
);
expect(taskRunnerFactoryInitializerParams.executionContext.withContext).toBeCalledTimes(1);
@@ -799,8 +799,8 @@ describe('Task Runner', () => {
tags: ['1', 'test'],
});
- expect(internalSavedObjectsRepository.update).toHaveBeenCalledWith(
- ...generateSavedObjectParams({})
+ expect(elasticsearchService.client.asInternalUser.update).toHaveBeenCalledWith(
+ ...generateRuleUpdateParams({})
);
expect(taskRunnerFactoryInitializerParams.executionContext.withContext).toBeCalledTimes(1);
diff --git a/x-pack/plugins/alerting/server/task_runner/task_runner_cancel.test.ts b/x-pack/plugins/alerting/server/task_runner/task_runner_cancel.test.ts
index 3a6a9547fb902..e5572707ae6fd 100644
--- a/x-pack/plugins/alerting/server/task_runner/task_runner_cancel.test.ts
+++ b/x-pack/plugins/alerting/server/task_runner/task_runner_cancel.test.ts
@@ -63,6 +63,7 @@ import { TaskRunnerContext } from './types';
import { backfillClientMock } from '../backfill_client/backfill_client.mock';
import { UntypedNormalizedRuleType } from '../rule_type_registry';
import { rulesSettingsServiceMock } from '../rules_settings/rules_settings_service.mock';
+import { ALERTING_CASES_SAVED_OBJECT_INDEX } from '@kbn/core-saved-objects-server';
import { maintenanceWindowsServiceMock } from './maintenance_windows/maintenance_windows_service.mock';
jest.mock('uuid', () => ({
@@ -225,53 +226,57 @@ describe('Task Runner Cancel', () => {
testAlertingEventLogCalls({ status: 'ok' });
- expect(internalSavedObjectsRepository.update).toHaveBeenCalledTimes(1);
- expect(internalSavedObjectsRepository.update).toHaveBeenCalledWith(
- RULE_SAVED_OBJECT_TYPE,
- '1',
+ expect(elasticsearchService.client.asInternalUser.update).toHaveBeenCalledTimes(1);
+ expect(elasticsearchService.client.asInternalUser.update).toHaveBeenCalledWith(
{
- executionStatus: {
- error: {
- message: `test:1: execution cancelled due to timeout - exceeded rule type timeout of 5m`,
- reason: 'timeout',
- },
- lastDuration: 0,
- lastExecutionDate: '1970-01-01T00:00:00.000Z',
- status: 'error',
- warning: null,
- },
- lastRun: {
- alertsCount: {},
- outcome: 'failed',
- outcomeMsg: [
- 'test:1: execution cancelled due to timeout - exceeded rule type timeout of 5m',
- ],
- outcomeOrder: 20,
- warning: 'timeout',
- },
- monitoring: {
- run: {
- calculated_metrics: {
- success_ratio: 0,
+ id: `alert:1`,
+ index: ALERTING_CASES_SAVED_OBJECT_INDEX,
+ doc: {
+ alert: {
+ executionStatus: {
+ error: {
+ message: `test:1: execution cancelled due to timeout - exceeded rule type timeout of 5m`,
+ reason: 'timeout',
+ },
+ lastDuration: 0,
+ lastExecutionDate: '1970-01-01T00:00:00.000Z',
+ status: 'error',
+ warning: null,
+ },
+ lastRun: {
+ alertsCount: {},
+ outcome: 'failed',
+ outcomeMsg: [
+ 'test:1: execution cancelled due to timeout - exceeded rule type timeout of 5m',
+ ],
+ outcomeOrder: 20,
+ warning: 'timeout',
},
- history: [],
- last_run: {
- metrics: {
- duration: 0,
- gap_duration_s: null,
- total_alerts_created: null,
- total_alerts_detected: null,
- total_indexing_duration_ms: null,
- total_search_duration_ms: null,
+ monitoring: {
+ run: {
+ calculated_metrics: {
+ success_ratio: 0,
+ },
+ history: [],
+ last_run: {
+ metrics: {
+ duration: 0,
+ gap_duration_s: null,
+ total_alerts_created: null,
+ total_alerts_detected: null,
+ total_indexing_duration_ms: null,
+ total_search_duration_ms: null,
+ },
+ timestamp: '1970-01-01T00:00:00.000Z',
+ },
},
- timestamp: '1970-01-01T00:00:00.000Z',
},
+ nextRun: '1970-01-01T00:00:10.000Z',
+ running: false,
},
},
- nextRun: '1970-01-01T00:00:10.000Z',
- running: false,
},
- { refresh: false, namespace: undefined }
+ { ignore: [404] }
);
expect(mockUsageCounter.incrementCounter).toHaveBeenCalledTimes(1);
expect(mockUsageCounter.incrementCounter).toHaveBeenCalledWith({
diff --git a/x-pack/plugins/alerting/tsconfig.json b/x-pack/plugins/alerting/tsconfig.json
index c09816222b010..c0951663a8489 100644
--- a/x-pack/plugins/alerting/tsconfig.json
+++ b/x-pack/plugins/alerting/tsconfig.json
@@ -72,7 +72,8 @@
"@kbn/alerting-state-types",
"@kbn/core-security-server",
"@kbn/core-http-server",
- "@kbn/zod"
+ "@kbn/zod",
+ "@kbn/core-saved-objects-base-server-internal"
],
"exclude": [
"target/**/*"
From 2a935dcce37bd3e3f3fce32d6257b2ec7191dac5 Mon Sep 17 00:00:00 2001
From: Nathan L Smith
Date: Mon, 30 Sep 2024 09:55:49 -0500
Subject: [PATCH 29/60] Hide progress bar on initial load when client prefers
reduced motion (#194365)
## Summary
See
https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion
![CleanShot 2024-09-29 at 21 57
36](https://github.com/user-attachments/assets/27436ec4-986b-4c91-9d9f-e49d59d76e7c)
---
.../apps/core-apps-server-internal/assets/legacy_styles.css | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/packages/core/apps/core-apps-server-internal/assets/legacy_styles.css b/packages/core/apps/core-apps-server-internal/assets/legacy_styles.css
index 55ed0fbfdf8ba..ea149e7fec132 100644
--- a/packages/core/apps/core-apps-server-internal/assets/legacy_styles.css
+++ b/packages/core/apps/core-apps-server-internal/assets/legacy_styles.css
@@ -114,3 +114,9 @@ body, html {
transform: scaleX(1) translateX(100%);
}
}
+
+@media (prefers-reduced-motion) {
+ .kbnProgress {
+ display: none;
+ }
+}
From 508141423e7d18ce87628d826628d161c3292418 Mon Sep 17 00:00:00 2001
From: Hanna Tamoudi
Date: Mon, 30 Sep 2024 17:46:05 +0200
Subject: [PATCH 30/60] [Automatic Import] add fields mapping to readme
(#193717)
---
.../build_integration.test.ts | 62 ++++--
.../integration_builder/build_integration.ts | 43 +++--
.../integration_builder/data_stream.test.ts | 12 ++
.../server/integration_builder/data_stream.ts | 37 +++-
.../server/integration_builder/fields.test.ts | 34 ++++
.../server/integration_builder/fields.ts | 20 +-
.../integration_builder/readme_files.test.ts | 182 ++++++++++++++++++
.../integration_builder/readme_files.ts | 42 ++++
.../server/templates/build_readme.md.njk | 8 +
.../server/templates/package_readme.md.njk | 43 ++---
.../server/templates/readme.njk | 31 +++
.../server/util/samples.test.ts | 159 ++++++++++++++-
.../server/util/samples.ts | 43 ++++-
13 files changed, 634 insertions(+), 82 deletions(-)
create mode 100644 x-pack/plugins/integration_assistant/server/integration_builder/readme_files.test.ts
create mode 100644 x-pack/plugins/integration_assistant/server/integration_builder/readme_files.ts
create mode 100644 x-pack/plugins/integration_assistant/server/templates/build_readme.md.njk
create mode 100644 x-pack/plugins/integration_assistant/server/templates/readme.njk
diff --git a/x-pack/plugins/integration_assistant/server/integration_builder/build_integration.test.ts b/x-pack/plugins/integration_assistant/server/integration_builder/build_integration.test.ts
index e8800af12653f..419e287e23bf7 100644
--- a/x-pack/plugins/integration_assistant/server/integration_builder/build_integration.test.ts
+++ b/x-pack/plugins/integration_assistant/server/integration_builder/build_integration.test.ts
@@ -14,6 +14,7 @@ import { createAgentInput } from './agent';
import { createPipeline } from './pipeline';
import { DataStream, Docs, InputType, Pipeline, Integration } from '../../common';
import yaml from 'js-yaml';
+import { createReadme } from './readme_files';
const mockedDataPath = 'path';
const mockedId = 123;
@@ -23,6 +24,10 @@ jest.mock('./data_stream');
jest.mock('./fields');
jest.mock('./agent');
jest.mock('./pipeline');
+jest.mock('./readme_files');
+
+(createFieldMapping as jest.Mock).mockReturnValue([]);
+(createDataStream as jest.Mock).mockReturnValue([]);
(generateUniqueId as jest.Mock).mockReturnValue(mockedId);
@@ -106,22 +111,11 @@ describe('buildPackage', () => {
// _dev files
expect(ensureDirSync).toHaveBeenCalledWith(`${integrationPath}/_dev/build`);
- expect(createSync).toHaveBeenCalledWith(
- `${integrationPath}/_dev/build/docs/README.md`,
- expect.any(String)
- );
expect(createSync).toHaveBeenCalledWith(
`${integrationPath}/_dev/build/build.yml`,
expect.any(String)
);
- // Docs files
- expect(ensureDirSync).toHaveBeenCalledWith(`${integrationPath}/docs/`);
- expect(createSync).toHaveBeenCalledWith(
- `${integrationPath}/docs/README.md`,
- expect.any(String)
- );
-
// Changelog file
expect(createSync).toHaveBeenCalledWith(`${integrationPath}/changelog.yml`, expect.any(String));
@@ -188,6 +182,52 @@ describe('buildPackage', () => {
secondDataStreamDocs
);
});
+
+ it('Should call createReadme once with sorted fields', async () => {
+ jest.clearAllMocks();
+
+ const firstDSFieldsMapping = [{ name: 'name a', description: 'description 1', type: 'type 1' }];
+
+ const firstDataStreamFields = [
+ { name: 'name b', description: 'description 1', type: 'type 1' },
+ ];
+
+ const secondDSFieldsMapping = [
+ { name: 'name c', description: 'description 2', type: 'type 2' },
+ { name: 'name e', description: 'description 3', type: 'type 3' },
+ ];
+
+ const secondDataStreamFields = [
+ { name: 'name d', description: 'description 2', type: 'type 2' },
+ ];
+
+ (createFieldMapping as jest.Mock).mockReturnValueOnce(firstDSFieldsMapping);
+ (createDataStream as jest.Mock).mockReturnValueOnce(firstDataStreamFields);
+
+ (createFieldMapping as jest.Mock).mockReturnValueOnce(secondDSFieldsMapping);
+ (createDataStream as jest.Mock).mockReturnValueOnce(secondDataStreamFields);
+
+ await buildPackage(testIntegration);
+
+ expect(createReadme).toHaveBeenCalledWith(integrationPath, testIntegration.name, [
+ {
+ datastream: firstDatastreamName,
+ fields: [
+ { name: 'name a', description: 'description 1', type: 'type 1' },
+
+ { name: 'name b', description: 'description 1', type: 'type 1' },
+ ],
+ },
+ {
+ datastream: secondDatastreamName,
+ fields: [
+ { name: 'name c', description: 'description 2', type: 'type 2' },
+ { name: 'name d', description: 'description 2', type: 'type 2' },
+ { name: 'name e', description: 'description 3', type: 'type 3' },
+ ],
+ },
+ ]);
+ });
});
describe('renderPackageManifestYAML', () => {
diff --git a/x-pack/plugins/integration_assistant/server/integration_builder/build_integration.ts b/x-pack/plugins/integration_assistant/server/integration_builder/build_integration.ts
index b9bc1b55268d7..8743ada38bdb6 100644
--- a/x-pack/plugins/integration_assistant/server/integration_builder/build_integration.ts
+++ b/x-pack/plugins/integration_assistant/server/integration_builder/build_integration.ts
@@ -16,6 +16,8 @@ import { createAgentInput } from './agent';
import { createDataStream } from './data_stream';
import { createFieldMapping } from './fields';
import { createPipeline } from './pipeline';
+import { createReadme } from './readme_files';
+import { Field, flattenObjectsList } from '../util/samples';
const initialVersion = '1.0.0';
@@ -37,17 +39,27 @@ export async function buildPackage(integration: Integration): Promise {
const packageDir = createDirectories(workingDir, integration, packageDirectoryName);
const dataStreamsDir = joinPath(packageDir, 'data_stream');
-
- for (const dataStream of integration.dataStreams) {
+ const fieldsPerDatastream = integration.dataStreams.map((dataStream) => {
const dataStreamName = dataStream.name;
const specificDataStreamDir = joinPath(dataStreamsDir, dataStreamName);
- createDataStream(integration.name, specificDataStreamDir, dataStream);
+ const dataStreamFields = createDataStream(integration.name, specificDataStreamDir, dataStream);
createAgentInput(specificDataStreamDir, dataStream.inputTypes);
createPipeline(specificDataStreamDir, dataStream.pipeline);
- createFieldMapping(integration.name, dataStreamName, specificDataStreamDir, dataStream.docs);
- }
+ const fields = createFieldMapping(
+ integration.name,
+ dataStreamName,
+ specificDataStreamDir,
+ dataStream.docs
+ );
+
+ return {
+ datastream: dataStreamName,
+ fields: mergeAndSortFields(fields, dataStreamFields),
+ };
+ });
+ createReadme(packageDir, integration.name, fieldsPerDatastream);
const zipBuffer = await createZipArchive(workingDir, packageDirectoryName);
removeDirSync(workingDir);
@@ -67,7 +79,6 @@ function createDirectories(
}
function createPackage(packageDir: string, integration: Integration): void {
- createReadme(packageDir, integration);
createChangelog(packageDir);
createBuildFile(packageDir);
createPackageManifest(packageDir, integration);
@@ -102,20 +113,6 @@ function createChangelog(packageDir: string): void {
createSync(joinPath(packageDir, 'changelog.yml'), changelogTemplate);
}
-function createReadme(packageDir: string, integration: Integration) {
- const readmeDirPath = joinPath(packageDir, '_dev/build/docs/');
- const mainReadmeDirPath = joinPath(packageDir, 'docs/');
- ensureDirSync(mainReadmeDirPath);
- ensureDirSync(readmeDirPath);
- const readmeTemplate = nunjucks.render('package_readme.md.njk', {
- package_name: integration.name,
- data_streams: integration.dataStreams,
- });
-
- createSync(joinPath(readmeDirPath, 'README.md'), readmeTemplate);
- createSync(joinPath(mainReadmeDirPath, 'README.md'), readmeTemplate);
-}
-
async function createZipArchive(workingDir: string, packageDirectoryName: string): Promise {
const tmpPackageDir = joinPath(workingDir, packageDirectoryName);
const zip = new AdmZip();
@@ -124,6 +121,12 @@ async function createZipArchive(workingDir: string, packageDirectoryName: string
return buffer;
}
+function mergeAndSortFields(fields: Field[], dataStreamFields: Field[]): Field[] {
+ const mergedFields = [...fields, ...dataStreamFields];
+
+ return flattenObjectsList(mergedFields);
+}
+
/* eslint-disable @typescript-eslint/naming-convention */
/**
* Creates a package manifest dictionary.
diff --git a/x-pack/plugins/integration_assistant/server/integration_builder/data_stream.test.ts b/x-pack/plugins/integration_assistant/server/integration_builder/data_stream.test.ts
index 550c6118636cc..0a269fa07a1c8 100644
--- a/x-pack/plugins/integration_assistant/server/integration_builder/data_stream.test.ts
+++ b/x-pack/plugins/integration_assistant/server/integration_builder/data_stream.test.ts
@@ -81,4 +81,16 @@ describe('createDataStream', () => {
expect(render).toHaveBeenCalledWith(`filestream_manifest.yml.njk`, expect.anything());
expect(render).toHaveBeenCalledWith(`azure_eventhub_manifest.yml.njk`, expect.anything());
});
+
+ it('Should return the list of fields', async () => {
+ const fields = createDataStream(packageName, dataStreamPath, firstDataStream);
+
+ expect(Array.isArray(fields)).toBe(true);
+ fields.forEach((field) => {
+ expect(field).toMatchObject({
+ name: expect.any(String),
+ type: expect.any(String),
+ });
+ });
+ });
});
diff --git a/x-pack/plugins/integration_assistant/server/integration_builder/data_stream.ts b/x-pack/plugins/integration_assistant/server/integration_builder/data_stream.ts
index 02b3f12f53d68..d66ee1958b3ea 100644
--- a/x-pack/plugins/integration_assistant/server/integration_builder/data_stream.ts
+++ b/x-pack/plugins/integration_assistant/server/integration_builder/data_stream.ts
@@ -7,14 +7,16 @@
import nunjucks from 'nunjucks';
import { join as joinPath } from 'path';
+import { load } from 'js-yaml';
import type { DataStream } from '../../common';
-import { copySync, createSync, ensureDirSync, listDirSync } from '../util';
+import { copySync, createSync, ensureDirSync, listDirSync, readSync } from '../util';
+import { Field } from '../util/samples';
export function createDataStream(
packageName: string,
specificDataStreamDir: string,
dataStream: DataStream
-): void {
+): Field[] {
const dataStreamName = dataStream.name;
const pipelineDir = joinPath(specificDataStreamDir, 'elasticsearch', 'ingest_pipeline');
const title = dataStream.title;
@@ -23,7 +25,7 @@ export function createDataStream(
const useMultilineNDJSON = samplesFormat.name === 'ndjson' && samplesFormat.multiline === true;
ensureDirSync(specificDataStreamDir);
- createDataStreamFolders(specificDataStreamDir, pipelineDir);
+ const fields = createDataStreamFolders(specificDataStreamDir, pipelineDir);
createPipelineTests(specificDataStreamDir, dataStream.rawSamples, packageName, dataStreamName);
const dataStreams: string[] = [];
@@ -51,19 +53,34 @@ export function createDataStream(
});
createSync(joinPath(specificDataStreamDir, 'manifest.yml'), finalManifest);
+
+ return fields;
+}
+
+function createDataStreamFolders(specificDataStreamDir: string, pipelineDir: string): Field[] {
+ ensureDirSync(pipelineDir);
+ return copyFilesFromTemplateDir(specificDataStreamDir);
}
-function createDataStreamFolders(specificDataStreamDir: string, pipelineDir: string): void {
+function copyFilesFromTemplateDir(specificDataStreamDir: string): Field[] {
const dataStreamTemplatesDir = joinPath(__dirname, '../templates/data_stream');
const items = listDirSync(dataStreamTemplatesDir);
+ return items.flatMap((item) => {
+ const sourcePath = joinPath(dataStreamTemplatesDir, item);
+ const destinationPath = joinPath(specificDataStreamDir, item);
+ copySync(sourcePath, destinationPath);
+ const files = listDirSync(sourcePath);
- for (const item of items) {
- const s = joinPath(dataStreamTemplatesDir, item);
- const d = joinPath(specificDataStreamDir, item);
- copySync(s, d);
- }
+ return loadFieldsFromFiles(sourcePath, files);
+ });
+}
- ensureDirSync(pipelineDir);
+function loadFieldsFromFiles(sourcePath: string, files: string[]): Field[] {
+ return files.flatMap((file) => {
+ const filePath = joinPath(sourcePath, file);
+ const content = readSync(filePath);
+ return load(content) as Field[];
+ });
}
function createPipelineTests(
diff --git a/x-pack/plugins/integration_assistant/server/integration_builder/fields.test.ts b/x-pack/plugins/integration_assistant/server/integration_builder/fields.test.ts
index a657f699cfff9..bb76577d64fd3 100644
--- a/x-pack/plugins/integration_assistant/server/integration_builder/fields.test.ts
+++ b/x-pack/plugins/integration_assistant/server/integration_builder/fields.test.ts
@@ -65,4 +65,38 @@ describe('createFieldMapping', () => {
);
expect(createSync).toHaveBeenCalledWith(`${dataStreamPath}/fields/fields.yml`, expectedFields);
});
+
+ it('Should return all fields flattened', async () => {
+ const docs: Docs = [
+ {
+ key: 'foo',
+ anotherKey: 'bar',
+ },
+ ];
+
+ const baseFields = `- name: data_stream.type
+ type: constant_keyword
+ description: Data stream type.
+- name: data_stream.dataset
+ type: constant_keyword
+- name: "@timestamp"
+ type: date
+ description: Event timestamp.
+`;
+ (render as jest.Mock).mockReturnValue(baseFields);
+
+ const fieldsResult = createFieldMapping(packageName, dataStreamName, dataStreamPath, docs);
+
+ expect(fieldsResult).toEqual([
+ {
+ name: 'data_stream.type',
+ type: 'constant_keyword',
+ description: 'Data stream type.',
+ },
+ { name: 'data_stream.dataset', type: 'constant_keyword' },
+ { name: '@timestamp', type: 'date', description: 'Event timestamp.' },
+ { name: 'key', type: 'keyword' },
+ { name: 'anotherKey', type: 'keyword' },
+ ]);
+ });
});
diff --git a/x-pack/plugins/integration_assistant/server/integration_builder/fields.ts b/x-pack/plugins/integration_assistant/server/integration_builder/fields.ts
index 79977ef2f3927..476bc0e74d697 100644
--- a/x-pack/plugins/integration_assistant/server/integration_builder/fields.ts
+++ b/x-pack/plugins/integration_assistant/server/integration_builder/fields.ts
@@ -6,7 +6,8 @@
*/
import nunjucks from 'nunjucks';
-
+import { load } from 'js-yaml';
+import { Field } from '../util/samples';
import { createSync, generateFields, mergeSamples } from '../util';
export function createFieldMapping(
@@ -14,28 +15,33 @@ export function createFieldMapping(
dataStreamName: string,
specificDataStreamDir: string,
docs: object[]
-): void {
+): Field[] {
const dataStreamFieldsDir = `${specificDataStreamDir}/fields`;
- createBaseFields(dataStreamFieldsDir, packageName, dataStreamName);
- createCustomFields(dataStreamFieldsDir, docs);
+ const baseFields = createBaseFields(dataStreamFieldsDir, packageName, dataStreamName);
+ const customFields = createCustomFields(dataStreamFieldsDir, docs);
+
+ return [...baseFields, ...customFields];
}
function createBaseFields(
dataStreamFieldsDir: string,
packageName: string,
dataStreamName: string
-): void {
+): Field[] {
const datasetName = `${packageName}.${dataStreamName}`;
const baseFields = nunjucks.render('base_fields.yml.njk', {
module: packageName,
dataset: datasetName,
});
-
createSync(`${dataStreamFieldsDir}/base-fields.yml`, baseFields);
+
+ return load(baseFields) as Field[];
}
-function createCustomFields(dataStreamFieldsDir: string, pipelineResults: object[]): void {
+function createCustomFields(dataStreamFieldsDir: string, pipelineResults: object[]): Field[] {
const mergedResults = mergeSamples(pipelineResults);
const fieldKeys = generateFields(mergedResults);
createSync(`${dataStreamFieldsDir}/fields.yml`, fieldKeys);
+
+ return load(fieldKeys) as Field[];
}
diff --git a/x-pack/plugins/integration_assistant/server/integration_builder/readme_files.test.ts b/x-pack/plugins/integration_assistant/server/integration_builder/readme_files.test.ts
new file mode 100644
index 0000000000000..ae9080fff8a74
--- /dev/null
+++ b/x-pack/plugins/integration_assistant/server/integration_builder/readme_files.test.ts
@@ -0,0 +1,182 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { testIntegration } from '../../__jest__/fixtures/build_integration';
+import { ensureDirSync, createSync } from '../util';
+import { configure } from 'nunjucks';
+import { join as joinPath } from 'path';
+import { createReadme } from './readme_files';
+
+jest.mock('../util', () => ({
+ ...jest.requireActual('../util'),
+ createSync: jest.fn(),
+ ensureDirSync: jest.fn(),
+}));
+
+describe('createReadme', () => {
+ const integrationPath = 'path';
+
+ const templateDir = joinPath(__dirname, '../templates');
+ configure([templateDir], {
+ autoescape: false,
+ });
+
+ beforeEach(async () => {
+ jest.clearAllMocks();
+ });
+
+ it('Should create expected files', async () => {
+ const fields = [
+ {
+ datastream: 'data_stream_1',
+ fields: [
+ {
+ name: 'data_stream.type',
+ type: 'constant_keyword',
+ description: 'Data stream type.',
+ },
+ {
+ name: 'data_stream.dataset',
+ type: 'constant_keyword',
+ description: 'Data stream dataset name.',
+ },
+ {
+ name: 'event.dataset',
+ type: 'constant_keyword',
+ description: 'Event dataset',
+ value: 'package.datastream',
+ },
+ { name: '@timestamp', type: 'date', description: 'Event timestamp.' },
+ ],
+ },
+ {
+ datastream: 'data_stream_2',
+ fields: [{ name: '@timestamp', type: 'date', description: 'Event timestamp.' }],
+ },
+ ];
+
+ createReadme(integrationPath, testIntegration.name, fields);
+
+ expect(createSync).toHaveBeenCalledWith(
+ `${integrationPath}/_dev/build/docs/README.md`,
+ expect.any(String)
+ );
+
+ // Docs files
+ expect(ensureDirSync).toHaveBeenCalledWith(`${integrationPath}/docs/`);
+ expect(createSync).toHaveBeenCalledWith(
+ `${integrationPath}/docs/README.md`,
+ expect.any(String)
+ );
+ });
+
+ it('Should render a table per datastream with fields mapping in package readme', async () => {
+ const fields = [
+ {
+ datastream: 'data_stream_1',
+ fields: [
+ {
+ name: 'data_stream.type',
+ type: 'constant_keyword',
+ description: 'Data stream type.',
+ },
+ {
+ name: 'data_stream.dataset',
+ type: 'constant_keyword',
+ },
+ {
+ name: 'event.dataset',
+ type: 'constant_keyword',
+ description: 'Event dataset',
+ value: 'package.datastream',
+ },
+ { name: '@timestamp', type: 'date', description: 'Event timestamp.' },
+ ],
+ },
+ {
+ datastream: 'data_stream_2',
+ fields: [{ name: '@timestamp', type: 'date', description: 'Event timestamp.' }],
+ },
+ ];
+
+ createReadme(integrationPath, testIntegration.name, fields);
+
+ const firstDatastreamFieldsDisplayed = `
+| Field | Description | Type |
+|---|---|---|
+| data_stream.type | Data stream type. | constant_keyword |
+| data_stream.dataset | | constant_keyword |
+| event.dataset | Event dataset | constant_keyword |
+| @timestamp | Event timestamp. | date |
+`;
+
+ const secondDatastreamFieldsDisplayed = `
+| Field | Description | Type |
+|---|---|---|
+| @timestamp | Event timestamp. | date |
+`;
+
+ expect(createSync).toHaveBeenCalledWith(
+ `${integrationPath}/docs/README.md`,
+ expect.stringContaining(firstDatastreamFieldsDisplayed)
+ );
+
+ expect(createSync).toHaveBeenCalledWith(
+ `${integrationPath}/docs/README.md`,
+ expect.stringContaining(secondDatastreamFieldsDisplayed)
+ );
+ });
+
+ it('Should not render a fields mapping table in build readme', async () => {
+ const fields = [
+ {
+ datastream: 'data_stream_1',
+ fields: [{ name: '@timestamp', type: 'date', description: 'Event timestamp.' }],
+ },
+ ];
+
+ createReadme(integrationPath, testIntegration.name, fields);
+
+ expect(createSync).toHaveBeenCalledWith(
+ `${integrationPath}/_dev/build/docs/README.md`,
+ expect.stringContaining('{{fields "data_stream_1"}}')
+ );
+ });
+
+ it('Should render a formatted table per datastream with fields mapping in package readme', async () => {
+ const fields = [
+ {
+ datastream: 'data_stream_1',
+ fields: [
+ {
+ name: 'data_stream.type',
+ type: 'constant_keyword',
+ description: 'Data stream type.\n',
+ },
+ {
+ name: 'data_stream.dataset',
+ type: 'constant_keyword',
+ },
+ ],
+ },
+ ];
+
+ createReadme(integrationPath, testIntegration.name, fields);
+
+ const firstDatastreamFieldsDisplayed = `
+| Field | Description | Type |
+|---|---|---|
+| data_stream.type | Data stream type. | constant_keyword |
+| data_stream.dataset | | constant_keyword |
+`;
+
+ expect(createSync).toHaveBeenCalledWith(
+ `${integrationPath}/docs/README.md`,
+ expect.stringContaining(firstDatastreamFieldsDisplayed)
+ );
+ });
+});
diff --git a/x-pack/plugins/integration_assistant/server/integration_builder/readme_files.ts b/x-pack/plugins/integration_assistant/server/integration_builder/readme_files.ts
new file mode 100644
index 0000000000000..163b2b04b52f9
--- /dev/null
+++ b/x-pack/plugins/integration_assistant/server/integration_builder/readme_files.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 nunjucks from 'nunjucks';
+
+import { join as joinPath } from 'path';
+import { createSync, ensureDirSync } from '../util';
+
+export function createReadme(packageDir: string, integrationName: string, fields: object[]) {
+ createPackageReadme(packageDir, integrationName, fields);
+ createBuildReadme(packageDir, integrationName, fields);
+}
+
+function createPackageReadme(packageDir: string, integrationName: string, fields: object[]) {
+ const dirPath = joinPath(packageDir, 'docs/');
+ createReadmeFile(dirPath, 'package_readme.md.njk', integrationName, fields);
+}
+
+function createBuildReadme(packageDir: string, integrationName: string, fields: object[]) {
+ const dirPath = joinPath(packageDir, '_dev/build/docs/');
+ createReadmeFile(dirPath, 'build_readme.md.njk', integrationName, fields);
+}
+
+function createReadmeFile(
+ targetDir: string,
+ templateName: string,
+ integrationName: string,
+ fields: object[]
+) {
+ ensureDirSync(targetDir);
+
+ const template = nunjucks.render(templateName, {
+ package_name: integrationName,
+ fields,
+ });
+
+ createSync(joinPath(targetDir, 'README.md'), template);
+}
diff --git a/x-pack/plugins/integration_assistant/server/templates/build_readme.md.njk b/x-pack/plugins/integration_assistant/server/templates/build_readme.md.njk
new file mode 100644
index 0000000000000..e23fa4af9efe8
--- /dev/null
+++ b/x-pack/plugins/integration_assistant/server/templates/build_readme.md.njk
@@ -0,0 +1,8 @@
+{% include "readme.njk" %}
+{% for data_stream in fields %}
+### {{ data_stream.datastream }}
+
+Insert a description of the datastream here.
+
+{% raw %}{{fields {% endraw %}"{{ data_stream.datastream }}"{% raw %}}}{% endraw %}
+{% endfor %}
\ No newline at end of file
diff --git a/x-pack/plugins/integration_assistant/server/templates/package_readme.md.njk b/x-pack/plugins/integration_assistant/server/templates/package_readme.md.njk
index 02bf606ab386a..b47e3491b5bc2 100644
--- a/x-pack/plugins/integration_assistant/server/templates/package_readme.md.njk
+++ b/x-pack/plugins/integration_assistant/server/templates/package_readme.md.njk
@@ -1,38 +1,17 @@
-# {{ package_name }} Integration
+{% include "readme.njk" %}
+{% for data_stream in fields %}
+### {{ data_stream.datastream }}
-## Overview
-
-Explain what the integration is, define the third-party product that is providing data, establish its relationship to the larger ecosystem of Elastic products, and help the reader understand how it can be used to solve a tangible problem.
-Check the [overview guidelines](https://www.elastic.co/guide/en/integrations-developer/current/documentation-guidelines.html#idg-docs-guidelines-overview) for more information.
-
-## Datastreams
-
-Provide a high-level overview of the kind of data that is collected by the integration.
-Check the [datastreams guidelines](https://www.elastic.co/guide/en/integrations-developer/current/documentation-guidelines.html#idg-docs-guidelines-datastreams) for more information.
-
-## Requirements
-
-The requirements section helps readers to confirm that the integration will work with their systems.
-Check the [requirements guidelines](https://www.elastic.co/guide/en/integrations-developer/current/documentation-guidelines.html#idg-docs-guidelines-requirements) for more information.
-
-## Setup
-
-Point the reader to the [Observability Getting started guide](https://www.elastic.co/guide/en/observability/master/observability-get-started.html) for generic, step-by-step instructions. Include any additional setup instructions beyond what’s included in the guide, which may include instructions to update the configuration of a third-party service.
-Check the [setup guidelines](https://www.elastic.co/guide/en/integrations-developer/current/documentation-guidelines.html#idg-docs-guidelines-setup) for more information.
-
-## Troubleshooting (optional)
-
-Provide information about special cases and exceptions that aren’t necessary for getting started or won’t be applicable to all users. Check the [troubleshooting guidelines](https://www.elastic.co/guide/en/integrations-developer/current/documentation-guidelines.html#idg-docs-guidelines-troubleshooting) for more information.
-
-## Reference
+Insert a description of the datastream here.
-Provide detailed information about the log or metric types we support within the integration. Check the [reference guidelines](https://www.elastic.co/guide/en/integrations-developer/current/documentation-guidelines.html#idg-docs-guidelines-reference) for more information.
+**ECS Field Reference**
-## Logs
-{% for data_stream in data_streams %}
-### {{ data_stream.name }}
+Please refer to the following [document](https://www.elastic.co/guide/en/ecs/current/ecs-field-reference.html) for detailed information on ECS fields.
-Insert a description of the datastream here.
+**Exported fields**
-{% raw %}{{fields {% endraw %}"{{ data_stream.name }}"{% raw %}}}{% endraw %}
+| Field | Description | Type |
+|---|---|---|
+{% for field in data_stream.fields %}| {{ field.name }} | {{ field.description | default('') | replace('\n', ' ') | trim }} | {{ field.type }} |
{% endfor %}
+{% endfor %}
\ No newline at end of file
diff --git a/x-pack/plugins/integration_assistant/server/templates/readme.njk b/x-pack/plugins/integration_assistant/server/templates/readme.njk
new file mode 100644
index 0000000000000..91c1bf6f1b40c
--- /dev/null
+++ b/x-pack/plugins/integration_assistant/server/templates/readme.njk
@@ -0,0 +1,31 @@
+# {{ package_name }} Integration
+
+## Overview
+
+Explain what the integration is, define the third-party product that is providing data, establish its relationship to the larger ecosystem of Elastic products, and help the reader understand how it can be used to solve a tangible problem.
+Check the [overview guidelines](https://www.elastic.co/guide/en/integrations-developer/current/documentation-guidelines.html#idg-docs-guidelines-overview) for more information.
+
+## Datastreams
+
+Provide a high-level overview of the kind of data that is collected by the integration.
+Check the [datastreams guidelines](https://www.elastic.co/guide/en/integrations-developer/current/documentation-guidelines.html#idg-docs-guidelines-datastreams) for more information.
+
+## Requirements
+
+The requirements section helps readers to confirm that the integration will work with their systems.
+Check the [requirements guidelines](https://www.elastic.co/guide/en/integrations-developer/current/documentation-guidelines.html#idg-docs-guidelines-requirements) for more information.
+
+## Setup
+
+Point the reader to the [Observability Getting started guide](https://www.elastic.co/guide/en/observability/master/observability-get-started.html) for generic, step-by-step instructions. Include any additional setup instructions beyond what’s included in the guide, which may include instructions to update the configuration of a third-party service.
+Check the [setup guidelines](https://www.elastic.co/guide/en/integrations-developer/current/documentation-guidelines.html#idg-docs-guidelines-setup) for more information.
+
+## Troubleshooting (optional)
+
+Provide information about special cases and exceptions that aren’t necessary for getting started or won’t be applicable to all users. Check the [troubleshooting guidelines](https://www.elastic.co/guide/en/integrations-developer/current/documentation-guidelines.html#idg-docs-guidelines-troubleshooting) for more information.
+
+## Reference
+
+Provide detailed information about the log or metric types we support within the integration. Check the [reference guidelines](https://www.elastic.co/guide/en/integrations-developer/current/documentation-guidelines.html#idg-docs-guidelines-reference) for more information.
+
+## Logs
\ No newline at end of file
diff --git a/x-pack/plugins/integration_assistant/server/util/samples.test.ts b/x-pack/plugins/integration_assistant/server/util/samples.test.ts
index 131135e842334..f87f9a96ca2c0 100644
--- a/x-pack/plugins/integration_assistant/server/util/samples.test.ts
+++ b/x-pack/plugins/integration_assistant/server/util/samples.test.ts
@@ -5,7 +5,164 @@
* 2.0.
*/
-import { merge } from './samples';
+import { flattenObjectsList, merge } from './samples';
+
+describe('flattenObjectsList', () => {
+ it('Should return a list with flattened key/value entries', async () => {
+ const result = flattenObjectsList([
+ {
+ name: 'a',
+ type: 'group',
+ fields: [
+ {
+ name: 'b',
+ type: 'keyword',
+ description: 'Some description for b',
+ },
+ {
+ name: 'c',
+ type: 'group',
+ fields: [
+ {
+ name: 'd',
+ type: 'keyword',
+ },
+ {
+ name: 'e',
+ description: 'Some description for e',
+ type: 'keyword',
+ },
+ ],
+ },
+ ],
+ },
+ ]);
+
+ expect(result).toEqual([
+ {
+ name: 'a.b',
+ type: 'keyword',
+ description: 'Some description for b',
+ },
+ {
+ name: 'a.c.d',
+ type: 'keyword',
+ description: undefined,
+ },
+ {
+ name: 'a.c.e',
+ type: 'keyword',
+ description: 'Some description for e',
+ },
+ ]);
+ });
+
+ it('Should return an empty list if passed an empty list', async () => {
+ const result = flattenObjectsList([]);
+
+ expect(result).toEqual([]);
+ });
+
+ it('Should return a list with key/value entries', async () => {
+ const result = flattenObjectsList([
+ {
+ name: 'a',
+ type: 'keyword',
+ description: 'Some description for a',
+ },
+ ]);
+
+ expect(result).toEqual([
+ {
+ name: 'a',
+ type: 'keyword',
+ description: 'Some description for a',
+ },
+ ]);
+ });
+
+ it('Should return an sorted list of key/value entries', async () => {
+ const result = flattenObjectsList([
+ {
+ name: 'c',
+ type: 'group',
+ fields: [
+ {
+ name: 'b',
+ type: 'keyword',
+ description: 'Some description for b',
+ },
+ {
+ name: 'a',
+ type: 'group',
+ fields: [
+ {
+ name: 'e',
+ type: 'keyword',
+ description: 'Some description for e',
+ },
+ {
+ name: 'd',
+ type: 'keyword',
+ },
+ ],
+ },
+ ],
+ },
+ ]);
+
+ expect(result).toEqual([
+ {
+ name: 'c.a.d',
+ type: 'keyword',
+ description: undefined,
+ },
+ {
+ name: 'c.a.e',
+ type: 'keyword',
+ description: 'Some description for e',
+ },
+ {
+ name: 'c.b',
+ type: 'keyword',
+ description: 'Some description for b',
+ },
+ ]);
+ });
+
+ it('Should not error if group type is not an array', async () => {
+ const result = flattenObjectsList([
+ {
+ name: 'a',
+ type: 'group',
+ fields: [
+ {
+ name: 'b',
+ type: 'keyword',
+ description: 'Some description for b',
+ },
+ {
+ name: 'c',
+ type: 'group',
+ },
+ ],
+ },
+ ]);
+
+ expect(result).toEqual([
+ {
+ name: 'a.b',
+ type: 'keyword',
+ description: 'Some description for b',
+ },
+ {
+ name: 'a.c',
+ type: 'group',
+ description: undefined,
+ },
+ ]);
+ });
+});
describe('merge', () => {
it('Should return source if target is empty', async () => {
diff --git a/x-pack/plugins/integration_assistant/server/util/samples.ts b/x-pack/plugins/integration_assistant/server/util/samples.ts
index a29813c1643f8..6993e87a774e9 100644
--- a/x-pack/plugins/integration_assistant/server/util/samples.ts
+++ b/x-pack/plugins/integration_assistant/server/util/samples.ts
@@ -18,9 +18,10 @@ interface NewObj {
};
}
-interface Field {
+export interface Field {
name: string;
type: string;
+ description?: string;
fields?: Field[];
}
@@ -233,3 +234,43 @@ export function mergeSamples(objects: any[]): string {
return JSON.stringify(result, null, 2);
}
+
+export function flattenObjectsList(
+ obj: Field[]
+): Array<{ name: string; type: string; description?: string }> {
+ const result: Array<{ name: string; type: string; description?: string }> = [];
+ flattenObject(obj, '', '.', result);
+
+ return sortArrayOfObjects(result);
+}
+
+function flattenObject(
+ obj: Field[],
+ parentKey: string = '',
+ separator: string = '.',
+ result: Array<{ name: string; type: string; description?: string }>
+): void {
+ obj.forEach((element) => {
+ if (element.name) {
+ const newKey = parentKey ? `${parentKey}${separator}${element.name}` : element.name;
+
+ if (element.fields && Array.isArray(element.fields)) {
+ flattenObject(element.fields, newKey, separator, result);
+ } else {
+ result.push({
+ name: newKey,
+ type: element.type,
+ description: element.description,
+ });
+ }
+ }
+ });
+}
+
+function sortArrayOfObjects(
+ objectsArray: Array<{ name: string; type: string; description?: string }>
+): Array<{ name: string; type: string; description?: string }> {
+ return objectsArray.sort((a, b) => {
+ return a.name.localeCompare(b.name);
+ });
+}
From 896dce358c05d6553ac184abae2164a907447c31 Mon Sep 17 00:00:00 2001
From: Shahzad
Date: Mon, 30 Sep 2024 18:09:52 +0200
Subject: [PATCH 31/60] [SLOs] Update API docs for group-by field !! (#194393)
## Summary
Update API docs for group-by field !!
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
---
.../output/kibana.serverless.staging.yaml | 29 +++++++++-----
oas_docs/output/kibana.serverless.yaml | 29 +++++++++-----
oas_docs/output/kibana.staging.yaml | 29 +++++++++-----
oas_docs/output/kibana.yaml | 29 +++++++++-----
.../slo/docs/openapi/slo/bundled.json | 40 ++++++++++++++-----
.../slo/docs/openapi/slo/bundled.yaml | 27 ++++++++-----
.../schemas/create_slo_request.yaml | 4 +-
.../slo/components/schemas/group_by.yaml | 11 +++++
.../schemas/slo_definition_response.yaml | 6 +--
.../schemas/slo_with_summary_response.yaml | 6 +--
.../schemas/update_slo_request.yaml | 2 +
11 files changed, 147 insertions(+), 65 deletions(-)
create mode 100644 x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/group_by.yaml
diff --git a/oas_docs/output/kibana.serverless.staging.yaml b/oas_docs/output/kibana.serverless.staging.yaml
index cf5cdbac0e9a4..a5d53bd71cc83 100644
--- a/oas_docs/output/kibana.serverless.staging.yaml
+++ b/oas_docs/output/kibana.serverless.staging.yaml
@@ -32014,9 +32014,7 @@ components:
description: A description for the SLO.
type: string
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- example: some.field
- type: string
+ $ref: '#/components/schemas/SLOs_group_by'
id:
description: >-
A optional and unique identifier for the SLO. Must be between 8 and
@@ -32175,6 +32173,21 @@ components:
type: number
title: Find SLO response
type: object
+ SLOs_group_by:
+ description: >-
+ optional group by field or fields to use to generate an SLO per distinct
+ value
+ example:
+ - - service.name
+ - service.name
+ - - service.name
+ - service.environment
+ oneOf:
+ - type: string
+ - items:
+ type: string
+ type: array
+ title: Group by
SLOs_indicator_properties_apm_availability:
description: Defines properties for the APM availability indicator type
type: object
@@ -32765,9 +32778,7 @@ components:
example: true
type: boolean
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- example: some.field
- type: string
+ $ref: '#/components/schemas/SLOs_group_by'
id:
description: The identifier of the SLO.
example: 8853df00-ae2e-11ed-90af-09bb6422b258
@@ -32851,9 +32862,7 @@ components:
example: true
type: boolean
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- example: some.field
- type: string
+ $ref: '#/components/schemas/SLOs_group_by'
id:
description: The identifier of the SLO.
example: 8853df00-ae2e-11ed-90af-09bb6422b258
@@ -33074,6 +33083,8 @@ components:
description:
description: A description for the SLO.
type: string
+ groupBy:
+ $ref: '#/components/schemas/SLOs_group_by'
indicator:
oneOf:
- $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql'
diff --git a/oas_docs/output/kibana.serverless.yaml b/oas_docs/output/kibana.serverless.yaml
index 675e8c0903b2f..93c3a5533c8a0 100644
--- a/oas_docs/output/kibana.serverless.yaml
+++ b/oas_docs/output/kibana.serverless.yaml
@@ -15304,9 +15304,7 @@ components:
description: A description for the SLO.
type: string
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- example: some.field
- type: string
+ $ref: '#/components/schemas/SLOs_group_by'
id:
description: >-
A optional and unique identifier for the SLO. Must be between 8 and
@@ -15465,6 +15463,21 @@ components:
type: number
title: Find SLO response
type: object
+ SLOs_group_by:
+ description: >-
+ optional group by field or fields to use to generate an SLO per distinct
+ value
+ example:
+ - - service.name
+ - service.name
+ - - service.name
+ - service.environment
+ oneOf:
+ - type: string
+ - items:
+ type: string
+ type: array
+ title: Group by
SLOs_indicator_properties_apm_availability:
description: Defines properties for the APM availability indicator type
type: object
@@ -16055,9 +16068,7 @@ components:
example: true
type: boolean
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- example: some.field
- type: string
+ $ref: '#/components/schemas/SLOs_group_by'
id:
description: The identifier of the SLO.
example: 8853df00-ae2e-11ed-90af-09bb6422b258
@@ -16141,9 +16152,7 @@ components:
example: true
type: boolean
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- example: some.field
- type: string
+ $ref: '#/components/schemas/SLOs_group_by'
id:
description: The identifier of the SLO.
example: 8853df00-ae2e-11ed-90af-09bb6422b258
@@ -16364,6 +16373,8 @@ components:
description:
description: A description for the SLO.
type: string
+ groupBy:
+ $ref: '#/components/schemas/SLOs_group_by'
indicator:
oneOf:
- $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql'
diff --git a/oas_docs/output/kibana.staging.yaml b/oas_docs/output/kibana.staging.yaml
index c70f9b4bce454..96352fc0cd962 100644
--- a/oas_docs/output/kibana.staging.yaml
+++ b/oas_docs/output/kibana.staging.yaml
@@ -40005,9 +40005,7 @@ components:
description: A description for the SLO.
type: string
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- example: some.field
- type: string
+ $ref: '#/components/schemas/SLOs_group_by'
id:
description: >-
A optional and unique identifier for the SLO. Must be between 8 and
@@ -40166,6 +40164,21 @@ components:
type: number
title: Find SLO response
type: object
+ SLOs_group_by:
+ description: >-
+ optional group by field or fields to use to generate an SLO per distinct
+ value
+ example:
+ - - service.name
+ - service.name
+ - - service.name
+ - service.environment
+ oneOf:
+ - type: string
+ - items:
+ type: string
+ type: array
+ title: Group by
SLOs_indicator_properties_apm_availability:
description: Defines properties for the APM availability indicator type
type: object
@@ -40756,9 +40769,7 @@ components:
example: true
type: boolean
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- example: some.field
- type: string
+ $ref: '#/components/schemas/SLOs_group_by'
id:
description: The identifier of the SLO.
example: 8853df00-ae2e-11ed-90af-09bb6422b258
@@ -40842,9 +40853,7 @@ components:
example: true
type: boolean
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- example: some.field
- type: string
+ $ref: '#/components/schemas/SLOs_group_by'
id:
description: The identifier of the SLO.
example: 8853df00-ae2e-11ed-90af-09bb6422b258
@@ -41065,6 +41074,8 @@ components:
description:
description: A description for the SLO.
type: string
+ groupBy:
+ $ref: '#/components/schemas/SLOs_group_by'
indicator:
oneOf:
- $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql'
diff --git a/oas_docs/output/kibana.yaml b/oas_docs/output/kibana.yaml
index 947ae1155041f..6d53cb1a38bdd 100644
--- a/oas_docs/output/kibana.yaml
+++ b/oas_docs/output/kibana.yaml
@@ -22291,9 +22291,7 @@ components:
description: A description for the SLO.
type: string
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- example: some.field
- type: string
+ $ref: '#/components/schemas/SLOs_group_by'
id:
description: >-
A optional and unique identifier for the SLO. Must be between 8 and
@@ -22452,6 +22450,21 @@ components:
type: number
title: Find SLO response
type: object
+ SLOs_group_by:
+ description: >-
+ optional group by field or fields to use to generate an SLO per distinct
+ value
+ example:
+ - - service.name
+ - service.name
+ - - service.name
+ - service.environment
+ oneOf:
+ - type: string
+ - items:
+ type: string
+ type: array
+ title: Group by
SLOs_indicator_properties_apm_availability:
description: Defines properties for the APM availability indicator type
type: object
@@ -23042,9 +23055,7 @@ components:
example: true
type: boolean
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- example: some.field
- type: string
+ $ref: '#/components/schemas/SLOs_group_by'
id:
description: The identifier of the SLO.
example: 8853df00-ae2e-11ed-90af-09bb6422b258
@@ -23128,9 +23139,7 @@ components:
example: true
type: boolean
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- example: some.field
- type: string
+ $ref: '#/components/schemas/SLOs_group_by'
id:
description: The identifier of the SLO.
example: 8853df00-ae2e-11ed-90af-09bb6422b258
@@ -23351,6 +23360,8 @@ components:
description:
description: A description for the SLO.
type: string
+ groupBy:
+ $ref: '#/components/schemas/SLOs_group_by'
indicator:
oneOf:
- $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql'
diff --git a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/bundled.json b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/bundled.json
index 7e28ae729cc46..b8d3e28ce210a 100644
--- a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/bundled.json
+++ b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/bundled.json
@@ -1738,6 +1738,31 @@
}
}
},
+ "group_by": {
+ "title": "Group by",
+ "description": "optional group by field or fields to use to generate an SLO per distinct value",
+ "example": [
+ [
+ "service.name"
+ ],
+ "service.name",
+ [
+ "service.name",
+ "service.environment"
+ ]
+ ],
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
"slo_with_summary_response": {
"title": "SLO response",
"type": "object",
@@ -1835,9 +1860,7 @@
"example": true
},
"groupBy": {
- "description": "optional group by field to use to generate an SLO per distinct value",
- "type": "string",
- "example": "some.field"
+ "$ref": "#/components/schemas/group_by"
},
"instanceId": {
"description": "the value derived from the groupBy field, if present, otherwise '*'",
@@ -2046,9 +2069,7 @@
"$ref": "#/components/schemas/settings"
},
"groupBy": {
- "description": "optional group by field to use to generate an SLO per distinct value",
- "type": "string",
- "example": "some.field"
+ "$ref": "#/components/schemas/group_by"
},
"tags": {
"description": "List of tags",
@@ -2142,6 +2163,9 @@
"settings": {
"$ref": "#/components/schemas/settings"
},
+ "groupBy": {
+ "$ref": "#/components/schemas/group_by"
+ },
"tags": {
"description": "List of tags",
"type": "array",
@@ -2243,9 +2267,7 @@
"example": true
},
"groupBy": {
- "description": "optional group by field to use to generate an SLO per distinct value",
- "type": "string",
- "example": "some.field"
+ "$ref": "#/components/schemas/group_by"
},
"tags": {
"description": "List of tags",
diff --git a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/bundled.yaml b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/bundled.yaml
index 0426d2d03bc89..dc57f3e4ea4f6 100644
--- a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/bundled.yaml
+++ b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/bundled.yaml
@@ -1204,6 +1204,19 @@ components:
example: 0.9836
errorBudget:
$ref: '#/components/schemas/error_budget'
+ group_by:
+ title: Group by
+ description: optional group by field or fields to use to generate an SLO per distinct value
+ example:
+ - - service.name
+ - service.name
+ - - service.name
+ - service.environment
+ oneOf:
+ - type: string
+ - type: array
+ items:
+ type: string
slo_with_summary_response:
title: SLO response
type: object
@@ -1274,9 +1287,7 @@ components:
type: boolean
example: true
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- type: string
- example: some.field
+ $ref: '#/components/schemas/group_by'
instanceId:
description: the value derived from the groupBy field, if present, otherwise '*'
type: string
@@ -1425,9 +1436,7 @@ components:
settings:
$ref: '#/components/schemas/settings'
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- type: string
- example: some.field
+ $ref: '#/components/schemas/group_by'
tags:
description: List of tags
type: array
@@ -1487,6 +1496,8 @@ components:
$ref: '#/components/schemas/objective'
settings:
$ref: '#/components/schemas/settings'
+ groupBy:
+ $ref: '#/components/schemas/group_by'
tags:
description: List of tags
type: array
@@ -1558,9 +1569,7 @@ components:
type: boolean
example: true
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- type: string
- example: some.field
+ $ref: '#/components/schemas/group_by'
tags:
description: List of tags
type: array
diff --git a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/create_slo_request.yaml b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/create_slo_request.yaml
index c3a848fe52133..292836da1c535 100644
--- a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/create_slo_request.yaml
+++ b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/create_slo_request.yaml
@@ -37,9 +37,7 @@ properties:
settings:
$ref: "settings.yaml"
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- type: string
- example: "some.field"
+ $ref: "group_by.yaml"
tags:
description: List of tags
type: array
diff --git a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/group_by.yaml b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/group_by.yaml
new file mode 100644
index 0000000000000..6870d539c17ee
--- /dev/null
+++ b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/group_by.yaml
@@ -0,0 +1,11 @@
+title: Group by
+description: optional group by field or fields to use to generate an SLO per distinct value
+example:
+ - [ "service.name" ]
+ - service.name
+ - [ "service.name", "service.environment" ]
+oneOf:
+ - type: string
+ - type: array
+ items:
+ type: string
diff --git a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/slo_definition_response.yaml b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/slo_definition_response.yaml
index 0b4ffa774d10f..430b105eb32fc 100644
--- a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/slo_definition_response.yaml
+++ b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/slo_definition_response.yaml
@@ -63,9 +63,7 @@ properties:
type: boolean
example: true
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- type: string
- example: "some.field"
+ $ref: "group_by.yaml"
tags:
description: List of tags
type: array
@@ -82,4 +80,4 @@ properties:
version:
description: The internal SLO version
type: number
- example: 2
\ No newline at end of file
+ example: 2
diff --git a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/slo_with_summary_response.yaml b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/slo_with_summary_response.yaml
index df8e35996feb3..3da2423acb154 100644
--- a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/slo_with_summary_response.yaml
+++ b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/slo_with_summary_response.yaml
@@ -67,9 +67,7 @@ properties:
type: boolean
example: true
groupBy:
- description: optional group by field to use to generate an SLO per distinct value
- type: string
- example: "some.field"
+ $ref: "group_by.yaml"
instanceId:
description: the value derived from the groupBy field, if present, otherwise '*'
type: string
@@ -90,4 +88,4 @@ properties:
version:
description: The internal SLO version
type: number
- example: 2
\ No newline at end of file
+ example: 2
diff --git a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/update_slo_request.yaml b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/update_slo_request.yaml
index 8d2c61c7b2249..95603878e8e99 100644
--- a/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/update_slo_request.yaml
+++ b/x-pack/plugins/observability_solution/slo/docs/openapi/slo/components/schemas/update_slo_request.yaml
@@ -26,6 +26,8 @@ properties:
$ref: "objective.yaml"
settings:
$ref: "settings.yaml"
+ groupBy:
+ $ref: "group_by.yaml"
tags:
description: List of tags
type: array
From 5def848d2cee99e337a46f57893c14be1d1c7052 Mon Sep 17 00:00:00 2001
From: Vadim Kibana <82822460+vadimkibana@users.noreply.github.com>
Date: Mon, 30 Sep 2024 18:14:58 +0200
Subject: [PATCH 32/60] [ES|QL] AST package documentation (#194296)
Updates documentation for the ES|QL AST package.
---
packages/kbn-esql-ast/README.md | 97 ++-------
packages/kbn-esql-ast/src/builder/README.md | 39 ++++
packages/kbn-esql-ast/src/parser/README.md | 144 ++++++++++++-
.../kbn-esql-ast/src/pretty_print/README.md | 76 ++++++-
packages/kbn-esql-ast/src/visitor/README.md | 202 +++++++++++++++++-
packages/kbn-esql-ast/src/walker/README.md | 125 ++++++++---
6 files changed, 575 insertions(+), 108 deletions(-)
create mode 100644 packages/kbn-esql-ast/src/builder/README.md
diff --git a/packages/kbn-esql-ast/README.md b/packages/kbn-esql-ast/README.md
index 76232d371b9cb..f7be5248f2ca0 100644
--- a/packages/kbn-esql-ast/README.md
+++ b/packages/kbn-esql-ast/README.md
@@ -1,89 +1,38 @@
-# ES|QL utility library
+# ES|QL AST library
-## Folder structure
+The general idea of this package is to provide low-level ES|QL parsing,
+building, traversal, pretty-printing, and manipulation features on top of a
+custom compact AST representation, which is designed to be resilient to many
+grammar changes.
-This library brings all the foundation data structure to enable all advanced features within an editor for ES|QL as validation, autocomplete, hover, etc...
-The package is structure as follow:
+Contents of this package:
-```
-src
- |- antlr // => contains the ES|QL grammar files and various compilation assets
- | ast_factory.ts // => binding to the Antlr that generates the AST data structure
- | ast_errors.ts // => error translation utility from raw Antlr to something understandable (somewhat)
- | antlr_error_listener.ts // => The ES|QL syntax error listener
- | antlr_facade.ts // => getParser and getLexer utilities
- | ... // => miscellaneas utilities to work with AST
-```
-
-### Basic usage
-
-#### Get AST from a query string
+- [`builder` — Contains the `Builder` class for AST node construction](./src/builder/README.md).
+- [`parser` — Contains text to ES|QL AST parsing code](./src/parser/README.md).
+- [`walker` — Contains the ES|QL AST `Walker` utility](./src/walker/README.md).
+- [`visitor` — Contains the ES|QL AST `Visitor` utility](./src/visitor/README.md).
+- [`pretty_print` — Contains code for formatting AST to text](./src/pretty_print/README.md).
-This module contains the entire logic to translate from a query string into the AST data structure.
-The `getAstAndSyntaxErrors` function returns the AST data structure, unless a syntax error happens in which case the `errors` array gets populated with a Syntax error.
-##### Usage
+## Demo
-```js
-import { getAstAndSyntaxErrors } from '@kbn/esql-ast';
+Much of the functionality of this package is demonstrated in the demo UI. You
+can run it in Storybook, using the following command:
-const queryString = "from index | stats 1 + avg(myColumn) ";
-const { ast, errors} = await astProvider(queryString);
-
-if(errors){
- console.log({ syntaxErrors: errors });
-}
-// do stuff with the ast
+```bash
+yarn storybook esql_ast_inspector
```
-## How does it work
-
-The general idea of this package is to provide all ES|QL features on top of a custom compact AST definition (all data structure types defined in `./types.ts`) which is designed to be resilient to many grammar changes.
-The pipeline is the following:
+Alternatively, you can start Kibana with *Example Plugins* enabled, using:
+```bash
+yarn start --run-examples
```
-Antlr grammar files
-=> Compiled grammar files (.ts assets in the antlr folder)
-=> AST Factory (Antlr Parser tree => custom AST)
-```
-
-Each feature function works with the combination of the AST and the definition files: the former describe the current statement in a easy to traverse way, while the definitions describe what's the expected behaviour of each node in the AST node (i.e. what arguments should it accept? How many arguments? etc...).
-While AST requires the grammar to be compiled to be updated, definitions are static files which can be dynamically updated without running the ANTLR compile task.
-
-#### AST
-
-The AST is generated by 2 files: `ast_factory.ts` and its buddy `ast_walker.ts`:
-* `ast_factory.ts` is a binding to Antlr and access the Parser tree
-* Parser tree is passed over to `ast_walker` to append new AST nodes
-
-In general Antlr is resilient to grammar errors, in the sense that it can produe a Parser tree up to the point of the error, then stops. This is useful to perform partial tasks even with broken queries and this means that a partial AST can be produced even with an invalid query.
-
-### Keeping ES|QL up to date
-
-In general when operating on changes here use the `yarn kbn watch` in a terminal window to make sure changes are correctly compiled.
-
-### How to add new commands/options
-When a new command/option is added to ES|QL it is done via a grammar update.
-Therefore adding them requires a two step phase:
-* Update the grammar with the new one
- * add/fix all AST generator bindings in case of new/changed TOKENS in the `lexer` grammar file
-* Update the definition files for commands/options
+Then navigate to the *ES|QL AST Inspector* plugin in the Kibana UI.
-To update the grammar:
-1. Make sure the `lexer` and `parser` files are up to date with their ES counterparts
- * an existing Kibana CI job is updating them already automatically
-2. Run the script into the `package.json` to compile the ES|QL grammar.
-3. open the `ast_factory.ts` file and add a new `exit` method
-4. write some code in the `ast_walker/ts` to translate the Antlr Parser tree into the custom AST (there are already few utilites for that, but sometimes it is required to write some more code if the `parser` introduced a new flow)
- * pro tip: use the `http://lab.antlr.org/` to visualize/debug the parser tree for a given statement (copy and paste the grammar files there)
-5. if something goes wrong with new quoted/unquoted identifier token, open the `ast_helpers.ts` and check the ids of the new tokens in the `getQuotedText` and `getUnquotedText` functions - please make sure to leave a comment on the token name
-#### Debug and fix grammar changes (tokens, etc...)
+## Keeping ES|QL AST library up to date
-On TOKEN renaming or with subtle `lexer` grammar changes it can happens that test breaks, this can be happen for two main issues:
-* A TOKEN name changed so the `ast_walker.ts` doesn't find it any more. Go there and rename the TOKEN name.
-* TOKEN order changed and tests started failing. This probably generated some TOKEN id reorder and there are two functions in `ast_helpers.ts` who rely on hardcoded ids: `getQuotedText` and `getUnquotedText`.
- * Note that the `getQuotedText` and `getUnquotedText` are automatically updated on grammar changes detected by the Kibana CI sync job.
- * to fix this just look at the commented tokens and update the ids. If a new token add it and leave a comment to point to the new token name.
- * This choice was made to reduce the bundle size, as importing the `esql_parser` adds some hundreds of Kbs to the bundle otherwise.
\ No newline at end of file
+In general when operating on changes here use the `yarn kbn watch` in a terminal
+window to make sure changes are correctly compiled.
diff --git a/packages/kbn-esql-ast/src/builder/README.md b/packages/kbn-esql-ast/src/builder/README.md
new file mode 100644
index 0000000000000..8b874579dab29
--- /dev/null
+++ b/packages/kbn-esql-ast/src/builder/README.md
@@ -0,0 +1,39 @@
+# Builder
+
+Contains the `Builder` class for AST node construction. It provides the most
+low-level stateless AST node construction API.
+
+The `Builder` API can be used when constructing AST nodes from scratch manually,
+and it is also used by the parser to construct the AST nodes during the parsing
+process.
+
+When parsing the AST nodes will typically have more information, such as the
+position in the source code, and other metadata. When constructing the AST nodes
+manually, this information is not available, but the `Builder` API can still be
+used as it permits to skip the metadata.
+
+
+## Usage
+
+Construct a `literal` expression node:
+
+```typescript
+import { Builder } from '@kbn/esql-ast';
+
+const node = Builder.expression.literal.numeric({ value: 42, literalType: 'integer' });
+```
+
+Returns:
+
+```js
+{
+ type: 'literal',
+ literalType: 'integer',
+ value: 42,
+ name: '42',
+
+ location: { min: 0, max: 0 },
+ text: '',
+ incomplete: false,
+}
+```
diff --git a/packages/kbn-esql-ast/src/parser/README.md b/packages/kbn-esql-ast/src/parser/README.md
index 1500be94c40c8..e054c8999714c 100644
--- a/packages/kbn-esql-ast/src/parser/README.md
+++ b/packages/kbn-esql-ast/src/parser/README.md
@@ -1,6 +1,91 @@
+# ES|QL Parser
+
+The Kibana ES|QL parser uses the ANTLR library for lexing and parse tree (CST)
+generation. The ANTLR grammar is imported from the Elasticsearch repository in
+an automated CI job.
+
+We use the ANTLR outputs: (1) the token stream; and (2) the parse tree to
+generate (1) the Abstract Syntax Tree (AST), (2) for syntax validation, (3) for
+syntax highlighting, and (4) for formatting (comment and whitespace) extraction
+and assignment to AST nodes.
+
+In general ANTLR is resilient to grammar errors, in the sense that it can
+produce a Parser tree up to the point of the error, then stops. This is useful
+to perform partial tasks even with broken queries and this means that a partial
+AST can be produced even with an invalid query.
+
+
+## Folder structure
+
+The parser is structured as follows:
+
+```
+src/
+|- parser/ Contains the logic to parse the ES|QL query and generate the AST.
+| |- factories.ts Contains AST node factories.
+| |- antlr_error_listener.ts Contains code which traverses ANTLR CST and collects syntax errors.
+| |- esql_ast_builder_listener.ts Contains code which traverses ANTLR CST and builds the AST.
+|
+|- antlr/ Contains the autogenerated ES|QL ANTLR grammar files and various compilation assets.
+ |- esql_lexer.g4 Contains the ES|QL ANTLR lexer grammar.
+ |- esql_parser.g4 Contains the ES|QL ANTLR parser grammar.
+```
+
+
+## Usage
+
+### Get AST from a query string
+
+The `parse` function returns the AST data structure, unless a syntax error
+happens in which case the `errors` array gets populated with a Syntax errors.
+
+```js
+import { parse } from '@kbn/esql-ast';
+
+const src = "FROM index | STATS 1 + AVG(myColumn) ";
+const { root, errors } = await parse(src);
+
+if(errors){
+ console.log({ syntaxErrors: errors });
+}
+
+// do stuff with the ast
+```
+
+The `root` is the root node of the AST. The AST is a tree structure where each
+node represents a part of the query. Each node has a `type` property which
+indicates the type of the node.
+
+
+### Parse a query and populate the AST with comments
+
+When calling the `parse` method with the `withFormatting` flag set to `true`,
+the AST will be populated with comments.
+
+```js
+import { parse } from '@kbn/esql-ast';
+
+const src = "FROM /* COMMENT */ index";
+const { root } = await parse(src, { withFormatting: true });
+```
+
+
## Comments
-### Inter-node comment places
+By default, when parsing the AST does not include any *formatting* information,
+such as comments or whitespace. This is because the AST is designed to be
+compact and to be used for syntax validation, syntax highlighting, and other
+high-level operations.
+
+However, sometimes it is useful to have comments attached to the AST nodes. The
+parser can collect all comments when the `withFormatting` flag is set to `true`
+and attach them to the AST nodes. The comments are attached to the closest node,
+while also considering the surrounding punctuation.
+
+### Inter-node comments
+
+Currently, when parsed inter-node comments are attached to the node from the
+left side.
Around colon in source identifier:
@@ -25,3 +110,60 @@ Time interface expressions:
```eslq
STATS 1 /* asdf */ DAY
```
+
+
+## Internal Details
+
+
+### How does it work?
+
+The pipeline is the following:
+
+1. ANTLR grammar files are added to Kibana.
+2. ANTLR grammar files are compiled to `.ts` assets in the `antlr` folder.
+3. A query is parsed to a CST by ANTLR.
+4. The `ESQLAstBuilderListener` traverses the CST and builds the AST.
+5. Optionally:
+ 1. Comments and whitespace are extracted from the ANTLR lexer's token stream.
+ 2. The comments and whitespace are attached to the AST nodes.
+
+
+### How to add new commands/options?
+
+When a new command/option is added to ES|QL it is done via a grammar update.
+Therefore adding them requires a two step phase:
+
+To update the grammar:
+
+1. Make sure the `lexer` and `parser` files are up to date with their ES
+ counterparts.
+ * an existing Kibana CI job is updating them already automatically
+2. Run the script into the `package.json` to compile the ES|QL grammar.
+3. open the `ast_factory.ts` file and add a new `exit` method
+4. write some code in the `ast_walker/ts` to translate the Antlr Parser tree
+ into the custom AST (there are already few utilites for that, but sometimes
+ it is required to write some more code if the `parser` introduced a new flow)
+ * pro tip: use the `http://lab.antlr.org/` to visualize/debug the parser tree
+ for a given statement (copy and paste the grammar files there)
+5. if something goes wrong with new quoted/unquoted identifier token, open
+ the `ast_helpers.ts` and check the ids of the new tokens in the `getQuotedText`
+ and `getUnquotedText` functions, please make sure to leave a comment on the
+ token name
+
+
+#### Debug and fix grammar changes (tokens, etc...)
+
+On token renaming or with subtle `lexer` grammar changes it can happens that
+test breaks, this can be happen for two main issues:
+
+* A token name changed so the `esql_ast_builder_listener.ts` doesn't find it any
+ more. Go there and rename the TOKEN name.
+* Token order changed and tests started failing. This probably generated some
+ token id reorder and there are two functions in `helpers.ts` who rely on
+ hardcoded ids: `getQuotedText` and `getUnquotedText`.
+ * Note that the `getQuotedText` and `getUnquotedText` are automatically
+ updated on grammar changes detected by the Kibana CI sync job.
+ * to fix this just look at the commented tokens and update the ids. If a new
+ token add it and leave a comment to point to the new token name.
+ * This choice was made to reduce the bundle size, as importing the
+ `esql_parser` adds some hundreds of Kbs to the bundle otherwise.
diff --git a/packages/kbn-esql-ast/src/pretty_print/README.md b/packages/kbn-esql-ast/src/pretty_print/README.md
index 48066697a5a7e..1d600fc19d3bc 100644
--- a/packages/kbn-esql-ast/src/pretty_print/README.md
+++ b/packages/kbn-esql-ast/src/pretty_print/README.md
@@ -4,20 +4,82 @@
human-readable string. This is useful for debugging or for displaying
the AST to the user.
-This module provides a number of pretty-printing options.
+This module provides a number of pretty-printing facilities. There are two
+main classes that provide pretty-printing:
+
+- `BasicPrettyPrinter` — provides the basic pretty-printing to a single
+ line.
+- `WrappingPrettyPrinter` — provides more advanced pretty-printing, which
+ can wrap the query to multiple lines, and can also wrap the query to a
+ specific width.
## `BasicPrettyPrinter`
-The `BasicPrettyPrinter` class provides the most basic pretty-printing—it
-prints a query to a single line. Or it can print a query with each command on
-a separate line, with the ability to customize the indentation before the pipe
-character.
+The `BasicPrettyPrinter` class provides the simpler pretty-printing
+functionality—it prints a query to a single line. Or, it can print a query
+with each command on a separate line, with the ability to customize the
+indentation before the pipe character.
+
+Usage:
+
+```typescript
+import { parse, BasicPrettyPrinter } from '@kbn/esql-ast';
+
+const src = 'FROM index | LIMIT 10';
+const { root } = parse(src);
+const text = BasicPrettyPrinter.print(root);
+
+console.log(text); // FROM index | LIMIT 10
+```
+
+It can print each command on a separate line, with a custom indentation before
+the pipe character:
+
+```typescript
+const text = BasicPrettyPrinter.multiline(root, { pipeTab: ' ' });
+```
It can also print a single command to a single line; or an expression to a
-single line.
+single line. Below is the summary of the top-level functions:
- `BasicPrettyPrinter.print()` — prints query to a single line.
- `BasicPrettyPrinter.multiline()` — prints a query to multiple lines.
- `BasicPrettyPrinter.command()` — prints a command to a single line.
-- `BasicPrettyPrinter.expression()` — prints an expression to a single line.
+- `BasicPrettyPrinter.expression()` — prints an expression to a single
+ line.
+
+See `BasicPrettyPrinterOptions` for formatting options. For example, a
+`lowercase` options allows you to lowercase all ES|QL keywords:
+
+```typescript
+const text = BasicPrettyPrinter.print(root, { lowercase: true });
+```
+
+The `BasicPrettyPrinter` prints only *left* and *right* multi-line comments,
+which do not have line breaks, as this formatter is designed to print a query
+to a single line. If you need to print a query to multiple lines, use the
+`WrappingPrettyPrinter`.
+
+
+## `WrappingPrettyPrinter`
+
+The *wrapping pretty printer* can print a query to multiple lines, and can wrap
+the text to a new line if the line width exceeds a certain threshold. It also
+prints all comments attached to the AST (including ones that force the text
+to be wrapped).
+
+Usage:
+
+```typescript
+import { parse, WrappingPrettyPrinter } from '@kbn/esql-ast';
+
+const src = `
+ FROM index /* this is a comment */
+ | LIMIT 10`;
+const { root } = parse(src, { withFormatting: true });
+const text = WrappingPrettyPrinter.print(root);
+```
+
+See `WrappingPrettyPrinterOptions` interface for available formatting options.
+
diff --git a/packages/kbn-esql-ast/src/visitor/README.md b/packages/kbn-esql-ast/src/visitor/README.md
index c952c8a34d8d9..20d55c0967e10 100644
--- a/packages/kbn-esql-ast/src/visitor/README.md
+++ b/packages/kbn-esql-ast/src/visitor/README.md
@@ -1,4 +1,28 @@
-## High-level AST structure
+# `Visitor` Traversal API
+
+The `Visitor` traversal API provides a feature-rich way to traverse the ES|QL
+AST. It is more powerful than the [`Walker` API](../walker/README.md), as it
+allows to traverse the AST in a more flexible way.
+
+The `Visitor` API allows to traverse the AST starting from the root node or a
+command statement, or an expression. Unlike in the `Walker` API, the `Visitor`
+does not automatically traverse the entire AST. Instead, the developer has to
+manually call the necessary *visit* methods to traverse the AST. This allows
+to traverse the AST in a more flexible way: only traverse the parts of the AST
+that are needed, or maybe traverse the AST in a different order, or multiple
+times.
+
+The `Visitor` API is also more powerful than the `Walker` API, as for each
+visitor callback it provides a *context* object, which contains the information
+about the current node as well as the parent node, and the whole parent chain
+up to the root node.
+
+In addition, each visitor callback can return a value (*output*), which is then
+passed to the parent node, in the place where the visitor was called. Also, when
+a child is visited, the parent node can pass in *input* to the child visitor.
+
+
+## About ES|QL AST structure
Broadly, there are two AST node types: (1) commands (say `FROM ...`, like
*statements* in other languages), and (2) expressions (say `a + b`, or `fn()`).
@@ -59,7 +83,8 @@ As of this writing, the following expressions are defined:
- Column identifier expression, `{type: "column"}`, like `@timestamp`
- Function call expression, `{type: "function"}`, like `fn(123)`
- Literal expression, `{type: "literal"}`, like `123`, `"hello"`
-- List literal expression, `{type: "list"}`, like `[1, 2, 3]`, `["a", "b", "c"]`, `[true, false]`
+- List literal expression, `{type: "list"}`, like `[1, 2, 3]`,
+ `["a", "b", "c"]`, `[true, false]`
- Time interval expression, `{type: "interval"}`, like `1h`, `1d`, `1w`
- Inline cast expression, `{type: "cast"}`, like `abc::int`, `def::string`
- Unknown node, `{type: "unknown"}`
@@ -67,3 +92,176 @@ As of this writing, the following expressions are defined:
Each expression has a `visitExpressionX` callback, where `X` is the type of the
expression. If a expression-specific callback is not found, the generic
`visitExpression` callback is called.
+
+
+## `Visitor` API Usage
+
+The `Visitor` API is used to traverse the AST. The process is as follows:
+
+1. Create a new `Visitor` instance.
+2. Register callbacks for the nodes you are interested in.
+3. Call the `visitQuery`, `visitCommand`, or `visitExpression` method to start
+ the traversal.
+
+For example, the below code snippet prints the type of each expression node:
+
+```typescript
+new Visitor()
+ .on('visitExpression', (ctx) => console.log(ctx.node.type))
+ .on('visitCommand', (ctx) => [...ctx.visitArguments()])
+ .on('visitQuery', (ctx) => [...ctx.visitCommands()])
+ .visitQuery(root);
+```
+
+In the `visitQuery` callback it visits all commands, using the `visitCommands`.
+In the `visitCommand` callback it visits all arguments, using the
+`visitArguments`. And finally, in the `visitExpression` callback it prints the
+type of the expression node.
+
+Above we started the traversal from the root node, using the `.visitQuery(root)`
+method. However, one can start the traversal from any node, by calling the
+following methods:
+
+- `.visitQuery()` — Start traversal from the root node.
+- `.visitCommand()` — Start traversal from a command node.
+- `.visitExpression()` — Start traversal from an expression node.
+
+
+### Specifying Callbacks
+
+The simplest way to traverse the AST is to specify the below three callbacks:
+
+- `visitQuery` — Called for every query node. (Normally once.)
+- `visitCommand` — Called for every command node.
+- `visitExpression` — Called for every expression node.
+
+
+However, you can be more specific and specify callbacks for commands and
+expression types. This way the context `ctx` provided to the callback will have
+helpful methods specific to the node type.
+
+When a more specific callback is not found, the generic `visitCommand` or
+`visitExpression` callbacks are not called for that node.
+
+You can specify a specific callback for each command, instead of the generic
+`visitCommand`:
+
+- `visitFromCommand` — Called for every `FROM` command node.
+- `visitLimitCommand` — Called for every `LIMIT` command node.
+- `visitExplainCommand` — Called for every `EXPLAIN` command node.
+- `visitRowCommand` — Called for every `ROW` command node.
+- `visitMetricsCommand` — Called for every `METRICS` command node.
+- `visitShowCommand` — Called for every `SHOW` command node.
+- `visitMetaCommand` — Called for every `META` command node.
+- `visitEvalCommand` — Called for every `EVAL` command node.
+- `visitStatsCommand` — Called for every `STATS` command node.
+- `visitInlineStatsCommand` — Called for every `INLINESTATS` command node.
+- `visitLookupCommand` — Called for every `LOOKUP` command node.
+- `visitKeepCommand` — Called for every `KEEP` command node.
+- `visitSortCommand` — Called for every `SORT` command node.
+- `visitWhereCommand` — Called for every `WHERE` command node.
+- `visitDropCommand` — Called for every `DROP` command node.
+- `visitRenameCommand` — Called for every `RENAME` command node.
+- `visitDissectCommand` — Called for every `DISSECT` command node.
+- `visitGrokCommand` — Called for every `GROK` command node.
+- `visitEnrichCommand` — Called for every `ENRICH` command node.
+- `visitMvExpandCommand` — Called for every `MV_EXPAND` command node.
+
+Similarly, you can specify a specific callback for each expression type, instead
+of the generic `visitExpression`:
+
+- `visitColumnExpression` — Called for every column expression node, say
+ `@timestamp`.
+- `visitSourceExpression` — Called for every source expression node, say
+ `tsdb_index`.
+- `visitFunctionCallExpression` — Called for every function call
+ expression node. Including binary expressions, such as `a + b`.
+- `visitLiteralExpression` — Called for every literal expression node, say
+ `123`, `"hello"`.
+- `visitListLiteralExpression` — Called for every list literal expression
+ node, say `[1, 2, 3]`, `["a", "b", "c"]`.
+- `visitTimeIntervalLiteralExpression` — Called for every time interval
+ literal expression node, say `1h`, `1d`, `1w`.
+- `visitInlineCastExpression` — Called for every inline cast expression
+ node, say `abc::int`, `def::string`.
+- `visitRenameExpression` — Called for every rename expression node, say
+ `a AS b`.
+- `visitOrderExpression` — Called for every order expression node, say
+ `@timestamp ASC`.
+
+
+### Using the Node Context
+
+Each visitor callback receives a `ctx` object, which contains the reference to
+the parent node's context:
+
+```typescript
+new Visitor()
+ .on('visitExpression', (ctx) => {
+ ctx.parent
+ });
+```
+
+Each visitor callback also contains various methods to visit the children nodes,
+if needed. For example, to visit all arguments of a command node:
+
+```typescript
+const expressions = [];
+
+new Visitor()
+ .on('visitExpression', (ctx) => expressions.push(ctx.node));
+ .on('visitCommand', (ctx) => {
+ for (const output of ctx.visitArguments()) {
+ }
+ });
+```
+
+The node context object may also have node specific methods. For example, the
+`LIMIT` command context has the `.numeric()` method, which returns the numeric
+value of the `LIMIT` command:
+
+```typescript
+new Visitor()
+ .on('visitLimitCommand', (ctx) => {
+ console.log(ctx.numeric());
+ })
+ .on('visitCommand', () => null)
+ .on('visitQuery', (ctx) => [...ctx.visitCommands()])
+ .visitQuery(root);
+```
+
+
+### Using the Visitor Output
+
+Each visitor callback can return a *output*, which is then passed to the parent
+callback. This allows to pass information from the child node to the parent
+node.
+
+For example, the below code snippet collects all column names in the AST:
+
+```typescript
+const columns = new Visitor()
+ .on('visitExpression', (ctx) => null)
+ .on('visitColumnExpression', (ctx) => ctx.node.name)
+ .on('visitCommand', (ctx) => [...ctx.visitArguments()])
+ .on('visitQuery', (ctx) => [...ctx.visitCommands()])
+ .visitQuery(root);
+```
+
+
+### Using the Visitor Input
+
+Analogous to the output, each visitor callback can receive an *input* value.
+This allows to pass information from the parent node to the child node.
+
+For example, the below code snippet prints all column names prefixed with the
+text `"prefix"`:
+
+```typescript
+new Visitor()
+ .on('visitExpression', (ctx) => null)
+ .on('visitColumnExpression', (ctx, INPUT) => console.log(INPUT + ctx.node.name))
+ .on('visitCommand', (ctx) => [...ctx.visitArguments("prefix")])
+ .on('visitQuery', (ctx) => [...ctx.visitCommands()])
+ .visitQuery(root);
+```
diff --git a/packages/kbn-esql-ast/src/walker/README.md b/packages/kbn-esql-ast/src/walker/README.md
index 74e834e9095bc..4614350279b0c 100644
--- a/packages/kbn-esql-ast/src/walker/README.md
+++ b/packages/kbn-esql-ast/src/walker/README.md
@@ -1,41 +1,118 @@
-# ES|QL AST Walker
+# `Walker` Traversal API
-The ES|QL AST Walker is a utility that traverses the ES|QL AST and provides a
-set of callbacks that can be used to perform introspection of the AST.
+The ES|QL AST `Walker` is a utility that traverses the ES|QL AST. The developer
+can provide a set of callbacks which are called when the walker visits a
+specific type of node.
+
+The `Walker` utility allows to traverse the AST starting from any node, not just
+the root node.
+
+
+## Low-level API
To start a new *walk* you create a `Walker` instance and call the `walk()` method
with the AST node to start the walk from.
```ts
-
-import { Walker, getAstAndSyntaxErrors } from '@kbn/esql-ast';
+import { Walker } from '@kbn/esql-ast';
const walker = new Walker({
- // Called every time a function node is visited.
- visitFunction: (fn) => {
+ /**
+ * Visit commands
+ */
+ visitCommand: (node: ESQLCommand) => {
+ // Called for every command node.
+ },
+ visitCommandOption: (node: ESQLCommandOption) => {
+ // Called for every command option node.
+ },
+
+ /**
+ * Visit expressions
+ */
+ visitFunction: (fn: ESQLFunction) => {
+ // Called every time a function expression is visited.
console.log('Function:', fn.name);
},
- // Called every time a source identifier node is visited.
- visitSource: (source) => {
+ visitSource: (source: ESQLSource) => {
+ // Called every time a source identifier expression is visited.
console.log('Source:', source.name);
},
+ visitQuery: (node: ESQLAstQueryExpression) => {
+ // Called for every query node.
+ },
+ visitColumn: (node: ESQLColumn) => {
+ // Called for every column node.
+ },
+ visitLiteral: (node: ESQLLiteral) => {
+ // Called for every literal node.
+ },
+ visitListLiteral: (node: ESQLList) => {
+ // Called for every list literal node.
+ },
+ visitTimeIntervalLiteral: (node: ESQLTimeInterval) => {
+ // Called for every time interval literal node.
+ },
+ visitInlineCast: (node: ESQLInlineCast) => {
+ // Called for every inline cast node.
+ },
});
-const { ast } = getAstAndSyntaxErrors('FROM source | STATS fn()');
walker.walk(ast);
```
-Conceptual structure of an ES|QL AST:
-
-- A single ES|QL query is composed of one or more source commands and zero or
- more transformation commands.
-- Each command is represented by a `command` node.
-- Each command contains a list expressions named in ES|QL AST as *AST Item*.
- - `function` — function call expression.
- - `option` — a list of expressions with a specific role in the command.
- - `source` — s source identifier expression.
- - `column` — a field identifier expression.
- - `timeInterval` — a time interval expression.
- - `list` — a list literal expression.
- - `literal` — a literal expression.
- - `inlineCast` — an inline cast expression.
+It is also possible to provide a single `visitAny` callback that is called for
+any node type that does not have a specific visitor.
+
+```ts
+import { Walker } from '@kbn/esql-ast';
+
+const walker = new Walker({
+ visitAny?: (node: ESQLProperNode) => {
+ // Called for any node type that does not have a specific visitor.
+ },
+});
+
+walker.walk(ast);
+```
+
+
+## High-level API
+
+There are few high-level utility functions that are implemented on top of the
+low-level API, for your convenience:
+
+- `Walker.walk` — Walks the AST and calls the appropriate visitor functions.
+- `Walker.commands` — Walks the AST and extracts all command statements.
+- `Walker.params` — Walks the AST and extracts all parameter literals.
+- `Walker.find` — Finds and returns the first node that matches the search criteria.
+- `Walker.findAll` — Finds and returns all nodes that match the search criteria.
+- `Walker.match` — Matches a single node against a template object.
+- `Walker.matchAll` — Matches all nodes against a template object.
+- `Walker.findFunction` — Finds the first function that matches the predicate.
+- `Walker.hasFunction` — Searches for at least one occurrence of a function or expression in the AST.
+- `Walker.visitComments` — Visits all comments in the AST.
+
+The `Walker.walk()` method is simply a sugar syntax around the low-level
+`new Walker().walk()` method.
+
+The `Walker.commands()` method returns a list of all commands. This also
+includes nested commands, once they become supported in ES|QL.
+
+The `Walker.params()` method collects all param literals, such as unnamed `?` or
+named `?param`, or ordered `?1`.
+
+The `Walker.find()` and `Walker.findAll()` methods are used to search for nodes
+in the AST that match a specific criteria. The criteria is specified using a
+predicate function.
+
+The `Walker.match()` and `Walker.matchAll()` methods are also used to search for
+nodes in the AST, but unlike `find` and `findAll`, they use a template object
+to match the nodes.
+
+The `Walker.findFunction()` is a simple utility to find the first function that
+matches a predicate. The `Walker.hasFunction()` returns `true` if at least one
+function or expression in the AST matches the predicate.
+
+The `Walker.visitComments()` method is used to visit all comments in the AST.
+You specify a callback that is called for each comment node.
From 7aa64b6ed59488ab10a5136199b69de0c86668af Mon Sep 17 00:00:00 2001
From: Julia Rechkunova
Date: Mon, 30 Sep 2024 18:20:21 +0200
Subject: [PATCH 33/60] [OneDiscover] Add EBT event to track field usage
(#193996)
- Closes https://github.com/elastic/kibana/issues/186156
- Closes https://github.com/elastic/kibana/issues/189454
## Summary
This PR adds new EBT event type `discover_field_usage` which we use for
tracking adding and removing grid columns and adding filters via
+/-/exists buttons. Properties of the added events consist of:
`eventType`: `dataTableSelection`, `dataTableRemoval`, or
`filterAddition`
`fieldName`: name of the field if it's from ECS schema
`filterOperation`: `+`, `-`, or `_exists_`
## Testing
Enable "Usage collection" global setting.
Navigate to Discover and observe `kibana-browser` requests in Network
tab.
### 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
---
.../discover/public/__mocks__/services.ts | 2 +
.../application/context/context_app.test.tsx | 1 +
.../application/context/context_app.tsx | 31 +-
.../components/layout/discover_documents.tsx | 32 +-
.../components/layout/discover_layout.tsx | 40 ++-
src/plugins/discover/public/build_services.ts | 10 +-
.../context_awareness/__mocks__/index.tsx | 8 +-
.../profiles_manager.test.ts | 4 +-
.../context_awareness/profiles_manager.ts | 10 +-
src/plugins/discover/public/plugin.tsx | 86 +++--
.../discover_ebt_context_manager.test.ts | 95 -----
.../services/discover_ebt_context_manager.ts | 75 ----
.../services/discover_ebt_manager.test.ts | 242 +++++++++++++
.../public/services/discover_ebt_manager.ts | 219 ++++++++++++
.../context_awareness/_data_source_profile.ts | 101 +-----
.../discover/context_awareness/_telemetry.ts | 326 ++++++++++++++++++
.../apps/discover/context_awareness/index.ts | 1 +
17 files changed, 946 insertions(+), 337 deletions(-)
delete mode 100644 src/plugins/discover/public/services/discover_ebt_context_manager.test.ts
delete mode 100644 src/plugins/discover/public/services/discover_ebt_context_manager.ts
create mode 100644 src/plugins/discover/public/services/discover_ebt_manager.test.ts
create mode 100644 src/plugins/discover/public/services/discover_ebt_manager.ts
create mode 100644 test/functional/apps/discover/context_awareness/_telemetry.ts
diff --git a/src/plugins/discover/public/__mocks__/services.ts b/src/plugins/discover/public/__mocks__/services.ts
index 3d78239558f3e..f00d105444630 100644
--- a/src/plugins/discover/public/__mocks__/services.ts
+++ b/src/plugins/discover/public/__mocks__/services.ts
@@ -45,6 +45,7 @@ import { SearchResponse } from '@elastic/elasticsearch/lib/api/types';
import { urlTrackerMock } from './url_tracker.mock';
import { createElement } from 'react';
import { createContextAwarenessMocks } from '../context_awareness/__mocks__';
+import { DiscoverEBTManager } from '../services/discover_ebt_manager';
export function createDiscoverServicesMock(): DiscoverServices {
const dataPlugin = dataPluginMock.createStartContract();
@@ -245,6 +246,7 @@ export function createDiscoverServicesMock(): DiscoverServices {
singleDocLocator: { getRedirectUrl: jest.fn(() => '') },
urlTracker: urlTrackerMock,
profilesManager: profilesManagerMock,
+ ebtManager: new DiscoverEBTManager(),
setHeaderActionMenu: jest.fn(),
} as unknown as DiscoverServices;
}
diff --git a/src/plugins/discover/public/application/context/context_app.test.tsx b/src/plugins/discover/public/application/context/context_app.test.tsx
index 9c77d1e40bbb2..7a99194cad575 100644
--- a/src/plugins/discover/public/application/context/context_app.test.tsx
+++ b/src/plugins/discover/public/application/context/context_app.test.tsx
@@ -72,6 +72,7 @@ describe('ContextApp test', () => {
contextLocator: { getRedirectUrl: jest.fn(() => '') },
singleDocLocator: { getRedirectUrl: jest.fn(() => '') },
profilesManager: discoverServices.profilesManager,
+ ebtManager: discoverServices.ebtManager,
timefilter: discoverServices.timefilter,
uiActions: discoverServices.uiActions,
} as unknown as DiscoverServices;
diff --git a/src/plugins/discover/public/application/context/context_app.tsx b/src/plugins/discover/public/application/context/context_app.tsx
index e0dfa985b594e..b0fc1342a8f72 100644
--- a/src/plugins/discover/public/application/context/context_app.tsx
+++ b/src/plugins/discover/public/application/context/context_app.tsx
@@ -56,6 +56,8 @@ export const ContextApp = ({ dataView, anchorId, referrer }: ContextAppProps) =>
navigation,
filterManager,
core,
+ ebtManager,
+ fieldsMetadata,
} = services;
const isLegacy = useMemo(() => uiSettings.get(DOC_TABLE_LEGACY), [uiSettings]);
@@ -199,15 +201,36 @@ export const ContextApp = ({ dataView, anchorId, referrer }: ContextAppProps) =>
);
const addFilter = useCallback(
- async (field: DataViewField | string, values: unknown, operation: string) => {
+ async (field: DataViewField | string, values: unknown, operation: '+' | '-') => {
const newFilters = generateFilters(filterManager, field, values, operation, dataView);
filterManager.addFilters(newFilters);
if (dataViews) {
const fieldName = typeof field === 'string' ? field : field.name;
await popularizeField(dataView, fieldName, dataViews, capabilities);
+ void ebtManager.trackFilterAddition({
+ fieldName: fieldName === '_exists_' ? String(values) : fieldName,
+ filterOperation: fieldName === '_exists_' ? '_exists_' : operation,
+ fieldsMetadata,
+ });
}
},
- [filterManager, dataViews, dataView, capabilities]
+ [filterManager, dataViews, dataView, capabilities, ebtManager, fieldsMetadata]
+ );
+
+ const onAddColumnWithTracking = useCallback(
+ (columnName: string) => {
+ onAddColumn(columnName);
+ void ebtManager.trackDataTableSelection({ fieldName: columnName, fieldsMetadata });
+ },
+ [onAddColumn, ebtManager, fieldsMetadata]
+ );
+
+ const onRemoveColumnWithTracking = useCallback(
+ (columnName: string) => {
+ onRemoveColumn(columnName);
+ void ebtManager.trackDataTableRemoval({ fieldName: columnName, fieldsMetadata });
+ },
+ [onRemoveColumn, ebtManager, fieldsMetadata]
);
const TopNavMenu = navigation.ui.AggregateQueryTopNavMenu;
@@ -271,8 +294,8 @@ export const ContextApp = ({ dataView, anchorId, referrer }: ContextAppProps) =>
isLegacy={isLegacy}
columns={columns}
grid={appState.grid}
- onAddColumn={onAddColumn}
- onRemoveColumn={onRemoveColumn}
+ onAddColumn={onAddColumnWithTracking}
+ onRemoveColumn={onRemoveColumnWithTracking}
onSetColumns={onSetColumns}
predecessorCount={appState.predecessorCount}
successorCount={appState.successorCount}
diff --git a/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx b/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx
index 2fe2a4f5a8f93..77befc4dc334f 100644
--- a/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx
+++ b/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx
@@ -117,7 +117,7 @@ function DiscoverDocumentsComponent({
const services = useDiscoverServices();
const documents$ = stateContainer.dataState.data$.documents$;
const savedSearch = useSavedSearchInitial();
- const { dataViews, capabilities, uiSettings, uiActions } = services;
+ const { dataViews, capabilities, uiSettings, uiActions, ebtManager, fieldsMetadata } = services;
const [
dataSource,
query,
@@ -200,6 +200,22 @@ function DiscoverDocumentsComponent({
settings: grid,
});
+ const onAddColumnWithTracking = useCallback(
+ (columnName: string) => {
+ onAddColumn(columnName);
+ void ebtManager.trackDataTableSelection({ fieldName: columnName, fieldsMetadata });
+ },
+ [onAddColumn, ebtManager, fieldsMetadata]
+ );
+
+ const onRemoveColumnWithTracking = useCallback(
+ (columnName: string) => {
+ onRemoveColumn(columnName);
+ void ebtManager.trackDataTableRemoval({ fieldName: columnName, fieldsMetadata });
+ },
+ [onRemoveColumn, ebtManager, fieldsMetadata]
+ );
+
const setExpandedDoc = useCallback(
(doc: DataTableRecord | undefined) => {
stateContainer.internalState.transitions.setExpandedDoc(doc);
@@ -299,14 +315,22 @@ function DiscoverDocumentsComponent({
columnsMeta={customColumnsMeta}
savedSearchId={savedSearch.id}
onFilter={onAddFilter}
- onRemoveColumn={onRemoveColumn}
- onAddColumn={onAddColumn}
+ onRemoveColumn={onRemoveColumnWithTracking}
+ onAddColumn={onAddColumnWithTracking}
onClose={() => setExpandedDoc(undefined)}
setExpandedDoc={setExpandedDoc}
query={query}
/>
),
- [dataView, onAddColumn, onAddFilter, onRemoveColumn, query, savedSearch.id, setExpandedDoc]
+ [
+ dataView,
+ onAddColumnWithTracking,
+ onAddFilter,
+ onRemoveColumnWithTracking,
+ query,
+ savedSearch.id,
+ setExpandedDoc,
+ ]
);
const configRowHeight = uiSettings.get(ROW_HEIGHT_OPTION);
diff --git a/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx b/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx
index 49e645e3f2206..bc9cad72a5eb6 100644
--- a/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx
+++ b/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx
@@ -78,6 +78,8 @@ export function DiscoverLayout({ stateContainer }: DiscoverLayoutProps) {
spaces,
observabilityAIAssistant,
dataVisualizer: dataVisualizerService,
+ ebtManager,
+ fieldsMetadata,
} = useDiscoverServices();
const pageBackgroundColor = useEuiBackgroundColor('plain');
const globalQueryState = data.query.getState();
@@ -154,6 +156,22 @@ export function DiscoverLayout({ stateContainer }: DiscoverLayoutProps) {
settings: grid,
});
+ const onAddColumnWithTracking = useCallback(
+ (columnName: string) => {
+ onAddColumn(columnName);
+ void ebtManager.trackDataTableSelection({ fieldName: columnName, fieldsMetadata });
+ },
+ [onAddColumn, ebtManager, fieldsMetadata]
+ );
+
+ const onRemoveColumnWithTracking = useCallback(
+ (columnName: string) => {
+ onRemoveColumn(columnName);
+ void ebtManager.trackDataTableRemoval({ fieldName: columnName, fieldsMetadata });
+ },
+ [onRemoveColumn, ebtManager, fieldsMetadata]
+ );
+
// The assistant is getting the state from the url correctly
// expect from the index pattern where we have only the dataview id
useEffect(() => {
@@ -175,9 +193,14 @@ export function DiscoverLayout({ stateContainer }: DiscoverLayoutProps) {
if (trackUiMetric) {
trackUiMetric(METRIC_TYPE.CLICK, 'filter_added');
}
+ void ebtManager.trackFilterAddition({
+ fieldName: fieldName === '_exists_' ? String(values) : fieldName,
+ filterOperation: fieldName === '_exists_' ? '_exists_' : operation,
+ fieldsMetadata,
+ });
return filterManager.addFilters(newFilters);
},
- [filterManager, dataView, dataViews, trackUiMetric, capabilities]
+ [filterManager, dataView, dataViews, trackUiMetric, capabilities, ebtManager, fieldsMetadata]
);
const getOperator = (fieldName: string, values: unknown, operation: '+' | '-') => {
@@ -222,8 +245,13 @@ export function DiscoverLayout({ stateContainer }: DiscoverLayoutProps) {
if (trackUiMetric) {
trackUiMetric(METRIC_TYPE.CLICK, 'esql_filter_added');
}
+ void ebtManager.trackFilterAddition({
+ fieldName: fieldName === '_exists_' ? String(values) : fieldName,
+ filterOperation: fieldName === '_exists_' ? '_exists_' : operation,
+ fieldsMetadata,
+ });
},
- [data.query.queryString, query, trackUiMetric]
+ [data.query.queryString, query, trackUiMetric, ebtManager, fieldsMetadata]
);
const onFilter = isEsqlMode ? onPopulateWhereClause : onAddFilter;
@@ -274,8 +302,8 @@ export function DiscoverLayout({ stateContainer }: DiscoverLayoutProps) {
return undefined;
}
- return () => onAddColumn(draggingFieldName);
- }, [onAddColumn, draggingFieldName, currentColumns]);
+ return () => onAddColumnWithTracking(draggingFieldName);
+ }, [onAddColumnWithTracking, draggingFieldName, currentColumns]);
const [sidebarToggleState$] = useState>(
() => new BehaviorSubject({ isCollapsed: false, toggle: () => {} })
@@ -396,10 +424,10 @@ export function DiscoverLayout({ stateContainer }: DiscoverLayoutProps) {
sidebarPanel={
{
const { usageCollection } = plugins;
@@ -223,7 +223,7 @@ export const buildServices = memoize(
noDataPage: plugins.noDataPage,
observabilityAIAssistant: plugins.observabilityAIAssistant,
profilesManager,
- ebtContextManager,
+ ebtManager,
fieldsMetadata: plugins.fieldsMetadata,
logsDataAccess: plugins.logsDataAccess,
};
diff --git a/src/plugins/discover/public/context_awareness/__mocks__/index.tsx b/src/plugins/discover/public/context_awareness/__mocks__/index.tsx
index a15b7aa26a8a0..153d401cc980a 100644
--- a/src/plugins/discover/public/context_awareness/__mocks__/index.tsx
+++ b/src/plugins/discover/public/context_awareness/__mocks__/index.tsx
@@ -23,7 +23,7 @@ import {
} from '../profiles';
import { ProfileProviderServices } from '../profile_providers/profile_provider_services';
import { ProfilesManager } from '../profiles_manager';
-import { DiscoverEBTContextManager } from '../../services/discover_ebt_context_manager';
+import { DiscoverEBTManager } from '../../services/discover_ebt_manager';
import { createLogsContextServiceMock } from '@kbn/discover-utils/src/__mocks__';
export const createContextAwarenessMocks = ({
@@ -152,12 +152,12 @@ export const createContextAwarenessMocks = ({
documentProfileServiceMock.registerProvider(documentProfileProviderMock);
}
- const ebtContextManagerMock = new DiscoverEBTContextManager();
+ const ebtManagerMock = new DiscoverEBTManager();
const profilesManagerMock = new ProfilesManager(
rootProfileServiceMock,
dataSourceProfileServiceMock,
documentProfileServiceMock,
- ebtContextManagerMock
+ ebtManagerMock
);
const profileProviderServices = createProfileProviderServicesMock();
@@ -173,7 +173,7 @@ export const createContextAwarenessMocks = ({
contextRecordMock2,
profilesManagerMock,
profileProviderServices,
- ebtContextManagerMock,
+ ebtManagerMock,
};
};
diff --git a/src/plugins/discover/public/context_awareness/profiles_manager.test.ts b/src/plugins/discover/public/context_awareness/profiles_manager.test.ts
index 87965edbe7488..da5ad8b56dcf3 100644
--- a/src/plugins/discover/public/context_awareness/profiles_manager.test.ts
+++ b/src/plugins/discover/public/context_awareness/profiles_manager.test.ts
@@ -21,7 +21,7 @@ describe('ProfilesManager', () => {
beforeEach(() => {
jest.clearAllMocks();
mocks = createContextAwarenessMocks();
- jest.spyOn(mocks.ebtContextManagerMock, 'updateProfilesContextWith');
+ jest.spyOn(mocks.ebtManagerMock, 'updateProfilesContextWith');
});
it('should return default profiles', () => {
@@ -62,7 +62,7 @@ describe('ProfilesManager', () => {
mocks.documentProfileProviderMock.profile,
]);
- expect(mocks.ebtContextManagerMock.updateProfilesContextWith).toHaveBeenCalledWith([
+ expect(mocks.ebtManagerMock.updateProfilesContextWith).toHaveBeenCalledWith([
'root-profile',
'data-source-profile',
]);
diff --git a/src/plugins/discover/public/context_awareness/profiles_manager.ts b/src/plugins/discover/public/context_awareness/profiles_manager.ts
index 2c8b1c7d16cb0..6b7bef5e02294 100644
--- a/src/plugins/discover/public/context_awareness/profiles_manager.ts
+++ b/src/plugins/discover/public/context_awareness/profiles_manager.ts
@@ -25,7 +25,7 @@ import type {
DocumentContext,
} from './profiles';
import type { ContextWithProfileId } from './profile_service';
-import { DiscoverEBTContextManager } from '../services/discover_ebt_context_manager';
+import { DiscoverEBTManager } from '../services/discover_ebt_manager';
interface SerializedRootProfileParams {
solutionNavId: RootProfileProviderParams['solutionNavId'];
@@ -53,7 +53,7 @@ export interface GetProfilesOptions {
export class ProfilesManager {
private readonly rootContext$: BehaviorSubject>;
private readonly dataSourceContext$: BehaviorSubject>;
- private readonly ebtContextManager: DiscoverEBTContextManager;
+ private readonly ebtManager: DiscoverEBTManager;
private prevRootProfileParams?: SerializedRootProfileParams;
private prevDataSourceProfileParams?: SerializedDataSourceProfileParams;
@@ -64,11 +64,11 @@ export class ProfilesManager {
private readonly rootProfileService: RootProfileService,
private readonly dataSourceProfileService: DataSourceProfileService,
private readonly documentProfileService: DocumentProfileService,
- ebtContextManager: DiscoverEBTContextManager
+ ebtManager: DiscoverEBTManager
) {
this.rootContext$ = new BehaviorSubject(rootProfileService.defaultContext);
this.dataSourceContext$ = new BehaviorSubject(dataSourceProfileService.defaultContext);
- this.ebtContextManager = ebtContextManager;
+ this.ebtManager = ebtManager;
}
/**
@@ -206,7 +206,7 @@ export class ProfilesManager {
private trackActiveProfiles(rootContextProfileId: string, dataSourceContextProfileId: string) {
const dscProfiles = [rootContextProfileId, dataSourceContextProfileId];
- this.ebtContextManager.updateProfilesContextWith(dscProfiles);
+ this.ebtManager.updateProfilesContextWith(dscProfiles);
}
}
diff --git a/src/plugins/discover/public/plugin.tsx b/src/plugins/discover/public/plugin.tsx
index e6430f82c62fe..dbbcc90a7d451 100644
--- a/src/plugins/discover/public/plugin.tsx
+++ b/src/plugins/discover/public/plugin.tsx
@@ -59,7 +59,7 @@ import { RootProfileService } from './context_awareness/profiles/root_profile';
import { DataSourceProfileService } from './context_awareness/profiles/data_source_profile';
import { DocumentProfileService } from './context_awareness/profiles/document_profile';
import { ProfilesManager } from './context_awareness/profiles_manager';
-import { DiscoverEBTContextManager } from './services/discover_ebt_context_manager';
+import { DiscoverEBTManager } from './services/discover_ebt_manager';
/**
* Contains Discover, one of the oldest parts of Kibana
@@ -149,8 +149,12 @@ export class DiscoverPlugin
this.urlTracker = { setTrackedUrl, restorePreviousUrl, setTrackingEnabled };
this.stopUrlTracking = stopUrlTracker;
- const ebtContextManager = new DiscoverEBTContextManager();
- ebtContextManager.initialize({ core });
+ const ebtManager = new DiscoverEBTManager();
+ ebtManager.initialize({
+ core,
+ shouldInitializeCustomContext: true,
+ shouldInitializeCustomEvents: true,
+ });
core.application.register({
id: PLUGIN_ID,
@@ -176,7 +180,7 @@ export class DiscoverPlugin
window.dispatchEvent(new HashChangeEvent('hashchange'));
});
- ebtContextManager.enable();
+ ebtManager.enableContext();
const services = buildServices({
core: coreStart,
@@ -188,12 +192,12 @@ export class DiscoverPlugin
history: this.historyService.getHistory(),
scopedHistory: this.scopedHistory,
urlTracker: this.urlTracker!,
- profilesManager: await this.createProfilesManager(
- coreStart,
- discoverStartPlugins,
- ebtContextManager
- ),
- ebtContextManager,
+ profilesManager: await this.createProfilesManager({
+ core: coreStart,
+ plugins: discoverStartPlugins,
+ ebtManager,
+ }),
+ ebtManager,
setHeaderActionMenu: params.setHeaderActionMenu,
});
@@ -226,7 +230,7 @@ export class DiscoverPlugin
});
return () => {
- ebtContextManager.disableAndReset();
+ ebtManager.disableAndResetContext();
unlistenParentHistory();
unmount();
appUnMounted();
@@ -296,11 +300,12 @@ export class DiscoverPlugin
}
const getDiscoverServicesInternal = () => {
+ const ebtManager = new DiscoverEBTManager(); // It is not initialized outside of Discover
return this.getDiscoverServices(
core,
plugins,
- this.createEmptyProfilesManager(),
- new DiscoverEBTContextManager() // it's not enabled outside of Discover
+ this.createEmptyProfilesManager({ ebtManager }),
+ ebtManager
);
};
@@ -326,11 +331,15 @@ export class DiscoverPlugin
return { rootProfileService, dataSourceProfileService, documentProfileService };
}
- private createProfilesManager = async (
- core: CoreStart,
- plugins: DiscoverStartPlugins,
- ebtContextManager: DiscoverEBTContextManager
- ) => {
+ private async createProfilesManager({
+ core,
+ plugins,
+ ebtManager,
+ }: {
+ core: CoreStart;
+ plugins: DiscoverStartPlugins;
+ ebtManager: DiscoverEBTManager;
+ }) {
const { registerProfileProviders } = await import('./context_awareness/profile_providers');
const { rootProfileService, dataSourceProfileService, documentProfileService } =
this.createProfileServices();
@@ -341,7 +350,7 @@ export class DiscoverPlugin
rootProfileService,
dataSourceProfileService,
documentProfileService,
- ebtContextManager
+ ebtManager
);
await registerProfileProviders({
@@ -349,21 +358,18 @@ export class DiscoverPlugin
dataSourceProfileService,
documentProfileService,
enabledExperimentalProfileIds,
- services: this.getDiscoverServices(core, plugins, profilesManager, ebtContextManager),
+ services: this.getDiscoverServices(core, plugins, profilesManager, ebtManager),
});
return profilesManager;
- };
-
- private createEmptyProfilesManager() {
- const { rootProfileService, dataSourceProfileService, documentProfileService } =
- this.createProfileServices();
+ }
+ private createEmptyProfilesManager({ ebtManager }: { ebtManager: DiscoverEBTManager }) {
return new ProfilesManager(
- rootProfileService,
- dataSourceProfileService,
- documentProfileService,
- new DiscoverEBTContextManager() // it's not enabled outside of Discover
+ new RootProfileService(),
+ new DataSourceProfileService(),
+ new DocumentProfileService(),
+ ebtManager
);
}
@@ -371,7 +377,7 @@ export class DiscoverPlugin
core: CoreStart,
plugins: DiscoverStartPlugins,
profilesManager: ProfilesManager,
- ebtContextManager: DiscoverEBTContextManager
+ ebtManager: DiscoverEBTManager
) => {
return buildServices({
core,
@@ -383,11 +389,13 @@ export class DiscoverPlugin
history: this.historyService.getHistory(),
urlTracker: this.urlTracker!,
profilesManager,
- ebtContextManager,
+ ebtManager,
});
};
private registerEmbeddable(core: CoreSetup, plugins: DiscoverSetupPlugins) {
+ const ebtManager = new DiscoverEBTManager(); // It is not initialized outside of Discover
+
const getStartServices = async () => {
const [coreStart, deps] = await core.getStartServices();
return {
@@ -396,16 +404,20 @@ export class DiscoverPlugin
};
};
- const getDiscoverServicesInternal = async () => {
+ const getDiscoverServicesForEmbeddable = async () => {
const [coreStart, deps] = await core.getStartServices();
- const ebtContextManager = new DiscoverEBTContextManager(); // it's not enabled outside of Discover
- const profilesManager = await this.createProfilesManager(coreStart, deps, ebtContextManager);
- return this.getDiscoverServices(coreStart, deps, profilesManager, ebtContextManager);
+
+ const profilesManager = await this.createProfilesManager({
+ core: coreStart,
+ plugins: deps,
+ ebtManager,
+ });
+ return this.getDiscoverServices(coreStart, deps, profilesManager, ebtManager);
};
plugins.embeddable.registerReactEmbeddableSavedObject({
onAdd: async (container, savedObject) => {
- const services = await getDiscoverServicesInternal();
+ const services = await getDiscoverServicesForEmbeddable();
const initialState = await deserializeState({
serializedState: {
rawState: { savedObjectId: savedObject.id },
@@ -429,7 +441,7 @@ export class DiscoverPlugin
plugins.embeddable.registerReactEmbeddableFactory(SEARCH_EMBEDDABLE_TYPE, async () => {
const [startServices, discoverServices, { getSearchEmbeddableFactory }] = await Promise.all([
getStartServices(),
- getDiscoverServicesInternal(),
+ getDiscoverServicesForEmbeddable(),
import('./embeddable/get_search_embeddable_factory'),
]);
diff --git a/src/plugins/discover/public/services/discover_ebt_context_manager.test.ts b/src/plugins/discover/public/services/discover_ebt_context_manager.test.ts
deleted file mode 100644
index 3b2836325b671..0000000000000
--- a/src/plugins/discover/public/services/discover_ebt_context_manager.test.ts
+++ /dev/null
@@ -1,95 +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", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
- * License v3.0 only", or the "Server Side Public License, v 1".
- */
-
-import { BehaviorSubject } from 'rxjs';
-import { coreMock } from '@kbn/core/public/mocks';
-import { DiscoverEBTContextManager } from './discover_ebt_context_manager';
-
-const coreSetupMock = coreMock.createSetup();
-
-describe('DiscoverEBTContextManager', () => {
- let discoverEBTContextManager: DiscoverEBTContextManager;
-
- beforeEach(() => {
- discoverEBTContextManager = new DiscoverEBTContextManager();
- });
-
- describe('register', () => {
- it('should register the context provider', () => {
- discoverEBTContextManager.initialize({ core: coreSetupMock });
-
- expect(coreSetupMock.analytics.registerContextProvider).toHaveBeenCalledWith({
- name: 'discover_context',
- context$: expect.any(BehaviorSubject),
- schema: {
- discoverProfiles: {
- type: 'array',
- items: {
- type: 'keyword',
- _meta: {
- description: 'List of active Discover context awareness profiles',
- },
- },
- },
- },
- });
- });
- });
-
- describe('updateProfilesWith', () => {
- it('should update the profiles with the provided props', () => {
- const dscProfiles = ['profile1', 'profile2'];
- const dscProfiles2 = ['profile21', 'profile22'];
- discoverEBTContextManager.initialize({ core: coreSetupMock });
- discoverEBTContextManager.enable();
-
- discoverEBTContextManager.updateProfilesContextWith(dscProfiles);
- expect(discoverEBTContextManager.getProfilesContext()).toBe(dscProfiles);
-
- discoverEBTContextManager.updateProfilesContextWith(dscProfiles2);
- expect(discoverEBTContextManager.getProfilesContext()).toBe(dscProfiles2);
- });
-
- it('should not update the profiles if profile list did not change', () => {
- const dscProfiles = ['profile1', 'profile2'];
- const dscProfiles2 = ['profile1', 'profile2'];
- discoverEBTContextManager.initialize({ core: coreSetupMock });
- discoverEBTContextManager.enable();
-
- discoverEBTContextManager.updateProfilesContextWith(dscProfiles);
- expect(discoverEBTContextManager.getProfilesContext()).toBe(dscProfiles);
-
- discoverEBTContextManager.updateProfilesContextWith(dscProfiles2);
- expect(discoverEBTContextManager.getProfilesContext()).toBe(dscProfiles);
- });
-
- it('should not update the profiles if not enabled yet', () => {
- const dscProfiles = ['profile1', 'profile2'];
- discoverEBTContextManager.initialize({ core: coreSetupMock });
-
- discoverEBTContextManager.updateProfilesContextWith(dscProfiles);
- expect(discoverEBTContextManager.getProfilesContext()).toEqual([]);
- });
-
- it('should not update the profiles after resetting unless enabled again', () => {
- const dscProfiles = ['profile1', 'profile2'];
- discoverEBTContextManager.initialize({ core: coreSetupMock });
- discoverEBTContextManager.enable();
- discoverEBTContextManager.updateProfilesContextWith(dscProfiles);
- expect(discoverEBTContextManager.getProfilesContext()).toBe(dscProfiles);
- discoverEBTContextManager.disableAndReset();
- expect(discoverEBTContextManager.getProfilesContext()).toEqual([]);
- discoverEBTContextManager.updateProfilesContextWith(dscProfiles);
- expect(discoverEBTContextManager.getProfilesContext()).toEqual([]);
- discoverEBTContextManager.enable();
- discoverEBTContextManager.updateProfilesContextWith(dscProfiles);
- expect(discoverEBTContextManager.getProfilesContext()).toBe(dscProfiles);
- });
- });
-});
diff --git a/src/plugins/discover/public/services/discover_ebt_context_manager.ts b/src/plugins/discover/public/services/discover_ebt_context_manager.ts
deleted file mode 100644
index 12ea918c495d9..0000000000000
--- a/src/plugins/discover/public/services/discover_ebt_context_manager.ts
+++ /dev/null
@@ -1,75 +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", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
- * License v3.0 only", or the "Server Side Public License, v 1".
- */
-
-import { BehaviorSubject } from 'rxjs';
-import { isEqual } from 'lodash';
-import type { CoreSetup } from '@kbn/core-lifecycle-browser';
-
-export interface DiscoverEBTContextProps {
- discoverProfiles: string[]; // Discover Context Awareness Profiles
-}
-export type DiscoverEBTContext = BehaviorSubject;
-
-export class DiscoverEBTContextManager {
- private isEnabled: boolean = false;
- private ebtContext$: DiscoverEBTContext | undefined;
-
- constructor() {}
-
- // https://docs.elastic.dev/telemetry/collection/event-based-telemetry
- public initialize({ core }: { core: CoreSetup }) {
- const context$ = new BehaviorSubject({
- discoverProfiles: [],
- });
-
- core.analytics.registerContextProvider({
- name: 'discover_context',
- context$,
- schema: {
- discoverProfiles: {
- type: 'array',
- items: {
- type: 'keyword',
- _meta: {
- description: 'List of active Discover context awareness profiles',
- },
- },
- },
- // If we decide to extend EBT context with more properties, we can do it here
- },
- });
-
- this.ebtContext$ = context$;
- }
-
- public enable() {
- this.isEnabled = true;
- }
-
- public updateProfilesContextWith(discoverProfiles: DiscoverEBTContextProps['discoverProfiles']) {
- if (
- this.isEnabled &&
- this.ebtContext$ &&
- !isEqual(this.ebtContext$.getValue().discoverProfiles, discoverProfiles)
- ) {
- this.ebtContext$.next({
- discoverProfiles,
- });
- }
- }
-
- public getProfilesContext() {
- return this.ebtContext$?.getValue()?.discoverProfiles;
- }
-
- public disableAndReset() {
- this.updateProfilesContextWith([]);
- this.isEnabled = false;
- }
-}
diff --git a/src/plugins/discover/public/services/discover_ebt_manager.test.ts b/src/plugins/discover/public/services/discover_ebt_manager.test.ts
new file mode 100644
index 0000000000000..0ed20dacdb0ce
--- /dev/null
+++ b/src/plugins/discover/public/services/discover_ebt_manager.test.ts
@@ -0,0 +1,242 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the "Elastic License
+ * 2.0", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
+ * License v3.0 only", or the "Server Side Public License, v 1".
+ */
+
+import { BehaviorSubject } from 'rxjs';
+import { coreMock } from '@kbn/core/public/mocks';
+import { DiscoverEBTManager } from './discover_ebt_manager';
+import { FieldsMetadataPublicStart } from '@kbn/fields-metadata-plugin/public';
+
+describe('DiscoverEBTManager', () => {
+ let discoverEBTContextManager: DiscoverEBTManager;
+
+ const coreSetupMock = coreMock.createSetup();
+
+ const fieldsMetadata = {
+ getClient: jest.fn().mockResolvedValue({
+ find: jest.fn().mockResolvedValue({
+ fields: {
+ test: {
+ short: 'test',
+ },
+ },
+ }),
+ }),
+ } as unknown as FieldsMetadataPublicStart;
+
+ beforeEach(() => {
+ discoverEBTContextManager = new DiscoverEBTManager();
+ });
+
+ describe('register', () => {
+ it('should register the context provider and custom events', () => {
+ discoverEBTContextManager.initialize({
+ core: coreSetupMock,
+ shouldInitializeCustomContext: true,
+ shouldInitializeCustomEvents: true,
+ });
+
+ expect(coreSetupMock.analytics.registerContextProvider).toHaveBeenCalledWith({
+ name: 'discover_context',
+ context$: expect.any(BehaviorSubject),
+ schema: {
+ discoverProfiles: {
+ type: 'array',
+ items: {
+ type: 'keyword',
+ _meta: {
+ description: 'List of active Discover context awareness profiles',
+ },
+ },
+ },
+ },
+ });
+
+ expect(coreSetupMock.analytics.registerEventType).toHaveBeenCalledWith({
+ eventType: 'discover_field_usage',
+ schema: {
+ eventName: {
+ type: 'keyword',
+ _meta: {
+ description:
+ 'The name of the event that is tracked in the metrics i.e. dataTableSelection, dataTableRemoval',
+ },
+ },
+ fieldName: {
+ type: 'keyword',
+ _meta: {
+ description: "Field name if it's a part of ECS schema",
+ optional: true,
+ },
+ },
+ filterOperation: {
+ type: 'keyword',
+ _meta: {
+ description: "Operation type when a filter is added i.e. '+', '-', '_exists_'",
+ optional: true,
+ },
+ },
+ },
+ });
+ });
+ });
+
+ describe('updateProfilesWith', () => {
+ it('should update the profiles with the provided props', () => {
+ const dscProfiles = ['profile1', 'profile2'];
+ const dscProfiles2 = ['profile21', 'profile22'];
+ discoverEBTContextManager.initialize({
+ core: coreSetupMock,
+ shouldInitializeCustomContext: true,
+ shouldInitializeCustomEvents: false,
+ });
+ discoverEBTContextManager.enableContext();
+
+ discoverEBTContextManager.updateProfilesContextWith(dscProfiles);
+ expect(discoverEBTContextManager.getProfilesContext()).toBe(dscProfiles);
+
+ discoverEBTContextManager.updateProfilesContextWith(dscProfiles2);
+ expect(discoverEBTContextManager.getProfilesContext()).toBe(dscProfiles2);
+ });
+
+ it('should not update the profiles if profile list did not change', () => {
+ const dscProfiles = ['profile1', 'profile2'];
+ const dscProfiles2 = ['profile1', 'profile2'];
+ discoverEBTContextManager.initialize({
+ core: coreSetupMock,
+ shouldInitializeCustomContext: true,
+ shouldInitializeCustomEvents: false,
+ });
+ discoverEBTContextManager.enableContext();
+
+ discoverEBTContextManager.updateProfilesContextWith(dscProfiles);
+ expect(discoverEBTContextManager.getProfilesContext()).toBe(dscProfiles);
+
+ discoverEBTContextManager.updateProfilesContextWith(dscProfiles2);
+ expect(discoverEBTContextManager.getProfilesContext()).toBe(dscProfiles);
+ });
+
+ it('should not update the profiles if not enabled yet', () => {
+ const dscProfiles = ['profile1', 'profile2'];
+ discoverEBTContextManager.initialize({
+ core: coreSetupMock,
+ shouldInitializeCustomContext: true,
+ shouldInitializeCustomEvents: false,
+ });
+
+ discoverEBTContextManager.updateProfilesContextWith(dscProfiles);
+ expect(discoverEBTContextManager.getProfilesContext()).toEqual([]);
+ });
+
+ it('should not update the profiles after resetting unless enabled again', () => {
+ const dscProfiles = ['profile1', 'profile2'];
+ discoverEBTContextManager.initialize({
+ core: coreSetupMock,
+ shouldInitializeCustomContext: true,
+ shouldInitializeCustomEvents: false,
+ });
+ discoverEBTContextManager.enableContext();
+ discoverEBTContextManager.updateProfilesContextWith(dscProfiles);
+ expect(discoverEBTContextManager.getProfilesContext()).toBe(dscProfiles);
+ discoverEBTContextManager.disableAndResetContext();
+ expect(discoverEBTContextManager.getProfilesContext()).toEqual([]);
+ discoverEBTContextManager.updateProfilesContextWith(dscProfiles);
+ expect(discoverEBTContextManager.getProfilesContext()).toEqual([]);
+ discoverEBTContextManager.enableContext();
+ discoverEBTContextManager.updateProfilesContextWith(dscProfiles);
+ expect(discoverEBTContextManager.getProfilesContext()).toBe(dscProfiles);
+ });
+ });
+
+ describe('trackFieldUsageEvent', () => {
+ it('should track the field usage when a field is added to the table', async () => {
+ discoverEBTContextManager.initialize({
+ core: coreSetupMock,
+ shouldInitializeCustomContext: false,
+ shouldInitializeCustomEvents: true,
+ });
+
+ await discoverEBTContextManager.trackDataTableSelection({
+ fieldName: 'test',
+ fieldsMetadata,
+ });
+
+ expect(coreSetupMock.analytics.reportEvent).toHaveBeenCalledWith('discover_field_usage', {
+ eventName: 'dataTableSelection',
+ fieldName: 'test',
+ });
+
+ await discoverEBTContextManager.trackDataTableSelection({
+ fieldName: 'test2',
+ fieldsMetadata,
+ });
+
+ expect(coreSetupMock.analytics.reportEvent).toHaveBeenLastCalledWith('discover_field_usage', {
+ eventName: 'dataTableSelection', // non-ECS fields would not be included in properties
+ });
+ });
+
+ it('should track the field usage when a field is removed from the table', async () => {
+ discoverEBTContextManager.initialize({
+ core: coreSetupMock,
+ shouldInitializeCustomContext: false,
+ shouldInitializeCustomEvents: true,
+ });
+
+ await discoverEBTContextManager.trackDataTableRemoval({
+ fieldName: 'test',
+ fieldsMetadata,
+ });
+
+ expect(coreSetupMock.analytics.reportEvent).toHaveBeenCalledWith('discover_field_usage', {
+ eventName: 'dataTableRemoval',
+ fieldName: 'test',
+ });
+
+ await discoverEBTContextManager.trackDataTableRemoval({
+ fieldName: 'test2',
+ fieldsMetadata,
+ });
+
+ expect(coreSetupMock.analytics.reportEvent).toHaveBeenLastCalledWith('discover_field_usage', {
+ eventName: 'dataTableRemoval', // non-ECS fields would not be included in properties
+ });
+ });
+
+ it('should track the field usage when a filter is created', async () => {
+ discoverEBTContextManager.initialize({
+ core: coreSetupMock,
+ shouldInitializeCustomContext: false,
+ shouldInitializeCustomEvents: true,
+ });
+
+ await discoverEBTContextManager.trackFilterAddition({
+ fieldName: 'test',
+ fieldsMetadata,
+ filterOperation: '+',
+ });
+
+ expect(coreSetupMock.analytics.reportEvent).toHaveBeenCalledWith('discover_field_usage', {
+ eventName: 'filterAddition',
+ fieldName: 'test',
+ filterOperation: '+',
+ });
+
+ await discoverEBTContextManager.trackFilterAddition({
+ fieldName: 'test2',
+ fieldsMetadata,
+ filterOperation: '_exists_',
+ });
+
+ expect(coreSetupMock.analytics.reportEvent).toHaveBeenLastCalledWith('discover_field_usage', {
+ eventName: 'filterAddition', // non-ECS fields would not be included in properties
+ filterOperation: '_exists_',
+ });
+ });
+ });
+});
diff --git a/src/plugins/discover/public/services/discover_ebt_manager.ts b/src/plugins/discover/public/services/discover_ebt_manager.ts
new file mode 100644
index 0000000000000..420eb6c244444
--- /dev/null
+++ b/src/plugins/discover/public/services/discover_ebt_manager.ts
@@ -0,0 +1,219 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the "Elastic License
+ * 2.0", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
+ * License v3.0 only", or the "Server Side Public License, v 1".
+ */
+
+import { BehaviorSubject } from 'rxjs';
+import { isEqual } from 'lodash';
+import type { CoreSetup } from '@kbn/core-lifecycle-browser';
+import type { FieldsMetadataPublicStart } from '@kbn/fields-metadata-plugin/public';
+
+const FIELD_USAGE_EVENT_TYPE = 'discover_field_usage';
+const FIELD_USAGE_EVENT_NAME = 'eventName';
+const FIELD_USAGE_FIELD_NAME = 'fieldName';
+const FIELD_USAGE_FILTER_OPERATION = 'filterOperation';
+
+type FilterOperation = '+' | '-' | '_exists_';
+
+export enum FieldUsageEventName {
+ dataTableSelection = 'dataTableSelection',
+ dataTableRemoval = 'dataTableRemoval',
+ filterAddition = 'filterAddition',
+}
+interface FieldUsageEventData {
+ [FIELD_USAGE_EVENT_NAME]: FieldUsageEventName;
+ [FIELD_USAGE_FIELD_NAME]?: string;
+ [FIELD_USAGE_FILTER_OPERATION]?: FilterOperation;
+}
+
+export interface DiscoverEBTContextProps {
+ discoverProfiles: string[]; // Discover Context Awareness Profiles
+}
+export type DiscoverEBTContext = BehaviorSubject;
+
+export class DiscoverEBTManager {
+ private isCustomContextEnabled: boolean = false;
+ private customContext$: DiscoverEBTContext | undefined;
+ private reportEvent: CoreSetup['analytics']['reportEvent'] | undefined;
+
+ constructor() {}
+
+ // https://docs.elastic.dev/telemetry/collection/event-based-telemetry
+ public initialize({
+ core,
+ shouldInitializeCustomContext,
+ shouldInitializeCustomEvents,
+ }: {
+ core: CoreSetup;
+ shouldInitializeCustomContext: boolean;
+ shouldInitializeCustomEvents: boolean;
+ }) {
+ if (shouldInitializeCustomContext) {
+ // Register Discover specific context to be used in EBT
+ const context$ = new BehaviorSubject({
+ discoverProfiles: [],
+ });
+ core.analytics.registerContextProvider({
+ name: 'discover_context',
+ context$,
+ schema: {
+ discoverProfiles: {
+ type: 'array',
+ items: {
+ type: 'keyword',
+ _meta: {
+ description: 'List of active Discover context awareness profiles',
+ },
+ },
+ },
+ // If we decide to extend EBT context with more properties, we can do it here
+ },
+ });
+ this.customContext$ = context$;
+ }
+
+ if (shouldInitializeCustomEvents) {
+ // Register Discover events to be used with EBT
+ core.analytics.registerEventType({
+ eventType: FIELD_USAGE_EVENT_TYPE,
+ schema: {
+ [FIELD_USAGE_EVENT_NAME]: {
+ type: 'keyword',
+ _meta: {
+ description:
+ 'The name of the event that is tracked in the metrics i.e. dataTableSelection, dataTableRemoval',
+ },
+ },
+ [FIELD_USAGE_FIELD_NAME]: {
+ type: 'keyword',
+ _meta: {
+ description: "Field name if it's a part of ECS schema",
+ optional: true,
+ },
+ },
+ [FIELD_USAGE_FILTER_OPERATION]: {
+ type: 'keyword',
+ _meta: {
+ description: "Operation type when a filter is added i.e. '+', '-', '_exists_'",
+ optional: true,
+ },
+ },
+ },
+ });
+ this.reportEvent = core.analytics.reportEvent;
+ }
+ }
+
+ public enableContext() {
+ this.isCustomContextEnabled = true;
+ }
+
+ public disableAndResetContext() {
+ this.updateProfilesContextWith([]);
+ this.isCustomContextEnabled = false;
+ }
+
+ public updateProfilesContextWith(discoverProfiles: DiscoverEBTContextProps['discoverProfiles']) {
+ if (
+ this.isCustomContextEnabled &&
+ this.customContext$ &&
+ !isEqual(this.customContext$.getValue().discoverProfiles, discoverProfiles)
+ ) {
+ this.customContext$.next({
+ discoverProfiles,
+ });
+ }
+ }
+
+ public getProfilesContext() {
+ return this.customContext$?.getValue()?.discoverProfiles;
+ }
+
+ private async trackFieldUsageEvent({
+ eventName,
+ fieldName,
+ filterOperation,
+ fieldsMetadata,
+ }: {
+ eventName: FieldUsageEventName;
+ fieldName: string;
+ filterOperation?: FilterOperation;
+ fieldsMetadata: FieldsMetadataPublicStart | undefined;
+ }) {
+ if (!this.reportEvent) {
+ return;
+ }
+
+ const eventData: FieldUsageEventData = {
+ [FIELD_USAGE_EVENT_NAME]: eventName,
+ };
+
+ if (fieldsMetadata) {
+ const client = await fieldsMetadata.getClient();
+ const { fields } = await client.find({
+ attributes: ['short'],
+ fieldNames: [fieldName],
+ });
+
+ // excludes non ECS fields
+ if (fields[fieldName]?.short) {
+ eventData[FIELD_USAGE_FIELD_NAME] = fieldName;
+ }
+ }
+
+ if (filterOperation) {
+ eventData[FIELD_USAGE_FILTER_OPERATION] = filterOperation;
+ }
+
+ this.reportEvent(FIELD_USAGE_EVENT_TYPE, eventData);
+ }
+
+ public async trackDataTableSelection({
+ fieldName,
+ fieldsMetadata,
+ }: {
+ fieldName: string;
+ fieldsMetadata: FieldsMetadataPublicStart | undefined;
+ }) {
+ await this.trackFieldUsageEvent({
+ eventName: FieldUsageEventName.dataTableSelection,
+ fieldName,
+ fieldsMetadata,
+ });
+ }
+
+ public async trackDataTableRemoval({
+ fieldName,
+ fieldsMetadata,
+ }: {
+ fieldName: string;
+ fieldsMetadata: FieldsMetadataPublicStart | undefined;
+ }) {
+ await this.trackFieldUsageEvent({
+ eventName: FieldUsageEventName.dataTableRemoval,
+ fieldName,
+ fieldsMetadata,
+ });
+ }
+
+ public async trackFilterAddition({
+ fieldName,
+ fieldsMetadata,
+ filterOperation,
+ }: {
+ fieldName: string;
+ fieldsMetadata: FieldsMetadataPublicStart | undefined;
+ filterOperation: FilterOperation;
+ }) {
+ await this.trackFieldUsageEvent({
+ eventName: FieldUsageEventName.filterAddition,
+ fieldName,
+ fieldsMetadata,
+ filterOperation,
+ });
+ }
+}
diff --git a/test/functional/apps/discover/context_awareness/_data_source_profile.ts b/test/functional/apps/discover/context_awareness/_data_source_profile.ts
index ecf4b2fb29c4c..35e3552afa655 100644
--- a/test/functional/apps/discover/context_awareness/_data_source_profile.ts
+++ b/test/functional/apps/discover/context_awareness/_data_source_profile.ts
@@ -12,115 +12,16 @@ import expect from '@kbn/expect';
import type { FtrProviderContext } from '../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
- const { common, discover, unifiedFieldList, dashboard, header, timePicker } = getPageObjects([
+ const { common, discover, unifiedFieldList } = getPageObjects([
'common',
'discover',
'unifiedFieldList',
- 'dashboard',
- 'header',
- 'timePicker',
]);
const testSubjects = getService('testSubjects');
const dataViews = getService('dataViews');
const dataGrid = getService('dataGrid');
- const monacoEditor = getService('monacoEditor');
- const ebtUIHelper = getService('kibana_ebt_ui');
- const retry = getService('retry');
- const esArchiver = getService('esArchiver');
- const kibanaServer = getService('kibanaServer');
- const dashboardAddPanel = getService('dashboardAddPanel');
describe('data source profile', () => {
- describe('telemetry', () => {
- before(async () => {
- await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
- await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover');
- });
-
- after(async () => {
- await kibanaServer.importExport.unload('test/functional/fixtures/kbn_archiver/discover');
- });
-
- it('should set EBT context for telemetry events with default profile', async () => {
- await common.navigateToApp('discover');
- await discover.selectTextBaseLang();
- await discover.waitUntilSearchingHasFinished();
- await monacoEditor.setCodeEditorValue('from my-example-* | sort @timestamp desc');
- await ebtUIHelper.setOptIn(true);
- await testSubjects.click('querySubmitButton');
- await discover.waitUntilSearchingHasFinished();
-
- const events = await ebtUIHelper.getEvents(Number.MAX_SAFE_INTEGER, {
- eventTypes: ['performance_metric'],
- withTimeoutMs: 500,
- });
-
- expect(events[events.length - 1].context.discoverProfiles).to.eql([
- 'example-root-profile',
- 'default-data-source-profile',
- ]);
- });
-
- it('should set EBT context for telemetry events when example profile and reset', async () => {
- await common.navigateToApp('discover');
- await discover.selectTextBaseLang();
- await discover.waitUntilSearchingHasFinished();
- await monacoEditor.setCodeEditorValue('from my-example-logs | sort @timestamp desc');
- await ebtUIHelper.setOptIn(true);
- await testSubjects.click('querySubmitButton');
- await discover.waitUntilSearchingHasFinished();
-
- const events = await ebtUIHelper.getEvents(Number.MAX_SAFE_INTEGER, {
- eventTypes: ['performance_metric'],
- withTimeoutMs: 500,
- });
-
- expect(events[events.length - 1].context.discoverProfiles).to.eql([
- 'example-root-profile',
- 'example-data-source-profile',
- ]);
-
- // should reset the profiles when navigating away from Discover
- await testSubjects.click('logo');
- await retry.waitFor('home page to open', async () => {
- return (await testSubjects.getVisibleText('euiBreadcrumb')) === 'Home';
- });
- await testSubjects.click('addSampleData');
-
- await retry.try(async () => {
- const eventsAfter = await ebtUIHelper.getEvents(Number.MAX_SAFE_INTEGER, {
- eventTypes: ['click'],
- withTimeoutMs: 500,
- });
-
- expect(eventsAfter[eventsAfter.length - 1].context.discoverProfiles).to.eql([]);
- });
- });
-
- it('should not set EBT context for embeddables', async () => {
- await dashboard.navigateToApp();
- await dashboard.gotoDashboardLandingPage();
- await dashboard.clickNewDashboard();
- await timePicker.setDefaultAbsoluteRange();
- await ebtUIHelper.setOptIn(true);
- await dashboardAddPanel.addSavedSearch('A Saved Search');
- await header.waitUntilLoadingHasFinished();
- await dashboard.waitForRenderComplete();
- const rows = await dataGrid.getDocTableRows();
- expect(rows.length).to.be.above(0);
- await testSubjects.click('dashboardEditorMenuButton');
-
- const events = await ebtUIHelper.getEvents(Number.MAX_SAFE_INTEGER, {
- eventTypes: ['click'],
- withTimeoutMs: 500,
- });
-
- expect(
- events.every((event) => !(event.context.discoverProfiles as string[])?.length)
- ).to.be(true);
- });
- });
-
describe('ES|QL mode', () => {
describe('cell renderers', () => {
it('should render custom @timestamp but not custom log.level', async () => {
diff --git a/test/functional/apps/discover/context_awareness/_telemetry.ts b/test/functional/apps/discover/context_awareness/_telemetry.ts
new file mode 100644
index 0000000000000..587de698f9336
--- /dev/null
+++ b/test/functional/apps/discover/context_awareness/_telemetry.ts
@@ -0,0 +1,326 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the "Elastic License
+ * 2.0", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
+ * License v3.0 only", or the "Server Side Public License, v 1".
+ */
+
+import expect from '@kbn/expect';
+import type { FtrProviderContext } from '../ftr_provider_context';
+
+export default function ({ getService, getPageObjects }: FtrProviderContext) {
+ const { common, discover, unifiedFieldList, dashboard, header, timePicker } = getPageObjects([
+ 'common',
+ 'discover',
+ 'unifiedFieldList',
+ 'dashboard',
+ 'header',
+ 'timePicker',
+ ]);
+ const testSubjects = getService('testSubjects');
+ const dataGrid = getService('dataGrid');
+ const dataViews = getService('dataViews');
+ const monacoEditor = getService('monacoEditor');
+ const ebtUIHelper = getService('kibana_ebt_ui');
+ const retry = getService('retry');
+ const esArchiver = getService('esArchiver');
+ const kibanaServer = getService('kibanaServer');
+ const dashboardAddPanel = getService('dashboardAddPanel');
+
+ describe('telemetry', () => {
+ describe('context', () => {
+ before(async () => {
+ await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
+ await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover');
+ });
+
+ after(async () => {
+ await kibanaServer.importExport.unload('test/functional/fixtures/kbn_archiver/discover');
+ });
+
+ it('should set EBT context for telemetry events with default profile', async () => {
+ await common.navigateToApp('discover');
+ await discover.selectTextBaseLang();
+ await discover.waitUntilSearchingHasFinished();
+ await monacoEditor.setCodeEditorValue('from my-example-* | sort @timestamp desc');
+ await ebtUIHelper.setOptIn(true);
+ await testSubjects.click('querySubmitButton');
+ await discover.waitUntilSearchingHasFinished();
+
+ const events = await ebtUIHelper.getEvents(Number.MAX_SAFE_INTEGER, {
+ eventTypes: ['performance_metric'],
+ withTimeoutMs: 500,
+ });
+
+ expect(events[events.length - 1].context.discoverProfiles).to.eql([
+ 'example-root-profile',
+ 'default-data-source-profile',
+ ]);
+ });
+
+ it('should set EBT context for telemetry events when example profile and reset', async () => {
+ await common.navigateToApp('discover');
+ await discover.selectTextBaseLang();
+ await discover.waitUntilSearchingHasFinished();
+ await monacoEditor.setCodeEditorValue('from my-example-logs | sort @timestamp desc');
+ await ebtUIHelper.setOptIn(true);
+ await testSubjects.click('querySubmitButton');
+ await discover.waitUntilSearchingHasFinished();
+
+ const events = await ebtUIHelper.getEvents(Number.MAX_SAFE_INTEGER, {
+ eventTypes: ['performance_metric'],
+ withTimeoutMs: 500,
+ });
+
+ expect(events[events.length - 1].context.discoverProfiles).to.eql([
+ 'example-root-profile',
+ 'example-data-source-profile',
+ ]);
+
+ // should reset the profiles when navigating away from Discover
+ await testSubjects.click('logo');
+ await retry.waitFor('home page to open', async () => {
+ return (await testSubjects.getVisibleText('euiBreadcrumb')) === 'Home';
+ });
+ await testSubjects.click('addSampleData');
+
+ await retry.try(async () => {
+ const eventsAfter = await ebtUIHelper.getEvents(Number.MAX_SAFE_INTEGER, {
+ eventTypes: ['click'],
+ withTimeoutMs: 500,
+ });
+
+ expect(eventsAfter[eventsAfter.length - 1].context.discoverProfiles).to.eql([]);
+ });
+ });
+
+ it('should not set EBT context for embeddables', async () => {
+ await dashboard.navigateToApp();
+ await dashboard.gotoDashboardLandingPage();
+ await dashboard.clickNewDashboard();
+ await timePicker.setDefaultAbsoluteRange();
+ await ebtUIHelper.setOptIn(true);
+ await dashboardAddPanel.addSavedSearch('A Saved Search');
+ await header.waitUntilLoadingHasFinished();
+ await dashboard.waitForRenderComplete();
+ const rows = await dataGrid.getDocTableRows();
+ expect(rows.length).to.be.above(0);
+ await testSubjects.click('dashboardEditorMenuButton');
+
+ const events = await ebtUIHelper.getEvents(Number.MAX_SAFE_INTEGER, {
+ eventTypes: ['click'],
+ withTimeoutMs: 500,
+ });
+
+ expect(
+ events.length > 0 &&
+ events.every((event) => !(event.context.discoverProfiles as string[])?.length)
+ ).to.be(true);
+ });
+ });
+
+ describe('events', () => {
+ beforeEach(async () => {
+ await common.navigateToApp('discover');
+ await header.waitUntilLoadingHasFinished();
+ await discover.waitUntilSearchingHasFinished();
+ });
+
+ it('should track field usage when a field is added to the table', async () => {
+ await dataViews.switchToAndValidate('my-example-*');
+ await discover.waitUntilSearchingHasFinished();
+ await unifiedFieldList.waitUntilSidebarHasLoaded();
+ await ebtUIHelper.setOptIn(true);
+ await unifiedFieldList.clickFieldListItemAdd('service.name');
+ await header.waitUntilLoadingHasFinished();
+ await discover.waitUntilSearchingHasFinished();
+ await unifiedFieldList.waitUntilSidebarHasLoaded();
+
+ const [event] = await ebtUIHelper.getEvents(Number.MAX_SAFE_INTEGER, {
+ eventTypes: ['discover_field_usage'],
+ withTimeoutMs: 500,
+ });
+
+ expect(event.properties).to.eql({
+ eventName: 'dataTableSelection',
+ fieldName: 'service.name',
+ });
+
+ await unifiedFieldList.clickFieldListItemAdd('_score');
+ await header.waitUntilLoadingHasFinished();
+ await discover.waitUntilSearchingHasFinished();
+ await unifiedFieldList.waitUntilSidebarHasLoaded();
+
+ const [_, event2] = await ebtUIHelper.getEvents(Number.MAX_SAFE_INTEGER, {
+ eventTypes: ['discover_field_usage'],
+ withTimeoutMs: 500,
+ });
+
+ expect(event2.properties).to.eql({
+ eventName: 'dataTableSelection',
+ });
+ });
+
+ it('should track field usage when a field is removed from the table', async () => {
+ await dataViews.switchToAndValidate('my-example-logs');
+ await discover.waitUntilSearchingHasFinished();
+ await unifiedFieldList.waitUntilSidebarHasLoaded();
+ await ebtUIHelper.setOptIn(true);
+ await unifiedFieldList.clickFieldListItemRemove('log.level');
+ await header.waitUntilLoadingHasFinished();
+ await discover.waitUntilSearchingHasFinished();
+ await unifiedFieldList.waitUntilSidebarHasLoaded();
+
+ const [event] = await ebtUIHelper.getEvents(Number.MAX_SAFE_INTEGER, {
+ eventTypes: ['discover_field_usage'],
+ withTimeoutMs: 500,
+ });
+
+ expect(event.properties).to.eql({
+ eventName: 'dataTableRemoval',
+ fieldName: 'log.level',
+ });
+ });
+
+ it('should track field usage when a filter is added', async () => {
+ await dataViews.switchToAndValidate('my-example-logs');
+ await discover.waitUntilSearchingHasFinished();
+ await ebtUIHelper.setOptIn(true);
+ await dataGrid.clickCellFilterForButtonExcludingControlColumns(0, 0);
+ await header.waitUntilLoadingHasFinished();
+ await discover.waitUntilSearchingHasFinished();
+ await unifiedFieldList.waitUntilSidebarHasLoaded();
+
+ const [event] = await ebtUIHelper.getEvents(Number.MAX_SAFE_INTEGER, {
+ eventTypes: ['discover_field_usage'],
+ withTimeoutMs: 500,
+ });
+
+ expect(event.properties).to.eql({
+ eventName: 'filterAddition',
+ fieldName: '@timestamp',
+ filterOperation: '+',
+ });
+
+ await unifiedFieldList.clickFieldListExistsFilter('log.level');
+
+ const [_, event2] = await ebtUIHelper.getEvents(Number.MAX_SAFE_INTEGER, {
+ eventTypes: ['discover_field_usage'],
+ withTimeoutMs: 500,
+ });
+
+ expect(event2.properties).to.eql({
+ eventName: 'filterAddition',
+ fieldName: 'log.level',
+ filterOperation: '_exists_',
+ });
+ });
+
+ it('should track field usage for doc viewer too', async () => {
+ await dataViews.switchToAndValidate('my-example-logs');
+ await discover.waitUntilSearchingHasFinished();
+ await unifiedFieldList.waitUntilSidebarHasLoaded();
+ await ebtUIHelper.setOptIn(true);
+
+ await dataGrid.clickRowToggle();
+ await discover.isShowingDocViewer();
+
+ // event 1
+ await dataGrid.clickFieldActionInFlyout('service.name', 'toggleColumnButton');
+ await header.waitUntilLoadingHasFinished();
+ await discover.waitUntilSearchingHasFinished();
+
+ // event 2
+ await dataGrid.clickFieldActionInFlyout('log.level', 'toggleColumnButton');
+ await header.waitUntilLoadingHasFinished();
+ await discover.waitUntilSearchingHasFinished();
+
+ // event 3
+ await dataGrid.clickFieldActionInFlyout('log.level', 'addFilterOutValueButton');
+ await header.waitUntilLoadingHasFinished();
+ await discover.waitUntilSearchingHasFinished();
+
+ const [event1, event2, event3] = await ebtUIHelper.getEvents(Number.MAX_SAFE_INTEGER, {
+ eventTypes: ['discover_field_usage'],
+ withTimeoutMs: 500,
+ });
+
+ expect(event1.properties).to.eql({
+ eventName: 'dataTableSelection',
+ fieldName: 'service.name',
+ });
+
+ expect(event2.properties).to.eql({
+ eventName: 'dataTableRemoval',
+ fieldName: 'log.level',
+ });
+
+ expect(event3.properties).to.eql({
+ eventName: 'filterAddition',
+ fieldName: 'log.level',
+ filterOperation: '-',
+ });
+ });
+
+ it('should track field usage on surrounding documents page', async () => {
+ await dataViews.switchToAndValidate('my-example-logs');
+ await discover.waitUntilSearchingHasFinished();
+ await unifiedFieldList.waitUntilSidebarHasLoaded();
+
+ await dataGrid.clickRowToggle({ rowIndex: 1 });
+ await discover.isShowingDocViewer();
+
+ const [, surroundingActionEl] = await dataGrid.getRowActions();
+ await surroundingActionEl.click();
+ await header.waitUntilLoadingHasFinished();
+ await ebtUIHelper.setOptIn(true);
+
+ await dataGrid.clickRowToggle({ rowIndex: 0 });
+ await discover.isShowingDocViewer();
+
+ // event 1
+ await dataGrid.clickFieldActionInFlyout('service.name', 'toggleColumnButton');
+ await header.waitUntilLoadingHasFinished();
+ await discover.waitUntilSearchingHasFinished();
+
+ // event 2
+ await dataGrid.clickFieldActionInFlyout('log.level', 'toggleColumnButton');
+ await header.waitUntilLoadingHasFinished();
+ await discover.waitUntilSearchingHasFinished();
+
+ // event 3
+ await dataGrid.clickFieldActionInFlyout('log.level', 'addFilterOutValueButton');
+ await header.waitUntilLoadingHasFinished();
+ await discover.waitUntilSearchingHasFinished();
+
+ const [event1, event2, event3] = await ebtUIHelper.getEvents(Number.MAX_SAFE_INTEGER, {
+ eventTypes: ['discover_field_usage'],
+ withTimeoutMs: 500,
+ });
+
+ expect(event1.properties).to.eql({
+ eventName: 'dataTableSelection',
+ fieldName: 'service.name',
+ });
+
+ expect(event2.properties).to.eql({
+ eventName: 'dataTableRemoval',
+ fieldName: 'log.level',
+ });
+
+ expect(event3.properties).to.eql({
+ eventName: 'filterAddition',
+ fieldName: 'log.level',
+ filterOperation: '-',
+ });
+
+ expect(event3.context.discoverProfiles).to.eql([
+ 'example-root-profile',
+ 'example-data-source-profile',
+ ]);
+ });
+ });
+ });
+}
diff --git a/test/functional/apps/discover/context_awareness/index.ts b/test/functional/apps/discover/context_awareness/index.ts
index 655f4460883d1..f937f38c741f9 100644
--- a/test/functional/apps/discover/context_awareness/index.ts
+++ b/test/functional/apps/discover/context_awareness/index.ts
@@ -38,6 +38,7 @@ export default function ({ getService, getPageObjects, loadTestFile }: FtrProvid
loadTestFile(require.resolve('./_root_profile'));
loadTestFile(require.resolve('./_data_source_profile'));
+ loadTestFile(require.resolve('./_telemetry'));
loadTestFile(require.resolve('./extensions/_get_row_indicator_provider'));
loadTestFile(require.resolve('./extensions/_get_row_additional_leading_controls'));
loadTestFile(require.resolve('./extensions/_get_doc_viewer'));
From f207c2c176ec6d96768f4fefec546596cce57463 Mon Sep 17 00:00:00 2001
From: Kurt
Date: Mon, 30 Sep 2024 12:34:04 -0400
Subject: [PATCH 34/60] ESLint Rule to discourage hashes being created with
unsafe algorithms (#190973)
Closes https://github.com/elastic/kibana/issues/185601
## Summary
Using non-compliant algorithms with Node Cryptos createHash function
will cause failures when running Kibana in FIPS mode.
We want to discourage usages of such algorithms.
---------
Co-authored-by: Sid
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine
---
.../src/bundle_routes/utils.ts | 2 +-
.../src/bootstrap/bootstrap_renderer.ts | 2 +-
.../src/get_migration_hash.ts | 2 +-
packages/kbn-es/src/install/install_source.ts | 4 +-
packages/kbn-eslint-config/.eslintrc.js | 1 +
packages/kbn-eslint-plugin-eslint/index.js | 1 +
.../rules/no_unsafe_hash.js | 166 ++++++++++++++++++
.../rules/no_unsafe_hash.test.js | 142 +++++++++++++++
.../report_failures_to_file.ts | 2 +-
.../kbn-optimizer/src/common/dll_manifest.ts | 2 +-
.../server/rest_api_routes/internal/fields.ts | 2 +-
.../server/routes/fullstory.ts | 2 +-
.../common/plugins/cases/server/routes.ts | 2 +-
13 files changed, 320 insertions(+), 10 deletions(-)
create mode 100644 packages/kbn-eslint-plugin-eslint/rules/no_unsafe_hash.js
create mode 100644 packages/kbn-eslint-plugin-eslint/rules/no_unsafe_hash.test.js
diff --git a/packages/core/apps/core-apps-server-internal/src/bundle_routes/utils.ts b/packages/core/apps/core-apps-server-internal/src/bundle_routes/utils.ts
index 05a31f85a51cc..ee115cda6e5b8 100644
--- a/packages/core/apps/core-apps-server-internal/src/bundle_routes/utils.ts
+++ b/packages/core/apps/core-apps-server-internal/src/bundle_routes/utils.ts
@@ -13,7 +13,7 @@ import * as Rx from 'rxjs';
import { map, takeUntil } from 'rxjs';
export const generateFileHash = (fd: number): Promise => {
- const hash = createHash('sha1');
+ const hash = createHash('sha1'); // eslint-disable-line @kbn/eslint/no_unsafe_hash
const read = createReadStream(null as any, {
fd,
start: 0,
diff --git a/packages/core/rendering/core-rendering-server-internal/src/bootstrap/bootstrap_renderer.ts b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/bootstrap_renderer.ts
index 757862d1d3c6c..8aa0d2a6c0387 100644
--- a/packages/core/rendering/core-rendering-server-internal/src/bootstrap/bootstrap_renderer.ts
+++ b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/bootstrap_renderer.ts
@@ -114,7 +114,7 @@ export const bootstrapRendererFactory: BootstrapRendererFactory = ({
publicPathMap,
});
- const hash = createHash('sha1');
+ const hash = createHash('sha1'); // eslint-disable-line @kbn/eslint/no_unsafe_hash
hash.update(body);
const etag = hash.digest('hex');
diff --git a/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.ts b/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.ts
index 461188703b3aa..c65f6330e176b 100644
--- a/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.ts
+++ b/packages/core/test-helpers/core-test-helpers-so-type-serializer/src/get_migration_hash.ts
@@ -16,7 +16,7 @@ type SavedObjectTypeMigrationHash = string;
export const getMigrationHash = (soType: SavedObjectsType): SavedObjectTypeMigrationHash => {
const migInfo = extractMigrationInfo(soType);
- const hash = createHash('sha1');
+ const hash = createHash('sha1'); // eslint-disable-line @kbn/eslint/no_unsafe_hash
const hashParts = [
migInfo.name,
diff --git a/packages/kbn-es/src/install/install_source.ts b/packages/kbn-es/src/install/install_source.ts
index 7dfbe8d7bd5b3..244b349002829 100644
--- a/packages/kbn-es/src/install/install_source.ts
+++ b/packages/kbn-es/src/install/install_source.ts
@@ -84,7 +84,7 @@ async function sourceInfo(cwd: string, license: string, log: ToolingLog = defaul
log.info('on %s at %s', chalk.bold(branch), chalk.bold(sha));
log.info('%s locally modified file(s)', chalk.bold(status.modified.length));
- const etag = crypto.createHash('md5').update(branch);
+ const etag = crypto.createHash('md5').update(branch); // eslint-disable-line @kbn/eslint/no_unsafe_hash
etag.update(sha);
// for changed files, use last modified times in hash calculation
@@ -92,7 +92,7 @@ async function sourceInfo(cwd: string, license: string, log: ToolingLog = defaul
etag.update(fs.statSync(path.join(cwd, file.path)).mtime.toString());
});
- const cwdHash = crypto.createHash('md5').update(cwd).digest('hex').substr(0, 8);
+ const cwdHash = crypto.createHash('md5').update(cwd).digest('hex').substr(0, 8); // eslint-disable-line @kbn/eslint/no_unsafe_hash
const basename = `${branch}-${task}-${cwdHash}`;
const filename = `${basename}.${ext}`;
diff --git a/packages/kbn-eslint-config/.eslintrc.js b/packages/kbn-eslint-config/.eslintrc.js
index a68dc6ecd949e..205e5b182e215 100644
--- a/packages/kbn-eslint-config/.eslintrc.js
+++ b/packages/kbn-eslint-config/.eslintrc.js
@@ -314,6 +314,7 @@ module.exports = {
'@kbn/eslint/no_constructor_args_in_property_initializers': 'error',
'@kbn/eslint/no_this_in_property_initializers': 'error',
'@kbn/eslint/no_unsafe_console': 'error',
+ '@kbn/eslint/no_unsafe_hash': 'error',
'@kbn/imports/no_unresolvable_imports': 'error',
'@kbn/imports/uniform_imports': 'error',
'@kbn/imports/no_unused_imports': 'error',
diff --git a/packages/kbn-eslint-plugin-eslint/index.js b/packages/kbn-eslint-plugin-eslint/index.js
index 1b9c04a2b7918..5ff3d70ae8a32 100644
--- a/packages/kbn-eslint-plugin-eslint/index.js
+++ b/packages/kbn-eslint-plugin-eslint/index.js
@@ -19,5 +19,6 @@ module.exports = {
no_constructor_args_in_property_initializers: require('./rules/no_constructor_args_in_property_initializers'),
no_this_in_property_initializers: require('./rules/no_this_in_property_initializers'),
no_unsafe_console: require('./rules/no_unsafe_console'),
+ no_unsafe_hash: require('./rules/no_unsafe_hash'),
},
};
diff --git a/packages/kbn-eslint-plugin-eslint/rules/no_unsafe_hash.js b/packages/kbn-eslint-plugin-eslint/rules/no_unsafe_hash.js
new file mode 100644
index 0000000000000..2088c196ddd60
--- /dev/null
+++ b/packages/kbn-eslint-plugin-eslint/rules/no_unsafe_hash.js
@@ -0,0 +1,166 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the "Elastic License
+ * 2.0", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
+ * License v3.0 only", or the "Server Side Public License, v 1".
+ */
+
+const allowedAlgorithms = ['sha256', 'sha3-256', 'sha512'];
+
+module.exports = {
+ allowedAlgorithms,
+ meta: {
+ type: 'problem',
+ docs: {
+ description: 'Allow usage of createHash only with allowed algorithms.',
+ category: 'FIPS',
+ recommended: false,
+ },
+ messages: {
+ noDisallowedHash:
+ 'Usage of {{functionName}} with "{{algorithm}}" is not allowed. Only the following algorithms are allowed: [{{allowedAlgorithms}}]. If you need to use a different algorithm, please contact the Kibana security team.',
+ },
+ schema: [],
+ },
+ create(context) {
+ let isCreateHashImported = false;
+ let createHashName = 'createHash';
+ let cryptoLocalName = 'crypto';
+ let usedFunctionName = '';
+ const sourceCode = context.getSourceCode();
+
+ const disallowedAlgorithmNodes = new Set();
+
+ function isAllowedAlgorithm(algorithm) {
+ return allowedAlgorithms.includes(algorithm);
+ }
+
+ function isHashOrCreateHash(value) {
+ if (value === 'hash' || value === 'createHash') {
+ usedFunctionName = value;
+ return true;
+ }
+ return false;
+ }
+
+ function getIdentifierValue(node) {
+ const scope = sourceCode.getScope(node);
+ if (!scope) {
+ return;
+ }
+ const variable = scope.variables.find((variable) => variable.name === node.name);
+ if (variable && variable.defs.length > 0) {
+ const def = variable.defs[0];
+ if (
+ def.node.init &&
+ def.node.init.type === 'Literal' &&
+ !isAllowedAlgorithm(def.node.init.value)
+ ) {
+ disallowedAlgorithmNodes.add(node.name);
+ return def.node.init.value;
+ }
+ }
+ }
+
+ return {
+ ImportDeclaration(node) {
+ if (node.source.value === 'crypto' || node.source.value === 'node:crypto') {
+ node.specifiers.forEach((specifier) => {
+ if (
+ specifier.type === 'ImportSpecifier' &&
+ isHashOrCreateHash(specifier.imported.name)
+ ) {
+ isCreateHashImported = true;
+ createHashName = specifier.local.name; // Capture local name (renamed or not)
+ } else if (specifier.type === 'ImportDefaultSpecifier') {
+ cryptoLocalName = specifier.local.name;
+ }
+ });
+ }
+ },
+ VariableDeclarator(node) {
+ if (node.init && node.init.type === 'Literal' && !isAllowedAlgorithm(node.init.value)) {
+ disallowedAlgorithmNodes.add(node.id.name);
+ }
+ },
+ AssignmentExpression(node) {
+ if (
+ node.right.type === 'Literal' &&
+ node.right.value === 'md5' &&
+ node.left.type === 'Identifier'
+ ) {
+ disallowedAlgorithmNodes.add(node.left.name);
+ }
+ },
+ CallExpression(node) {
+ const callee = node.callee;
+
+ if (
+ callee.type === 'MemberExpression' &&
+ callee.object.name === cryptoLocalName &&
+ isHashOrCreateHash(callee.property.name)
+ ) {
+ const arg = node.arguments[0];
+ if (arg) {
+ if (arg.type === 'Literal' && !isAllowedAlgorithm(arg.value)) {
+ context.report({
+ node,
+ messageId: 'noDisallowedHash',
+ data: {
+ algorithm: arg.value,
+ allowedAlgorithms: allowedAlgorithms.join(', '),
+ functionName: usedFunctionName,
+ },
+ });
+ } else if (arg.type === 'Identifier') {
+ const identifierValue = getIdentifierValue(arg);
+ if (disallowedAlgorithmNodes.has(arg.name) && identifierValue) {
+ context.report({
+ node,
+ messageId: 'noDisallowedHash',
+ data: {
+ algorithm: identifierValue,
+ allowedAlgorithms: allowedAlgorithms.join(', '),
+ functionName: usedFunctionName,
+ },
+ });
+ }
+ }
+ }
+ }
+
+ if (isCreateHashImported && callee.name === createHashName) {
+ const arg = node.arguments[0];
+ if (arg) {
+ if (arg.type === 'Literal' && !isAllowedAlgorithm(arg.value)) {
+ context.report({
+ node,
+ messageId: 'noDisallowedHash',
+ data: {
+ algorithm: arg.value,
+ allowedAlgorithms: allowedAlgorithms.join(', '),
+ functionName: usedFunctionName,
+ },
+ });
+ } else if (arg.type === 'Identifier') {
+ const identifierValue = getIdentifierValue(arg);
+ if (disallowedAlgorithmNodes.has(arg.name) && identifierValue) {
+ context.report({
+ node,
+ messageId: 'noDisallowedHash',
+ data: {
+ algorithm: identifierValue,
+ allowedAlgorithms: allowedAlgorithms.join(', '),
+ functionName: usedFunctionName,
+ },
+ });
+ }
+ }
+ }
+ }
+ },
+ };
+ },
+};
diff --git a/packages/kbn-eslint-plugin-eslint/rules/no_unsafe_hash.test.js b/packages/kbn-eslint-plugin-eslint/rules/no_unsafe_hash.test.js
new file mode 100644
index 0000000000000..d384ea40819eb
--- /dev/null
+++ b/packages/kbn-eslint-plugin-eslint/rules/no_unsafe_hash.test.js
@@ -0,0 +1,142 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the "Elastic License
+ * 2.0", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
+ * License v3.0 only", or the "Server Side Public License, v 1".
+ */
+
+const { RuleTester } = require('eslint');
+const { allowedAlgorithms, ...rule } = require('./no_unsafe_hash');
+
+const dedent = require('dedent');
+
+const joinedAllowedAlgorithms = `[${allowedAlgorithms.join(', ')}]`;
+
+const ruleTester = new RuleTester({
+ parser: require.resolve('@typescript-eslint/parser'),
+ parserOptions: {
+ sourceType: 'module',
+ ecmaVersion: 2018,
+ ecmaFeatures: {
+ jsx: true,
+ },
+ },
+});
+
+ruleTester.run('@kbn/eslint/no_unsafe_hash', rule, {
+ valid: [
+ // valid import of crypto and call of createHash
+ {
+ code: dedent`
+ import crypto from 'crypto';
+ crypto.createHash('sha256');
+ `,
+ },
+ // valid import and call of createHash
+ {
+ code: dedent`
+ import { createHash } from 'crypto';
+ createHash('sha256');
+ `,
+ },
+ // valid import and call of createHash with a variable containing a compliant aglorithm
+ {
+ code: dedent`
+ import { createHash } from 'crypto';
+ const myHash = 'sha256';
+ createHash(myHash);
+ `,
+ },
+ // valid import and call of hash with a variable containing a compliant aglorithm
+ {
+ code: dedent`
+ import { hash } from 'crypto';
+ const myHash = 'sha256';
+ hash(myHash);
+ `,
+ },
+ ],
+
+ invalid: [
+ // invalid call of createHash when calling from crypto
+ {
+ code: dedent`
+ import crypto from 'crypto';
+ crypto.createHash('md5');
+ `,
+ errors: [
+ {
+ line: 2,
+ message: `Usage of createHash with "md5" is not allowed. Only the following algorithms are allowed: ${joinedAllowedAlgorithms}. If you need to use a different algorithm, please contact the Kibana security team.`,
+ },
+ ],
+ },
+ // invalid call of createHash when importing directly
+ {
+ code: dedent`
+ import { createHash } from 'crypto';
+ createHash('md5');
+ `,
+ errors: [
+ {
+ line: 2,
+ message: `Usage of createHash with "md5" is not allowed. Only the following algorithms are allowed: ${joinedAllowedAlgorithms}. If you need to use a different algorithm, please contact the Kibana security team.`,
+ },
+ ],
+ },
+ // invalid call of createHash when calling with a variable containing md5
+ {
+ code: dedent`
+ import { createHash } from 'crypto';
+ const myHash = 'md5';
+ createHash(myHash);
+ `,
+ errors: [
+ {
+ line: 3,
+ message: `Usage of createHash with "md5" is not allowed. Only the following algorithms are allowed: ${joinedAllowedAlgorithms}. If you need to use a different algorithm, please contact the Kibana security team.`,
+ },
+ ],
+ },
+ // invalid import and call of hash when importing directly
+ {
+ code: dedent`
+ import { hash } from 'crypto';
+ hash('md5');
+ `,
+ errors: [
+ {
+ line: 2,
+ message: `Usage of hash with "md5" is not allowed. Only the following algorithms are allowed: ${joinedAllowedAlgorithms}. If you need to use a different algorithm, please contact the Kibana security team.`,
+ },
+ ],
+ },
+ {
+ code: dedent`
+ import _crypto from 'crypto';
+ _crypto.hash('md5');
+ `,
+ errors: [
+ {
+ line: 2,
+ message: `Usage of hash with "md5" is not allowed. Only the following algorithms are allowed: ${joinedAllowedAlgorithms}. If you need to use a different algorithm, please contact the Kibana security team.`,
+ },
+ ],
+ },
+
+ {
+ code: dedent`
+ import { hash as _hash } from 'crypto';
+ _hash('md5');
+ `,
+ errors: [
+ {
+ line: 2,
+ message: `Usage of hash with "md5" is not allowed. Only the following algorithms are allowed: ${joinedAllowedAlgorithms}. If you need to use a different algorithm, please contact the Kibana security team.`,
+ },
+ ],
+ },
+ ],
+});
diff --git a/packages/kbn-failed-test-reporter-cli/failed_tests_reporter/report_failures_to_file.ts b/packages/kbn-failed-test-reporter-cli/failed_tests_reporter/report_failures_to_file.ts
index 7876efb8502a5..b1e3997ebf030 100644
--- a/packages/kbn-failed-test-reporter-cli/failed_tests_reporter/report_failures_to_file.ts
+++ b/packages/kbn-failed-test-reporter-cli/failed_tests_reporter/report_failures_to_file.ts
@@ -127,7 +127,7 @@ export async function reportFailuresToFile(
// Jest could, in theory, fail 1000s of tests and write 1000s of failures
// So let's just write files for the first 20
for (const failure of failures.slice(0, 20)) {
- const hash = createHash('md5').update(failure.name).digest('hex');
+ const hash = createHash('md5').update(failure.name).digest('hex'); // eslint-disable-line @kbn/eslint/no_unsafe_hash
const filenameBase = `${
process.env.BUILDKITE_JOB_ID ? process.env.BUILDKITE_JOB_ID + '_' : ''
}${hash}`;
diff --git a/packages/kbn-optimizer/src/common/dll_manifest.ts b/packages/kbn-optimizer/src/common/dll_manifest.ts
index 0a5bebefdeca5..fc8c597110156 100644
--- a/packages/kbn-optimizer/src/common/dll_manifest.ts
+++ b/packages/kbn-optimizer/src/common/dll_manifest.ts
@@ -20,7 +20,7 @@ export interface ParsedDllManifest {
}
const hash = (s: string) => {
- return Crypto.createHash('sha1').update(s).digest('base64').replace(/=+$/, '');
+ return Crypto.createHash('sha1').update(s).digest('base64').replace(/=+$/, ''); // eslint-disable-line @kbn/eslint/no_unsafe_hash
};
export function parseDllManifest(manifest: DllManifest): ParsedDllManifest {
diff --git a/src/plugins/data_views/server/rest_api_routes/internal/fields.ts b/src/plugins/data_views/server/rest_api_routes/internal/fields.ts
index 7b13704f3c50a..0d8f8b4dd67b5 100644
--- a/src/plugins/data_views/server/rest_api_routes/internal/fields.ts
+++ b/src/plugins/data_views/server/rest_api_routes/internal/fields.ts
@@ -21,7 +21,7 @@ import { parseFields, IBody, IQuery, querySchema, validate } from './fields_for'
import { DEFAULT_FIELD_CACHE_FRESHNESS } from '../../constants';
export function calculateHash(srcBuffer: Buffer) {
- const hash = createHash('sha1');
+ const hash = createHash('sha1'); // eslint-disable-line @kbn/eslint/no_unsafe_hash
hash.update(srcBuffer);
return hash.digest('hex');
}
diff --git a/x-pack/plugins/cloud_integrations/cloud_full_story/server/routes/fullstory.ts b/x-pack/plugins/cloud_integrations/cloud_full_story/server/routes/fullstory.ts
index 03e38baee4e91..d983191c726df 100644
--- a/x-pack/plugins/cloud_integrations/cloud_full_story/server/routes/fullstory.ts
+++ b/x-pack/plugins/cloud_integrations/cloud_full_story/server/routes/fullstory.ts
@@ -26,7 +26,7 @@ export const renderFullStoryLibraryFactory = (dist = true) =>
headers: HttpResponseOptions['headers'];
}> => {
const srcBuffer = await fs.readFile(FULLSTORY_LIBRARY_PATH);
- const hash = createHash('sha1');
+ const hash = createHash('sha1'); // eslint-disable-line @kbn/eslint/no_unsafe_hash
hash.update(srcBuffer);
const hashDigest = hash.digest('hex');
diff --git a/x-pack/test/cases_api_integration/common/plugins/cases/server/routes.ts b/x-pack/test/cases_api_integration/common/plugins/cases/server/routes.ts
index 10139f636c809..3269f9f059446 100644
--- a/x-pack/test/cases_api_integration/common/plugins/cases/server/routes.ts
+++ b/x-pack/test/cases_api_integration/common/plugins/cases/server/routes.ts
@@ -19,7 +19,7 @@ import { CASES_TELEMETRY_TASK_NAME } from '@kbn/cases-plugin/common/constants';
import type { FixtureStartDeps } from './plugin';
const hashParts = (parts: string[]): string => {
- const hash = createHash('sha1');
+ const hash = createHash('sha1'); // eslint-disable-line @kbn/eslint/no_unsafe_hash
const hashFeed = parts.join('-');
return hash.update(hashFeed).digest('hex');
};
From fefa59f41206c534297813af2cb6f732c2c59aeb Mon Sep 17 00:00:00 2001
From: Davis Plumlee <56367316+dplumlee@users.noreply.github.com>
Date: Mon, 30 Sep 2024 12:37:29 -0400
Subject: [PATCH 35/60] [Security Solution] Test plan for rule `type` field
diff algorithm (#193372)
## Summary
Related ticket: https://github.com/elastic/kibana/issues/190482
Adds test plan for diff algorithm for `type` field diff algorithm
implemented here: https://github.com/elastic/kibana/pull/193369
### For maintainers
- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
---
.../upgrade_review_algorithms.md | 117 ++++++++++++++++--
1 file changed, 109 insertions(+), 8 deletions(-)
diff --git a/x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/prebuilt_rules/upgrade_review_algorithms.md b/x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/prebuilt_rules/upgrade_review_algorithms.md
index e65d366e0f44c..c4a39a994144f 100644
--- a/x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/prebuilt_rules/upgrade_review_algorithms.md
+++ b/x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/prebuilt_rules/upgrade_review_algorithms.md
@@ -17,12 +17,16 @@ Status: `in progress`.
- [Rule field doesn't have an update and has no custom value - `AAA`](#rule-field-doesnt-have-an-update-and-has-no-custom-value---aaa)
- [**Scenario: `AAA` - Rule field is any type**](#scenario-aaa---rule-field-is-any-type)
- [Rule field doesn't have an update but has a custom value - `ABA`](#rule-field-doesnt-have-an-update-but-has-a-custom-value---aba)
- - [**Scenario: `ABA` - Rule field is any type**](#scenario-aba---rule-field-is-any-type)
+ - [**Scenario: `ABA` - Rule field is any type except rule `type`**](#scenario-aba---rule-field-is-any-type-except-rule-type)
+ - [**Scenario: `ABA` - Rule field is rule `type`**](#scenario-aba---rule-field-is-rule-type)
- [Rule field has an update and doesn't have a custom value - `AAB`](#rule-field-has-an-update-and-doesnt-have-a-custom-value---aab)
- - [**Scenario: `AAB` - Rule field is any type**](#scenario-aab---rule-field-is-any-type)
+ - [**Scenario: `AAB` - Rule field is any type except rule `type`**](#scenario-aab---rule-field-is-any-type-except-rule-type)
+ - [**Scenario: `AAB` - Rule field is rule `type`**](#scenario-aab---rule-field-is-rule-type)
- [Rule field has an update and a custom value that are the same - `ABB`](#rule-field-has-an-update-and-a-custom-value-that-are-the-same---abb)
- - [**Scenario: `ABB` - Rule field is any type**](#scenario-abb---rule-field-is-any-type)
+ - [**Scenario: `ABB` - Rule field is any type except rule `type`**](#scenario-abb---rule-field-is-any-type-except-rule-type)
+ - [**Scenario: `ABB` - Rule field is rule `type`**](#scenario-abb---rule-field-is-rule-type)
- [Rule field has an update and a custom value that are NOT the same - `ABC`](#rule-field-has-an-update-and-a-custom-value-that-are-not-the-same---abc)
+ - [**Scenario: `ABC` - Rule field is rule `type`**](#scenario-abc---rule-field-is-rule-type)
- [**Scenario: `ABC` - Rule field is a number or single line string**](#scenario-abc---rule-field-is-a-number-or-single-line-string)
- [**Scenario: `ABC` - Rule field is a mergeable multi line string**](#scenario-abc---rule-field-is-a-mergeable-multi-line-string)
- [**Scenario: `ABC` - Rule field is a non-mergeable multi line string**](#scenario-abc---rule-field-is-a-non-mergeable-multi-line-string)
@@ -37,6 +41,7 @@ Status: `in progress`.
- [**Scenario: `-AB` - Rule field is an array of scalar values**](#scenario--ab---rule-field-is-an-array-of-scalar-values)
- [**Scenario: `-AB` - Rule field is a solvable `data_source` object**](#scenario--ab---rule-field-is-a-solvable-data_source-object)
- [**Scenario: `-AB` - Rule field is a non-solvable `data_source` object**](#scenario--ab---rule-field-is-a-non-solvable-data_source-object)
+ - [**Scenario: `-AB` - Rule field is rule `type`**](#scenario--ab---rule-field-is-rule-type)
## Useful information
@@ -74,7 +79,7 @@ Status: `in progress`.
#### **Scenario: `AAA` - Rule field is any type**
-**Automation**: 10 integration tests with mock rules + a set of unit tests for each algorithm
+**Automation**: 11 integration tests with mock rules + a set of unit tests for each algorithm
```Gherkin
Given field is not customized by the user (current version == base version)
@@ -85,6 +90,7 @@ And field should not be shown in the upgrade preview UI
Examples:
| algorithm | field_name | base_version | current_version | target_version | merged_version |
+| rule type | type | "query" | "query" | "query" | "query" |
| single line string | name | "A" | "A" | "A" | "A" |
| multi line string | description | "My description.\nThis is a second line." | "My description.\nThis is a second line." | "My description.\nThis is a second line." | "My description.\nThis is a second line." |
| number | risk_score | 1 | 1 | 1 | 1 |
@@ -99,7 +105,7 @@ Examples:
### Rule field doesn't have an update but has a custom value - `ABA`
-#### **Scenario: `ABA` - Rule field is any type**
+#### **Scenario: `ABA` - Rule field is any type except rule `type`**
**Automation**: 10 integration tests with mock rules + a set of unit tests for each algorithm
@@ -124,9 +130,27 @@ Examples:
| esql_query | esql_query | {query: "FROM query WHERE true", language: "esql"} | {query: "FROM query WHERE false", language: "esql"} | {query: "FROM query WHERE true", language: "esql"} | {query: "FROM query WHERE false", language: "esql"} |
```
+#### **Scenario: `ABA` - Rule field is rule `type`**
+
+**Automation**: 1 integration test with mock rules + a set of unit tests for each algorithm
+
+```Gherkin
+Given field is customized by the user (current version != base version)
+And field is not updated by Elastic in this upgrade (target version == base version)
+Then for field the diff algorithm should output the target version as the merged one with a non-solvable conflict
+And field should be returned from the `upgrade/_review` API endpoint
+And field should be shown in the upgrade preview UI
+
+Examples:
+| algorithm | field_name | base_version | current_version | target_version | merged_version |
+| rule type | type | "query" | "saved_query" | "query" | "query" |
+```
+
+Notes: `type` field can only be changed between `query` and `saved_query` rule types in the UI and API via normal conventions, but the logic for others is still covered
+
### Rule field has an update and doesn't have a custom value - `AAB`
-#### **Scenario: `AAB` - Rule field is any type**
+#### **Scenario: `AAB` - Rule field is any type except rule `type`**
**Automation**: 10 integration tests with mock rules + a set of unit tests for each algorithm
@@ -151,9 +175,27 @@ Examples:
| esql_query | esql_query | {query: "FROM query WHERE true", language: "esql"} | {query: "FROM query WHERE true", language: "esql"} | {query: "FROM query WHERE false", language: "esql"} | {query: "FROM query WHERE false", language: "esql"} |
```
+#### **Scenario: `AAB` - Rule field is rule `type`**
+
+**Automation**: 1 integration test with mock rules + a set of unit tests for each algorithm
+
+```Gherkin
+Given field is not customized by the user (current version == base version)
+And field is updated by Elastic in this upgrade (target version != base version)
+Then for field the diff algorithm should output the target version as the merged one with a non-solvable conflict
+And field should be returned from the `upgrade/_review` API endpoint
+And field should be shown in the upgrade preview UI
+
+Examples:
+| algorithm | field_name | base_version | current_version | target_version | merged_version |
+| rule type | type | "query" | "query" | "saved_query" | "saved_query" |
+```
+
+Notes: `type` field can only be changed between `query` and `saved_query` rule types in the UI and API via normal conventions, but the logic for others is still covered
+
### Rule field has an update and a custom value that are the same - `ABB`
-#### **Scenario: `ABB` - Rule field is any type**
+#### **Scenario: `ABB` - Rule field is any type except rule `type`**
**Automation**: 10 integration tests with mock rules + a set of unit tests for each algorithm
@@ -179,8 +221,46 @@ Examples:
| esql_query | esql_query | {query: "FROM query WHERE true", language: "esql"} | {query: "FROM query WHERE false", language: "esql"} | {query: "FROM query WHERE false", language: "esql"} | {query: "FROM query WHERE false", language: "esql"} |
```
+#### **Scenario: `ABB` - Rule field is rule `type`**
+
+**Automation**: 1 integration test with mock rules + a set of unit tests for each algorithm
+
+```Gherkin
+Given field is customized by the user (current version != base version)
+And field is updated by Elastic in this upgrade (target version != base version)
+And customized field is the same as the Elastic update in this upgrade (current version == target version)
+Then for field the diff algorithm should output the target version as the merged one with a non-solvable conflict
+And field should be returned from the `upgrade/_review` API endpoint
+And field should be shown in the upgrade preview UI
+
+Examples:
+| algorithm | field_name | base_version | current_version | target_version | merged_version |
+| rule type | type | "query" | "saved_query" | "saved_query" | "saved_query" |
+```
+
+Notes: `type` field can only be changed between `query` and `saved_query` rule types in the UI and API via normal conventions, but the logic for others is still covered
+
### Rule field has an update and a custom value that are NOT the same - `ABC`
+#### **Scenario: `ABC` - Rule field is rule `type`**
+
+**Automation**: 1 integration test with mock rules + a set of unit tests for the algorithms
+
+```Gherkin
+Given field is customized by the user (current version != base version)
+And field is updated by Elastic in this upgrade (target version != base version)
+And customized field is different than the Elastic update in this upgrade (current version != target version)
+Then for field the diff algorithm should output the target version as the merged one with a non-solvable conflict
+And field should be returned from the `upgrade/_review` API endpoint
+And field should be shown in the upgrade preview UI
+
+Examples:
+| algorithm | field_name | base_version | current_version | target_version | merged_version |
+| rule type | type | "query" | "saved_query" | "threshold" | "threshold" |
+```
+
+Notes: `type` field can only be changed between `query` and `saved_query` rule types in the UI and API via normal conventions, but the logic for others is still covered. This test case scenario cannot currently be reached.
+
#### **Scenario: `ABC` - Rule field is a number or single line string**
**Automation**: 2 integration tests with mock rules + a set of unit tests for the algorithms
@@ -328,7 +408,7 @@ Examples:
#### **Scenario: `-AA` - Rule field is any type**
-**Automation**: 9 integration tests with mock rules + a set of unit tests for each algorithm
+**Automation**: 11 integration tests with mock rules + a set of unit tests for each algorithm
```Gherkin
Given at least 1 installed prebuilt rule has a new version available
@@ -340,6 +420,7 @@ And field should not be shown in the upgrade preview UI
Examples:
| algorithm | field_name | base_version | current_version | target_version | merged_version |
+| rule type | type | N/A | "query" | "query" | "query" |
| single line string | name | N/A | "A" | "A" | "A" |
| multi line string | description | N/A | "My description.\nThis is a second line." | "My description.\nThis is a second line." | "My description.\nThis is a second line." |
| number | risk_score | N/A | 1 | 1 | 1 |
@@ -438,3 +519,23 @@ Examples:
| algorithm | base_version | current_version | target_version | merged_version |
| data_source | N/A | {type: "index_patterns", "index_patterns": ["one", "two", "three"]} | {type: "data_view", "data_view_id": "A"} | {type: "data_view", "data_view_id": "A"} |
```
+
+#### **Scenario: `-AB` - Rule field is rule `type`**
+
+**Automation**: 1 integration test with mock rules + a set of unit tests for the algorithm
+
+```Gherkin
+Given at least 1 installed prebuilt rule has a new version available
+And the base version of the rule cannot be determined
+And customized data_source field is different than the Elastic update in this upgrade (current version != target version)
+And current version and target version are not both array fields in data_source
+Then for data_source field the diff algorithm should output the target version as the merged version with a non-solvable conflict
+And data_source field should be returned from the `upgrade/_review` API endpoint
+And data_source field should be shown in the upgrade preview UI
+
+Examples:
+| algorithm | base_version | current_version | target_version | merged_version |
+| rule type | N/A | "query" | "saved_query" | "saved_query" |
+```
+
+Notes: `type` field can only be changed between `query` and `saved_query` rule types in the UI and API via normal conventions, but the logic for others is still covered
From c1f72d71cade7423ab5ab5d3ed68f4aa086f5faf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cau=C3=AA=20Marcondes?=
<55978943+cauemarcondes@users.noreply.github.com>
Date: Mon, 30 Sep 2024 18:19:19 +0100
Subject: [PATCH 36/60] [Inventory] Typing entities (#194431)
Adds typescript to the Entity type.
It correctly infers the type based on the entity.type field.
---
.../inventory/common/entities.ts | 42 +++++++++++++++++++
.../entities_grid/entities_grid.stories.tsx | 2 +-
.../entities_grid/mock/entities_mock.ts | 4 +-
.../routes/entities/get_latest_entities.ts | 19 ++-------
.../common/field_names/elasticsearch.ts | 1 +
.../observability_shared/common/index.ts | 1 +
6 files changed, 50 insertions(+), 19 deletions(-)
diff --git a/x-pack/plugins/observability_solution/inventory/common/entities.ts b/x-pack/plugins/observability_solution/inventory/common/entities.ts
index 2135688d75467..5dec3420ee005 100644
--- a/x-pack/plugins/observability_solution/inventory/common/entities.ts
+++ b/x-pack/plugins/observability_solution/inventory/common/entities.ts
@@ -7,6 +7,19 @@
import * as t from 'io-ts';
import { ENTITY_LATEST, entitiesAliasPattern } from '@kbn/entities-schema';
import { isRight } from 'fp-ts/lib/Either';
+import {
+ SERVICE_ENVIRONMENT,
+ SERVICE_NAME,
+ CONTAINER_ID,
+ HOST_NAME,
+} from '@kbn/observability-shared-plugin/common';
+import {
+ ENTITY_DEFINITION_ID,
+ ENTITY_DISPLAY_NAME,
+ ENTITY_ID,
+ ENTITY_LAST_SEEN,
+ ENTITY_TYPE,
+} from './es_fields/entities';
export const entityTypeRt = t.union([
t.literal('service'),
@@ -57,3 +70,32 @@ export const entityTypesRt = new t.Type(
},
(arr) => arr.join()
);
+
+interface BaseEntity {
+ [ENTITY_LAST_SEEN]: string;
+ [ENTITY_ID]: string;
+ [ENTITY_TYPE]: EntityType;
+ [ENTITY_DISPLAY_NAME]: string;
+ [ENTITY_DEFINITION_ID]: string;
+}
+
+/**
+ * These types are based on service, host and container from the built in definition.
+ */
+interface ServiceEntity extends BaseEntity {
+ [ENTITY_TYPE]: 'service';
+ [SERVICE_NAME]: string;
+ [SERVICE_ENVIRONMENT]?: string | null;
+}
+
+interface HostEntity extends BaseEntity {
+ [ENTITY_TYPE]: 'host';
+ [HOST_NAME]: string;
+}
+
+interface ContainerEntity extends BaseEntity {
+ [ENTITY_TYPE]: 'container';
+ [CONTAINER_ID]: string;
+}
+
+export type Entity = ServiceEntity | HostEntity | ContainerEntity;
diff --git a/x-pack/plugins/observability_solution/inventory/public/components/entities_grid/entities_grid.stories.tsx b/x-pack/plugins/observability_solution/inventory/public/components/entities_grid/entities_grid.stories.tsx
index 996f0ec951581..f05bf920a1845 100644
--- a/x-pack/plugins/observability_solution/inventory/public/components/entities_grid/entities_grid.stories.tsx
+++ b/x-pack/plugins/observability_solution/inventory/public/components/entities_grid/entities_grid.stories.tsx
@@ -40,7 +40,7 @@ export const Example: Story<{}> = () => {
);
return (
-
+
{`Entity filter: ${selectedEntityType || 'N/A'}`}
;
-export const entitiesMock: InventoryEntitiesAPIReturnType['entities'] = [
+export const entitiesMock = [
{
'entity.lastSeenTimestamp': '2023-08-20T10:50:06.384Z',
'entity.type': 'host',
@@ -3011,4 +3011,4 @@ export const entitiesMock: InventoryEntitiesAPIReturnType['entities'] = [
'entity.displayName': 'Troy McClure',
'entity.id': '499',
},
-];
+] as unknown as InventoryEntitiesAPIReturnType['entities'];
diff --git a/x-pack/plugins/observability_solution/inventory/server/routes/entities/get_latest_entities.ts b/x-pack/plugins/observability_solution/inventory/server/routes/entities/get_latest_entities.ts
index be909308e49c3..853d52d8401a9 100644
--- a/x-pack/plugins/observability_solution/inventory/server/routes/entities/get_latest_entities.ts
+++ b/x-pack/plugins/observability_solution/inventory/server/routes/entities/get_latest_entities.ts
@@ -12,22 +12,10 @@ import {
ENTITIES_LATEST_ALIAS,
MAX_NUMBER_OF_ENTITIES,
type EntityType,
+ Entity,
} from '../../../common/entities';
-import {
- ENTITY_DISPLAY_NAME,
- ENTITY_ID,
- ENTITY_LAST_SEEN,
- ENTITY_TYPE,
-} from '../../../common/es_fields/entities';
import { getEntityDefinitionIdWhereClause, getEntityTypesWhereClause } from './query_helper';
-export interface LatestEntity {
- [ENTITY_LAST_SEEN]: string;
- [ENTITY_TYPE]: string;
- [ENTITY_DISPLAY_NAME]: string;
- [ENTITY_ID]: string;
-}
-
export async function getLatestEntities({
inventoryEsClient,
sortDirection,
@@ -47,8 +35,7 @@ export async function getLatestEntities({
| ${getEntityDefinitionIdWhereClause()}
| SORT ${sortField} ${sortDirection}
| LIMIT ${MAX_NUMBER_OF_ENTITIES}
- | KEEP ${ENTITY_LAST_SEEN}, ${ENTITY_TYPE}, ${ENTITY_DISPLAY_NAME}, ${ENTITY_ID}
- `,
+ `,
filter: {
bool: {
filter: [...kqlQuery(kuery)],
@@ -56,5 +43,5 @@ export async function getLatestEntities({
},
});
- return esqlResultToPlainObjects(latestEntitiesEsqlResponse);
+ return esqlResultToPlainObjects(latestEntitiesEsqlResponse);
}
diff --git a/x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts b/x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts
index 35873a31150ac..afaf78ef1aa9b 100644
--- a/x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts
+++ b/x-pack/plugins/observability_solution/observability_shared/common/field_names/elasticsearch.ts
@@ -107,6 +107,7 @@ export const LABEL_NAME = 'labels.name';
export const HOST = 'host';
export const HOST_HOSTNAME = 'host.hostname';
+export const HOST_NAME = 'host.name';
export const HOST_OS_PLATFORM = 'host.os.platform';
export const CONTAINER_ID = 'container.id';
export const KUBERNETES = 'kubernetes';
diff --git a/x-pack/plugins/observability_solution/observability_shared/common/index.ts b/x-pack/plugins/observability_solution/observability_shared/common/index.ts
index d13e2b32839d6..e14bbb4139176 100644
--- a/x-pack/plugins/observability_solution/observability_shared/common/index.ts
+++ b/x-pack/plugins/observability_solution/observability_shared/common/index.ts
@@ -98,6 +98,7 @@ export {
LABEL_NAME,
HOST,
HOST_HOSTNAME,
+ HOST_NAME,
HOST_OS_PLATFORM,
CONTAINER_ID,
KUBERNETES,
From 18465e7f7e5d9912e61da68873045f0db984fa2b Mon Sep 17 00:00:00 2001
From: Davis Plumlee <56367316+dplumlee@users.noreply.github.com>
Date: Mon, 30 Sep 2024 13:27:29 -0400
Subject: [PATCH 37/60] [Security Solution] Rule `type` field diff algorithm
(#193369)
## Summary
Addresses https://github.com/elastic/kibana/issues/190482
Adds the diff algorithm implementation for the prebuilt rule `type`
field. Returns `target_version` and a `NON_SOLVABLE` conflict for every
outcome that changes the field.
### Checklist
Delete any items that are not applicable to this PR.
- [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
### For maintainers
- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
---
.../diff/calculation/algorithms/index.ts | 1 +
.../rule_type_diff_algorithm.test.ts | 165 ++++++++++++++++++
.../algorithms/rule_type_diff_algorithm.ts | 98 +++++++++++
3 files changed, 264 insertions(+)
create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/diff/calculation/algorithms/rule_type_diff_algorithm.test.ts
create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/diff/calculation/algorithms/rule_type_diff_algorithm.ts
diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/diff/calculation/algorithms/index.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/diff/calculation/algorithms/index.ts
index 629f329c72b9b..c8b55a49edc00 100644
--- a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/diff/calculation/algorithms/index.ts
+++ b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/diff/calculation/algorithms/index.ts
@@ -14,3 +14,4 @@ export { dataSourceDiffAlgorithm } from './data_source_diff_algorithm';
export { kqlQueryDiffAlgorithm } from './kql_query_diff_algorithm';
export { eqlQueryDiffAlgorithm } from './eql_query_diff_algorithm';
export { esqlQueryDiffAlgorithm } from './esql_query_diff_algorithm';
+export { ruleTypeDiffAlgorithm } from './rule_type_diff_algorithm';
diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/diff/calculation/algorithms/rule_type_diff_algorithm.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/diff/calculation/algorithms/rule_type_diff_algorithm.test.ts
new file mode 100644
index 0000000000000..accf133ac71b3
--- /dev/null
+++ b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/diff/calculation/algorithms/rule_type_diff_algorithm.test.ts
@@ -0,0 +1,165 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import type {
+ DiffableRuleTypes,
+ ThreeVersionsOf,
+} from '../../../../../../../../common/api/detection_engine';
+import {
+ ThreeWayDiffOutcome,
+ ThreeWayMergeOutcome,
+ MissingVersion,
+ ThreeWayDiffConflict,
+} from '../../../../../../../../common/api/detection_engine';
+import { ruleTypeDiffAlgorithm } from './rule_type_diff_algorithm';
+
+describe('ruleTypeDiffAlgorithm', () => {
+ it('returns current_version as merged output if there is no update - scenario AAA', () => {
+ const mockVersions: ThreeVersionsOf = {
+ base_version: 'query',
+ current_version: 'query',
+ target_version: 'query',
+ };
+
+ const result = ruleTypeDiffAlgorithm(mockVersions);
+
+ expect(result).toEqual(
+ expect.objectContaining({
+ merged_version: mockVersions.target_version,
+ diff_outcome: ThreeWayDiffOutcome.StockValueNoUpdate,
+ merge_outcome: ThreeWayMergeOutcome.Target,
+ conflict: ThreeWayDiffConflict.NONE,
+ })
+ );
+ });
+
+ it('returns current_version as merged output if current_version is different and there is no update - scenario ABA', () => {
+ // User can change rule type field between `query` and `saved_query` in the UI, no other rule types
+ const mockVersions: ThreeVersionsOf = {
+ base_version: 'query',
+ current_version: 'saved_query',
+ target_version: 'query',
+ };
+
+ const result = ruleTypeDiffAlgorithm(mockVersions);
+
+ expect(result).toEqual(
+ expect.objectContaining({
+ merged_version: mockVersions.target_version,
+ diff_outcome: ThreeWayDiffOutcome.CustomizedValueNoUpdate,
+ merge_outcome: ThreeWayMergeOutcome.Target,
+ conflict: ThreeWayDiffConflict.NON_SOLVABLE,
+ })
+ );
+ });
+
+ it('returns target_version as merged output if current_version is the same and there is an update - scenario AAB', () => {
+ // User can change rule type field between `query` and `saved_query` in the UI, no other rule types
+ const mockVersions: ThreeVersionsOf = {
+ base_version: 'query',
+ current_version: 'query',
+ target_version: 'saved_query',
+ };
+
+ const result = ruleTypeDiffAlgorithm(mockVersions);
+
+ expect(result).toEqual(
+ expect.objectContaining({
+ merged_version: mockVersions.target_version,
+ diff_outcome: ThreeWayDiffOutcome.StockValueCanUpdate,
+ merge_outcome: ThreeWayMergeOutcome.Target,
+ conflict: ThreeWayDiffConflict.NON_SOLVABLE,
+ })
+ );
+ });
+
+ it('returns current_version as merged output if current version is different but it matches the update - scenario ABB', () => {
+ // User can change rule type field between `query` and `saved_query` in the UI, no other rule types
+ const mockVersions: ThreeVersionsOf = {
+ base_version: 'query',
+ current_version: 'saved_query',
+ target_version: 'saved_query',
+ };
+
+ const result = ruleTypeDiffAlgorithm(mockVersions);
+
+ expect(result).toEqual(
+ expect.objectContaining({
+ merged_version: mockVersions.target_version,
+ diff_outcome: ThreeWayDiffOutcome.CustomizedValueSameUpdate,
+ merge_outcome: ThreeWayMergeOutcome.Target,
+ conflict: ThreeWayDiffConflict.NON_SOLVABLE,
+ })
+ );
+ });
+
+ it('returns current_version as merged output if all three versions are different - scenario ABC', () => {
+ // User can change rule type field between `query` and `saved_query` in the UI, no other rule types
+ // NOTE: This test case scenario is currently inaccessible via normal UI or API workflows, but the logic is covered just in case
+ const mockVersions: ThreeVersionsOf = {
+ base_version: 'query',
+ current_version: 'eql',
+ target_version: 'saved_query',
+ };
+
+ const result = ruleTypeDiffAlgorithm(mockVersions);
+
+ expect(result).toEqual(
+ expect.objectContaining({
+ merged_version: mockVersions.target_version,
+ diff_outcome: ThreeWayDiffOutcome.CustomizedValueCanUpdate,
+ merge_outcome: ThreeWayMergeOutcome.Target,
+ conflict: ThreeWayDiffConflict.NON_SOLVABLE,
+ })
+ );
+ });
+
+ describe('if base_version is missing', () => {
+ it('returns current_version as merged output if current_version and target_version are the same - scenario -AA', () => {
+ const mockVersions: ThreeVersionsOf = {
+ base_version: MissingVersion,
+ current_version: 'query',
+ target_version: 'query',
+ };
+
+ const result = ruleTypeDiffAlgorithm(mockVersions);
+
+ expect(result).toEqual(
+ expect.objectContaining({
+ has_base_version: false,
+ base_version: undefined,
+ merged_version: mockVersions.target_version,
+ diff_outcome: ThreeWayDiffOutcome.MissingBaseNoUpdate,
+ merge_outcome: ThreeWayMergeOutcome.Target,
+ conflict: ThreeWayDiffConflict.NONE,
+ })
+ );
+ });
+
+ it('returns target_version as merged output if current_version and target_version are different - scenario -AB', () => {
+ // User can change rule type field between `query` and `saved_query` in the UI, no other rule types
+ const mockVersions: ThreeVersionsOf = {
+ base_version: MissingVersion,
+ current_version: 'query',
+ target_version: 'saved_query',
+ };
+
+ const result = ruleTypeDiffAlgorithm(mockVersions);
+
+ expect(result).toEqual(
+ expect.objectContaining({
+ has_base_version: false,
+ base_version: undefined,
+ merged_version: mockVersions.target_version,
+ diff_outcome: ThreeWayDiffOutcome.MissingBaseCanUpdate,
+ merge_outcome: ThreeWayMergeOutcome.Target,
+ conflict: ThreeWayDiffConflict.NON_SOLVABLE,
+ })
+ );
+ });
+ });
+});
diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/diff/calculation/algorithms/rule_type_diff_algorithm.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/diff/calculation/algorithms/rule_type_diff_algorithm.ts
new file mode 100644
index 0000000000000..0701d1e46d251
--- /dev/null
+++ b/x-pack/plugins/security_solution/server/lib/detection_engine/prebuilt_rules/logic/diff/calculation/algorithms/rule_type_diff_algorithm.ts
@@ -0,0 +1,98 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { assertUnreachable } from '../../../../../../../../common/utility_types';
+import type {
+ DiffableRuleTypes,
+ ThreeVersionsOf,
+ ThreeWayDiff,
+} from '../../../../../../../../common/api/detection_engine/prebuilt_rules';
+import {
+ determineDiffOutcome,
+ determineIfValueCanUpdate,
+ MissingVersion,
+ ThreeWayDiffConflict,
+ ThreeWayDiffOutcome,
+ ThreeWayMergeOutcome,
+} from '../../../../../../../../common/api/detection_engine/prebuilt_rules';
+
+export const ruleTypeDiffAlgorithm = (
+ versions: ThreeVersionsOf
+): ThreeWayDiff => {
+ const {
+ base_version: baseVersion,
+ current_version: currentVersion,
+ target_version: targetVersion,
+ } = versions;
+
+ const diffOutcome = determineDiffOutcome(baseVersion, currentVersion, targetVersion);
+ const valueCanUpdate = determineIfValueCanUpdate(diffOutcome);
+
+ const hasBaseVersion = baseVersion !== MissingVersion;
+
+ const { mergeOutcome, conflict, mergedVersion } = mergeVersions({
+ targetVersion,
+ diffOutcome,
+ });
+
+ return {
+ has_base_version: hasBaseVersion,
+ base_version: hasBaseVersion ? baseVersion : undefined,
+ current_version: currentVersion,
+ target_version: targetVersion,
+ merged_version: mergedVersion,
+ merge_outcome: mergeOutcome,
+
+ diff_outcome: diffOutcome,
+ has_update: valueCanUpdate,
+ conflict,
+ };
+};
+
+interface MergeResult {
+ mergeOutcome: ThreeWayMergeOutcome;
+ mergedVersion: TValue;
+ conflict: ThreeWayDiffConflict;
+}
+
+interface MergeArgs {
+ targetVersion: TValue;
+ diffOutcome: ThreeWayDiffOutcome;
+}
+
+const mergeVersions = ({
+ targetVersion,
+ diffOutcome,
+}: MergeArgs): MergeResult => {
+ switch (diffOutcome) {
+ // Scenario -AA is treated as scenario AAA:
+ // https://github.com/elastic/kibana/pull/184889#discussion_r1636421293
+ case ThreeWayDiffOutcome.MissingBaseNoUpdate:
+ case ThreeWayDiffOutcome.StockValueNoUpdate:
+ return {
+ conflict: ThreeWayDiffConflict.NONE,
+ mergedVersion: targetVersion,
+ mergeOutcome: ThreeWayMergeOutcome.Target,
+ };
+ case ThreeWayDiffOutcome.CustomizedValueNoUpdate:
+ case ThreeWayDiffOutcome.CustomizedValueSameUpdate:
+ case ThreeWayDiffOutcome.StockValueCanUpdate:
+ // NOTE: This scenario is currently inaccessible via normal UI or API workflows, but the logic is covered just in case
+ case ThreeWayDiffOutcome.CustomizedValueCanUpdate:
+ // Scenario -AB is treated as scenario ABC:
+ // https://github.com/elastic/kibana/pull/184889#discussion_r1636421293
+ case ThreeWayDiffOutcome.MissingBaseCanUpdate: {
+ return {
+ mergedVersion: targetVersion,
+ mergeOutcome: ThreeWayMergeOutcome.Target,
+ conflict: ThreeWayDiffConflict.NON_SOLVABLE,
+ };
+ }
+ default:
+ return assertUnreachable(diffOutcome);
+ }
+};
From 7730eaba8d631c56df92e206aafd82084e4351cc Mon Sep 17 00:00:00 2001
From: Alexi Doak <109488926+doakalexi@users.noreply.github.com>
Date: Mon, 30 Sep 2024 10:43:02 -0700
Subject: [PATCH 38/60] [ResponseOps][Connectors] add the "service message" to
the message generated for errors (#194213)
Resolves https://github.com/elastic/kibana/issues/187288
## Summary
When a connector fails we log the error message. In this PR I updated
the log message to include the error message followed by the
serviceMessage if it's populated. This change will help provide more
detailed info in the log messages when a connector fails.
### Checklist
- [ ] [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
### To verify
- Create a connector and update the executor code to make it fail
- Create rule with your connector
- Verify that the log message includes more details about the error
instead of something like the following example for email connectors:
`Action '[email connector name]' failed: error sending email"`
---
.../server/lib/task_runner_factory.test.ts | 48 +++++++++++++++++++
.../actions/server/lib/task_runner_factory.ts | 8 +++-
2 files changed, 55 insertions(+), 1 deletion(-)
diff --git a/x-pack/plugins/actions/server/lib/task_runner_factory.test.ts b/x-pack/plugins/actions/server/lib/task_runner_factory.test.ts
index 3dd86bdcf148d..6c4cdd31ccf6c 100644
--- a/x-pack/plugins/actions/server/lib/task_runner_factory.test.ts
+++ b/x-pack/plugins/actions/server/lib/task_runner_factory.test.ts
@@ -890,6 +890,54 @@ describe('Task Runner Factory', () => {
expect(getErrorSource(err)).toBe(TaskErrorSource.FRAMEWORK);
});
+ test(`will throw an error and log the error message with the serviceMessage`, async () => {
+ const taskRunner = taskRunnerFactory.create({
+ taskInstance: {
+ ...mockedTaskInstance,
+ attempts: 0,
+ },
+ });
+
+ mockedEncryptedSavedObjectsClient.getDecryptedAsInternalUser.mockResolvedValueOnce({
+ id: '3',
+ type: 'action_task_params',
+ attributes: {
+ actionId: '2',
+ params: { baz: true },
+ executionId: '123abc',
+ apiKey: Buffer.from('123:abc').toString('base64'),
+ },
+ references: [
+ {
+ id: '2',
+ name: 'actionRef',
+ type: 'action',
+ },
+ ],
+ });
+ mockedActionExecutor.execute.mockResolvedValueOnce({
+ status: 'error',
+ actionId: '2',
+ message: 'Error message',
+ serviceMessage: 'Service message',
+ data: { foo: true },
+ retry: false,
+ errorSource: TaskErrorSource.FRAMEWORK,
+ });
+
+ let err;
+ try {
+ await taskRunner.run();
+ } catch (e) {
+ err = e;
+ }
+
+ expect(err).toBeDefined();
+ expect(taskRunnerFactoryInitializerParams.logger.error as jest.Mock).toHaveBeenCalledWith(
+ `Action '2' failed: Error message: Service message`
+ );
+ });
+
test(`fallbacks to FRAMEWORK error if ActionExecutor does not return any type of source'`, async () => {
const taskRunner = taskRunnerFactory.create({
taskInstance: {
diff --git a/x-pack/plugins/actions/server/lib/task_runner_factory.ts b/x-pack/plugins/actions/server/lib/task_runner_factory.ts
index 2c28c61cad3de..d6b418c481ea5 100644
--- a/x-pack/plugins/actions/server/lib/task_runner_factory.ts
+++ b/x-pack/plugins/actions/server/lib/task_runner_factory.ts
@@ -150,7 +150,13 @@ export class TaskRunnerFactory {
inMemoryMetrics.increment(IN_MEMORY_METRICS.ACTION_EXECUTIONS);
if (executorResult.status === 'error') {
inMemoryMetrics.increment(IN_MEMORY_METRICS.ACTION_FAILURES);
- logger.error(`Action '${actionId}' failed: ${executorResult.message}`);
+
+ let message = executorResult.message;
+ if (executorResult.serviceMessage) {
+ message = `${message}: ${executorResult.serviceMessage}`;
+ }
+ logger.error(`Action '${actionId}' failed: ${message}`);
+
// Task manager error handler only kicks in when an error thrown (at this time)
// So what we have to do is throw when the return status is `error`.
throw throwRetryableError(
From f7d1dd4bf35648b7a3db8fc7d16666f93949b43c Mon Sep 17 00:00:00 2001
From: Rodney Norris
Date: Mon, 30 Sep 2024 12:49:59 -0500
Subject: [PATCH 39/60] [Search][Onboarding] Start Page File Upload & O11y
links (#194231)
## Summary
- Clean-up for start page
- enabled submitting create index form w/ enter in index name input
- extracted start page example to hook to make it easier to update later
- Moved start page language up so changes are saved when switching
between UI & Code views
- Added File Upload link to the ML file uploader
- Added callouts for O11y
### Screenshots
### Checklist
- [x] 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
- [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
- [x] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
---------
Co-authored-by: Michael DeFazio
---
.../search_indices/common/doc_links.ts | 2 +
.../public/analytics/constants.ts | 1 +
.../public/code_examples/create_index.ts | 2 +
.../public/components/start/create_index.tsx | 197 ++++++++-----
.../components/start/create_index_code.tsx | 32 +--
.../components/start/elasticsearch_start.tsx | 260 ++++++++++++------
.../start/hooks/use_coding_examples.tsx | 15 +
.../public/components/start/types.ts | 3 +
.../plugins/search_indices/public/plugin.ts | 3 +
x-pack/plugins/search_indices/public/types.ts | 1 +
.../svl_search_elasticsearch_start_page.ts | 23 ++
.../search/config.feature_flags.ts | 9 +-
.../functional/test_suites/search/config.ts | 6 +-
.../test_suites/search/elasticsearch_start.ts | 12 +
14 files changed, 389 insertions(+), 177 deletions(-)
create mode 100644 x-pack/plugins/search_indices/public/components/start/hooks/use_coding_examples.tsx
diff --git a/x-pack/plugins/search_indices/common/doc_links.ts b/x-pack/plugins/search_indices/common/doc_links.ts
index 8cceb45041ab9..d7e7119dd7004 100644
--- a/x-pack/plugins/search_indices/common/doc_links.ts
+++ b/x-pack/plugins/search_indices/common/doc_links.ts
@@ -10,12 +10,14 @@ import { DocLinks } from '@kbn/doc-links';
class SearchIndicesDocLinks {
public apiReference: string = '';
public setupSemanticSearch: string = '';
+ public analyzeLogs: string = '';
constructor() {}
setDocLinks(newDocLinks: DocLinks) {
this.apiReference = newDocLinks.apiReference;
this.setupSemanticSearch = newDocLinks.enterpriseSearch.semanticSearch;
+ this.analyzeLogs = newDocLinks.serverlessSearch.integrations;
}
}
export const docLinks = new SearchIndicesDocLinks();
diff --git a/x-pack/plugins/search_indices/public/analytics/constants.ts b/x-pack/plugins/search_indices/public/analytics/constants.ts
index 563e5b62382c0..2a8c6d0d0ea0d 100644
--- a/x-pack/plugins/search_indices/public/analytics/constants.ts
+++ b/x-pack/plugins/search_indices/public/analytics/constants.ts
@@ -13,6 +13,7 @@ export enum AnalyticsEvents {
startCreateIndexLanguageSelect = 'start_code_lang_select',
startCreateIndexCodeCopyInstall = 'start_code_copy_install',
startCreateIndexCodeCopy = 'start_code_copy',
+ startFileUploadClick = 'start_file_upload',
indexDetailsInstallCodeCopy = 'index_details_code_copy_install',
indexDetailsAddMappingsCodeCopy = 'index_details_add_mappings_code_copy',
indexDetailsIngestDocumentsCodeCopy = 'index_details_ingest_documents_code_copy',
diff --git a/x-pack/plugins/search_indices/public/code_examples/create_index.ts b/x-pack/plugins/search_indices/public/code_examples/create_index.ts
index 627329b37d0be..01d969df3d70d 100644
--- a/x-pack/plugins/search_indices/public/code_examples/create_index.ts
+++ b/x-pack/plugins/search_indices/public/code_examples/create_index.ts
@@ -13,6 +13,7 @@ import { PythonServerlessCreateIndexExamples } from './python';
import { ConsoleCreateIndexExamples } from './sense';
export const DefaultServerlessCodeExamples: CreateIndexCodeExamples = {
+ exampleType: 'search',
sense: ConsoleCreateIndexExamples.default,
curl: CurlCreateIndexExamples.default,
python: PythonServerlessCreateIndexExamples.default,
@@ -20,6 +21,7 @@ export const DefaultServerlessCodeExamples: CreateIndexCodeExamples = {
};
export const DenseVectorSeverlessCodeExamples: CreateIndexCodeExamples = {
+ exampleType: 'vector',
sense: ConsoleCreateIndexExamples.dense_vector,
curl: CurlCreateIndexExamples.dense_vector,
python: PythonServerlessCreateIndexExamples.dense_vector,
diff --git a/x-pack/plugins/search_indices/public/components/start/create_index.tsx b/x-pack/plugins/search_indices/public/components/start/create_index.tsx
index ae191481e5da4..bd80922d79689 100644
--- a/x-pack/plugins/search_indices/public/components/start/create_index.tsx
+++ b/x-pack/plugins/search_indices/public/components/start/create_index.tsx
@@ -13,12 +13,16 @@ import {
EuiFlexItem,
EuiForm,
EuiFormRow,
+ EuiHorizontalRule,
EuiIcon,
+ EuiLink,
+ EuiPanel,
EuiSpacer,
EuiText,
EuiToolTip,
} from '@elastic/eui';
import { i18n } from '@kbn/i18n';
+import { FormattedMessage } from '@kbn/i18n-react';
import type { UserStartPrivilegesResponse } from '../../../common';
import { AnalyticsEvents } from '../../analytics/constants';
@@ -28,6 +32,7 @@ import { isValidIndexName } from '../../utils/indices';
import { useCreateIndex } from './hooks/use_create_index';
import { CreateIndexFormState } from './types';
+import { useKibana } from '../../hooks/use_kibana';
const CREATE_INDEX_CONTENT = i18n.translate(
'xpack.searchIndices.startPage.createIndex.action.text',
@@ -47,6 +52,7 @@ export const CreateIndexForm = ({
formState,
setFormState,
}: CreateIndexFormProps) => {
+ const { application } = useKibana().services;
const [indexNameHasError, setIndexNameHasError] = useState(false);
const usageTracker = useUsageTracker();
const { createIndex, isLoading } = useCreateIndex();
@@ -65,93 +71,136 @@ export const CreateIndexForm = ({
setIndexNameHasError(invalidIndexName);
}
};
+ const onFileUpload = useCallback(() => {
+ usageTracker.click(AnalyticsEvents.startFileUploadClick);
+ application.navigateToApp('ml', { path: 'filedatavisualizer' });
+ }, [usageTracker, application]);
return (
-
-
-
+
+
-
-
-
-
- {userPrivileges?.privileges?.canCreateIndex === false ? (
-
- {i18n.translate('xpack.searchIndices.startPage.createIndex.permissionTooltip', {
- defaultMessage: 'You do not have permission to create an index.',
- })}
-
- {i18n.translate('xpack.searchIndices.startPage.pageDescription', {
- defaultMessage: 'Vectorize, search, and visualize your data',
- })}
-
-
-
-
-
+
+
+
+
+
+ {i18n.translate('xpack.searchIndices.startPage.pageDescription', {
+ defaultMessage: 'Vectorize, search, and visualize your data',
+ })}
+
+
+
-
-
-
-
-
-
- {i18n.translate('xpack.searchIndices.startPage.createIndex.title', {
- defaultMessage: 'Create your first index',
- })}
-
-
-
-
-
-
-
-
-
- {i18n.translate('xpack.searchIndices.startPage.createIndex.description', {
- defaultMessage:
- 'An index stores your data and defines the schema, or field mappings, for your searches',
- })}
-
+ {i18n.translate('xpack.searchIndices.startPage.createIndex.description', {
+ defaultMessage:
+ 'An index stores your data and defines the schema, or field mappings, for your searches',
+ })}
+
+ {i18n.translate('xpack.searchIndices.startPage.observabilityCallout.title', {
+ defaultMessage: 'Looking to store your logs or metrics data?',
+ })}
+
+
+
+
+
+
+
+ {i18n.translate('xpack.searchIndices.startPage.observabilityCallout.logs.button', {
+ defaultMessage: 'Collect and analyze logs',
+ })}
+
+
+
+ {i18n.translate(
+ 'xpack.searchIndices.startPage.observabilityCallout.logs.subTitle',
+ {
+ defaultMessage: 'Explore Logstash and Beats',
+ }
+ )}
+
+
+
+
+ or
+
+
+
+ {i18n.translate(
+ 'xpack.searchIndices.startPage.observabilityCallout.o11yTrial.button',
+ {
+ defaultMessage: 'Start an Observability trial',
+ }
+ )}
+
+
+
+ {i18n.translate(
+ 'xpack.searchIndices.startPage.observabilityCallout.o11yTrial.subTitle',
+ {
+ defaultMessage: 'Powerful performance monitoring',
+ }
+ )}
+
+
+
+
);
diff --git a/x-pack/plugins/search_indices/public/components/start/hooks/use_coding_examples.tsx b/x-pack/plugins/search_indices/public/components/start/hooks/use_coding_examples.tsx
new file mode 100644
index 0000000000000..1a351d10943f2
--- /dev/null
+++ b/x-pack/plugins/search_indices/public/components/start/hooks/use_coding_examples.tsx
@@ -0,0 +1,15 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { CreateIndexCodeExamples } from '../../../types';
+import { DenseVectorSeverlessCodeExamples } from '../../../code_examples/create_index';
+
+export const useStartPageCodingExamples = (): CreateIndexCodeExamples => {
+ // TODO: in the future this will be dynamic based on the onboarding token
+ // or project sub-type
+ return DenseVectorSeverlessCodeExamples;
+};
diff --git a/x-pack/plugins/search_indices/public/components/start/types.ts b/x-pack/plugins/search_indices/public/components/start/types.ts
index 6b6c1c8e38f61..c0dbbeca88883 100644
--- a/x-pack/plugins/search_indices/public/components/start/types.ts
+++ b/x-pack/plugins/search_indices/public/components/start/types.ts
@@ -5,6 +5,9 @@
* 2.0.
*/
+import type { AvailableLanguages } from '../../code_examples';
+
export interface CreateIndexFormState {
indexName: string;
+ codingLanguage: AvailableLanguages;
}
diff --git a/x-pack/plugins/search_indices/public/plugin.ts b/x-pack/plugins/search_indices/public/plugin.ts
index 5ebfb84e1cd39..bec4f7cb7bfe6 100644
--- a/x-pack/plugins/search_indices/public/plugin.ts
+++ b/x-pack/plugins/search_indices/public/plugin.ts
@@ -7,6 +7,8 @@
import type { CoreSetup, CoreStart, Plugin } from '@kbn/core/public';
import { i18n } from '@kbn/i18n';
+
+import { docLinks } from '../common/doc_links';
import type {
SearchIndicesAppPluginStartDependencies,
SearchIndicesPluginSetup,
@@ -64,6 +66,7 @@ export class SearchIndicesPlugin
}
public start(core: CoreStart): SearchIndicesPluginStart {
+ docLinks.setDocLinks(core.docLinks.links);
return {};
}
diff --git a/x-pack/plugins/search_indices/public/types.ts b/x-pack/plugins/search_indices/public/types.ts
index 95f5eb2883d2e..a3e63df2642b3 100644
--- a/x-pack/plugins/search_indices/public/types.ts
+++ b/x-pack/plugins/search_indices/public/types.ts
@@ -77,6 +77,7 @@ export interface CreateIndexCodeDefinition {
}
export interface CreateIndexCodeExamples {
+ exampleType: string;
sense: CreateIndexCodeDefinition;
curl: CreateIndexCodeDefinition;
python: CreateIndexCodeDefinition;
diff --git a/x-pack/test_serverless/functional/page_objects/svl_search_elasticsearch_start_page.ts b/x-pack/test_serverless/functional/page_objects/svl_search_elasticsearch_start_page.ts
index 33dbc6f693ea8..798d396258e75 100644
--- a/x-pack/test_serverless/functional/page_objects/svl_search_elasticsearch_start_page.ts
+++ b/x-pack/test_serverless/functional/page_objects/svl_search_elasticsearch_start_page.ts
@@ -30,6 +30,11 @@ export function SvlSearchElasticsearchStartPageProvider({ getService }: FtrProvi
);
});
},
+ async expectToBeOnMLFileUploadPage() {
+ await retry.tryForTime(60 * 1000, async () => {
+ expect(await browser.getCurrentUrl()).contain('/app/ml/filedatavisualizer');
+ });
+ },
async expectIndexNameToExist() {
await testSubjects.existOrFail('indexNameField');
},
@@ -67,5 +72,23 @@ export function SvlSearchElasticsearchStartPageProvider({ getService }: FtrProvi
await testSubjects.existOrFail('createIndexCodeViewBtn');
await testSubjects.click('createIndexCodeViewBtn');
},
+ async clickFileUploadLink() {
+ await testSubjects.existOrFail('uploadFileLink');
+ await testSubjects.click('uploadFileLink');
+ },
+ async expectAnalyzeLogsLink() {
+ await testSubjects.existOrFail('analyzeLogsBtn');
+ expect(await testSubjects.getAttribute('analyzeLogsBtn', 'href')).equal(
+ 'https://docs.elastic.co/serverless/elasticsearch/ingest-your-data'
+ );
+ expect(await testSubjects.getAttribute('analyzeLogsBtn', 'target')).equal('_blank');
+ },
+ async expectO11yTrialLink() {
+ await testSubjects.existOrFail('startO11yTrialBtn');
+ expect(await testSubjects.getAttribute('startO11yTrialBtn', 'href')).equal(
+ 'https://fake-cloud.elastic.co/projects/create/observability/start'
+ );
+ expect(await testSubjects.getAttribute('startO11yTrialBtn', 'target')).equal('_blank');
+ },
};
}
diff --git a/x-pack/test_serverless/functional/test_suites/search/config.feature_flags.ts b/x-pack/test_serverless/functional/test_suites/search/config.feature_flags.ts
index 05eb6136bf008..824d145282257 100644
--- a/x-pack/test_serverless/functional/test_suites/search/config.feature_flags.ts
+++ b/x-pack/test_serverless/functional/test_suites/search/config.feature_flags.ts
@@ -19,10 +19,11 @@ export default createTestConfig({
suiteTags: { exclude: ['skipSvlSearch'] },
// add feature flags
kbnServerArgs: [
- `--xpack.cloud.id='ES3_FTR_TESTS:ZmFrZS1kb21haW4uY2xkLmVsc3RjLmNvJGZha2Vwcm9qZWN0aWQuZXMkZmFrZXByb2plY3RpZC5rYg=='`,
- `--xpack.cloud.serverless.project_id='fakeprojectid'`,
- `--xpack.cloud.base_url='https://cloud.elastic.co'`,
- `--xpack.cloud.organization_url='/account/members'`,
+ `--xpack.cloud.id=ES3_FTR_TESTS:ZmFrZS1kb21haW4uY2xkLmVsc3RjLmNvJGZha2Vwcm9qZWN0aWQuZXMkZmFrZXByb2plY3RpZC5rYg==`,
+ `--xpack.cloud.serverless.project_id=fakeprojectid`,
+ `--xpack.cloud.base_url=https://fake-cloud.elastic.co`,
+ `--xpack.cloud.projects_url=/projects/`,
+ `--xpack.cloud.organization_url=/account/members`,
`--xpack.security.roleManagementEnabled=true`,
`--xpack.spaces.maxSpaces=100`, // enables spaces UI capabilities
`--xpack.searchIndices.enabled=true`, // global empty state FF
diff --git a/x-pack/test_serverless/functional/test_suites/search/config.ts b/x-pack/test_serverless/functional/test_suites/search/config.ts
index 6853e75d987b8..4739cde53bf86 100644
--- a/x-pack/test_serverless/functional/test_suites/search/config.ts
+++ b/x-pack/test_serverless/functional/test_suites/search/config.ts
@@ -19,7 +19,9 @@ export default createTestConfig({
// https://github.com/elastic/project-controller/blob/main/internal/project/esproject/config/elasticsearch.yml
esServerArgs: [],
kbnServerArgs: [
- `--xpack.cloud.id='ES3_FTR_TESTS:ZmFrZS1kb21haW4uY2xkLmVsc3RjLmNvJGZha2Vwcm9qZWN0aWQuZXMkZmFrZXByb2plY3RpZC5rYg=='`,
- `--xpack.cloud.serverless.project_id='fakeprojectid'`,
+ `--xpack.cloud.id=ES3_FTR_TESTS:ZmFrZS1kb21haW4uY2xkLmVsc3RjLmNvJGZha2Vwcm9qZWN0aWQuZXMkZmFrZXByb2plY3RpZC5rYg==`,
+ `--xpack.cloud.serverless.project_id=fakeprojectid`,
+ `--xpack.cloud.base_url=https://fake-cloud.elastic.co`,
+ `--xpack.cloud.projects_url=/projects/`,
],
});
diff --git a/x-pack/test_serverless/functional/test_suites/search/elasticsearch_start.ts b/x-pack/test_serverless/functional/test_suites/search/elasticsearch_start.ts
index 55f1551141e47..f6362a409658e 100644
--- a/x-pack/test_serverless/functional/test_suites/search/elasticsearch_start.ts
+++ b/x-pack/test_serverless/functional/test_suites/search/elasticsearch_start.ts
@@ -81,6 +81,18 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
await pageObjects.svlSearchElasticsearchStartPage.clickUIViewButton();
await pageObjects.svlSearchElasticsearchStartPage.expectCreateIndexUIView();
});
+
+ it('should have file upload link', async () => {
+ await pageObjects.svlSearchElasticsearchStartPage.expectToBeOnStartPage();
+ await pageObjects.svlSearchElasticsearchStartPage.clickFileUploadLink();
+ await pageObjects.svlSearchElasticsearchStartPage.expectToBeOnMLFileUploadPage();
+ });
+
+ it('should have o11y links', async () => {
+ await pageObjects.svlSearchElasticsearchStartPage.expectToBeOnStartPage();
+ await pageObjects.svlSearchElasticsearchStartPage.expectAnalyzeLogsLink();
+ await pageObjects.svlSearchElasticsearchStartPage.expectO11yTrialLink();
+ });
});
describe('viewer', function () {
before(async () => {
From c362ab8b920a0c34582ab046e8a3925e7a2d42fb Mon Sep 17 00:00:00 2001
From: Steph Milovic
Date: Mon, 30 Sep 2024 11:59:14 -0600
Subject: [PATCH 40/60] [Security solution] Update ebt fields script to new
Vault policy (#194458)
---
x-pack/plugins/security_solution/scripts/telemetry/README.md | 2 +-
.../security_solution/scripts/telemetry/build_ebt_data_view.ts | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/x-pack/plugins/security_solution/scripts/telemetry/README.md b/x-pack/plugins/security_solution/scripts/telemetry/README.md
index ea17f9b4a140c..f1cfa92dd731c 100644
--- a/x-pack/plugins/security_solution/scripts/telemetry/README.md
+++ b/x-pack/plugins/security_solution/scripts/telemetry/README.md
@@ -13,7 +13,7 @@ If you have further events to be included in the data views, please update the s
### Usage
-1. Login with Vault (`vault login -method github`), ensure you have siem-team access. If you have never accessed Vault before, follow [these instructions](https://github.com/elastic/infra/blob/master/docs/vault/README.md)
+1. Login with Vault (`vault login -method oidc`), ensure you have siem-team access. If you have never accessed Vault before, follow [these instructions](https://github.com/elastic/infra/blob/master/docs/vault/README.md)
2. cd into this directory
3. Run the script with the appropriate arguments. By default, the script will run for the `security-solution-ebt-kibana-browser` data view in the `securitysolution` space. If you want to run the script for the server data view, pass the `--telemetry_type` argument with the value `server`.
diff --git a/x-pack/plugins/security_solution/scripts/telemetry/build_ebt_data_view.ts b/x-pack/plugins/security_solution/scripts/telemetry/build_ebt_data_view.ts
index e17b72d195c6c..9cf8fe842a9e9 100755
--- a/x-pack/plugins/security_solution/scripts/telemetry/build_ebt_data_view.ts
+++ b/x-pack/plugins/security_solution/scripts/telemetry/build_ebt_data_view.ts
@@ -11,7 +11,7 @@ import { events as genAiEvents } from '@kbn/elastic-assistant-plugin/server/lib/
import { events as securityEvents } from '../../server/lib/telemetry/event_based/events';
import { telemetryEvents } from '../../public/common/lib/telemetry/events/telemetry_events';
-// uncomment and add to run script, but do not commit as creates cirular dependency
+// uncomment and add to run script, but do not commit as creates circular dependency
// import { telemetryEvents as serverlessEvents } from '@kbn/security-solution-serverless/server/telemetry/event_based_telemetry';
const logger = new ToolingLog({
From 5f83ac05991cd980ef5b205acd19c997b60045a3 Mon Sep 17 00:00:00 2001
From: Marshall Main <55718608+marshallmain@users.noreply.github.com>
Date: Mon, 30 Sep 2024 11:07:39 -0700
Subject: [PATCH 41/60] [Security Solution][Detection Engine] Avoid creating
list items for empty lines in import list API (#192681)
## Summary
The quickstart tooling introduced in
https://github.com/elastic/kibana/pull/190634 uses axios under the hood
to make requests to Kibana. When attaching file data to the axios
request with `FormData`, axios adds an extra empty line after the end
content boundary. The logic in `buffer_lines.ts` assumes that there are
no more lines after the end content boundary line, so importing a list
with the quickstart tooling would create a list with an extra empty
item. This empty item fails validation when retrieved through other
APIs.
This PR prevents lines after the end content boundary from being turned
into list items in the import list API.
---
.../services/items/buffer_lines.test.ts | 92 +++++++------------
.../server/services/items/buffer_lines.ts | 2 +-
.../write_lines_to_bulk_list_items.test.ts | 12 +++
3 files changed, 45 insertions(+), 61 deletions(-)
diff --git a/x-pack/plugins/lists/server/services/items/buffer_lines.test.ts b/x-pack/plugins/lists/server/services/items/buffer_lines.test.ts
index 509233d006b73..7faef72c38907 100644
--- a/x-pack/plugins/lists/server/services/items/buffer_lines.test.ts
+++ b/x-pack/plugins/lists/server/services/items/buffer_lines.test.ts
@@ -23,9 +23,15 @@ describe('buffer_lines', () => {
}).toThrow('bufferSize must be greater than zero');
});
- test('it can read a single line', (done) => {
+ test('two identical lines are collapsed into just one line without duplicates', (done) => {
const input = new TestReadable();
+ input.push('--boundary\n');
+ input.push('Content-type: text/plain\n');
+ input.push('Content-Disposition: form-data; name="fieldName"; filename="filename.text"\n');
+ input.push('\n');
+ input.push('line one\n');
input.push('line one\n');
+ input.push('--boundary--\n');
input.push(null);
const bufferedLine = new BufferLines({ bufferSize: IMPORT_BUFFER_SIZE, input });
let linesToTest: string[] = [];
@@ -38,25 +44,8 @@ describe('buffer_lines', () => {
});
});
- test('it can read a single line using a buffer size of 1', (done) => {
+ test('it can close out without writing any lines', (done) => {
const input = new TestReadable();
- input.push('line one\n');
- input.push(null);
- const bufferedLine = new BufferLines({ bufferSize: 1, input });
- let linesToTest: string[] = [];
- bufferedLine.on('lines', (lines: string[]) => {
- linesToTest = [...linesToTest, ...lines];
- });
- bufferedLine.on('close', () => {
- expect(linesToTest).toEqual(['line one']);
- done();
- });
- });
-
- test('it can read two lines', (done) => {
- const input = new TestReadable();
- input.push('line one\n');
- input.push('line two\n');
input.push(null);
const bufferedLine = new BufferLines({ bufferSize: IMPORT_BUFFER_SIZE, input });
let linesToTest: string[] = [];
@@ -64,74 +53,56 @@ describe('buffer_lines', () => {
linesToTest = [...linesToTest, ...lines];
});
bufferedLine.on('close', () => {
- expect(linesToTest).toEqual(['line one', 'line two']);
- done();
- });
- });
-
- test('it can read two lines using a buffer size of 1', (done) => {
- const input = new TestReadable();
- input.push('line one\n');
- input.push('line two\n');
- input.push(null);
- const bufferedLine = new BufferLines({ bufferSize: 1, input });
- let linesToTest: string[] = [];
- bufferedLine.on('lines', (lines: string[]) => {
- linesToTest = [...linesToTest, ...lines];
- });
- bufferedLine.on('close', () => {
- expect(linesToTest).toEqual(['line one', 'line two']);
+ expect(linesToTest).toEqual([]);
done();
});
});
- test('two identical lines are collapsed into just one line without duplicates', (done) => {
+ test('it can read 200 lines', (done) => {
const input = new TestReadable();
- input.push('line one\n');
- input.push('line one\n');
- input.push(null);
const bufferedLine = new BufferLines({ bufferSize: IMPORT_BUFFER_SIZE, input });
+ input.push('--boundary\n');
+ input.push('Content-type: text/plain\n');
+ input.push('Content-Disposition: form-data; name="fieldName"; filename="filename.text"\n');
+ input.push('\n');
let linesToTest: string[] = [];
- bufferedLine.on('lines', (lines: string[]) => {
- linesToTest = [...linesToTest, ...lines];
- });
- bufferedLine.on('close', () => {
- expect(linesToTest).toEqual(['line one']);
- done();
- });
- });
-
- test('it can close out without writing any lines', (done) => {
- const input = new TestReadable();
+ const size200: string[] = new Array(200).fill(null).map((_, index) => `${index}\n`);
+ size200.forEach((element) => input.push(element));
+ input.push('--boundary--\n');
input.push(null);
- const bufferedLine = new BufferLines({ bufferSize: IMPORT_BUFFER_SIZE, input });
- let linesToTest: string[] = [];
bufferedLine.on('lines', (lines: string[]) => {
linesToTest = [...linesToTest, ...lines];
});
bufferedLine.on('close', () => {
- expect(linesToTest).toEqual([]);
+ expect(linesToTest.length).toEqual(200);
done();
});
});
- test('it can read 200 lines', (done) => {
+ test('it can read an example multi-part message', (done) => {
const input = new TestReadable();
+ input.push('--boundary\n');
+ input.push('Content-type: text/plain\n');
+ input.push('Content-Disposition: form-data; name="fieldName"; filename="filename.text"\n');
+ input.push('\n');
+ input.push('127.0.0.1\n');
+ input.push('127.0.0.2\n');
+ input.push('127.0.0.3\n');
+ input.push('\n');
+ input.push('--boundary--\n');
+ input.push(null);
const bufferedLine = new BufferLines({ bufferSize: IMPORT_BUFFER_SIZE, input });
let linesToTest: string[] = [];
- const size200: string[] = new Array(200).fill(null).map((_, index) => `${index}\n`);
- size200.forEach((element) => input.push(element));
- input.push(null);
bufferedLine.on('lines', (lines: string[]) => {
linesToTest = [...linesToTest, ...lines];
});
bufferedLine.on('close', () => {
- expect(linesToTest.length).toEqual(200);
+ expect(linesToTest).toEqual(['127.0.0.1', '127.0.0.2', '127.0.0.3']);
done();
});
});
- test('it can read an example multi-part message', (done) => {
+ test('it does not create empty values for lines after the end boundary', (done) => {
const input = new TestReadable();
input.push('--boundary\n');
input.push('Content-type: text/plain\n');
@@ -142,6 +113,7 @@ describe('buffer_lines', () => {
input.push('127.0.0.3\n');
input.push('\n');
input.push('--boundary--\n');
+ input.push('\n');
input.push(null);
const bufferedLine = new BufferLines({ bufferSize: IMPORT_BUFFER_SIZE, input });
let linesToTest: string[] = [];
diff --git a/x-pack/plugins/lists/server/services/items/buffer_lines.ts b/x-pack/plugins/lists/server/services/items/buffer_lines.ts
index cb6d073010127..e179fc4358468 100644
--- a/x-pack/plugins/lists/server/services/items/buffer_lines.ts
+++ b/x-pack/plugins/lists/server/services/items/buffer_lines.ts
@@ -48,7 +48,7 @@ export class BufferLines extends Readable {
// we are at the end of the stream
this.boundary = null;
this.readableText = false;
- } else {
+ } else if (this.readableText) {
// we have actual content to push
this.push(line);
}
diff --git a/x-pack/plugins/lists/server/services/items/write_lines_to_bulk_list_items.test.ts b/x-pack/plugins/lists/server/services/items/write_lines_to_bulk_list_items.test.ts
index 78098fde59827..89c3d89fe631e 100644
--- a/x-pack/plugins/lists/server/services/items/write_lines_to_bulk_list_items.test.ts
+++ b/x-pack/plugins/lists/server/services/items/write_lines_to_bulk_list_items.test.ts
@@ -49,6 +49,12 @@ describe('write_lines_to_bulk_list_items', () => {
test('It imports a set of items to a write buffer by calling "getListItemByValues" with a single value given', async () => {
const options = getImportListItemsToStreamOptionsMock();
const promise = importListItemsToStream(options);
+ options.stream.push('--boundary\n');
+ options.stream.push('Content-type: text/plain\n');
+ options.stream.push(
+ 'Content-Disposition: form-data; name="fieldName"; filename="filename.text"\n'
+ );
+ options.stream.push('\n');
options.stream.push('127.0.0.1\n');
options.stream.push(null);
await promise;
@@ -58,6 +64,12 @@ describe('write_lines_to_bulk_list_items', () => {
test('It imports a set of items to a write buffer by calling "getListItemByValues" with two values given', async () => {
const options = getImportListItemsToStreamOptionsMock();
const promise = importListItemsToStream(options);
+ options.stream.push('--boundary\n');
+ options.stream.push('Content-type: text/plain\n');
+ options.stream.push(
+ 'Content-Disposition: form-data; name="fieldName"; filename="filename.text"\n'
+ );
+ options.stream.push('\n');
options.stream.push('127.0.0.1\n');
options.stream.push('127.0.0.2\n');
options.stream.push(null);
From d922ee1f8c1051633d58b34b5f272619687786de Mon Sep 17 00:00:00 2001
From: Toby Brain
Date: Tue, 1 Oct 2024 04:14:11 +1000
Subject: [PATCH 42/60] Support global_data_tags in the policy update request
(#194421)
## Summary
https://github.com/elastic/kibana/pull/183563 adds support for
`global_data_tags` however the field is not added to the update request
definition in the OpenAPI spec. This PR defines the field within the API
spec.
Related to
https://github.com/elastic/terraform-provider-elasticstack/pull/730
### Checklist
Delete any items that are not applicable to this PR.
- [x] 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)
- [x]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [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
- [x] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [x] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [x] 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))
- [x] 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)
- [x] 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))
- [x] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)
### For maintainers
- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
---
.../output/kibana.serverless.staging.yaml | 11 +++++++++++
oas_docs/output/kibana.serverless.yaml | 11 +++++++++++
oas_docs/output/kibana.staging.yaml | 11 +++++++++++
oas_docs/output/kibana.yaml | 11 +++++++++++
.../plugins/fleet/common/openapi/bundled.json | 19 ++++++++++++++++++-
.../plugins/fleet/common/openapi/bundled.yaml | 11 +++++++++++
.../schemas/agent_policy_update_request.yaml | 9 +++++++++
7 files changed, 82 insertions(+), 1 deletion(-)
diff --git a/oas_docs/output/kibana.serverless.staging.yaml b/oas_docs/output/kibana.serverless.staging.yaml
index a5d53bd71cc83..f4ed7a9767924 100644
--- a/oas_docs/output/kibana.serverless.staging.yaml
+++ b/oas_docs/output/kibana.serverless.staging.yaml
@@ -19977,6 +19977,17 @@ components:
force:
description: Force agent policy creation even if packages are not verified.
type: boolean
+ global_data_tags:
+ items:
+ additionalProperties:
+ oneOf:
+ - type: string
+ - type: number
+ description: >-
+ User defined data tags that are added to all of the inputs. The
+ values can be strings or numbers.
+ type: object
+ type: array
inactivity_timeout:
type: integer
is_protected:
diff --git a/oas_docs/output/kibana.serverless.yaml b/oas_docs/output/kibana.serverless.yaml
index 93c3a5533c8a0..1b4209e9eec0a 100644
--- a/oas_docs/output/kibana.serverless.yaml
+++ b/oas_docs/output/kibana.serverless.yaml
@@ -12821,6 +12821,17 @@ components:
force:
description: Force agent policy creation even if packages are not verified.
type: boolean
+ global_data_tags:
+ items:
+ additionalProperties:
+ oneOf:
+ - type: string
+ - type: number
+ description: >-
+ User defined data tags that are added to all of the inputs. The
+ values can be strings or numbers.
+ type: object
+ type: array
inactivity_timeout:
type: integer
is_protected:
diff --git a/oas_docs/output/kibana.staging.yaml b/oas_docs/output/kibana.staging.yaml
index 96352fc0cd962..618bd42ab1f72 100644
--- a/oas_docs/output/kibana.staging.yaml
+++ b/oas_docs/output/kibana.staging.yaml
@@ -27753,6 +27753,17 @@ components:
force:
description: Force agent policy creation even if packages are not verified.
type: boolean
+ global_data_tags:
+ items:
+ additionalProperties:
+ oneOf:
+ - type: string
+ - type: number
+ description: >-
+ User defined data tags that are added to all of the inputs. The
+ values can be strings or numbers.
+ type: object
+ type: array
inactivity_timeout:
type: integer
is_protected:
diff --git a/oas_docs/output/kibana.yaml b/oas_docs/output/kibana.yaml
index 6d53cb1a38bdd..35a446f538a6a 100644
--- a/oas_docs/output/kibana.yaml
+++ b/oas_docs/output/kibana.yaml
@@ -19780,6 +19780,17 @@ components:
force:
description: Force agent policy creation even if packages are not verified.
type: boolean
+ global_data_tags:
+ items:
+ additionalProperties:
+ oneOf:
+ - type: string
+ - type: number
+ description: >-
+ User defined data tags that are added to all of the inputs. The
+ values can be strings or numbers.
+ type: object
+ type: array
inactivity_timeout:
type: integer
is_protected:
diff --git a/x-pack/plugins/fleet/common/openapi/bundled.json b/x-pack/plugins/fleet/common/openapi/bundled.json
index 2d74305ad3bd5..7ddd44baacf2d 100644
--- a/x-pack/plugins/fleet/common/openapi/bundled.json
+++ b/x-pack/plugins/fleet/common/openapi/bundled.json
@@ -7812,6 +7812,23 @@
"force": {
"type": "boolean",
"description": "Force agent policy creation even if packages are not verified."
+ },
+ "global_data_tags": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ }
+ ]
+ },
+ "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers."
+ }
}
},
"required": [
@@ -9563,4 +9580,4 @@
"basicAuth": []
}
]
-}
+}
\ No newline at end of file
diff --git a/x-pack/plugins/fleet/common/openapi/bundled.yaml b/x-pack/plugins/fleet/common/openapi/bundled.yaml
index c36758e8a4432..d60963068b8e5 100644
--- a/x-pack/plugins/fleet/common/openapi/bundled.yaml
+++ b/x-pack/plugins/fleet/common/openapi/bundled.yaml
@@ -5011,6 +5011,17 @@ components:
force:
type: boolean
description: Force agent policy creation even if packages are not verified.
+ global_data_tags:
+ type: array
+ items:
+ type: object
+ additionalProperties:
+ oneOf:
+ - type: string
+ - type: number
+ description: >-
+ User defined data tags that are added to all of the inputs. The
+ values can be strings or numbers.
required:
- name
- namespace
diff --git a/x-pack/plugins/fleet/common/openapi/components/schemas/agent_policy_update_request.yaml b/x-pack/plugins/fleet/common/openapi/components/schemas/agent_policy_update_request.yaml
index 7fb5581aa79e4..1d1dbd45037ae 100644
--- a/x-pack/plugins/fleet/common/openapi/components/schemas/agent_policy_update_request.yaml
+++ b/x-pack/plugins/fleet/common/openapi/components/schemas/agent_policy_update_request.yaml
@@ -47,6 +47,15 @@ properties:
force:
type: boolean
description: Force agent policy creation even if packages are not verified.
+ global_data_tags:
+ type: array
+ items:
+ type: object
+ additionalProperties:
+ oneOf:
+ - type: string
+ - type: number
+ description: User defined data tags that are added to all of the inputs. The values can be strings or numbers.
required:
- name
- namespace
From 866adf37f13c79c06fe426fa822231940132de03 Mon Sep 17 00:00:00 2001
From: Cee Chen <549407+cee-chen@users.noreply.github.com>
Date: Mon, 30 Sep 2024 11:37:47 -0700
Subject: [PATCH 43/60] Delete imports/references to EUI's distributed `.css`
files (#194237)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## Summary
Trying #194082 again, this time wholly deleting
`kbn-ui-shared-deps-npm.v8.light/dark.css` as well 🤞
Original PR description:
> These files no longer contain any meaningful CSS used within Kibana as
of EUI's completed Emotion migration, and can be safely removed. EUI
will shortly no longer distribute these static `.css` files (although
`.scss` src files will still remain exported for the near future).
---------
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
---
.../src/render_utils.test.ts | 36 ++++++++-----------
.../src/render_utils.ts | 18 ++--------
.../src/rendering_service.test.ts | 9 -----
.../src/rendering_service.tsx | 1 -
packages/kbn-storybook/templates/index.ejs | 1 -
packages/kbn-ui-shared-deps-npm/index.js | 24 -------------
.../kbn-ui-shared-deps-npm/webpack.config.js | 2 --
.../plugins/canvas/shareable_runtime/index.ts | 1 -
.../plugins/canvas/storybook/addon/panel.tsx | 1 -
.../__snapshots__/prompt_page.test.tsx.snap | 4 +--
.../unauthenticated_page.test.tsx.snap | 4 +--
.../reset_session_page.test.tsx.snap | 4 +--
.../plugins/security/server/prompt_page.tsx | 2 --
x-pack/plugins/security/tsconfig.json | 1 -
14 files changed, 22 insertions(+), 86 deletions(-)
diff --git a/packages/core/rendering/core-rendering-server-internal/src/render_utils.test.ts b/packages/core/rendering/core-rendering-server-internal/src/render_utils.test.ts
index 85b3186a57c80..5cdf7ceb4ba39 100644
--- a/packages/core/rendering/core-rendering-server-internal/src/render_utils.test.ts
+++ b/packages/core/rendering/core-rendering-server-internal/src/render_utils.test.ts
@@ -55,39 +55,31 @@ describe('getCommonStylesheetPaths', () => {
describe('getStylesheetPaths', () => {
describe('when darkMode is `true`', () => {
- describe('when themeVersion is `v8`', () => {
- it('returns the correct list', () => {
- expect(
- getThemeStylesheetPaths({
- darkMode: true,
- themeVersion: 'v8',
- baseHref: '/base-path/buildShaShort',
- })
- ).toMatchInlineSnapshot(`
+ it('returns the correct list', () => {
+ expect(
+ getThemeStylesheetPaths({
+ darkMode: true,
+ baseHref: '/base-path/buildShaShort',
+ })
+ ).toMatchInlineSnapshot(`
Array [
- "/base-path/buildShaShort/bundles/kbn-ui-shared-deps-npm/kbn-ui-shared-deps-npm.v8.dark.css",
"/base-path/buildShaShort/ui/legacy_dark_theme.min.css",
]
`);
- });
});
});
describe('when darkMode is `false`', () => {
- describe('when themeVersion is `v8`', () => {
- it('returns the correct list', () => {
- expect(
- getThemeStylesheetPaths({
- darkMode: false,
- themeVersion: 'v8',
- baseHref: '/base-path/buildShaShort',
- })
- ).toMatchInlineSnapshot(`
+ it('returns the correct list', () => {
+ expect(
+ getThemeStylesheetPaths({
+ darkMode: false,
+ baseHref: '/base-path/buildShaShort',
+ })
+ ).toMatchInlineSnapshot(`
Array [
- "/base-path/buildShaShort/bundles/kbn-ui-shared-deps-npm/kbn-ui-shared-deps-npm.v8.light.css",
"/base-path/buildShaShort/ui/legacy_light_theme.min.css",
]
`);
- });
});
});
});
diff --git a/packages/core/rendering/core-rendering-server-internal/src/render_utils.ts b/packages/core/rendering/core-rendering-server-internal/src/render_utils.ts
index dd8782e67edff..776e385906d7f 100644
--- a/packages/core/rendering/core-rendering-server-internal/src/render_utils.ts
+++ b/packages/core/rendering/core-rendering-server-internal/src/render_utils.ts
@@ -8,7 +8,6 @@
*/
import { firstValueFrom } from 'rxjs';
-import UiSharedDepsNpm from '@kbn/ui-shared-deps-npm';
import * as UiSharedDepsSrc from '@kbn/ui-shared-deps-src';
import type { IConfigService } from '@kbn/config';
import type { BrowserLoggingConfig } from '@kbn/core-logging-common-internal';
@@ -57,28 +56,15 @@ export const getCommonStylesheetPaths = ({ baseHref }: { baseHref: string }) =>
export const getThemeStylesheetPaths = ({
darkMode,
- themeVersion,
baseHref,
}: {
darkMode: boolean;
- themeVersion: UiSharedDepsNpm.ThemeVersion;
baseHref: string;
}) => {
- const bundlesHref = getBundlesHref(baseHref);
return [
...(darkMode
- ? [
- `${bundlesHref}/kbn-ui-shared-deps-npm/${UiSharedDepsNpm.darkCssDistFilename(
- themeVersion
- )}`,
- `${baseHref}/ui/legacy_dark_theme.min.css`,
- ]
- : [
- `${bundlesHref}/kbn-ui-shared-deps-npm/${UiSharedDepsNpm.lightCssDistFilename(
- themeVersion
- )}`,
- `${baseHref}/ui/legacy_light_theme.min.css`,
- ]),
+ ? [`${baseHref}/ui/legacy_dark_theme.min.css`]
+ : [`${baseHref}/ui/legacy_light_theme.min.css`]),
];
};
diff --git a/packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.ts b/packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.ts
index b22697a494788..7f7f2f504411d 100644
--- a/packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.ts
+++ b/packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.ts
@@ -224,12 +224,10 @@ function renderTestCases(
expect(getThemeStylesheetPathsMock).toHaveBeenCalledTimes(2);
expect(getThemeStylesheetPathsMock).toHaveBeenCalledWith({
darkMode: true,
- themeVersion: 'v8',
baseHref: '/mock-server-basepath',
});
expect(getThemeStylesheetPathsMock).toHaveBeenCalledWith({
darkMode: false,
- themeVersion: 'v8',
baseHref: '/mock-server-basepath',
});
});
@@ -380,7 +378,6 @@ function renderDarkModeTestCases(
expect(getThemeStylesheetPathsMock).toHaveBeenCalledWith({
darkMode: true,
- themeVersion: 'v8',
baseHref: '/mock-server-basepath',
});
});
@@ -405,7 +402,6 @@ function renderDarkModeTestCases(
expect(getThemeStylesheetPathsMock).toHaveBeenCalledWith({
darkMode: false,
- themeVersion: 'v8',
baseHref: '/mock-server-basepath',
});
});
@@ -428,7 +424,6 @@ function renderDarkModeTestCases(
expect(getThemeStylesheetPathsMock).toHaveBeenCalledWith({
darkMode: false,
- themeVersion: 'v8',
baseHref: '/mock-server-basepath',
});
});
@@ -451,7 +446,6 @@ function renderDarkModeTestCases(
expect(getThemeStylesheetPathsMock).toHaveBeenCalledWith({
darkMode: true,
- themeVersion: 'v8',
baseHref: '/mock-server-basepath',
});
});
@@ -474,7 +468,6 @@ function renderDarkModeTestCases(
expect(getThemeStylesheetPathsMock).toHaveBeenCalledWith({
darkMode: false,
- themeVersion: 'v8',
baseHref: '/mock-server-basepath',
});
});
@@ -497,7 +490,6 @@ function renderDarkModeTestCases(
expect(getThemeStylesheetPathsMock).toHaveBeenCalledWith({
darkMode: false,
- themeVersion: 'v8',
baseHref: '/mock-server-basepath',
});
});
@@ -520,7 +512,6 @@ function renderDarkModeTestCases(
expect(getThemeStylesheetPathsMock).toHaveBeenCalledWith({
darkMode: true,
- themeVersion: 'v8',
baseHref: '/mock-server-basepath',
});
});
diff --git a/packages/core/rendering/core-rendering-server-internal/src/rendering_service.tsx b/packages/core/rendering/core-rendering-server-internal/src/rendering_service.tsx
index a696328475853..44841ec0fbe3f 100644
--- a/packages/core/rendering/core-rendering-server-internal/src/rendering_service.tsx
+++ b/packages/core/rendering/core-rendering-server-internal/src/rendering_service.tsx
@@ -212,7 +212,6 @@ export class RenderingService {
const themeStylesheetPaths = (mode: boolean) =>
getThemeStylesheetPaths({
darkMode: mode,
- themeVersion,
baseHref: staticAssetsHrefBase,
});
const commonStylesheetPaths = getCommonStylesheetPaths({
diff --git a/packages/kbn-storybook/templates/index.ejs b/packages/kbn-storybook/templates/index.ejs
index bf40dfb9fd3ca..776b495447cec 100644
--- a/packages/kbn-storybook/templates/index.ejs
+++ b/packages/kbn-storybook/templates/index.ejs
@@ -27,7 +27,6 @@
-
<% if (typeof headHtmlSnippet !=='undefined' ) { %>
diff --git a/packages/kbn-ui-shared-deps-npm/index.js b/packages/kbn-ui-shared-deps-npm/index.js
index b8be150acc311..73aaf151e8f0f 100644
--- a/packages/kbn-ui-shared-deps-npm/index.js
+++ b/packages/kbn-ui-shared-deps-npm/index.js
@@ -44,28 +44,4 @@ module.exports = {
* Webpack loader for configuring the public path lookup from `window.__kbnPublicPath__`.
*/
publicPathLoader,
-
- /**
- * Filename of the light-theme css file in the distributable directory
- * @param {ThemeVersion} themeVersion
- */
- lightCssDistFilename(themeVersion) {
- if (themeVersion !== 'v8') {
- throw new Error(`unsupported theme version [${themeVersion}]`);
- }
-
- return 'kbn-ui-shared-deps-npm.v8.light.css';
- },
-
- /**
- * Filename of the dark-theme css file in the distributable directory
- * @param {ThemeVersion} themeVersion
- */
- darkCssDistFilename(themeVersion) {
- if (themeVersion !== 'v8') {
- throw new Error(`unsupported theme version [${themeVersion}]`);
- }
-
- return 'kbn-ui-shared-deps-npm.v8.dark.css';
- },
};
diff --git a/packages/kbn-ui-shared-deps-npm/webpack.config.js b/packages/kbn-ui-shared-deps-npm/webpack.config.js
index 4f3971d293489..3b16430aeb724 100644
--- a/packages/kbn-ui-shared-deps-npm/webpack.config.js
+++ b/packages/kbn-ui-shared-deps-npm/webpack.config.js
@@ -101,8 +101,6 @@ module.exports = (_, argv) => {
'tslib',
'uuid',
],
- 'kbn-ui-shared-deps-npm.v8.dark': ['@elastic/eui/dist/eui_theme_dark.css'],
- 'kbn-ui-shared-deps-npm.v8.light': ['@elastic/eui/dist/eui_theme_light.css'],
},
context: __dirname,
devtool: 'cheap-source-map',
diff --git a/x-pack/plugins/canvas/shareable_runtime/index.ts b/x-pack/plugins/canvas/shareable_runtime/index.ts
index 475989494c574..ca7b1441d7bb1 100644
--- a/x-pack/plugins/canvas/shareable_runtime/index.ts
+++ b/x-pack/plugins/canvas/shareable_runtime/index.ts
@@ -8,4 +8,3 @@
export * from './api';
import '@kbn/core-apps-server-internal/assets/legacy_light_theme.css';
import '../public/style/index.scss';
-import '@elastic/eui/dist/eui_theme_light.css';
diff --git a/x-pack/plugins/canvas/storybook/addon/panel.tsx b/x-pack/plugins/canvas/storybook/addon/panel.tsx
index c799df73bd8ae..d9883ab7ed086 100644
--- a/x-pack/plugins/canvas/storybook/addon/panel.tsx
+++ b/x-pack/plugins/canvas/storybook/addon/panel.tsx
@@ -9,7 +9,6 @@ import React, { useState } from 'react';
import { EuiResizableContainer } from '@elastic/eui';
import { StateChange } from './components/state_change';
-import '@elastic/eui/dist/eui_theme_light.css';
import './panel.css';
import { RecordedAction } from './types';
diff --git a/x-pack/plugins/security/server/__snapshots__/prompt_page.test.tsx.snap b/x-pack/plugins/security/server/__snapshots__/prompt_page.test.tsx.snap
index 0556a61dbf47b..df1140ea44828 100644
--- a/x-pack/plugins/security/server/__snapshots__/prompt_page.test.tsx.snap
+++ b/x-pack/plugins/security/server/__snapshots__/prompt_page.test.tsx.snap
@@ -1,5 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`PromptPage renders as expected with additional scripts 1`] = `"ElasticMockedFonts
Some Title
Some Body
Action#1
Action#2
"`;
+exports[`PromptPage renders as expected with additional scripts 1`] = `"ElasticMockedFonts
Some Title
Some Body
Action#1
Action#2
"`;
-exports[`PromptPage renders as expected without additional scripts 1`] = `"ElasticMockedFonts
Some Title
Some Body
Action#1
Action#2
"`;
+exports[`PromptPage renders as expected without additional scripts 1`] = `"ElasticMockedFonts
Some Title
Some Body
Action#1
Action#2
"`;
diff --git a/x-pack/plugins/security/server/authentication/__snapshots__/unauthenticated_page.test.tsx.snap b/x-pack/plugins/security/server/authentication/__snapshots__/unauthenticated_page.test.tsx.snap
index 127d02f38b08e..2466a01112102 100644
--- a/x-pack/plugins/security/server/authentication/__snapshots__/unauthenticated_page.test.tsx.snap
+++ b/x-pack/plugins/security/server/authentication/__snapshots__/unauthenticated_page.test.tsx.snap
@@ -1,5 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`UnauthenticatedPage renders as expected 1`] = `"ElasticMockedFonts
We hit an authentication error
Try logging in again, and if the problem persists, contact your system administrator.