From 1eb7b9643d505cacdbe296c54e39f981806d00e3 Mon Sep 17 00:00:00 2001 From: Gloria Hornero Date: Mon, 9 Oct 2023 21:40:05 +0200 Subject: [PATCH 01/48] [Security Solution] Unskipping `x-pack/test/security_solution_cypress/cypress/e2e/investigations/timeline_templates/` working tests on serverless (#168375) --- .../e2e/investigations/timeline_templates/creation.cy.ts | 8 ++------ .../e2e/investigations/timeline_templates/export.cy.ts | 2 +- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timeline_templates/creation.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timeline_templates/creation.cy.ts index 6b1aa7f2f7332..e040d7ed6c6f3 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timeline_templates/creation.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timeline_templates/creation.cy.ts @@ -26,7 +26,7 @@ import { TIMELINES_FAVORITE, } from '../../../screens/timelines'; import { createTimeline } from '../../../tasks/api_calls/timelines'; -import { cleanKibana, deleteTimelines } from '../../../tasks/common'; +import { deleteTimelines } from '../../../tasks/common'; import { login } from '../../../tasks/login'; import { visit } from '../../../tasks/navigation'; @@ -50,11 +50,7 @@ import { openTimeline, waitForTimelinesPanelToBeLoaded } from '../../../tasks/ti import { TIMELINES_URL } from '../../../urls/navigation'; // FLAKY: https://github.com/elastic/kibana/issues/165661 -describe('Timeline Templates', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { - before(() => { - cleanKibana(); - }); - +describe('Timeline Templates', { tags: ['@ess', '@serverless'] }, () => { beforeEach(() => { login(); deleteTimelines(); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timeline_templates/export.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timeline_templates/export.cy.ts index eebeb646d9b4c..2fd83d61a2927 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timeline_templates/export.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timeline_templates/export.cy.ts @@ -20,7 +20,7 @@ import { searchByTitle } from '../../../tasks/table_pagination'; // FLAKY: https://github.com/elastic/kibana/issues/165760 // FLAKY: https://github.com/elastic/kibana/issues/165645 -describe('Export timelines', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { +describe('Export timelines', { tags: ['@ess', '@serverless'] }, () => { before(() => { cleanKibana(); From 3991e6c8299169e046f7024895c2e458be9855b6 Mon Sep 17 00:00:00 2001 From: Steph Milovic Date: Mon, 9 Oct 2023 14:00:43 -0600 Subject: [PATCH 02/48] [Security solution] Cases webhook, add more unit tests (#167819) --- .../cases_webhook/severity_filter.test.tsx | 46 +++++++++++++++++++ .../cases_webhook/status_filter.test.tsx | 46 +++++++++++++++++++ .../cases_webhook/status_filter.tsx | 4 +- 3 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 x-pack/plugins/stack_connectors/public/connector_types/cases_webhook/severity_filter.test.tsx create mode 100644 x-pack/plugins/stack_connectors/public/connector_types/cases_webhook/status_filter.test.tsx diff --git a/x-pack/plugins/stack_connectors/public/connector_types/cases_webhook/severity_filter.test.tsx b/x-pack/plugins/stack_connectors/public/connector_types/cases_webhook/severity_filter.test.tsx new file mode 100644 index 0000000000000..d65d15fd0fc3d --- /dev/null +++ b/x-pack/plugins/stack_connectors/public/connector_types/cases_webhook/severity_filter.test.tsx @@ -0,0 +1,46 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { fireEvent, render } from '@testing-library/react'; +import { CaseSeverity, severities, SeverityFilter } from './severity_filter'; +const onSeverityChange = jest.fn(); +const defaultProps = { + selectedSeverity: CaseSeverity.LOW, + onSeverityChange, +}; +describe('SeverityFilter', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + it('should render EuiSuperSelect with correct options and selected value', () => { + const { getByTestId, getAllByRole } = render(); + + const superSelect = getByTestId('case-severity-selection'); + + expect(superSelect).toBeInTheDocument(); + expect(superSelect).toHaveTextContent('Low'); + fireEvent.click(superSelect); + const options = getAllByRole('option'); + const allSeverities = Object.keys(severities) as CaseSeverity[]; + expect(options).toHaveLength(allSeverities.length); + options.forEach((option, index) => { + expect(option).toHaveTextContent(severities[allSeverities[index]].label); + }); + }); + + it('should call onSeverityChange with selected severity when an option is clicked', () => { + const { getByTestId } = render(); + + const superSelect = getByTestId('case-severity-selection'); + fireEvent.click(superSelect); + const option = getByTestId(`case-severity-selection-${CaseSeverity.MEDIUM}`); + fireEvent.click(option); + + expect(onSeverityChange).toHaveBeenCalledWith(CaseSeverity.MEDIUM); + }); +}); diff --git a/x-pack/plugins/stack_connectors/public/connector_types/cases_webhook/status_filter.test.tsx b/x-pack/plugins/stack_connectors/public/connector_types/cases_webhook/status_filter.test.tsx new file mode 100644 index 0000000000000..a336f16401db4 --- /dev/null +++ b/x-pack/plugins/stack_connectors/public/connector_types/cases_webhook/status_filter.test.tsx @@ -0,0 +1,46 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { CaseStatuses } from '@kbn/cases-components'; +import { fireEvent, render } from '@testing-library/react'; +import { caseStatuses, statuses, StatusFilter } from './status_filter'; +const onStatusChanged = jest.fn(); +const defaultProps = { + selectedStatus: CaseStatuses.open, + onStatusChanged, +}; +describe('StatusFilter', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + it('should render EuiSuperSelect with correct options and selected value', () => { + const { getByTestId, getAllByRole } = render(); + + const superSelect = getByTestId('case-status-filter'); + + expect(superSelect).toBeInTheDocument(); + expect(superSelect).toHaveTextContent('Open'); + fireEvent.click(superSelect); + const options = getAllByRole('option'); + expect(options).toHaveLength(caseStatuses.length); + options.forEach((option, index) => { + expect(option).toHaveTextContent(statuses[caseStatuses[index]].label); + }); + }); + + it('should call onStatusChanged with selected status when an option is clicked', () => { + const { getByTestId } = render(); + + const superSelect = getByTestId('case-status-filter'); + fireEvent.click(superSelect); + const option = getByTestId(`case-status-filter-${CaseStatuses.closed}`); + fireEvent.click(option); + + expect(onStatusChanged).toHaveBeenCalledWith(CaseStatuses.closed); + }); +}); diff --git a/x-pack/plugins/stack_connectors/public/connector_types/cases_webhook/status_filter.tsx b/x-pack/plugins/stack_connectors/public/connector_types/cases_webhook/status_filter.tsx index 01569027809f7..da8df94c99069 100644 --- a/x-pack/plugins/stack_connectors/public/connector_types/cases_webhook/status_filter.tsx +++ b/x-pack/plugins/stack_connectors/public/connector_types/cases_webhook/status_filter.tsx @@ -23,8 +23,8 @@ interface Props { onStatusChanged: (status: CaseStatuses) => void; } -const caseStatuses = [CaseStatuses.open, CaseStatuses['in-progress'], CaseStatuses.closed]; -const statuses = { +export const caseStatuses = [CaseStatuses.open, CaseStatuses['in-progress'], CaseStatuses.closed]; +export const statuses = { [CaseStatuses.open]: { color: 'primary', label: i18n.STATUS_OPEN, From 2262f90124c72749c9865749a84f8a08aec932dd Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Mon, 9 Oct 2023 21:27:07 +0100 Subject: [PATCH 03/48] skip flaky suite (#168355) --- .../group10/risk_engine/init_and_status_apis.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/init_and_status_apis.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/init_and_status_apis.ts index 9987264cfa3c1..5693c0a37c5f5 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/init_and_status_apis.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/init_and_status_apis.ts @@ -373,7 +373,8 @@ export default ({ getService }: FtrProviderContext) => { }); }); - describe('status api', () => { + // FLAKY: https://github.com/elastic/kibana/issues/168355 + describe.skip('status api', () => { it('should disable / enable risk engine', async () => { const status1 = await riskEngineRoutes.getStatus(); From dd06ae463713484aa86e92fb4904391a05c5c4ed Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Mon, 9 Oct 2023 21:28:25 +0100 Subject: [PATCH 04/48] skip flaky suite (#89958) --- .../functional/tests/visualize_integration.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/saved_object_tagging/functional/tests/visualize_integration.ts b/x-pack/test/saved_object_tagging/functional/tests/visualize_integration.ts index a7a03a58ba0cf..b930818a9c500 100644 --- a/x-pack/test/saved_object_tagging/functional/tests/visualize_integration.ts +++ b/x-pack/test/saved_object_tagging/functional/tests/visualize_integration.ts @@ -123,7 +123,8 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { }); }); - describe('creating', () => { + // FLAKY: https://github.com/elastic/kibana/issues/89958 + describe.skip('creating', () => { before(async () => { await PageObjects.visualize.gotoVisualizationLandingPage(); // delete all visualizations to create new ones explicitly From feb4222bf6207f71122fd40a96872b3b3e8a84dc Mon Sep 17 00:00:00 2001 From: Maxim Palenov Date: Mon, 9 Oct 2023 22:29:22 +0200 Subject: [PATCH 05/48] [Security Solution] Unskip rules table Serverless Cypress tests (#168306) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Addresses:** https://github.com/elastic/kibana/issues/161540 ## Summary This PR unskips rules table Serverless Cypress tests - `rules_table_auto_refresh.cy.ts` - `rules_table_links.cy.ts` - `rules_table_persistent_state.cy.ts` - `rules_table_selection.cy.ts` - `rules_table_sorting.cy.ts` ## Flaky test runner https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3406 150 runs 🟢 --- .../rules_table_auto_refresh.cy.ts | 189 ++++--- .../rules_table/rules_table_links.cy.ts | 4 +- .../rules_table_persistent_state.cy.ts | 491 +++++++++--------- .../rules_table/rules_table_selection.cy.ts | 100 ++-- .../rules_table/rules_table_sorting.cy.ts | 3 +- 5 files changed, 381 insertions(+), 406 deletions(-) diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_auto_refresh.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_auto_refresh.cy.ts index 815e4a6bd5176..f03d5c1088857 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_auto_refresh.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_auto_refresh.cy.ts @@ -33,137 +33,132 @@ import { getNewRule } from '../../../../objects/rule'; const RULES_TABLE_REFRESH_INTERVAL_MS = 60000; -// TODO: https://github.com/elastic/kibana/issues/161540 -describe( - 'Rules table: auto-refresh', - { tags: ['@ess', '@serverless', '@brokenInServerless'] }, - () => { - before(() => { - cleanKibana(); - login(); - - setRulesTableAutoRefreshIntervalSetting({ - enabled: true, - refreshInterval: RULES_TABLE_REFRESH_INTERVAL_MS, - }); - createRule(getNewRule({ name: 'Test rule 1', rule_id: '1', enabled: false })); +describe('Rules table: auto-refresh', { tags: ['@ess', '@serverless'] }, () => { + before(() => { + cleanKibana(); + login(); + + setRulesTableAutoRefreshIntervalSetting({ + enabled: true, + refreshInterval: RULES_TABLE_REFRESH_INTERVAL_MS, }); + createRule(getNewRule({ name: 'Test rule 1', rule_id: '1', enabled: false })); + }); - beforeEach(() => { - login(); - }); + beforeEach(() => { + login(); + }); - it('gets deactivated when any rule selected and activated after rules unselected', () => { - visitRulesManagementTable(); + it('gets deactivated when any rule selected and activated after rules unselected', () => { + visitRulesManagementTable(); - expectNumberOfRules(RULES_MANAGEMENT_TABLE, 1); + expectNumberOfRules(RULES_MANAGEMENT_TABLE, 1); - // check refresh settings if it's enabled before selecting - expectAutoRefreshIsEnabled(); + // check refresh settings if it's enabled before selecting + expectAutoRefreshIsEnabled(); - selectAllRules(); + selectAllRules(); - // auto refresh should be deactivated (which means disabled without an ability to enable it) after rules selected - expectAutoRefreshIsDeactivated(); + // auto refresh should be deactivated (which means disabled without an ability to enable it) after rules selected + expectAutoRefreshIsDeactivated(); - clearAllRuleSelection(); + clearAllRuleSelection(); - // after all rules unselected, auto refresh should be reset to its previous state - expectAutoRefreshIsEnabled(); - }); + // after all rules unselected, auto refresh should be reset to its previous state + expectAutoRefreshIsEnabled(); + }); - describe('when enabled', () => { - beforeEach(() => { - mockGlobalClock(); - visitRulesManagementTable(); + describe('when enabled', () => { + beforeEach(() => { + mockGlobalClock(); + visitRulesManagementTable(); - expectNumberOfRules(RULES_MANAGEMENT_TABLE, 1); - }); + expectNumberOfRules(RULES_MANAGEMENT_TABLE, 1); + }); - it('refreshes rules after refresh interval has passed', () => { - cy.get(RULES_TABLE_AUTOREFRESH_INDICATOR).should('not.exist'); - cy.tick(RULES_TABLE_REFRESH_INTERVAL_MS); - cy.get(RULES_TABLE_AUTOREFRESH_INDICATOR).should('be.visible'); + it('refreshes rules after refresh interval has passed', () => { + cy.get(RULES_TABLE_AUTOREFRESH_INDICATOR).should('not.exist'); + cy.tick(RULES_TABLE_REFRESH_INTERVAL_MS); + cy.get(RULES_TABLE_AUTOREFRESH_INDICATOR).should('be.visible'); - cy.contains(REFRESH_RULES_STATUS, 'Updated now'); - }); + cy.contains(REFRESH_RULES_STATUS, 'Updated now'); + }); - it('refreshes rules on window focus', () => { - cy.tick(RULES_TABLE_REFRESH_INTERVAL_MS / 2); + it('refreshes rules on window focus', () => { + cy.tick(RULES_TABLE_REFRESH_INTERVAL_MS / 2); - cy.window().trigger('blur'); - cy.window().trigger('focus'); + cy.window().trigger('blur'); + cy.window().trigger('focus'); - cy.contains(REFRESH_RULES_STATUS, 'Updated now'); - }); + cy.contains(REFRESH_RULES_STATUS, 'Updated now'); }); + }); - describe('when disabled', () => { - beforeEach(() => { - mockGlobalClock(); - visitRulesManagementTable(); - expectNumberOfRules(RULES_MANAGEMENT_TABLE, 1); - }); + describe('when disabled', () => { + beforeEach(() => { + mockGlobalClock(); + visitRulesManagementTable(); + expectNumberOfRules(RULES_MANAGEMENT_TABLE, 1); + }); - it('does NOT refresh rules after refresh interval has passed', () => { - disableAutoRefresh(); - cy.tick(RULES_TABLE_REFRESH_INTERVAL_MS * 2); // Make sure enough time has passed to verify auto-refresh doesn't happen + it('does NOT refresh rules after refresh interval has passed', () => { + disableAutoRefresh(); + cy.tick(RULES_TABLE_REFRESH_INTERVAL_MS * 2); // Make sure enough time has passed to verify auto-refresh doesn't happen - cy.contains(REFRESH_RULES_STATUS, 'Updated 2 minutes ago'); - }); + cy.contains(REFRESH_RULES_STATUS, 'Updated 2 minutes ago'); + }); - it('does NOT refresh rules on window focus', () => { - disableAutoRefresh(); - cy.tick(RULES_TABLE_REFRESH_INTERVAL_MS * 2); // Make sure enough time has passed to verify auto-refresh doesn't happen + it('does NOT refresh rules on window focus', () => { + disableAutoRefresh(); + cy.tick(RULES_TABLE_REFRESH_INTERVAL_MS * 2); // Make sure enough time has passed to verify auto-refresh doesn't happen - cy.window().trigger('blur'); - cy.window().trigger('focus'); + cy.window().trigger('blur'); + cy.window().trigger('focus'); - // We need to make sure window focus event doesn't cause refetching. Without some delay - // the following expectations always pass even. It happens since 'focus' event gets handled - // in an async way so the status text is updated with some delay. - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(1000); + // We need to make sure window focus event doesn't cause refetching. Without some delay + // the following expectations always pass even. It happens since 'focus' event gets handled + // in an async way so the status text is updated with some delay. + // eslint-disable-next-line cypress/no-unnecessary-waiting + cy.wait(1000); - // By using a custom timeout make sure it doesn't wait too long due to global timeout configuration - // so the expected text appears after a refresh and the test passes while it shouldn't. - cy.contains(REFRESH_RULES_STATUS, 'Updated 2 minutes ago', { timeout: 10000 }); - }); + // By using a custom timeout make sure it doesn't wait too long due to global timeout configuration + // so the expected text appears after a refresh and the test passes while it shouldn't. + cy.contains(REFRESH_RULES_STATUS, 'Updated 2 minutes ago', { timeout: 10000 }); + }); - it('does NOT get enabled after rules were unselected', () => { - disableAutoRefresh(); - cy.tick(RULES_TABLE_REFRESH_INTERVAL_MS * 2); // Make sure enough time has passed to verify auto-refresh doesn't happen + it('does NOT get enabled after rules were unselected', () => { + disableAutoRefresh(); + cy.tick(RULES_TABLE_REFRESH_INTERVAL_MS * 2); // Make sure enough time has passed to verify auto-refresh doesn't happen - selectAllRules(); + selectAllRules(); - expectAutoRefreshIsDeactivated(); + expectAutoRefreshIsDeactivated(); - clearAllRuleSelection(); + clearAllRuleSelection(); - // after all rules unselected, auto refresh should still be disabled - expectAutoRefreshIsDisabled(); - }); + // after all rules unselected, auto refresh should still be disabled + expectAutoRefreshIsDisabled(); }); + }); - describe('when one rule is selected', () => { - it('does NOT refresh after refresh interval has passed', () => { - mockGlobalClock(); - visitRulesManagementTable(); + describe('when one rule is selected', () => { + it('does NOT refresh after refresh interval has passed', () => { + mockGlobalClock(); + visitRulesManagementTable(); - expectNumberOfRules(RULES_MANAGEMENT_TABLE, 1); + expectNumberOfRules(RULES_MANAGEMENT_TABLE, 1); - selectRulesByName(['Test rule 1']); + selectRulesByName(['Test rule 1']); - // mock 1 minute passing to make sure refresh is not conducted - cy.get(RULES_TABLE_AUTOREFRESH_INDICATOR).should('not.exist'); - cy.tick(RULES_TABLE_REFRESH_INTERVAL_MS * 2); // Make sure enough time has passed - cy.get(RULES_TABLE_AUTOREFRESH_INDICATOR).should('not.exist'); + // mock 1 minute passing to make sure refresh is not conducted + cy.get(RULES_TABLE_AUTOREFRESH_INDICATOR).should('not.exist'); + cy.tick(RULES_TABLE_REFRESH_INTERVAL_MS * 2); // Make sure enough time has passed + cy.get(RULES_TABLE_AUTOREFRESH_INDICATOR).should('not.exist'); - // ensure rule is still selected - getRuleRow('Test rule 1').find(EUI_CHECKBOX).should('be.checked'); + // ensure rule is still selected + getRuleRow('Test rule 1').find(EUI_CHECKBOX).should('be.checked'); - cy.get(REFRESH_RULES_STATUS).should('have.not.text', 'Updated now'); - }); + cy.get(REFRESH_RULES_STATUS).should('have.not.text', 'Updated now'); }); - } -); + }); +}); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_links.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_links.cy.ts index 22c9e18f53735..ad7813991cad7 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_links.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_links.cy.ts @@ -13,9 +13,7 @@ import { login } from '../../../../tasks/login'; import { visit } from '../../../../tasks/navigation'; import { RULES_MANAGEMENT_URL } from '../../../../urls/rules_management'; -// TODO: https://github.com/elastic/kibana/issues/161540 -// Flaky in serverless tests -describe('Rules table: links', { tags: ['@ess', '@serverless', '@skipInServerless'] }, () => { +describe('Rules table: links', { tags: ['@ess', '@serverless'] }, () => { before(() => { cleanKibana(); }); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_persistent_state.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_persistent_state.cy.ts index 9b6aca45a51b2..9d5a36b76d543 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_persistent_state.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_persistent_state.cy.ts @@ -95,317 +95,306 @@ function expectDefaultRulesTableState(): void { expectTablePage(1); } -// TODO: https://github.com/elastic/kibana/issues/161540 -describe( - 'Rules table: persistent state', - { tags: ['@ess', '@serverless', '@skipInServerless'] }, - () => { - before(() => { - cleanKibana(); - createTestRules(); - }); - - beforeEach(() => { - login(); - resetRulesTableState(); - }); +describe('Rules table: persistent state', { tags: ['@ess', '@serverless'] }, () => { + before(() => { + cleanKibana(); + createTestRules(); + }); - // Flaky on serverless - // FLAKY: https://github.com/elastic/kibana/issues/165740 - describe( - 'while on a happy path', - { tags: ['@ess', '@serverless', '@brokenInServerless'] }, - () => { - it('activates management tab by default', () => { - visit(RULES_MANAGEMENT_URL); + beforeEach(() => { + login(); + resetRulesTableState(); + }); - expectRulesManagementTab(); - }); + describe('while on a happy path', { tags: ['@ess', '@serverless'] }, () => { + it('activates management tab by default', () => { + visit(RULES_MANAGEMENT_URL); - it('leads to displaying a rule according to the specified filters', () => { - visitRulesTableWithState({ - searchTerm: 'rule', - tags: ['tag-b'], - source: 'custom', - enabled: false, - field: 'name', - order: 'asc', - perPage: 5, - page: 2, - }); - - expectManagementTableRules(['rule 6']); - }); + expectRulesManagementTab(); + }); - it('loads from the url', () => { - visitRulesTableWithState({ - searchTerm: 'rule', - tags: ['tag-b'], - source: 'custom', - enabled: false, - field: 'name', - order: 'asc', - perPage: 5, - page: 2, - }); + it('leads to displaying a rule according to the specified filters', () => { + visitRulesTableWithState({ + searchTerm: 'rule', + tags: ['tag-b'], + source: 'custom', + enabled: false, + field: 'name', + order: 'asc', + perPage: 5, + page: 2, + }); - expectRulesManagementTab(); - expectFilterSearchTerm('rule'); - expectFilterByTags(['tag-b']); - expectFilterByCustomRules(); - expectFilterByDisabledRules(); - expectTableSorting('Rule', 'asc'); - expectRowsPerPage(5); - expectTablePage(2); - }); + expectManagementTableRules(['rule 6']); + }); - it('loads from the session storage', () => { - setStorageState({ - searchTerm: 'test', - tags: ['tag-a'], - source: 'prebuilt', - enabled: true, - field: 'severity', - order: 'desc', - perPage: 10, - }); + it('loads from the url', () => { + visitRulesTableWithState({ + searchTerm: 'rule', + tags: ['tag-b'], + source: 'custom', + enabled: false, + field: 'name', + order: 'asc', + perPage: 5, + page: 2, + }); - visit(RULES_MANAGEMENT_URL); + expectRulesManagementTab(); + expectFilterSearchTerm('rule'); + expectFilterByTags(['tag-b']); + expectFilterByCustomRules(); + expectFilterByDisabledRules(); + expectTableSorting('Rule', 'asc'); + expectRowsPerPage(5); + expectTablePage(2); + }); - expectRulesManagementTab(); - expectFilterSearchTerm('test'); - expectFilterByTags(['tag-a']); - expectFilterByPrebuiltRules(); - expectFilterByEnabledRules(); - expectTableSorting('Severity', 'desc'); - }); + it('loads from the session storage', () => { + setStorageState({ + searchTerm: 'test', + tags: ['tag-a'], + source: 'prebuilt', + enabled: true, + field: 'severity', + order: 'desc', + perPage: 10, + }); - it('prefers url state over storage state', () => { - setStorageState({ - searchTerm: 'test', - tags: ['tag-c'], - source: 'prebuilt', - enabled: true, - field: 'severity', - order: 'desc', - perPage: 10, - }); - - visitRulesTableWithState({ - searchTerm: 'rule', - tags: ['tag-b'], - source: 'custom', - enabled: false, - field: 'name', - order: 'asc', - perPage: 5, - page: 2, - }); + visit(RULES_MANAGEMENT_URL); - expectRulesManagementTab(); - expectRulesTableState(); - expectTablePage(2); - }); - - describe('and on the rules management tab', () => { - beforeEach(() => { - login(); - visit(RULES_MANAGEMENT_URL); - }); + expectRulesManagementTab(); + expectFilterSearchTerm('test'); + expectFilterByTags(['tag-a']); + expectFilterByPrebuiltRules(); + expectFilterByEnabledRules(); + expectTableSorting('Severity', 'desc'); + }); - it('persists after reloading the page', () => { - changeRulesTableState(); - goToTablePage(2); + it('prefers url state over storage state', () => { + setStorageState({ + searchTerm: 'test', + tags: ['tag-c'], + source: 'prebuilt', + enabled: true, + field: 'severity', + order: 'desc', + perPage: 10, + }); - cy.reload(); + visitRulesTableWithState({ + searchTerm: 'rule', + tags: ['tag-b'], + source: 'custom', + enabled: false, + field: 'name', + order: 'asc', + perPage: 5, + page: 2, + }); - expectRulesManagementTab(); - expectRulesTableState(); - expectTablePage(2); - }); + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(2); + }); - it('persists after navigating back from a rule details page', () => { - changeRulesTableState(); - goToTablePage(2); + describe('and on the rules management tab', () => { + beforeEach(() => { + login(); + visit(RULES_MANAGEMENT_URL); + }); - goToRuleDetailsOf('rule 6'); - cy.go('back'); + it('persists after reloading the page', () => { + changeRulesTableState(); + goToTablePage(2); - expectRulesManagementTab(); - expectRulesTableState(); - expectTablePage(2); - }); + cy.reload(); - it('persists after navigating to another page inside Security Solution', () => { - changeRulesTableState(); - goToTablePage(2); + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(2); + }); - visit(DASHBOARDS_URL); - visit(RULES_MANAGEMENT_URL); + it('persists after navigating back from a rule details page', () => { + changeRulesTableState(); + goToTablePage(2); - expectRulesManagementTab(); - expectRulesTableState(); - expectTablePage(1); - }); + goToRuleDetailsOf('rule 6'); + cy.go('back'); - it('persists after navigating to another page outside Security Solution', () => { - changeRulesTableState(); - goToTablePage(2); + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(2); + }); - visit(KIBANA_HOME); - visit(RULES_MANAGEMENT_URL); + it('persists after navigating to another page inside Security Solution', () => { + changeRulesTableState(); + goToTablePage(2); - expectRulesManagementTab(); - expectRulesTableState(); - expectTablePage(1); - }); - }); + visit(DASHBOARDS_URL); + visit(RULES_MANAGEMENT_URL); - describe('and on the rules monitoring tab', () => { - beforeEach(() => { - login(); - visit(RULES_MONITORING_URL); - }); + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(1); + }); - it('persists the selected tab', () => { - changeRulesTableState(); + it('persists after navigating to another page outside Security Solution', () => { + changeRulesTableState(); + goToTablePage(2); - cy.reload(); + visit(KIBANA_HOME); + visit(RULES_MANAGEMENT_URL); - expectRulesMonitoringTab(); - }); - }); - } - ); + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(1); + }); + }); - describe('upon state format upgrade', async () => { + describe('and on the rules monitoring tab', () => { beforeEach(() => { login(); + visit(RULES_MONITORING_URL); }); - describe('and having state in the url', () => { - it('ignores unsupported state key', () => { - visitRulesTableWithState({ - someKey: 10, - searchTerm: 'rule', - tags: ['tag-b'], - source: 'custom', - enabled: false, - field: 'name', - order: 'asc', - perPage: 5, - page: 2, - }); + it('persists the selected tab', () => { + changeRulesTableState(); - expectRulesTableState(); - expectTablePage(2); - }); + cy.reload(); + + expectRulesMonitoringTab(); }); + }); + }); - describe('and having state in the session storage', () => { - it('ignores unsupported state key', () => { - setStorageState({ - someKey: 10, - searchTerm: 'rule', - tags: ['tag-b'], - source: 'custom', - enabled: false, - field: 'name', - order: 'asc', - perPage: 5, - }); - - visit(RULES_MANAGEMENT_URL); + describe('upon state format upgrade', async () => { + beforeEach(() => { + login(); + }); - expectRulesTableState(); - expectTablePage(1); + describe('and having state in the url', () => { + it('ignores unsupported state key', () => { + visitRulesTableWithState({ + someKey: 10, + searchTerm: 'rule', + tags: ['tag-b'], + source: 'custom', + enabled: false, + field: 'name', + order: 'asc', + perPage: 5, + page: 2, }); + + expectRulesTableState(); + expectTablePage(2); }); }); - describe('when persisted state is partially unavailable', () => { - describe('and on the rules management tab', () => { - beforeEach(() => { - login(); - visit(RULES_MANAGEMENT_URL); + describe('and having state in the session storage', () => { + it('ignores unsupported state key', () => { + setStorageState({ + someKey: 10, + searchTerm: 'rule', + tags: ['tag-b'], + source: 'custom', + enabled: false, + field: 'name', + order: 'asc', + perPage: 5, }); - it('persists after clearing the session storage', () => { - changeRulesTableState(); - goToTablePage(2); + visit(RULES_MANAGEMENT_URL); - cy.window().then((win) => { - win.sessionStorage.clear(); - }); - cy.reload(); - - expectRulesManagementTab(); - expectRulesTableState(); - expectTablePage(2); - }); + expectRulesTableState(); + expectTablePage(1); + }); + }); + }); - it('persists after clearing the url state', () => { - changeRulesTableState(); - goToTablePage(2); + describe('when persisted state is partially unavailable', () => { + describe('and on the rules management tab', () => { + beforeEach(() => { + login(); + visit(RULES_MANAGEMENT_URL); + }); - visit(RULES_MANAGEMENT_URL); + it('persists after clearing the session storage', () => { + changeRulesTableState(); + goToTablePage(2); - expectRulesManagementTab(); - expectRulesTableState(); - expectTablePage(1); + cy.window().then((win) => { + win.sessionStorage.clear(); }); + cy.reload(); + + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(2); }); - }); - describe('when corrupted', () => { - describe('and on the rules management tab', () => { - beforeEach(() => { - login(); - visit(RULES_MANAGEMENT_URL); - }); + it('persists after clearing the url state', () => { + changeRulesTableState(); + goToTablePage(2); - it('persists after corrupting the session storage data', () => { - changeRulesTableState(); - goToTablePage(2); + visit(RULES_MANAGEMENT_URL); - cy.window().then((win) => { - win.sessionStorage.setItem('securitySolution.rulesTable', '!invalid'); - cy.reload(); + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(1); + }); + }); + }); - expectRulesManagementTab(); - expectRulesTableState(); - expectTablePage(2); - }); - }); + describe('when corrupted', () => { + describe('and on the rules management tab', () => { + beforeEach(() => { + login(); + visit(RULES_MANAGEMENT_URL); + }); - it('persists after corrupting the url param data', () => { - changeRulesTableState(); - goToTablePage(2); + it('persists after corrupting the session storage data', () => { + changeRulesTableState(); + goToTablePage(2); - visit(RULES_MANAGEMENT_URL, { visitOptions: { qs: { rulesTable: '(!invalid)' } } }); + cy.window().then((win) => { + win.sessionStorage.setItem('securitySolution.rulesTable', '!invalid'); + cy.reload(); expectRulesManagementTab(); expectRulesTableState(); - expectTablePage(1); + expectTablePage(2); }); + }); - it('DOES NOT persist after corrupting the session storage and url param data', () => { - changeRulesTableState(); - goToTablePage(2); + it('persists after corrupting the url param data', () => { + changeRulesTableState(); + goToTablePage(2); - visit(RULES_MANAGEMENT_URL, { - visitOptions: { - qs: { rulesTable: '(!invalid)' }, - onBeforeLoad: (win) => { - win.sessionStorage.setItem('securitySolution.rulesTable', '!invalid'); - }, - }, - }); + visit(RULES_MANAGEMENT_URL, { visitOptions: { qs: { rulesTable: '(!invalid)' } } }); - expectRulesManagementTab(); - expectDefaultRulesTableState(); + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(1); + }); + + it('DOES NOT persist after corrupting the session storage and url param data', () => { + changeRulesTableState(); + goToTablePage(2); + + visit(RULES_MANAGEMENT_URL, { + visitOptions: { + qs: { rulesTable: '(!invalid)' }, + onBeforeLoad: (win) => { + win.sessionStorage.setItem('securitySolution.rulesTable', '!invalid'); + }, + }, }); + + expectRulesManagementTab(); + expectDefaultRulesTableState(); }); }); - } -); + }); +}); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_selection.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_selection.cy.ts index fa005860233e5..6ae36029a8c0a 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_selection.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_selection.cy.ts @@ -34,74 +34,68 @@ const RULE_2 = createRuleAssetSavedObject({ rule_id: 'rule_2', }); -// TODO: https://github.com/elastic/kibana/issues/161540 -// FLAKY: https://github.com/elastic/kibana/issues/165643 -describe.skip( - 'Rules table: selection', - { tags: ['@ess', '@serverless', '@skipInServerless'] }, - () => { - before(() => { - cleanKibana(); - }); +describe('Rules table: selection', { tags: ['@ess', '@serverless'] }, () => { + before(() => { + cleanKibana(); + }); - beforeEach(() => { - login(); - /* Create and install two mock rules */ - createAndInstallMockedPrebuiltRules({ rules: [RULE_1, RULE_2] }); - visit(RULES_MANAGEMENT_URL); - waitForPrebuiltDetectionRulesToBeLoaded(); - }); + beforeEach(() => { + login(); + /* Create and install two mock rules */ + createAndInstallMockedPrebuiltRules({ rules: [RULE_1, RULE_2] }); + visit(RULES_MANAGEMENT_URL); + waitForPrebuiltDetectionRulesToBeLoaded(); + }); - it('should correctly update the selection label when rules are individually selected and unselected', () => { - waitForPrebuiltDetectionRulesToBeLoaded(); + it('should correctly update the selection label when rules are individually selected and unselected', () => { + waitForPrebuiltDetectionRulesToBeLoaded(); - selectRulesByName(['Test rule 1', 'Test rule 2']); + selectRulesByName(['Test rule 1', 'Test rule 2']); - cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', '2'); + cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', '2'); - unselectRulesByName(['Test rule 1', 'Test rule 2']); + unselectRulesByName(['Test rule 1', 'Test rule 2']); - cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', '0'); - }); + cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', '0'); + }); - it('should correctly update the selection label when rules are bulk selected and then bulk un-selected', () => { - waitForPrebuiltDetectionRulesToBeLoaded(); + it('should correctly update the selection label when rules are bulk selected and then bulk un-selected', () => { + waitForPrebuiltDetectionRulesToBeLoaded(); - cy.get(SELECT_ALL_RULES_BTN).click(); + cy.get(SELECT_ALL_RULES_BTN).click(); - getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { - cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', availablePrebuiltRulesCount); - }); + getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { + cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', availablePrebuiltRulesCount); + }); - // Un-select all rules via the Bulk Selection button from the Utility bar - cy.get(SELECT_ALL_RULES_BTN).click(); + // Un-select all rules via the Bulk Selection button from the Utility bar + cy.get(SELECT_ALL_RULES_BTN).click(); - // Current selection should be 0 rules - cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', '0'); - // Bulk selection button should be back to displaying all rules - getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { - cy.get(SELECT_ALL_RULES_BTN).should('contain.text', availablePrebuiltRulesCount); - }); + // Current selection should be 0 rules + cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', '0'); + // Bulk selection button should be back to displaying all rules + getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { + cy.get(SELECT_ALL_RULES_BTN).should('contain.text', availablePrebuiltRulesCount); }); + }); - it('should correctly update the selection label when rules are bulk selected and then unselected via the table select all checkbox', () => { - waitForPrebuiltDetectionRulesToBeLoaded(); + it('should correctly update the selection label when rules are bulk selected and then unselected via the table select all checkbox', () => { + waitForPrebuiltDetectionRulesToBeLoaded(); - cy.get(SELECT_ALL_RULES_BTN).click(); + cy.get(SELECT_ALL_RULES_BTN).click(); - getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { - cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', availablePrebuiltRulesCount); - }); + getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { + cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', availablePrebuiltRulesCount); + }); - // Un-select all rules via the Un-select All checkbox from the table - cy.get(SELECT_ALL_RULES_ON_PAGE_CHECKBOX).click(); + // Un-select all rules via the Un-select All checkbox from the table + cy.get(SELECT_ALL_RULES_ON_PAGE_CHECKBOX).click(); - // Current selection should be 0 rules - cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', '0'); - // Bulk selection button should be back to displaying all rules - getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { - cy.get(SELECT_ALL_RULES_BTN).should('contain.text', availablePrebuiltRulesCount); - }); + // Current selection should be 0 rules + cy.get(SELECTED_RULES_NUMBER_LABEL).should('contain.text', '0'); + // Bulk selection button should be back to displaying all rules + getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { + cy.get(SELECT_ALL_RULES_BTN).should('contain.text', availablePrebuiltRulesCount); }); - } -); + }); +}); diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_sorting.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_sorting.cy.ts index 95ecee687092b..4945b2676b56d 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_sorting.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rules_table/rules_table_sorting.cy.ts @@ -37,8 +37,7 @@ import { } from '../../../../tasks/table_pagination'; import { TABLE_FIRST_PAGE, TABLE_SECOND_PAGE } from '../../../../screens/table_pagination'; -// TODO: https://github.com/elastic/kibana/issues/161540 -describe('Rules table: sorting', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { +describe('Rules table: sorting', { tags: ['@ess', '@serverless'] }, () => { before(() => { cleanKibana(); login(); From 43bd2dc9b99c06c9ef5c69d45ab2899fc4fa6ecd Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Mon, 9 Oct 2023 21:30:29 +0100 Subject: [PATCH 06/48] skip flaky suite (#166469) --- .../functional/test_suites/observability/cases/configure.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts b/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts index 5af10979e5f49..b83aaadc4b984 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts @@ -34,7 +34,8 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { await svlCommonPage.forceLogout(); }); - describe('Closure options', function () { + // FLAKY: https://github.com/elastic/kibana/issues/166469 + describe.skip('Closure options', function () { before(async () => { await common.clickAndValidate('configure-case-button', 'case-configure-title'); }); From b7116b1efb96f0cedd8afb6529b8186a9ccdaff2 Mon Sep 17 00:00:00 2001 From: Maxim Palenov Date: Mon, 9 Oct 2023 22:33:22 +0200 Subject: [PATCH 07/48] [Security Solution] Unskip misc rule management Serverless Cypress tests (#168305) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Addresses:** https://github.com/elastic/kibana/issues/161540 ## Summary This PR unskips miscelanious (not falling in one category but unskipping each one separately is overkill) rule management Serverless Cypress tests - `maintenance_window_callout.cy.ts` - `related_integrations.cy.ts` - `rule_delete.cy.ts` - `rule_snoozing.cy.ts` ## Flaky test runner https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3405 150 runs 🟢 --- .../maintenance_windows/maintenance_window_callout.cy.ts | 3 +-- .../related_integrations/related_integrations.cy.ts | 3 +-- .../rule_management/rule_actions/deletion/rule_delete.cy.ts | 2 +- .../rule_management/rule_actions/snoozing/rule_snoozing.cy.ts | 4 +--- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/maintenance_windows/maintenance_window_callout.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/maintenance_windows/maintenance_window_callout.cy.ts index 7d8c0c18b7c30..c1929b15840d9 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/maintenance_windows/maintenance_window_callout.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/maintenance_windows/maintenance_window_callout.cy.ts @@ -13,10 +13,9 @@ import { login } from '../../../../tasks/login'; import { visit } from '../../../../tasks/navigation'; import { RULES_MANAGEMENT_URL } from '../../../../urls/rules_management'; -// TODO: https://github.com/elastic/kibana/issues/161540 describe( 'Maintenance window callout on Rule Management page', - { tags: ['@ess', '@serverless', '@skipInServerless'] }, + { tags: ['@ess', '@serverless'] }, () => { let maintenanceWindowId = ''; diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/related_integrations/related_integrations.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/related_integrations/related_integrations.cy.ts index 4b37505824708..6f5434772e69a 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/related_integrations/related_integrations.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/related_integrations/related_integrations.cy.ts @@ -45,8 +45,7 @@ import { waitForPageToBeLoaded, } from '../../../../tasks/rule_details'; -// TODO: https://github.com/elastic/kibana/issues/161540 -describe('Related integrations', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { +describe('Related integrations', { tags: ['@ess', '@serverless'] }, () => { const DATA_STREAM_NAME = 'logs-related-integrations-test'; const PREBUILT_RULE_NAME = 'Prebuilt rule with related integrations'; const RULE_RELATED_INTEGRATIONS: IntegrationDefinition[] = [ diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/deletion/rule_delete.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/deletion/rule_delete.cy.ts index ae7ade60f1584..563c8b85c1b73 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/deletion/rule_delete.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/deletion/rule_delete.cy.ts @@ -20,7 +20,7 @@ import { createRule, findAllRules } from '../../../../../tasks/api_calls/rules'; import { deleteAlertsAndRules } from '../../../../../tasks/common'; import { login } from '../../../../../tasks/login'; -describe('Rule deletion', { tags: ['@ess', '@serverless', '@skipInServerless'] }, () => { +describe('Rule deletion', { tags: ['@ess', '@serverless'] }, () => { const testRules = [ getNewRule({ rule_id: 'rule1', name: 'Rule 1', enabled: false }), getNewRule({ rule_id: 'rule2', name: 'Rule 2', enabled: false }), diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/snoozing/rule_snoozing.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/snoozing/rule_snoozing.cy.ts index 2b1daa66013d7..cbac9328fb4aa 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/snoozing/rule_snoozing.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_actions/snoozing/rule_snoozing.cy.ts @@ -43,9 +43,7 @@ import { TOOLTIP } from '../../../../../screens/common'; const RULES_TO_IMPORT_FILENAME = 'cypress/fixtures/7_16_rules.ndjson'; -// TODO: https://github.com/elastic/kibana/issues/161540 -// Flaky in serverless tests -describe('rule snoozing', { tags: ['@ess', '@serverless', '@skipInServerless'] }, () => { +describe('rule snoozing', { tags: ['@ess', '@serverless'] }, () => { before(() => { cleanKibana(); }); From e29f72f021a298cff95379794084b5caf63dff9d Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Mon, 9 Oct 2023 23:05:38 +0100 Subject: [PATCH 08/48] fix(NA): security solution storybook build (#168043) --- .buildkite/scripts/steps/storybooks/build_and_upload.ts | 2 +- .../connector_selector_inline/connector_selector_inline.tsx | 2 +- .../sections/settings/components/edit_output_flyout/index.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.buildkite/scripts/steps/storybooks/build_and_upload.ts b/.buildkite/scripts/steps/storybooks/build_and_upload.ts index 2afc5f4037148..83f1ecb2a759d 100644 --- a/.buildkite/scripts/steps/storybooks/build_and_upload.ts +++ b/.buildkite/scripts/steps/storybooks/build_and_upload.ts @@ -45,7 +45,7 @@ const STORYBOOKS = [ 'observability', 'observability_ai_assistant', 'presentation', - // 'security_solution', => This build is error out and failing CI. SEE: https://github.com/elastic/kibana/issues/162290 + 'security_solution', 'security_solution_packages', 'serverless', 'shared_ux', diff --git a/x-pack/packages/kbn-elastic-assistant/impl/connectorland/connector_selector_inline/connector_selector_inline.tsx b/x-pack/packages/kbn-elastic-assistant/impl/connectorland/connector_selector_inline/connector_selector_inline.tsx index c6539520861cc..fa92563883cdb 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/connectorland/connector_selector_inline/connector_selector_inline.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/connectorland/connector_selector_inline/connector_selector_inline.tsx @@ -8,7 +8,7 @@ import { EuiButtonEmpty, EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui'; import React, { useCallback, useMemo, useState } from 'react'; -import { css } from '@emotion/css/dist/emotion-css.cjs'; +import { css } from '@emotion/css'; import { AIConnector, ConnectorSelector } from '../connector_selector'; import { Conversation } from '../../..'; import { useLoadConnectors } from '../use_load_connectors'; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx index 0e9ca6725a1a9..05f44bb8b92a9 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx @@ -32,7 +32,7 @@ import { } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { css } from '@emotion/react/dist/emotion-react.cjs'; +import { css } from '@emotion/react'; import { ExperimentalFeaturesService } from '../../../../../../services'; From ed54eafa47da8afc2289cf564a27b214c3311beb Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Tue, 10 Oct 2023 04:06:20 +0100 Subject: [PATCH 09/48] skip flaky suite (#168415) --- .../group10/risk_engine/risk_scoring_task_execution.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/risk_scoring_task_execution.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/risk_scoring_task_execution.ts index 0ae5068be09d0..f9070ef39bff8 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/risk_scoring_task_execution.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/risk_scoring_task_execution.ts @@ -93,7 +93,8 @@ export default ({ getService }: FtrProviderContext): void => { }); }); - describe('initializing the risk engine', () => { + // FLAKY: https://github.com/elastic/kibana/issues/168415 + describe.skip('initializing the risk engine', () => { beforeEach(async () => { await riskEngineRoutes.init(); }); From 1bf6ef3ff388a0994dc1fac7d9ac69c03f86d8ba Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Tue, 10 Oct 2023 04:07:50 +0100 Subject: [PATCH 10/48] skip flaky suite (#167869) --- .../functional/test_suites/observability/cases/configure.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts b/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts index b83aaadc4b984..b243fb245503f 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts @@ -52,7 +52,8 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { }); }); - describe('Connectors', function () { + // FLAKY: https://github.com/elastic/kibana/issues/167869 + describe.skip('Connectors', function () { it('defaults the connector to none correctly', async () => { await retry.waitFor('dropdown-connector-no-connector to exist', async () => { return await testSubjects.exists('dropdown-connector-no-connector'); From d3a87a117e038f5c338a314697837e587fbf9d11 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Tue, 10 Oct 2023 01:09:29 -0400 Subject: [PATCH 11/48] [api-docs] 2023-10-10 Daily api_docs build (#168425) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/486 --- api_docs/actions.devdocs.json | 4 +- api_docs/actions.mdx | 2 +- api_docs/advanced_settings.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/asset_manager.mdx | 2 +- api_docs/banners.mdx | 2 +- api_docs/bfetch.mdx | 2 +- api_docs/canvas.mdx | 2 +- api_docs/cases.mdx | 2 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_data_migration.mdx | 2 +- api_docs/cloud_defend.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/content_management.mdx | 2 +- api_docs/controls.mdx | 2 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.mdx | 2 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.mdx | 2 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/deprecations_by_api.mdx | 2 +- api_docs/deprecations_by_plugin.mdx | 2 +- api_docs/deprecations_by_team.mdx | 2 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.mdx | 2 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/ecs_data_quality_dashboard.mdx | 2 +- api_docs/elastic_assistant.mdx | 2 +- api_docs/embeddable.mdx | 2 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_annotation_listing.mdx | 2 +- api_docs/event_log.mdx | 2 +- api_docs/exploratory_view.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.mdx | 2 +- api_docs/expression_heatmap.mdx | 2 +- api_docs/expression_image.mdx | 2 +- api_docs/expression_legacy_metric_vis.mdx | 2 +- api_docs/expression_metric.mdx | 2 +- api_docs/expression_metric_vis.mdx | 2 +- api_docs/expression_partition_vis.mdx | 2 +- api_docs/expression_repeat_image.mdx | 2 +- api_docs/expression_reveal_image.mdx | 2 +- api_docs/expression_shape.mdx | 2 +- api_docs/expression_tagcloud.mdx | 2 +- api_docs/expression_x_y.mdx | 2 +- api_docs/expressions.mdx | 2 +- api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/files_management.mdx | 2 +- api_docs/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/image_embeddable.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_utils.mdx | 2 +- .../kbn_alerting_api_integration_helpers.mdx | 2 +- api_docs/kbn_alerting_state_types.mdx | 2 +- api_docs/kbn_alerts_as_data_utils.mdx | 2 +- api_docs/kbn_alerts_ui_shared.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- ..._analytics_shippers_elastic_v3_browser.mdx | 2 +- ...n_analytics_shippers_elastic_v3_common.mdx | 2 +- ...n_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_analytics_shippers_gainsight.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.mdx | 2 +- api_docs/kbn_chart_expressions_common.mdx | 2 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_code_editor.mdx | 2 +- api_docs/kbn_code_editor_mocks.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- .../kbn_content_management_content_editor.mdx | 2 +- ...tent_management_tabbed_table_list_view.mdx | 2 +- ...kbn_content_management_table_list_view.mdx | 2 +- ...ntent_management_table_list_view_table.mdx | 2 +- api_docs/kbn_content_management_utils.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- .../kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- .../kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- .../kbn_core_application_browser_internal.mdx | 2 +- .../kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_apps_server_internal.mdx | 2 +- api_docs/kbn_core_base_browser_mocks.mdx | 2 +- api_docs/kbn_core_base_common.mdx | 2 +- api_docs/kbn_core_base_server_internal.mdx | 2 +- api_docs/kbn_core_base_server_mocks.mdx | 2 +- .../kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- .../kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- ..._core_custom_branding_browser_internal.mdx | 2 +- ...kbn_core_custom_branding_browser_mocks.mdx | 2 +- api_docs/kbn_core_custom_branding_common.mdx | 2 +- api_docs/kbn_core_custom_branding_server.mdx | 2 +- ...n_core_custom_branding_server_internal.mdx | 2 +- .../kbn_core_custom_branding_server_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_browser.mdx | 2 +- ...kbn_core_deprecations_browser_internal.mdx | 2 +- .../kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- .../kbn_core_deprecations_server_internal.mdx | 2 +- .../kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- ...e_elasticsearch_client_server_internal.mdx | 2 +- ...core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- ...kbn_core_elasticsearch_server_internal.mdx | 2 +- .../kbn_core_elasticsearch_server_mocks.mdx | 2 +- .../kbn_core_environment_server_internal.mdx | 2 +- .../kbn_core_environment_server_mocks.mdx | 2 +- .../kbn_core_execution_context_browser.mdx | 2 +- ...ore_execution_context_browser_internal.mdx | 2 +- ...n_core_execution_context_browser_mocks.mdx | 2 +- .../kbn_core_execution_context_common.mdx | 2 +- .../kbn_core_execution_context_server.mdx | 2 +- ...core_execution_context_server_internal.mdx | 2 +- ...bn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- .../kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- .../kbn_core_http_context_server_mocks.mdx | 2 +- ...re_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- ...bn_core_http_resources_server_internal.mdx | 2 +- .../kbn_core_http_resources_server_mocks.mdx | 2 +- .../kbn_core_http_router_server_internal.mdx | 2 +- .../kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.mdx | 2 +- api_docs/kbn_core_i18n_server_internal.mdx | 2 +- api_docs/kbn_core_i18n_server_mocks.mdx | 2 +- ...n_core_injected_metadata_browser_mocks.mdx | 2 +- ...kbn_core_integrations_browser_internal.mdx | 2 +- .../kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_server.mdx | 2 +- api_docs/kbn_core_lifecycle_server_mocks.mdx | 2 +- api_docs/kbn_core_logging_browser_mocks.mdx | 2 +- api_docs/kbn_core_logging_common_internal.mdx | 2 +- api_docs/kbn_core_logging_server.mdx | 2 +- api_docs/kbn_core_logging_server_internal.mdx | 2 +- api_docs/kbn_core_logging_server_mocks.mdx | 2 +- ...ore_metrics_collectors_server_internal.mdx | 2 +- ...n_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- ...bn_core_notifications_browser_internal.mdx | 2 +- .../kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- .../kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_server.mdx | 2 +- api_docs/kbn_core_plugins_server_mocks.mdx | 2 +- api_docs/kbn_core_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- .../kbn_core_rendering_server_internal.mdx | 2 +- api_docs/kbn_core_rendering_server_mocks.mdx | 2 +- api_docs/kbn_core_root_server_internal.mdx | 2 +- .../kbn_core_saved_objects_api_browser.mdx | 2 +- .../kbn_core_saved_objects_api_server.mdx | 2 +- ...bn_core_saved_objects_api_server_mocks.mdx | 2 +- ...ore_saved_objects_base_server_internal.mdx | 2 +- ...n_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- ...bn_core_saved_objects_browser_internal.mdx | 2 +- .../kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- ..._objects_import_export_server_internal.mdx | 2 +- ...ved_objects_import_export_server_mocks.mdx | 2 +- ...aved_objects_migration_server_internal.mdx | 2 +- ...e_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- ...kbn_core_saved_objects_server_internal.mdx | 2 +- .../kbn_core_saved_objects_server_mocks.mdx | 2 +- .../kbn_core_saved_objects_utils_server.mdx | 2 +- api_docs/kbn_core_status_common.mdx | 2 +- api_docs/kbn_core_status_common_internal.mdx | 2 +- api_docs/kbn_core_status_server.mdx | 2 +- api_docs/kbn_core_status_server_internal.mdx | 2 +- api_docs/kbn_core_status_server_mocks.mdx | 2 +- ...core_test_helpers_deprecations_getters.mdx | 2 +- ...n_core_test_helpers_http_setup_browser.mdx | 2 +- api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +- .../kbn_core_test_helpers_model_versions.mdx | 2 +- ...n_core_test_helpers_so_type_serializer.mdx | 2 +- api_docs/kbn_core_test_helpers_test_utils.mdx | 2 +- api_docs/kbn_core_theme_browser.mdx | 2 +- api_docs/kbn_core_theme_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_browser.mdx | 2 +- .../kbn_core_ui_settings_browser_internal.mdx | 2 +- .../kbn_core_ui_settings_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_common.mdx | 2 +- api_docs/kbn_core_ui_settings_server.mdx | 2 +- .../kbn_core_ui_settings_server_internal.mdx | 2 +- .../kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- .../kbn_core_usage_data_server_internal.mdx | 2 +- api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +- api_docs/kbn_core_user_settings_server.mdx | 2 +- ...kbn_core_user_settings_server_internal.mdx | 2 +- .../kbn_core_user_settings_server_mocks.mdx | 2 +- api_docs/kbn_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_custom_integrations.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_data_service.mdx | 2 +- api_docs/kbn_datemath.mdx | 2 +- api_docs/kbn_deeplinks_analytics.mdx | 2 +- api_docs/kbn_deeplinks_devtools.mdx | 2 +- api_docs/kbn_deeplinks_management.mdx | 2 +- api_docs/kbn_deeplinks_ml.mdx | 2 +- api_docs/kbn_deeplinks_observability.mdx | 2 +- api_docs/kbn_deeplinks_search.mdx | 2 +- api_docs/kbn_default_nav_analytics.mdx | 2 +- api_docs/kbn_default_nav_devtools.mdx | 2 +- api_docs/kbn_default_nav_management.mdx | 2 +- api_docs/kbn_default_nav_ml.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_discover_utils.mdx | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_dom_drag_drop.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs.mdx | 2 +- api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +- api_docs/kbn_elastic_assistant.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- api_docs/kbn_es_types.mdx | 2 +- api_docs/kbn_eslint_plugin_imports.mdx | 2 +- api_docs/kbn_event_annotation_common.mdx | 2 +- api_docs/kbn_event_annotation_components.mdx | 2 +- api_docs/kbn_expandable_flyout.mdx | 2 +- api_docs/kbn_field_types.mdx | 2 +- api_docs/kbn_field_utils.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- .../kbn_ftr_common_functional_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_generate_console_definitions.mdx | 2 +- api_docs/kbn_generate_csv.mdx | 2 +- api_docs/kbn_generate_csv_types.mdx | 2 +- api_docs/kbn_guided_onboarding.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.mdx | 2 +- api_docs/kbn_health_gateway_server.mdx | 2 +- api_docs/kbn_home_sample_data_card.mdx | 2 +- api_docs/kbn_home_sample_data_tab.mdx | 2 +- api_docs/kbn_i18n.mdx | 2 +- api_docs/kbn_i18n_react.mdx | 2 +- api_docs/kbn_import_resolver.mdx | 2 +- api_docs/kbn_infra_forge.mdx | 2 +- api_docs/kbn_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- .../kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_lens_embeddable_utils.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_management_cards_navigation.mdx | 2 +- .../kbn_management_settings_application.mdx | 2 +- ...ent_settings_components_field_category.mdx | 2 +- ...gement_settings_components_field_input.mdx | 2 +- ...nagement_settings_components_field_row.mdx | 2 +- ...bn_management_settings_components_form.mdx | 2 +- ...n_management_settings_field_definition.mdx | 2 +- api_docs/kbn_management_settings_ids.mdx | 2 +- ...n_management_settings_section_registry.mdx | 2 +- api_docs/kbn_management_settings_types.mdx | 2 +- .../kbn_management_settings_utilities.mdx | 2 +- api_docs/kbn_management_storybook_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_maps_vector_tile_utils.mdx | 2 +- api_docs/kbn_ml_agg_utils.mdx | 2 +- api_docs/kbn_ml_anomaly_utils.mdx | 2 +- api_docs/kbn_ml_category_validator.mdx | 2 +- api_docs/kbn_ml_chi2test.mdx | 2 +- .../kbn_ml_data_frame_analytics_utils.mdx | 2 +- api_docs/kbn_ml_data_grid.mdx | 2 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_date_utils.mdx | 2 +- api_docs/kbn_ml_error_utils.mdx | 2 +- api_docs/kbn_ml_in_memory_table.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_kibana_theme.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_number_utils.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_random_sampler_utils.mdx | 2 +- api_docs/kbn_ml_route_utils.mdx | 2 +- api_docs/kbn_ml_runtime_field_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_trained_models_utils.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_object_versioning.mdx | 2 +- api_docs/kbn_observability_alert_details.mdx | 2 +- api_docs/kbn_openapi_generator.mdx | 2 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- ..._performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_profiling_utils.mdx | 2 +- api_docs/kbn_random_sampling.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_react_kibana_context_common.mdx | 2 +- api_docs/kbn_react_kibana_context_render.mdx | 2 +- api_docs/kbn_react_kibana_context_root.mdx | 2 +- api_docs/kbn_react_kibana_context_styled.mdx | 2 +- api_docs/kbn_react_kibana_context_theme.mdx | 2 +- api_docs/kbn_react_kibana_mount.mdx | 2 +- api_docs/kbn_repo_file_maps.mdx | 2 +- api_docs/kbn_repo_linter.mdx | 2 +- api_docs/kbn_repo_path.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_reporting_common.mdx | 2 +- api_docs/kbn_resizable_layout.mdx | 2 +- api_docs/kbn_rison.mdx | 2 +- api_docs/kbn_rrule.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- api_docs/kbn_saved_objects_settings.mdx | 2 +- api_docs/kbn_search_api_panels.mdx | 2 +- api_docs/kbn_search_connectors.mdx | 2 +- api_docs/kbn_search_response_warnings.mdx | 2 +- api_docs/kbn_security_solution_features.mdx | 2 +- api_docs/kbn_security_solution_navigation.mdx | 2 +- api_docs/kbn_security_solution_side_nav.mdx | 2 +- ...kbn_security_solution_storybook_config.mdx | 2 +- .../kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_data_table.mdx | 2 +- api_docs/kbn_securitysolution_ecs.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- ...ritysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_grouping.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- ..._securitysolution_io_ts_alerting_types.mdx | 2 +- .../kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +- api_docs/kbn_securitysolution_list_api.mdx | 2 +- .../kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_serverless_common_settings.mdx | 2 +- .../kbn_serverless_observability_settings.mdx | 2 +- api_docs/kbn_serverless_project_switcher.mdx | 2 +- api_docs/kbn_serverless_search_settings.mdx | 2 +- api_docs/kbn_serverless_security_settings.mdx | 2 +- api_docs/kbn_serverless_storybook_config.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- ...ared_ux_avatar_user_profile_components.mdx | 2 +- .../kbn_shared_ux_button_exit_full_screen.mdx | 2 +- ...hared_ux_button_exit_full_screen_mocks.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_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 +- .../kbn_shared_ux_link_redirect_app_mocks.mdx | 2 +- api_docs/kbn_shared_ux_markdown.mdx | 2 +- api_docs/kbn_shared_ux_markdown_mocks.mdx | 2 +- .../kbn_shared_ux_page_analytics_no_data.mdx | 2 +- ...shared_ux_page_analytics_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_no_data.mdx | 2 +- ...bn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_template.mdx | 2 +- ...n_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- .../kbn_shared_ux_page_no_data_config.mdx | 2 +- ...bn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- .../kbn_shared_ux_prompt_no_data_views.mdx | 2 +- ...n_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_subscription_tracking.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_text_based_editor.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_unified_data_table.mdx | 2 +- api_docs/kbn_unified_doc_viewer.mdx | 2 +- api_docs/kbn_unified_field_list.mdx | 2 +- api_docs/kbn_url_state.mdx | 2 +- api_docs/kbn_use_tracked_promise.mdx | 2 +- api_docs/kbn_user_profile_components.mdx | 2 +- api_docs/kbn_utility_types.mdx | 2 +- api_docs/kbn_utility_types_jest.mdx | 2 +- api_docs/kbn_utils.mdx | 2 +- api_docs/kbn_visualization_ui_components.mdx | 2 +- api_docs/kbn_xstate_utils.mdx | 2 +- api_docs/kbn_yarn_lock_validator.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 4 +- 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/log_explorer.mdx | 2 +- api_docs/logs_shared.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/metrics_data_access.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/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_log_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 | 14 +- api_docs/presentation_util.mdx | 2 +- api_docs/profiling.mdx | 2 +- api_docs/profiling_data_access.mdx | 2 +- api_docs/remote_clusters.devdocs.json | 270 +++++++++++++++++- api_docs/remote_clusters.mdx | 10 +- 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/security.mdx | 2 +- api_docs/security_solution.devdocs.json | 84 ++---- api_docs/security_solution.mdx | 4 +- api_docs/security_solution_ess.mdx | 2 +- api_docs/security_solution_serverless.mdx | 2 +- api_docs/serverless.mdx | 2 +- api_docs/serverless_observability.mdx | 2 +- api_docs/serverless_search.mdx | 2 +- api_docs/session_view.mdx | 2 +- api_docs/share.mdx | 2 +- api_docs/snapshot_restore.mdx | 2 +- api_docs/spaces.mdx | 2 +- api_docs/stack_alerts.mdx | 2 +- api_docs/stack_connectors.mdx | 2 +- api_docs/task_manager.mdx | 2 +- api_docs/telemetry.mdx | 2 +- api_docs/telemetry_collection_manager.mdx | 2 +- api_docs/telemetry_collection_xpack.mdx | 2 +- api_docs/telemetry_management_section.mdx | 2 +- api_docs/text_based_languages.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 +- 600 files changed, 899 insertions(+), 677 deletions(-) diff --git a/api_docs/actions.devdocs.json b/api_docs/actions.devdocs.json index feca25544e84f..996e938477fdf 100644 --- a/api_docs/actions.devdocs.json +++ b/api_docs/actions.devdocs.json @@ -2009,7 +2009,7 @@ "label": "request", "description": [], "signature": [ - "({ url, data, method, responseSchema, headers, ...config }: ", + "({ url, data, method, responseSchema, headers, timeout, ...config }: ", "SubActionRequestParams", ") => Promise<", "AxiosResponse", @@ -2024,7 +2024,7 @@ "id": "def-server.SubActionConnector.request.$1", "type": "CompoundType", "tags": [], - "label": "{\n url,\n data,\n method = 'get',\n responseSchema,\n headers,\n ...config\n }", + "label": "{\n url,\n data,\n method = 'get',\n responseSchema,\n headers,\n timeout,\n ...config\n }", "description": [], "signature": [ "SubActionRequestParams", diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 44bbed520d0ea..92c30339ba62e 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2023-10-09 +date: 2023-10-10 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 f184688bf82e7..cb5f754581508 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings'] --- import advancedSettingsObj from './advanced_settings.devdocs.json'; diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx index 01d5361e6b349..e9239ef9d9530 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2023-10-09 +date: 2023-10-10 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 ee8dab1dd6f0e..e8a3ba3cd1a81 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2023-10-09 +date: 2023-10-10 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 362e2385b2544..9e02655a1f645 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2023-10-09 +date: 2023-10-10 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 2d507abd3e0c9..95e9f7cd026c2 100644 --- a/api_docs/apm_data_access.mdx +++ b/api_docs/apm_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apmDataAccess title: "apmDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the apmDataAccess plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apmDataAccess'] --- import apmDataAccessObj from './apm_data_access.devdocs.json'; diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx index 9393940de5cfd..f9c0f8185984a 100644 --- a/api_docs/asset_manager.mdx +++ b/api_docs/asset_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager title: "assetManager" image: https://source.unsplash.com/400x175/?github description: API docs for the assetManager plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager'] --- import assetManagerObj from './asset_manager.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index 6263b7e6d397b..334a888edc8b2 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2023-10-09 +date: 2023-10-10 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 e61292b7180e6..499aa380b0537 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2023-10-09 +date: 2023-10-10 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 ede75c5909dff..de59e153f37df 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2023-10-09 +date: 2023-10-10 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 6ac72bec911d5..e215f49094637 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2023-10-09 +date: 2023-10-10 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 86fac9e965888..7c6f45c4e595a 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2023-10-09 +date: 2023-10-10 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 4840e2e8a45ed..c25116b5325d9 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2023-10-09 +date: 2023-10-10 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 7df12a8d6d8f9..e66bcb6216873 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2023-10-09 +date: 2023-10-10 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 60adb8f997aac..e8e48e05b4893 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index a2128c88ac902..99a5caddb098e 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudExperiments'] --- import cloudExperimentsObj from './cloud_experiments.devdocs.json'; diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx index da8649349a106..d56a41cf789b6 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2023-10-09 +date: 2023-10-10 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 185c6e02cbeeb..05c48c6125d0e 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2023-10-09 +date: 2023-10-10 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 b398f3ab44c76..ed29190a5d9ef 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2023-10-09 +date: 2023-10-10 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 c6e5fea139939..29ff3baf521fd 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2023-10-09 +date: 2023-10-10 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 95b2b643bd638..7a481c7312241 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2023-10-09 +date: 2023-10-10 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 997efc837ca5c..cdbcdd74de64c 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2023-10-09 +date: 2023-10-10 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 3c9768dc91c46..b62c690b374a6 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2023-10-09 +date: 2023-10-10 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 38b35c7c17e45..519e5a1988842 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 873251cdc6113..8732f38306bc1 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2023-10-09 +date: 2023-10-10 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 439f6f4277ee1..d4b31c2b336bd 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search'] --- import dataSearchObj from './data_search.devdocs.json'; diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx index 99ddb756c2357..7b87574949faa 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2023-10-09 +date: 2023-10-10 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 36bdc0c73801b..6bab9f846e7af 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2023-10-09 +date: 2023-10-10 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 9cbd344f376e7..6976b53514fce 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2023-10-09 +date: 2023-10-10 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 2f0cdc9c67454..531e8e63e8bd0 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2023-10-09 +date: 2023-10-10 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 b157f53c6f6fe..c6f9ac74b88fe 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer'] --- import dataVisualizerObj from './data_visualizer.devdocs.json'; diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index 968e6a0e338ac..49a449a7a57a1 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index e09d29f950bfd..219b1020d2ce7 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 7f62040564500..84493eccff3e3 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index debe142098861..419c2fecb34b5 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2023-10-09 +date: 2023-10-10 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 832b711e27bf4..134d38f38d3bc 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2023-10-09 +date: 2023-10-10 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 df695884d60d5..019e1c3f0312e 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index 87c2790f31aa8..4ebad2fc8ea17 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2023-10-09 +date: 2023-10-10 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 4155860043cd1..d0beb518c1431 100644 --- a/api_docs/elastic_assistant.mdx +++ b/api_docs/elastic_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/elasticAssistant title: "elasticAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the elasticAssistant plugin -date: 2023-10-09 +date: 2023-10-10 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 9c69caa04cbfc..246307c9ef92d 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2023-10-09 +date: 2023-10-10 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 e22b7b31dd2d4..18d14f70f077f 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2023-10-09 +date: 2023-10-10 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 fe5c73dc5ca66..75a4b49720f6f 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2023-10-09 +date: 2023-10-10 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 7e4e8aefdaa0f..6ba8aba507409 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch'] --- import enterpriseSearchObj from './enterprise_search.devdocs.json'; diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx index 2e2ebf2140163..941dcbeec4988 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared'] --- import esUiSharedObj from './es_ui_shared.devdocs.json'; diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx index 717c8b837a7ee..b659e7ed3af95 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2023-10-09 +date: 2023-10-10 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 c5bce3a015c8e..b0e3f65e75171 100644 --- a/api_docs/event_annotation_listing.mdx +++ b/api_docs/event_annotation_listing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotationListing title: "eventAnnotationListing" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotationListing plugin -date: 2023-10-09 +date: 2023-10-10 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 66346f7f74765..0e9ccb27018ea 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2023-10-09 +date: 2023-10-10 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 cf1a3c8ca4bc9..27127e4057cc0 100644 --- a/api_docs/exploratory_view.mdx +++ b/api_docs/exploratory_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView title: "exploratoryView" image: https://source.unsplash.com/400x175/?github description: API docs for the exploratoryView plugin -date: 2023-10-09 +date: 2023-10-10 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 04bea7d954e3b..e4911efcebf9a 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2023-10-09 +date: 2023-10-10 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 630006ee425e1..c141ff148ea2a 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2023-10-09 +date: 2023-10-10 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 4e160af5a7b9c..7351132b7587c 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2023-10-09 +date: 2023-10-10 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 6330e373386bc..98f25fe2f84bc 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2023-10-09 +date: 2023-10-10 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 e54e00ca631cd..a957e25d53bd5 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2023-10-09 +date: 2023-10-10 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 ea5b2c06b6649..3a837ba4e31d9 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2023-10-09 +date: 2023-10-10 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 31c479c9ce705..ced56476f4604 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2023-10-09 +date: 2023-10-10 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 328767f5afdfa..65cc7aeaccabd 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2023-10-09 +date: 2023-10-10 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 61d25302be8c1..c3f5fe6e4fd9c 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2023-10-09 +date: 2023-10-10 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 0b155dff68c26..36234d3febf63 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2023-10-09 +date: 2023-10-10 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 df016b066283c..0c3eae88a788e 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2023-10-09 +date: 2023-10-10 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 7cdeb07bcb187..f4ee8be2d316a 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2023-10-09 +date: 2023-10-10 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 479b21879588d..97121d77b3555 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2023-10-09 +date: 2023-10-10 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 25b38ae1f3491..8a97a38402c7e 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2023-10-09 +date: 2023-10-10 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 e3cb5ff6f89b3..4c79f34dd6096 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2023-10-09 +date: 2023-10-10 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 8c7fae9279f32..e5d6cd92a2500 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] --- import fieldFormatsObj from './field_formats.devdocs.json'; diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index e211713f4cd24..9252224b50037 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2023-10-09 +date: 2023-10-10 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 7e0e35d8e95ec..390c7c320300f 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2023-10-09 +date: 2023-10-10 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 39269190687f8..5f0081d0571b9 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2023-10-09 +date: 2023-10-10 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 da20aede9e362..c997d40e87f88 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2023-10-09 +date: 2023-10-10 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 d36755f99dd7a..6d5a3baa6262e 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2023-10-09 +date: 2023-10-10 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 0c58aefd3bf9a..5a00b697cd737 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2023-10-09 +date: 2023-10-10 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 0c02c00ffea55..b4683ed39afbc 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2023-10-09 +date: 2023-10-10 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 1f17201f62953..71d2872b20114 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2023-10-09 +date: 2023-10-10 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 11afb5795808e..49b7f00ae67c0 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2023-10-09 +date: 2023-10-10 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 4895edf0d14ee..459398c67e315 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index 2471b46b4b153..8714e944652a4 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra'] --- import infraObj from './infra.devdocs.json'; diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx index 556e7fe63c0f3..c17c85508a8ff 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] --- import inspectorObj from './inspector.devdocs.json'; diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index 02a6ee93232db..1e5acdf9c1730 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] --- import interactiveSetupObj from './interactive_setup.devdocs.json'; diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index 3939038cf2e2c..1fe10b7a49620 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace'] --- import kbnAceObj from './kbn_ace.devdocs.json'; diff --git a/api_docs/kbn_aiops_components.mdx b/api_docs/kbn_aiops_components.mdx index 016800d932d64..8455395e170e9 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components'] --- import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json'; diff --git a/api_docs/kbn_aiops_utils.mdx b/api_docs/kbn_aiops_utils.mdx index f9cb7ec6fdea8..05c60f7b6fc14 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerting_api_integration_helpers.mdx b/api_docs/kbn_alerting_api_integration_helpers.mdx index d34bb67dd8094..18f11ec8d7b35 100644 --- a/api_docs/kbn_alerting_api_integration_helpers.mdx +++ b/api_docs/kbn_alerting_api_integration_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-api-integration-helpers title: "@kbn/alerting-api-integration-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-api-integration-helpers plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-api-integration-helpers'] --- import kbnAlertingApiIntegrationHelpersObj from './kbn_alerting_api_integration_helpers.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index ab6b398d20bd0..3a6601bcb6802 100644 --- a/api_docs/kbn_alerting_state_types.mdx +++ b/api_docs/kbn_alerting_state_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types title: "@kbn/alerting-state-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-state-types plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types'] --- import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json'; diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index bde805943cc84..c6356194ddf9c 100644 --- a/api_docs/kbn_alerts_as_data_utils.mdx +++ b/api_docs/kbn_alerts_as_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils title: "@kbn/alerts-as-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-as-data-utils plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index 9b5e15f6921db..1f5c41755163e 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2023-10-09 +date: 2023-10-10 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 cb6e7cd310bfd..810453b2bb0f4 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx index 9510f2ef51249..27ecb9398db33 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client'] --- import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx index 35cf1edb13506..94f41a9e46009 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-browser'] --- import kbnAnalyticsShippersElasticV3BrowserObj from './kbn_analytics_shippers_elastic_v3_browser.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx index 6f74f8fa0bcf3..ed88b43a969ba 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-common'] --- import kbnAnalyticsShippersElasticV3CommonObj from './kbn_analytics_shippers_elastic_v3_common.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx index af4f78e65cc45..c9a127f9139ae 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-server'] --- import kbnAnalyticsShippersElasticV3ServerObj from './kbn_analytics_shippers_elastic_v3_server.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_fullstory.mdx b/api_docs/kbn_analytics_shippers_fullstory.mdx index 061fb525d75b0..eee7dd1ee4183 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_gainsight.mdx b/api_docs/kbn_analytics_shippers_gainsight.mdx index 860ea020266f8..f944204b55bd8 100644 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ b/api_docs/kbn_analytics_shippers_gainsight.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight title: "@kbn/analytics-shippers-gainsight" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-gainsight'] --- import kbnAnalyticsShippersGainsightObj from './kbn_analytics_shippers_gainsight.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index 518ea786c0b02..d9cc24b696262 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader'] --- import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index acff1cf63145e..d8ea790e1e0d2 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2023-10-09 +date: 2023-10-10 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 78fc5486f6b00..ee976b6223e99 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index e748cad3ba109..117a7e847b407 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] --- import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json'; diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx index 158822870265d..9516b26f81b3d 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] --- import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx index 5ab918f1bbbbc..fe1cc6af6f460 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index f86e8efc71dfd..e0323ce1bb284 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2023-10-09 +date: 2023-10-10 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 3f2ccf7b3d9ca..5b61ccfff0975 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2023-10-09 +date: 2023-10-10 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 8c6aa4ae1b06e..4fc5e3b362b34 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2023-10-09 +date: 2023-10-10 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 7059b219d2d28..0d731bc624246 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2023-10-09 +date: 2023-10-10 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 1402d5a0f6327..7b7f92b9bd8b4 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2023-10-09 +date: 2023-10-10 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 376fcb70f9bf0..04a6613d2226b 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2023-10-09 +date: 2023-10-10 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 1abfa95b60be8..a3334ce699b76 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index b493eb29192af..1291300e17f2d 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mocks.mdx b/api_docs/kbn_code_editor_mocks.mdx index 0f17e6e05ed34..e07369e9056b2 100644 --- a/api_docs/kbn_code_editor_mocks.mdx +++ b/api_docs/kbn_code_editor_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mocks title: "@kbn/code-editor-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mocks plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mocks'] --- import kbnCodeEditorMocksObj from './kbn_code_editor_mocks.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index dc70e369deddc..a72f6bed45bb6 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2023-10-09 +date: 2023-10-10 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 2dec5cb9f3e41..ad432c3529f92 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2023-10-09 +date: 2023-10-10 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 52122628ef0d8..e44fca49fac9e 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 fb0406861223d..4812f2c8002e9 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2023-10-09 +date: 2023-10-10 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 d45f61ad04be4..9c2fd553d09a5 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_tabbed_table_list_view.mdx b/api_docs/kbn_content_management_tabbed_table_list_view.mdx index 48e5e279a315f..db05939e16884 100644 --- a/api_docs/kbn_content_management_tabbed_table_list_view.mdx +++ b/api_docs/kbn_content_management_tabbed_table_list_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-tabbed-table-list-view title: "@kbn/content-management-tabbed-table-list-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-tabbed-table-list-view plugin -date: 2023-10-09 +date: 2023-10-10 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 96e1792cf6b95..a52b7cb9cdb0b 100644 --- a/api_docs/kbn_content_management_table_list_view.mdx +++ b/api_docs/kbn_content_management_table_list_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view title: "@kbn/content-management-table-list-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view'] --- import kbnContentManagementTableListViewObj from './kbn_content_management_table_list_view.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view_table.mdx b/api_docs/kbn_content_management_table_list_view_table.mdx index 102f261361fc4..44b6e809c2af9 100644 --- a/api_docs/kbn_content_management_table_list_view_table.mdx +++ b/api_docs/kbn_content_management_table_list_view_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-table title: "@kbn/content-management-table-list-view-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view-table plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-table'] --- import kbnContentManagementTableListViewTableObj from './kbn_content_management_table_list_view_table.devdocs.json'; diff --git a/api_docs/kbn_content_management_utils.mdx b/api_docs/kbn_content_management_utils.mdx index e457fede677a9..fb73bb638f8ba 100644 --- a/api_docs/kbn_content_management_utils.mdx +++ b/api_docs/kbn_content_management_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-utils title: "@kbn/content-management-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 0939ea877208d..d5bff3a9d4b5c 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 fd183b26b0603..0c01ce91320f3 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 cca73aad52b37..41d32e54e9b15 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 4b0904e998c88..228b1ad6a559b 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2023-10-09 +date: 2023-10-10 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 89d6836e10a44..bee05f9a24175 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 7f83ad0e5f50a..a2fc59e3091ef 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 f6c51bb427982..931c8647298bb 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 8cae0edebec0e..9f68e4be557cb 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 644b295d98342..748474780a59a 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 12240ec2cf933..b842ebe3a3c97 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2023-10-09 +date: 2023-10-10 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 ced33c8f5a225..47c9ec1ed5e6c 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 d84628bcb95f8..d75ecdc68fc68 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 606efb59fdef6..423152eb8832b 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 c3c40ace1f56d..670d72e65fa27 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 d1f1cda614ba8..f2c421bcdac70 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2023-10-09 +date: 2023-10-10 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 98f3788c45e97..b22c572293d0c 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 a5018372182db..a0a3dad08f59b 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 b524d0f9f5de4..d3f42a9fc150e 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 13d9c0744228e..1f95e15833021 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2023-10-09 +date: 2023-10-10 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 fa29616ce9826..61189949f0f19 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2023-10-09 +date: 2023-10-10 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 c48d932f6566a..4b018b367a4a7 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 4f484d327671c..9f70f4e0042d9 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 12fe6f13aeb7f..198295833efcf 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 50af1668b2d22..bca9dcabd60d4 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 04f521fdd6c8a..50f2694e0d58c 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 a1105a2643ec7..92f51bfb2aef7 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 7e34c711e4fa0..1aa5a190a0dfb 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 9220bd41453e8..e36be8dececf6 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2023-10-09 +date: 2023-10-10 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 6f371626ced78..edc1489cd08ad 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2023-10-09 +date: 2023-10-10 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 f81156a329e33..2c91afd18d9e2 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 b1e14165bf870..f73eebb138fdc 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 0c7c21cd0bc99..f354465d0340c 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 754fa47857cc3..7b1df2f51c67d 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 0e91f444fc6c0..4afef334eb7a8 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 f2914d242d225..748805199024d 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2023-10-09 +date: 2023-10-10 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 8b7a571517fa6..a41d71ab3fa39 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2023-10-09 +date: 2023-10-10 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 fddbb4f92b35b..cb745e169956f 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 599819309b44d..11dfea6e98e57 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 b196a8dd9dc0f..0e7661301035c 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 92f127e78e023..63990cb431f71 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 e9a4e406da344..a1e8cac5c12b8 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2023-10-09 +date: 2023-10-10 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 6249ec35575fa..51f351a2a615e 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 f5648b5130b21..9daacb9d8534f 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 27e1a7f806a86..d8e99211d915f 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 8197dc41216ad..f5aae01534178 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2023-10-09 +date: 2023-10-10 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 6c1a47cc894cb..d7aad2a1d367c 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 33c2efbcbcb8d..0cf29af806ca9 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 b8b671d721b09..dcc723b7f612b 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 4b32d5117b989..992d41a0ba37c 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 be1a917c24c54..e12cc313801bf 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 e3d3d317ff3ae..d15318412be54 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 9d4df4a3267c3..395df8c9bdf00 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 acf78ef72e1c7..b9505b6a05d7c 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2023-10-09 +date: 2023-10-10 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 91125fe3af2cf..6e6d033b73435 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2023-10-09 +date: 2023-10-10 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 49cb1aee73a02..8de2d81d58d61 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 8a7b80b3c554e..0f6c8c6ab5059 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 d0771327aa11e..1bb011a48d778 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 5ac91d5931fe6..924e680d36fcb 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser-mocks'] --- import kbnCoreFatalErrorsBrowserMocksObj from './kbn_core_fatal_errors_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser.mdx b/api_docs/kbn_core_http_browser.mdx index bf178f0a96033..019aec2cc449e 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 21be25901d0de..45bc319190e84 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 ed210d8d7836f..9c1a6dff22279 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 3eb5895742b10..917335c7d853f 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2023-10-09 +date: 2023-10-10 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 d39752859ca1f..72e46b3fa6c49 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 d2cb4f9cf4b9d..3de0782355a50 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2023-10-09 +date: 2023-10-10 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 9370c3f0de75f..83a3c4b62c36a 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2023-10-09 +date: 2023-10-10 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 b963acff6c406..e44736855a5b6 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 36d625782ad6d..532d7dfe84cbf 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 c9490824a2f50..44eb99a730451 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 1992f50c7bc3f..81c745f94662a 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 cb64eeb94cf19..f470a81d5cc9b 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2023-10-09 +date: 2023-10-10 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 ded62fadb6dc3..a397503caa912 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 68174eb5ad91a..69ec570cf9e60 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 60f4cf29eec2f..88f71091a30ab 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 e3011553ee440..86f01881ea757 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 77167c9fa4aad..61edbb79acdd3 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2023-10-09 +date: 2023-10-10 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 f49c47fa5d9a9..9e3bc00401b7a 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 9d048857b621a..648d8160195c5 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 3c03c14bdf783..d8a3a3f26e9d8 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 50c6cb8e5356b..0eb846596fa19 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 71f07a99d060b..1a2430e63190b 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 a200bb18b2b4c..7cfdf857ed75b 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 03a8f6b39fb94..8957f089dcd70 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 868ba1300ba2f..6a94a9d083c8f 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2023-10-09 +date: 2023-10-10 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 6774738ab758a..816e364cebb22 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 b50b7707896a1..fec8d3a2c2f7e 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 f53b3232b454e..abebc529a3178 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 e6f630dae0d1b..06b0337ff5835 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2023-10-09 +date: 2023-10-10 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 265c86399103e..cc3cca546bb87 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 05f342180aa64..1e2e5496e7b41 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 84681af106d51..e3ff798084d58 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 3d7d7f667d192..ed2857f6eebf9 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 491207984d45f..1aa32fbf46528 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2023-10-09 +date: 2023-10-10 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 cdef01b11cf45..193917b8cf6d9 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 4aa20a5176de8..c4324c1275b9c 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 2966052e3f1d7..2794a065569f7 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 e3a14494c69db..9db89cdf7d510 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2023-10-09 +date: 2023-10-10 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 4297d4f24eb98..096e981374468 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 7386d59f08ad3..fe88c4e8793f6 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 07d21f1a7afd8..be214c36f581a 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 8db0388105828..366a62940ce1b 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 6bb95d69e08b7..34c3642b4dce4 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 ad89559443fb9..ad3bcdf7d519f 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 383e015d005d5..4951b344b9af5 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 f978509849f4c..c1ae0bbbbbe85 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 c50f07e32f801..8d347ecb1855e 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 15cc564b0abd0..2e43943d2a948 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks'] --- import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx index 9ecb65e5da7d9..82fd9b946ec91 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2023-10-09 +date: 2023-10-10 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 73f8f9a0a85bf..42a9df1322bd5 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 b2b90db0ba6c5..5e0d158bfbd3e 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2023-10-09 +date: 2023-10-10 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 b5f1ce38d5afe..3373f598c019f 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 5dbcf89bc8b0f..5b4693b16ef7a 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 aacfa53d002b4..a151414999632 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 b6348ade8be4c..ef7744dfe39f0 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 fc3d4597cae46..06a024980c76c 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 57d74dae4554b..3c8c1af5cf15c 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 abea439c955bd..504b9086f5d0e 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2023-10-09 +date: 2023-10-10 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 6a9c708fe8829..3b6c84a45ec6d 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 f415465cef418..10b643fd8e877 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 c4b03edc58466..3cea8abed38b9 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 2f19345e36e34..c1a5830e09a8f 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 a7e0917e3bdec..0007eceb3b935 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 17d758a816bf4..5f3a10bca9fb6 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 4b37f9e1ba3aa..8716f6baabc42 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2023-10-09 +date: 2023-10-10 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 bd87eff6c70c5..c740c937ff364 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 6de54ed09d53b..06e08b0ca551c 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 18a07871c5f46..af1a38018a949 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 0b532ce56bcb1..c0d3c818f9080 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 c220609c9a31c..af808a7e95900 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2023-10-09 +date: 2023-10-10 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 51670b9ba0bba..13e7b2cc5ed11 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 9c18c8bd3c764..35a4fa2a926d5 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 21460039da340..86bae8de72109 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server'] --- import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx index c747360d242a3..42d970780affd 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2023-10-09 +date: 2023-10-10 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 1baedaac4ad12..029e2785b4a8b 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 94754fe1df5fe..7adf32349b0ab 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2023-10-09 +date: 2023-10-10 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 d2c372979e7a2..f3dbbabf2a51d 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 835d134d07814..5a7bee5d3f191 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 ef8290dab91d3..4394d7f7835e5 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2023-10-09 +date: 2023-10-10 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 fbbfe88195abe..9fe341ba1bd7c 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 601757d0b0477..9ca62a894eeff 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2023-10-09 +date: 2023-10-10 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 456f9668e0847..92d1f2990bb06 100644 --- a/api_docs/kbn_core_test_helpers_model_versions.mdx +++ b/api_docs/kbn_core_test_helpers_model_versions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-model-versions title: "@kbn/core-test-helpers-model-versions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-model-versions plugin -date: 2023-10-09 +date: 2023-10-10 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 b316eefb27383..e30fe43102373 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2023-10-09 +date: 2023-10-10 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 3b92aec84c285..70e6178deb667 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 275c6a635920c..11539bd28864c 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 ec55f42ab10c8..3ab591fee7b79 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 f38a001c6f693..3905e6e0d5995 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 50294280f663c..9ce6ed45380d0 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 8e3c701abf439..5e21be3668f36 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 db155e5f4ad8e..8ccc9f7c07691 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2023-10-09 +date: 2023-10-10 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 1ae7b089e6c04..a6b9c752d7a4c 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2023-10-09 +date: 2023-10-10 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 c3a5e67d68b67..1caf50c880d1f 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 dafcab477baff..67dc890540324 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 d84b2958b8f5d..31491c2a156e7 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2023-10-09 +date: 2023-10-10 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 d9c1195bb0fb3..f6a0a1b968e41 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 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 50c05d20b1d27..323395faa52e3 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks'] --- import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server.mdx b/api_docs/kbn_core_user_settings_server.mdx index be0cce7bb9bff..d11caabfb59de 100644 --- a/api_docs/kbn_core_user_settings_server.mdx +++ b/api_docs/kbn_core_user_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server title: "@kbn/core-user-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server'] --- import kbnCoreUserSettingsServerObj from './kbn_core_user_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_internal.mdx b/api_docs/kbn_core_user_settings_server_internal.mdx index 8f9019993a094..7f22ab400a986 100644 --- a/api_docs/kbn_core_user_settings_server_internal.mdx +++ b/api_docs/kbn_core_user_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-internal title: "@kbn/core-user-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-internal plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-internal'] --- import kbnCoreUserSettingsServerInternalObj from './kbn_core_user_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_mocks.mdx b/api_docs/kbn_core_user_settings_server_mocks.mdx index f07532aff1959..8ba500d9f6c8b 100644 --- a/api_docs/kbn_core_user_settings_server_mocks.mdx +++ b/api_docs/kbn_core_user_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-mocks title: "@kbn/core-user-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 5bcbcd98b37a8..e25790e265266 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2023-10-09 +date: 2023-10-10 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 c784e5dea54a1..d3bd42a1892dd 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_custom_integrations.mdx b/api_docs/kbn_custom_integrations.mdx index cebc8e0d4d62d..aa6d764f341b1 100644 --- a/api_docs/kbn_custom_integrations.mdx +++ b/api_docs/kbn_custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-integrations title: "@kbn/custom-integrations" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/custom-integrations plugin -date: 2023-10-09 +date: 2023-10-10 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 b01024e81ef80..f297df38a9131 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_data_service.mdx b/api_docs/kbn_data_service.mdx index 5c66fdb6016e4..6b7b584b6e4b1 100644 --- a/api_docs/kbn_data_service.mdx +++ b/api_docs/kbn_data_service.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-service title: "@kbn/data-service" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-service plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-service'] --- import kbnDataServiceObj from './kbn_data_service.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 11d3174ec1704..27d960ae0b778 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2023-10-09 +date: 2023-10-10 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 9bafe3639d947..35d9bb88d5215 100644 --- a/api_docs/kbn_deeplinks_analytics.mdx +++ b/api_docs/kbn_deeplinks_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-analytics title: "@kbn/deeplinks-analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-analytics plugin -date: 2023-10-09 +date: 2023-10-10 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 849643b578cb0..9efb3f33f25a7 100644 --- a/api_docs/kbn_deeplinks_devtools.mdx +++ b/api_docs/kbn_deeplinks_devtools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-devtools title: "@kbn/deeplinks-devtools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-devtools plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-devtools'] --- import kbnDeeplinksDevtoolsObj from './kbn_deeplinks_devtools.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_management.mdx b/api_docs/kbn_deeplinks_management.mdx index c6ab8f022da31..fe92b0ce68503 100644 --- a/api_docs/kbn_deeplinks_management.mdx +++ b/api_docs/kbn_deeplinks_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-management title: "@kbn/deeplinks-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-management plugin -date: 2023-10-09 +date: 2023-10-10 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 dd2f52bc5c7a5..62b14f274b2a0 100644 --- a/api_docs/kbn_deeplinks_ml.mdx +++ b/api_docs/kbn_deeplinks_ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-ml title: "@kbn/deeplinks-ml" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-ml plugin -date: 2023-10-09 +date: 2023-10-10 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 890a7326dd684..d1cd1faa3d820 100644 --- a/api_docs/kbn_deeplinks_observability.mdx +++ b/api_docs/kbn_deeplinks_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-observability title: "@kbn/deeplinks-observability" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-observability plugin -date: 2023-10-09 +date: 2023-10-10 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 af8bbb1bd91ac..78584b9d0e321 100644 --- a/api_docs/kbn_deeplinks_search.mdx +++ b/api_docs/kbn_deeplinks_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-search title: "@kbn/deeplinks-search" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-search plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-search'] --- import kbnDeeplinksSearchObj from './kbn_deeplinks_search.devdocs.json'; diff --git a/api_docs/kbn_default_nav_analytics.mdx b/api_docs/kbn_default_nav_analytics.mdx index 7c3f9c3332535..5ebd2a20d012d 100644 --- a/api_docs/kbn_default_nav_analytics.mdx +++ b/api_docs/kbn_default_nav_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-analytics title: "@kbn/default-nav-analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-analytics plugin -date: 2023-10-09 +date: 2023-10-10 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 43ca5996bbf37..453354b8a218c 100644 --- a/api_docs/kbn_default_nav_devtools.mdx +++ b/api_docs/kbn_default_nav_devtools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-devtools title: "@kbn/default-nav-devtools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-devtools plugin -date: 2023-10-09 +date: 2023-10-10 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 78d221896d0d0..7324d6791c4e0 100644 --- a/api_docs/kbn_default_nav_management.mdx +++ b/api_docs/kbn_default_nav_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-management title: "@kbn/default-nav-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-management plugin -date: 2023-10-09 +date: 2023-10-10 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 ae8bc101d6d6e..01300c19bf0d2 100644 --- a/api_docs/kbn_default_nav_ml.mdx +++ b/api_docs/kbn_default_nav_ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-ml title: "@kbn/default-nav-ml" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-ml plugin -date: 2023-10-09 +date: 2023-10-10 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 373d23ed1b8fa..d73ba9653f6e2 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2023-10-09 +date: 2023-10-10 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 b03b11b5a9b50..2ccc70d36450b 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2023-10-09 +date: 2023-10-10 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 f23005bf941bb..8995b827abd43 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2023-10-09 +date: 2023-10-10 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 f4f8b8ab520b9..12f21cee685b6 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 a056a5765de9e..8b8178d7d3978 100644 --- a/api_docs/kbn_discover_utils.mdx +++ b/api_docs/kbn_discover_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-discover-utils title: "@kbn/discover-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/discover-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 7d6f4a4c1e25f..847a0acbd877c 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2023-10-09 +date: 2023-10-10 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 363fa8cb9ad32..59bd4c2186f11 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 4df7429fe37f9..ded05f3974a45 100644 --- a/api_docs/kbn_dom_drag_drop.mdx +++ b/api_docs/kbn_dom_drag_drop.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop title: "@kbn/dom-drag-drop" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dom-drag-drop plugin -date: 2023-10-09 +date: 2023-10-10 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 d9cc5c0e18156..3818105a4f692 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx index f3fb73aae9ddf..98a8e274af491 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index f31855b47b97b..1e2b5799de8b2 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2023-10-09 +date: 2023-10-10 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_assistant.mdx b/api_docs/kbn_elastic_assistant.mdx index 1a53bcc80be3f..d4916441608f4 100644 --- a/api_docs/kbn_elastic_assistant.mdx +++ b/api_docs/kbn_elastic_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant title: "@kbn/elastic-assistant" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-assistant plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant'] --- import kbnElasticAssistantObj from './kbn_elastic_assistant.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index 1443ff06b4d64..f5e4da89f87a7 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2023-10-09 +date: 2023-10-10 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 b99437dfffa49..02c0086b70da3 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2023-10-09 +date: 2023-10-10 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 58a0f77504777..99c9fe49fbe51 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2023-10-09 +date: 2023-10-10 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 1863c5ccb128e..2757ce5f0c260 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2023-10-09 +date: 2023-10-10 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 7bc2affb791bb..c87bbd2701486 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2023-10-09 +date: 2023-10-10 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 ab2aec8cded44..bffe5a37b2d92 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx index f19739c59b44b..dc2f2a0041402 100644 --- a/api_docs/kbn_event_annotation_common.mdx +++ b/api_docs/kbn_event_annotation_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-common title: "@kbn/event-annotation-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/event-annotation-common plugin -date: 2023-10-09 +date: 2023-10-10 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 4cf7b04da3519..edfe54752a91d 100644 --- a/api_docs/kbn_event_annotation_components.mdx +++ b/api_docs/kbn_event_annotation_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-components title: "@kbn/event-annotation-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/event-annotation-components plugin -date: 2023-10-09 +date: 2023-10-10 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 c0b3c9337b9dd..b01bf390fa821 100644 --- a/api_docs/kbn_expandable_flyout.mdx +++ b/api_docs/kbn_expandable_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout title: "@kbn/expandable-flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/expandable-flyout plugin -date: 2023-10-09 +date: 2023-10-10 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 519ee42ad7263..96e59aea847e7 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2023-10-09 +date: 2023-10-10 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 1c421d4b87fa4..259674aa11a13 100644 --- a/api_docs/kbn_field_utils.mdx +++ b/api_docs/kbn_field_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-utils title: "@kbn/field-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 8b69ad0b72a99..b8bcf186adb6f 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules'] --- import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx index b2f79a3249a4f..621cc67093eb1 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services'] --- import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json'; diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx index 1891f1787c6d0..9ed9c4e216c03 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2023-10-09 +date: 2023-10-10 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 c6780f3df6c6a..c0bab9d45c3c2 100644 --- a/api_docs/kbn_generate_console_definitions.mdx +++ b/api_docs/kbn_generate_console_definitions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-console-definitions title: "@kbn/generate-console-definitions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-console-definitions plugin -date: 2023-10-09 +date: 2023-10-10 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 60e0a6be853a0..442b2a32d21b9 100644 --- a/api_docs/kbn_generate_csv.mdx +++ b/api_docs/kbn_generate_csv.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv title: "@kbn/generate-csv" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-csv plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv'] --- import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json'; diff --git a/api_docs/kbn_generate_csv_types.mdx b/api_docs/kbn_generate_csv_types.mdx index 01c2adecadc92..1333ca192a77d 100644 --- a/api_docs/kbn_generate_csv_types.mdx +++ b/api_docs/kbn_generate_csv_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv-types title: "@kbn/generate-csv-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-csv-types plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv-types'] --- import kbnGenerateCsvTypesObj from './kbn_generate_csv_types.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index 76c342e2a6582..df472cd38dbed 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2023-10-09 +date: 2023-10-10 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 130de5d1a79d4..4dae7dfab2b0d 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2023-10-09 +date: 2023-10-10 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 df80e92ccaba7..22245f9e4cdbc 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 6393a4047b119..2e4f55f47c15a 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2023-10-09 +date: 2023-10-10 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 c0ccb976e19ee..6fb817bfb25b1 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2023-10-09 +date: 2023-10-10 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 e855fb1cbb39d..4d6b9411636ed 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2023-10-09 +date: 2023-10-10 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 c6260d278bcf4..994150971d47c 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2023-10-09 +date: 2023-10-10 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 9b08fb904b1bf..acbec8154a52c 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2023-10-09 +date: 2023-10-10 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 6ab35ec77f6b0..d164dab153d36 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver'] --- import kbnImportResolverObj from './kbn_import_resolver.devdocs.json'; diff --git a/api_docs/kbn_infra_forge.mdx b/api_docs/kbn_infra_forge.mdx index d11dcc859347f..a6744d627a928 100644 --- a/api_docs/kbn_infra_forge.mdx +++ b/api_docs/kbn_infra_forge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-infra-forge title: "@kbn/infra-forge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/infra-forge plugin -date: 2023-10-09 +date: 2023-10-10 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 9317d767c8994..338de441bb19f 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index 538e8375c3ad8..c1c4fb07638bb 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index 8737b8cdf4816..31f62a7add023 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2023-10-09 +date: 2023-10-10 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 047fd948a4bdc..a2f7a084612c5 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2023-10-09 +date: 2023-10-10 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 ae6a009209d3e..aa3861ff30049 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 41597f2aa01bb..5b4a0bf2aea0d 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_language_documentation_popover.mdx b/api_docs/kbn_language_documentation_popover.mdx index 2623f0562108b..a15ea207236f8 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover'] --- import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json'; diff --git a/api_docs/kbn_lens_embeddable_utils.mdx b/api_docs/kbn_lens_embeddable_utils.mdx index 931eeaf882ca2..1fbe5415da4a7 100644 --- a/api_docs/kbn_lens_embeddable_utils.mdx +++ b/api_docs/kbn_lens_embeddable_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-embeddable-utils title: "@kbn/lens-embeddable-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/lens-embeddable-utils plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-embeddable-utils'] --- import kbnLensEmbeddableUtilsObj from './kbn_lens_embeddable_utils.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index 83328c9b6065e..ac1dd8b10e27b 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2023-10-09 +date: 2023-10-10 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 b7c2e2e237e84..359aecb981f46 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks'] --- import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json'; diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx index 1137e7d5f34dc..3a83d09f62b80 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2023-10-09 +date: 2023-10-10 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 30e83a9bf05fe..5c8cfee3cfefa 100644 --- a/api_docs/kbn_management_cards_navigation.mdx +++ b/api_docs/kbn_management_cards_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-cards-navigation title: "@kbn/management-cards-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-cards-navigation plugin -date: 2023-10-09 +date: 2023-10-10 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 e5a11245b23e7..b1d13be2b5280 100644 --- a/api_docs/kbn_management_settings_application.mdx +++ b/api_docs/kbn_management_settings_application.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-application title: "@kbn/management-settings-application" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-application plugin -date: 2023-10-09 +date: 2023-10-10 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 66860dfda34b0..39f020577e8a3 100644 --- a/api_docs/kbn_management_settings_components_field_category.mdx +++ b/api_docs/kbn_management_settings_components_field_category.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-category title: "@kbn/management-settings-components-field-category" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-category plugin -date: 2023-10-09 +date: 2023-10-10 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 b4894b1dec582..2ce7de0cb5edf 100644 --- a/api_docs/kbn_management_settings_components_field_input.mdx +++ b/api_docs/kbn_management_settings_components_field_input.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-input title: "@kbn/management-settings-components-field-input" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-input plugin -date: 2023-10-09 +date: 2023-10-10 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 a18f2931246a0..570a126e4df64 100644 --- a/api_docs/kbn_management_settings_components_field_row.mdx +++ b/api_docs/kbn_management_settings_components_field_row.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-row title: "@kbn/management-settings-components-field-row" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-row plugin -date: 2023-10-09 +date: 2023-10-10 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 69b9c90a4931b..faf868c5d46c8 100644 --- a/api_docs/kbn_management_settings_components_form.mdx +++ b/api_docs/kbn_management_settings_components_form.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-form title: "@kbn/management-settings-components-form" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-form plugin -date: 2023-10-09 +date: 2023-10-10 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 ef613c6e58db8..c4f3256bb72c4 100644 --- a/api_docs/kbn_management_settings_field_definition.mdx +++ b/api_docs/kbn_management_settings_field_definition.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-field-definition title: "@kbn/management-settings-field-definition" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-field-definition plugin -date: 2023-10-09 +date: 2023-10-10 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 8ed14e1ccc961..bf3b629685153 100644 --- a/api_docs/kbn_management_settings_ids.mdx +++ b/api_docs/kbn_management_settings_ids.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-ids title: "@kbn/management-settings-ids" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-ids plugin -date: 2023-10-09 +date: 2023-10-10 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 017fa08649885..8d68307070807 100644 --- a/api_docs/kbn_management_settings_section_registry.mdx +++ b/api_docs/kbn_management_settings_section_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-section-registry title: "@kbn/management-settings-section-registry" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-section-registry plugin -date: 2023-10-09 +date: 2023-10-10 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 6e3983e14c9e8..173cc6fc61810 100644 --- a/api_docs/kbn_management_settings_types.mdx +++ b/api_docs/kbn_management_settings_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-types title: "@kbn/management-settings-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-types plugin -date: 2023-10-09 +date: 2023-10-10 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 ad844b939b6d4..d3040ad2e2502 100644 --- a/api_docs/kbn_management_settings_utilities.mdx +++ b/api_docs/kbn_management_settings_utilities.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-utilities title: "@kbn/management-settings-utilities" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-utilities plugin -date: 2023-10-09 +date: 2023-10-10 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 69e96ad208831..ca93cab6df7ee 100644 --- a/api_docs/kbn_management_storybook_config.mdx +++ b/api_docs/kbn_management_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-storybook-config title: "@kbn/management-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-storybook-config plugin -date: 2023-10-09 +date: 2023-10-10 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 565203c28c02a..e9bbaf3da3d7c 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2023-10-09 +date: 2023-10-10 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 6aadbc6873b65..c47b9da3f55c8 100644 --- a/api_docs/kbn_maps_vector_tile_utils.mdx +++ b/api_docs/kbn_maps_vector_tile_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-maps-vector-tile-utils title: "@kbn/maps-vector-tile-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/maps-vector-tile-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 3dc59fa7be98f..bcb4a5fde44e8 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 6589c6c9dc20d..a66f73fd919de 100644 --- a/api_docs/kbn_ml_anomaly_utils.mdx +++ b/api_docs/kbn_ml_anomaly_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-anomaly-utils title: "@kbn/ml-anomaly-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-anomaly-utils plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-anomaly-utils'] --- import kbnMlAnomalyUtilsObj from './kbn_ml_anomaly_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_category_validator.mdx b/api_docs/kbn_ml_category_validator.mdx index ea0f0d92146e3..ec3adb7a3a56d 100644 --- a/api_docs/kbn_ml_category_validator.mdx +++ b/api_docs/kbn_ml_category_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-category-validator title: "@kbn/ml-category-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-category-validator plugin -date: 2023-10-09 +date: 2023-10-10 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 af6a2af642cc2..9030fc77a4e88 100644 --- a/api_docs/kbn_ml_chi2test.mdx +++ b/api_docs/kbn_ml_chi2test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-chi2test title: "@kbn/ml-chi2test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-chi2test plugin -date: 2023-10-09 +date: 2023-10-10 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 ab6238c2ee96d..e63b1ea9c51a1 100644 --- a/api_docs/kbn_ml_data_frame_analytics_utils.mdx +++ b/api_docs/kbn_ml_data_frame_analytics_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-frame-analytics-utils title: "@kbn/ml-data-frame-analytics-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-data-frame-analytics-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 765b0ae3d6e68..38e41e077a4a9 100644 --- a/api_docs/kbn_ml_data_grid.mdx +++ b/api_docs/kbn_ml_data_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-grid title: "@kbn/ml-data-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-data-grid plugin -date: 2023-10-09 +date: 2023-10-10 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 8a2a261092d2f..ac419f4ef227b 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2023-10-09 +date: 2023-10-10 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 ba54bfd42e1bb..e756334550507 100644 --- a/api_docs/kbn_ml_date_utils.mdx +++ b/api_docs/kbn_ml_date_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-utils title: "@kbn/ml-date-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 7ce2279c68e2d..0bd7259b51501 100644 --- a/api_docs/kbn_ml_error_utils.mdx +++ b/api_docs/kbn_ml_error_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-error-utils title: "@kbn/ml-error-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-error-utils plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-error-utils'] --- import kbnMlErrorUtilsObj from './kbn_ml_error_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_in_memory_table.mdx b/api_docs/kbn_ml_in_memory_table.mdx index 8f5ec7665fb8d..0212cb2f3dda7 100644 --- a/api_docs/kbn_ml_in_memory_table.mdx +++ b/api_docs/kbn_ml_in_memory_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-in-memory-table title: "@kbn/ml-in-memory-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-in-memory-table plugin -date: 2023-10-09 +date: 2023-10-10 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 3081637f6ca15..c59b8d002aa29 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2023-10-09 +date: 2023-10-10 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 12f98b22b7b5e..8d65e4ebc1271 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2023-10-09 +date: 2023-10-10 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 990a493055889..423710e57d358 100644 --- a/api_docs/kbn_ml_kibana_theme.mdx +++ b/api_docs/kbn_ml_kibana_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-kibana-theme title: "@kbn/ml-kibana-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-kibana-theme plugin -date: 2023-10-09 +date: 2023-10-10 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 07bba2cbdbed2..27319b6ffd6c7 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2023-10-09 +date: 2023-10-10 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 5129d26844b7c..b4cb7ed5e631d 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2023-10-09 +date: 2023-10-10 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 a80abda3506bd..e72559de1480c 100644 --- a/api_docs/kbn_ml_number_utils.mdx +++ b/api_docs/kbn_ml_number_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-number-utils title: "@kbn/ml-number-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-number-utils plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-number-utils'] --- import kbnMlNumberUtilsObj from './kbn_ml_number_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index 0e203e72e5359..ad8bd6ef43aa4 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 beea68d92ef74..393bb47f37ceb 100644 --- a/api_docs/kbn_ml_random_sampler_utils.mdx +++ b/api_docs/kbn_ml_random_sampler_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-random-sampler-utils title: "@kbn/ml-random-sampler-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-random-sampler-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 e8acec68fb6b0..4a6fffc2a1538 100644 --- a/api_docs/kbn_ml_route_utils.mdx +++ b/api_docs/kbn_ml_route_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils title: "@kbn/ml-route-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-route-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 39119cced010d..55f52a709427c 100644 --- a/api_docs/kbn_ml_runtime_field_utils.mdx +++ b/api_docs/kbn_ml_runtime_field_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-runtime-field-utils title: "@kbn/ml-runtime-field-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-runtime-field-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 e08e719bc95a7..39381c839426a 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index acd36314956df..00a957a7ab988 100644 --- a/api_docs/kbn_ml_trained_models_utils.mdx +++ b/api_docs/kbn_ml_trained_models_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils title: "@kbn/ml-trained-models-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-trained-models-utils plugin -date: 2023-10-09 +date: 2023-10-10 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_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index 647f7d82fbafb..7ba312937cd6a 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 623a3b6043245..cd101af934c51 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2023-10-09 +date: 2023-10-10 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 26a5b7633b2cb..cff984afa7ded 100644 --- a/api_docs/kbn_object_versioning.mdx +++ b/api_docs/kbn_object_versioning.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning title: "@kbn/object-versioning" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/object-versioning plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx index 108f48637c91f..114f9b97c1836 100644 --- a/api_docs/kbn_observability_alert_details.mdx +++ b/api_docs/kbn_observability_alert_details.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details title: "@kbn/observability-alert-details" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alert-details plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] --- import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; diff --git a/api_docs/kbn_openapi_generator.mdx b/api_docs/kbn_openapi_generator.mdx index ee0638b03680e..a04a2010f58c5 100644 --- a/api_docs/kbn_openapi_generator.mdx +++ b/api_docs/kbn_openapi_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-generator title: "@kbn/openapi-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/openapi-generator plugin -date: 2023-10-09 +date: 2023-10-10 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 569b9d31031c0..684205c5e663c 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2023-10-09 +date: 2023-10-10 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 eda9e488bf9c0..37b5cb275cb3e 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2023-10-09 +date: 2023-10-10 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 b246c339c7787..389a60b53fee8 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index 71effd3abc1e1..aaee3b44810ba 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor'] --- import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json'; diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx index bd64422a65990..2c319ba2b9a8b 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2023-10-09 +date: 2023-10-10 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 bb8665f8a5caa..6a6268251dbd4 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] --- import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json'; diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx index a20a57fb4f8b1..89f84277ad786 100644 --- a/api_docs/kbn_profiling_utils.mdx +++ b/api_docs/kbn_profiling_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-profiling-utils title: "@kbn/profiling-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/profiling-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 a74ccde53e4f2..cb49c51392bd0 100644 --- a/api_docs/kbn_random_sampling.mdx +++ b/api_docs/kbn_random_sampling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-random-sampling title: "@kbn/random-sampling" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/random-sampling plugin -date: 2023-10-09 +date: 2023-10-10 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 39c5025e8cc8e..198bb773d54e7 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_common.mdx b/api_docs/kbn_react_kibana_context_common.mdx index 3ca9818b46b5c..89117f360aeee 100644 --- a/api_docs/kbn_react_kibana_context_common.mdx +++ b/api_docs/kbn_react_kibana_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-common title: "@kbn/react-kibana-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-common plugin -date: 2023-10-09 +date: 2023-10-10 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 7306820c4ebb0..578d419bcee44 100644 --- a/api_docs/kbn_react_kibana_context_render.mdx +++ b/api_docs/kbn_react_kibana_context_render.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-render title: "@kbn/react-kibana-context-render" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-render plugin -date: 2023-10-09 +date: 2023-10-10 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 34f7ca6c95f07..296f15394abb1 100644 --- a/api_docs/kbn_react_kibana_context_root.mdx +++ b/api_docs/kbn_react_kibana_context_root.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-root title: "@kbn/react-kibana-context-root" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-root plugin -date: 2023-10-09 +date: 2023-10-10 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 c9683065eaea8..ff21caf482d14 100644 --- a/api_docs/kbn_react_kibana_context_styled.mdx +++ b/api_docs/kbn_react_kibana_context_styled.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-styled title: "@kbn/react-kibana-context-styled" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-styled plugin -date: 2023-10-09 +date: 2023-10-10 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 ca646b18b2223..354595b17af6d 100644 --- a/api_docs/kbn_react_kibana_context_theme.mdx +++ b/api_docs/kbn_react_kibana_context_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-theme title: "@kbn/react-kibana-context-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-theme plugin -date: 2023-10-09 +date: 2023-10-10 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 251a33962cef2..9ac412223a6f6 100644 --- a/api_docs/kbn_react_kibana_mount.mdx +++ b/api_docs/kbn_react_kibana_mount.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-mount title: "@kbn/react-kibana-mount" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-mount plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-mount'] --- import kbnReactKibanaMountObj from './kbn_react_kibana_mount.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 1163225b42d5f..63aafd4facc15 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2023-10-09 +date: 2023-10-10 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 2f21b77f7558b..348c28f59c6c4 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2023-10-09 +date: 2023-10-10 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 e57f59d6af8da..33c9ad2a4bc04 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2023-10-09 +date: 2023-10-10 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 77d8d57d05c17..43b7f5e4de977 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2023-10-09 +date: 2023-10-10 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 f9f3b3dccef96..705a38d43b5a1 100644 --- a/api_docs/kbn_reporting_common.mdx +++ b/api_docs/kbn_reporting_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-common title: "@kbn/reporting-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-common plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-common'] --- import kbnReportingCommonObj from './kbn_reporting_common.devdocs.json'; diff --git a/api_docs/kbn_resizable_layout.mdx b/api_docs/kbn_resizable_layout.mdx index ed0ec0e8ca913..d53b791a6812e 100644 --- a/api_docs/kbn_resizable_layout.mdx +++ b/api_docs/kbn_resizable_layout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-resizable-layout title: "@kbn/resizable-layout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/resizable-layout plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/resizable-layout'] --- import kbnResizableLayoutObj from './kbn_resizable_layout.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index 8524270f464f0..e44ec02fd39cf 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_rrule.mdx b/api_docs/kbn_rrule.mdx index e8e5ef70d1810..da4588475532e 100644 --- a/api_docs/kbn_rrule.mdx +++ b/api_docs/kbn_rrule.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rrule title: "@kbn/rrule" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rrule plugin -date: 2023-10-09 +date: 2023-10-10 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 1d12b82d26fc8..c496baa315db8 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 c969490495572..66106ffd90db0 100644 --- a/api_docs/kbn_saved_objects_settings.mdx +++ b/api_docs/kbn_saved_objects_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-saved-objects-settings title: "@kbn/saved-objects-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/saved-objects-settings plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings'] --- import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json'; diff --git a/api_docs/kbn_search_api_panels.mdx b/api_docs/kbn_search_api_panels.mdx index e496d3f7cf691..f411892bfecca 100644 --- a/api_docs/kbn_search_api_panels.mdx +++ b/api_docs/kbn_search_api_panels.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-api-panels title: "@kbn/search-api-panels" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-api-panels plugin -date: 2023-10-09 +date: 2023-10-10 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 472171e687f8e..40bd8b527ebe9 100644 --- a/api_docs/kbn_search_connectors.mdx +++ b/api_docs/kbn_search_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-connectors title: "@kbn/search-connectors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-connectors plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-connectors'] --- import kbnSearchConnectorsObj from './kbn_search_connectors.devdocs.json'; diff --git a/api_docs/kbn_search_response_warnings.mdx b/api_docs/kbn_search_response_warnings.mdx index ce676e1dee6ad..2c3a8a11ba48d 100644 --- a/api_docs/kbn_search_response_warnings.mdx +++ b/api_docs/kbn_search_response_warnings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-response-warnings title: "@kbn/search-response-warnings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-response-warnings plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-response-warnings'] --- import kbnSearchResponseWarningsObj from './kbn_search_response_warnings.devdocs.json'; diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx index af19b0bf989c8..4610f089a3595 100644 --- a/api_docs/kbn_security_solution_features.mdx +++ b/api_docs/kbn_security_solution_features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-features title: "@kbn/security-solution-features" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-features plugin -date: 2023-10-09 +date: 2023-10-10 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 f353d8003b9c7..117539b6bb10f 100644 --- a/api_docs/kbn_security_solution_navigation.mdx +++ b/api_docs/kbn_security_solution_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-navigation title: "@kbn/security-solution-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-navigation plugin -date: 2023-10-09 +date: 2023-10-10 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 2c5dd88626f1d..a675b214cff45 100644 --- a/api_docs/kbn_security_solution_side_nav.mdx +++ b/api_docs/kbn_security_solution_side_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav title: "@kbn/security-solution-side-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-side-nav plugin -date: 2023-10-09 +date: 2023-10-10 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 145c052d421b1..fd5135ee7de71 100644 --- a/api_docs/kbn_security_solution_storybook_config.mdx +++ b/api_docs/kbn_security_solution_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config title: "@kbn/security-solution-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-storybook-config plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config'] --- import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index ea5e94ff1be12..abc8fc5d67322 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2023-10-09 +date: 2023-10-10 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 0408575f8005b..3925f2837d978 100644 --- a/api_docs/kbn_securitysolution_data_table.mdx +++ b/api_docs/kbn_securitysolution_data_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-data-table title: "@kbn/securitysolution-data-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-data-table plugin -date: 2023-10-09 +date: 2023-10-10 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 c44049808829e..0fb49e257da8e 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2023-10-09 +date: 2023-10-10 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 dad725db75ff1..56d19ecb52033 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 37643de1029d5..2ca8810f90866 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index 8d05d99135e9e..a767bf70c6b89 100644 --- a/api_docs/kbn_securitysolution_grouping.mdx +++ b/api_docs/kbn_securitysolution_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping title: "@kbn/securitysolution-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-grouping plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping'] --- import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 0f8b7640d1a26..c397e907d3877 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 b397ce88e77bf..63484b08ee718 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2023-10-09 +date: 2023-10-10 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 30b39fae4ab73..31a668494b045 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2023-10-09 +date: 2023-10-10 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 0f7c4a91754ba..923e4c49d4072 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2023-10-09 +date: 2023-10-10 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 cdd29306a7993..e22e72c0f9ef3 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 af688aa19a93c..a10efe8666fcd 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2023-10-09 +date: 2023-10-10 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 9152395418477..04f1fadd25c60 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2023-10-09 +date: 2023-10-10 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 850d27c63a487..9e6fe5ef0d2d7 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2023-10-09 +date: 2023-10-10 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 548a700412845..3e76535eb9886 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 c68d3182cf837..0da8f059b6f1a 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2023-10-09 +date: 2023-10-10 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 5add3c4f74a8b..cc86e80242786 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2023-10-09 +date: 2023-10-10 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 63e9fe5c6206f..e6a0d014907a1 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 bc4d78d33fc7a..f60d954cb8cef 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2023-10-09 +date: 2023-10-10 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 c49704f747ecb..8c127e11a1097 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; diff --git a/api_docs/kbn_serverless_common_settings.mdx b/api_docs/kbn_serverless_common_settings.mdx index c6382506beb7c..4ca24623850df 100644 --- a/api_docs/kbn_serverless_common_settings.mdx +++ b/api_docs/kbn_serverless_common_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-common-settings title: "@kbn/serverless-common-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-common-settings plugin -date: 2023-10-09 +date: 2023-10-10 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 f7671a5f26bc0..4ee0e32d99edf 100644 --- a/api_docs/kbn_serverless_observability_settings.mdx +++ b/api_docs/kbn_serverless_observability_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-observability-settings title: "@kbn/serverless-observability-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-observability-settings plugin -date: 2023-10-09 +date: 2023-10-10 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 a18a87093c970..cba032146dce8 100644 --- a/api_docs/kbn_serverless_project_switcher.mdx +++ b/api_docs/kbn_serverless_project_switcher.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-project-switcher title: "@kbn/serverless-project-switcher" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-project-switcher plugin -date: 2023-10-09 +date: 2023-10-10 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 34b57e8759955..8c4cf157eb87f 100644 --- a/api_docs/kbn_serverless_search_settings.mdx +++ b/api_docs/kbn_serverless_search_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-search-settings title: "@kbn/serverless-search-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-search-settings plugin -date: 2023-10-09 +date: 2023-10-10 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 f8fb5202221c5..ca5e442f83e55 100644 --- a/api_docs/kbn_serverless_security_settings.mdx +++ b/api_docs/kbn_serverless_security_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-security-settings title: "@kbn/serverless-security-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-security-settings plugin -date: 2023-10-09 +date: 2023-10-10 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 5d52fb6d3445c..1a8c74ee7e6f4 100644 --- a/api_docs/kbn_serverless_storybook_config.mdx +++ b/api_docs/kbn_serverless_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-storybook-config title: "@kbn/serverless-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-storybook-config plugin -date: 2023-10-09 +date: 2023-10-10 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 a504c3172a6a1..f25d198ef03fa 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2023-10-09 +date: 2023-10-10 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 bb97db6dfa26e..e6d9f4a706e84 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution'] --- import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx index 289dd54181b82..3c85e2a05326b 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components title: "@kbn/shared-ux-avatar-user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-user-profile-components'] --- import kbnSharedUxAvatarUserProfileComponentsObj from './kbn_shared_ux_avatar_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx index b3328f632c7c1..f5fce0e993d5b 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen'] --- import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx index 085a615338dc2..1742c444448b8 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks title: "@kbn/shared-ux-button-exit-full-screen-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen-mocks'] --- import kbnSharedUxButtonExitFullScreenMocksObj from './kbn_shared_ux_button_exit_full_screen_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx index baf3c5f3eb384..6d1161ee7609e 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2023-10-09 +date: 2023-10-10 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 805e06c2584ae..c2266078e97ef 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2023-10-09 +date: 2023-10-10 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 eb1212dac2002..37f03038f0f90 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 71864eea18f4b..a58ec43825a8e 100644 --- a/api_docs/kbn_shared_ux_chrome_navigation.mdx +++ b/api_docs/kbn_shared_ux_chrome_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-chrome-navigation title: "@kbn/shared-ux-chrome-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-chrome-navigation plugin -date: 2023-10-09 +date: 2023-10-10 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_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx index c4aa7cfcefce7..eecd3660c141c 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2023-10-09 +date: 2023-10-10 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 5adab75c78a27..6e770849a87e9 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2023-10-09 +date: 2023-10-10 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 705006ae47b9e..d9b3824ab657f 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 f34a2b8ffd76f..e9fb460f04b75 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 595751d7c7687..fe3e7abc24104 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2023-10-09 +date: 2023-10-10 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 f6b006f12bf97..3fb7582f3ba4d 100644 --- a/api_docs/kbn_shared_ux_file_types.mdx +++ b/api_docs/kbn_shared_ux_file_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types title: "@kbn/shared-ux-file-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-types plugin -date: 2023-10-09 +date: 2023-10-10 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 bc1cb03a2c545..c184f5e67b33d 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2023-10-09 +date: 2023-10-10 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 25d01db67744e..a06f9b1b54df2 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2023-10-09 +date: 2023-10-10 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 9016a3f0fcef2..2aa5631c79dd3 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2023-10-09 +date: 2023-10-10 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 ba98ef4e7d50a..f825b65595737 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 b1ce368c19931..71e8cdc01fdce 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2023-10-09 +date: 2023-10-10 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 18ba97dccc0ce..3d557ec3cc71c 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 269f7adb4c44c..f78abbb3da56b 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2023-10-09 +date: 2023-10-10 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 42de69dca895c..4985dc7e521da 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 5bda20a550e5d..4296c089edb97 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2023-10-09 +date: 2023-10-10 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 48ecaa0a8c1fa..6244f6ae058e3 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 7d078f4f92eed..5e9ce2ec35b2b 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2023-10-09 +date: 2023-10-10 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 490f220ad044d..f54d1cfbccde4 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 b20b028de07f9..4ecec837337a5 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2023-10-09 +date: 2023-10-10 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 427e72cbc7b10..e16eed9a8cfc6 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2023-10-09 +date: 2023-10-10 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 ffbbd8a2ec397..73e5e36bc2945 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 69b58c45c6951..cea7e16fe8f22 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 169557cba1f9d..18a0a16e4b43c 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2023-10-09 +date: 2023-10-10 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 7e23e295ded01..827da78cb09bf 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2023-10-09 +date: 2023-10-10 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 841f0a3d672ad..5e8c069c9bdf2 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 3e3d3e21e36b3..ed087bd73129c 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2023-10-09 +date: 2023-10-10 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 713fe0247b57e..c83ae5fe856cf 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2023-10-09 +date: 2023-10-10 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 1732ac3be59d3..8d4f4a567056e 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2023-10-09 +date: 2023-10-10 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 14fb61f1cd001..49ab739f134e0 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2023-10-09 +date: 2023-10-10 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 bf28eb603c2ca..4ca64a5faf3d3 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock'] --- import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index f4ad52c0791f3..7a862fb1618a8 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2023-10-09 +date: 2023-10-10 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 4be442fd0d81d..b3b250de6cf4f 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2023-10-09 +date: 2023-10-10 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 9198f80ef5d65..ab9817f8ca344 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 8180712633803..079f2d644b37f 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2023-10-09 +date: 2023-10-10 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 5d1e8faa83aaa..33b008548ac10 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2023-10-09 +date: 2023-10-10 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 7690ac766bd3a..6befc5f086483 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] --- import kbnStorybookObj from './kbn_storybook.devdocs.json'; diff --git a/api_docs/kbn_subscription_tracking.mdx b/api_docs/kbn_subscription_tracking.mdx index de1503fdd3faf..96161bc6816e0 100644 --- a/api_docs/kbn_subscription_tracking.mdx +++ b/api_docs/kbn_subscription_tracking.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-subscription-tracking title: "@kbn/subscription-tracking" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/subscription-tracking plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/subscription-tracking'] --- import kbnSubscriptionTrackingObj from './kbn_subscription_tracking.devdocs.json'; diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index 02618e934d0ef..7e586447423b5 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2023-10-09 +date: 2023-10-10 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 a3a1f8a4253d6..2b9a0cd488c6b 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test'] --- import kbnTestObj from './kbn_test.devdocs.json'; diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx index 2bece9c853f99..94b4c16e192cc 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2023-10-09 +date: 2023-10-10 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 9407977e40818..72218ee4f0731 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector'] --- import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json'; diff --git a/api_docs/kbn_text_based_editor.mdx b/api_docs/kbn_text_based_editor.mdx index d060aaef2071b..18655ba4041eb 100644 --- a/api_docs/kbn_text_based_editor.mdx +++ b/api_docs/kbn_text_based_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-text-based-editor title: "@kbn/text-based-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/text-based-editor plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/text-based-editor'] --- import kbnTextBasedEditorObj from './kbn_text_based_editor.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index 99ca92fda0db7..66f6069485d01 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index 629c7198f9619..ada15820e8356 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2023-10-09 +date: 2023-10-10 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 bf416ee7a7787..0ad007011c5d4 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2023-10-09 +date: 2023-10-10 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 33f1e46bc9ba5..8046804e78857 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2023-10-09 +date: 2023-10-10 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 580e7fd3b69ab..7454ed739184f 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2023-10-09 +date: 2023-10-10 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 3bd85bbef0c25..c0de7207cbc12 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2023-10-09 +date: 2023-10-10 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 81892c9feef5d..f337493358a66 100644 --- a/api_docs/kbn_unified_data_table.mdx +++ b/api_docs/kbn_unified_data_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-data-table title: "@kbn/unified-data-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-data-table plugin -date: 2023-10-09 +date: 2023-10-10 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 18d8117791c47..60315d6948aa4 100644 --- a/api_docs/kbn_unified_doc_viewer.mdx +++ b/api_docs/kbn_unified_doc_viewer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-doc-viewer title: "@kbn/unified-doc-viewer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-doc-viewer plugin -date: 2023-10-09 +date: 2023-10-10 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 6ee49be46cb18..052c58328b429 100644 --- a/api_docs/kbn_unified_field_list.mdx +++ b/api_docs/kbn_unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-field-list title: "@kbn/unified-field-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-field-list plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-field-list'] --- import kbnUnifiedFieldListObj from './kbn_unified_field_list.devdocs.json'; diff --git a/api_docs/kbn_url_state.mdx b/api_docs/kbn_url_state.mdx index 1cde396e790e0..7136c075ba1c4 100644 --- a/api_docs/kbn_url_state.mdx +++ b/api_docs/kbn_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-url-state title: "@kbn/url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/url-state plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/url-state'] --- import kbnUrlStateObj from './kbn_url_state.devdocs.json'; diff --git a/api_docs/kbn_use_tracked_promise.mdx b/api_docs/kbn_use_tracked_promise.mdx index 150fbd8a8d7a5..f30b29ce510c7 100644 --- a/api_docs/kbn_use_tracked_promise.mdx +++ b/api_docs/kbn_use_tracked_promise.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-use-tracked-promise title: "@kbn/use-tracked-promise" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/use-tracked-promise plugin -date: 2023-10-09 +date: 2023-10-10 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 e3dceb0870872..ba233c47dce8f 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2023-10-09 +date: 2023-10-10 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 011c71476568f..447c088018b03 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2023-10-09 +date: 2023-10-10 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 88bd0584e9060..b011042f21aba 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2023-10-09 +date: 2023-10-10 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 79e5f9edad30b..daea1446da89d 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2023-10-09 +date: 2023-10-10 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 76d3c2e7a33a9..5b430edad1e54 100644 --- a/api_docs/kbn_visualization_ui_components.mdx +++ b/api_docs/kbn_visualization_ui_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-ui-components title: "@kbn/visualization-ui-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/visualization-ui-components plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-ui-components'] --- import kbnVisualizationUiComponentsObj from './kbn_visualization_ui_components.devdocs.json'; diff --git a/api_docs/kbn_xstate_utils.mdx b/api_docs/kbn_xstate_utils.mdx index 615a79a6bfcba..454de01c791f2 100644 --- a/api_docs/kbn_xstate_utils.mdx +++ b/api_docs/kbn_xstate_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-xstate-utils title: "@kbn/xstate-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/xstate-utils plugin -date: 2023-10-09 +date: 2023-10-10 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 f978e514cc306..572a0e92add00 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator'] --- import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json'; diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx index b680fbee3c3b9..e9c77f7117bee 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2023-10-09 +date: 2023-10-10 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 f63a00b24d30d..4e461cd97dd92 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2023-10-09 +date: 2023-10-10 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 96c09ab6c0b46..91d1c104229c3 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils'] --- import kibanaUtilsObj from './kibana_utils.devdocs.json'; -Contact [@elastic/kibana-app-services](https://github.com/orgs/elastic/teams/kibana-app-services) for questions regarding this plugin. +Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kubernetes_security.mdx b/api_docs/kubernetes_security.mdx index f0fa94dfa959d..d1d4d6ef82134 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2023-10-09 +date: 2023-10-10 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 7e76ed8e0a523..8788c188338b1 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2023-10-09 +date: 2023-10-10 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 b59d8811a50bb..b5001b8c8e827 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2023-10-09 +date: 2023-10-10 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 79334784759c8..1eabee28bb900 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2023-10-09 +date: 2023-10-10 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 b0b88777cf19c..a0711c4ae19a9 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2023-10-09 +date: 2023-10-10 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 0f21607d4bc0d..7ec37cc6e0426 100644 --- a/api_docs/links.mdx +++ b/api_docs/links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/links title: "links" image: https://source.unsplash.com/400x175/?github description: API docs for the links plugin -date: 2023-10-09 +date: 2023-10-10 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 8e4080e8d4a40..f785108c13854 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] --- import listsObj from './lists.devdocs.json'; diff --git a/api_docs/log_explorer.mdx b/api_docs/log_explorer.mdx index 59f0a518cf99e..d295c898b481c 100644 --- a/api_docs/log_explorer.mdx +++ b/api_docs/log_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logExplorer title: "logExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the logExplorer plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logExplorer'] --- import logExplorerObj from './log_explorer.devdocs.json'; diff --git a/api_docs/logs_shared.mdx b/api_docs/logs_shared.mdx index 6aa0147562f75..73927de3196e2 100644 --- a/api_docs/logs_shared.mdx +++ b/api_docs/logs_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsShared title: "logsShared" image: https://source.unsplash.com/400x175/?github description: API docs for the logsShared plugin -date: 2023-10-09 +date: 2023-10-10 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 08dfa50bb5443..6ef840509692c 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2023-10-09 +date: 2023-10-10 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 125507b8cb016..36707f0dc28b1 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2023-10-09 +date: 2023-10-10 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 2e53553582c2e..8da7565f2f0f0 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2023-10-09 +date: 2023-10-10 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 68937a24ee133..dcc9652aa01f7 100644 --- a/api_docs/metrics_data_access.mdx +++ b/api_docs/metrics_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/metricsDataAccess title: "metricsDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the metricsDataAccess plugin -date: 2023-10-09 +date: 2023-10-10 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 d12e7b2380e6b..4547a666d9f67 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml'] --- import mlObj from './ml.devdocs.json'; diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx index 970f13d9443bc..bb03f1fdeb7c1 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2023-10-09 +date: 2023-10-10 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 9cfec0f2fd132..c7b7d02ffd3ff 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2023-10-09 +date: 2023-10-10 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 820059b66eacf..853d9562fc4dc 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2023-10-09 +date: 2023-10-10 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 c2fed8fb00069..a867f9fa86a5f 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2023-10-09 +date: 2023-10-10 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 0123bb5ea161c..104edb6bc8d44 100644 --- a/api_docs/no_data_page.mdx +++ b/api_docs/no_data_page.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/noDataPage title: "noDataPage" image: https://source.unsplash.com/400x175/?github description: API docs for the noDataPage plugin -date: 2023-10-09 +date: 2023-10-10 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 db3736987c277..b497c8c7f136d 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2023-10-09 +date: 2023-10-10 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 fcf0e55766a60..fe5def821a9c3 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2023-10-09 +date: 2023-10-10 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 5345459346e41..59cecb34aa3c8 100644 --- a/api_docs/observability_a_i_assistant.mdx +++ b/api_docs/observability_a_i_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistant title: "observabilityAIAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityAIAssistant plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistant'] --- import observabilityAIAssistantObj from './observability_a_i_assistant.devdocs.json'; diff --git a/api_docs/observability_log_explorer.mdx b/api_docs/observability_log_explorer.mdx index 1a51031985ef1..fc0b325fce2fa 100644 --- a/api_docs/observability_log_explorer.mdx +++ b/api_docs/observability_log_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityLogExplorer title: "observabilityLogExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityLogExplorer plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityLogExplorer'] --- import observabilityLogExplorerObj from './observability_log_explorer.devdocs.json'; diff --git a/api_docs/observability_onboarding.mdx b/api_docs/observability_onboarding.mdx index 8a17dcad1d912..5c34bdc53c01d 100644 --- a/api_docs/observability_onboarding.mdx +++ b/api_docs/observability_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityOnboarding title: "observabilityOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityOnboarding plugin -date: 2023-10-09 +date: 2023-10-10 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 1b79b0af56b54..f8a33e6a6abba 100644 --- a/api_docs/observability_shared.mdx +++ b/api_docs/observability_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityShared title: "observabilityShared" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityShared plugin -date: 2023-10-09 +date: 2023-10-10 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 cc707948aafb7..6f06ad7b2ce93 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2023-10-09 +date: 2023-10-10 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 2111e4db48c74..8a3566f9e1c04 100644 --- a/api_docs/painless_lab.mdx +++ b/api_docs/painless_lab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/painlessLab title: "painlessLab" image: https://source.unsplash.com/400x175/?github description: API docs for the painlessLab plugin -date: 2023-10-09 +date: 2023-10-10 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 d8c33f559faa5..0f23603cf4147 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -15,13 +15,13 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Count | Plugins or Packages with a
public API | Number of teams | |--------------|----------|------------------------| -| 699 | 590 | 41 | +| 699 | 590 | 40 | ### Public API health stats | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 75797 | 223 | 64594 | 1580 | +| 75813 | 223 | 64610 | 1580 | ## Plugin Directory @@ -115,7 +115,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 6 | 0 | 6 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 176 | 0 | 138 | 4 | | kibanaUsageCollection | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | -| | [@elastic/kibana-app-services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 610 | 3 | 417 | 9 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 610 | 3 | 417 | 9 | | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | - | 5 | 0 | 5 | 1 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 625 | 0 | 526 | 60 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 8 | 0 | 8 | 0 | @@ -147,7 +147,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Presentation Utility Plugin is a set of common, shared components and toolkits for solutions within the Presentation space, (e.g. Dashboards, Canvas). | 227 | 2 | 172 | 11 | | | [@elastic/profiling-ui](https://github.com/orgs/elastic/teams/profiling-ui) | - | 16 | 1 | 16 | 0 | | | [@elastic/profiling-ui](https://github.com/orgs/elastic/teams/profiling-ui) | - | 21 | 0 | 21 | 6 | -| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 4 | 0 | 4 | 0 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 23 | 0 | 23 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Reporting Services enables applications to feature reports that the user can automate with Watcher and download later. | 42 | 0 | 22 | 5 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 21 | 0 | 21 | 0 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 267 | 0 | 238 | 14 | @@ -162,7 +162,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-reporting-services](https://github.com/orgs/elastic/teams/kibana-reporting-services) | Kibana Screenshotting Plugin | 27 | 0 | 8 | 5 | | searchprofiler | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides authentication and authorization features, and exposes functionality to understand the capabilities of the currently authenticated user. | 270 | 0 | 87 | 3 | -| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 176 | 0 | 109 | 35 | +| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 173 | 0 | 106 | 35 | | | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | ESS customizations for Security Solution. | 6 | 0 | 6 | 0 | | | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | Serverless customizations for security. | 6 | 0 | 6 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | The core Serverless plugin, providing APIs to Serverless Project plugins. | 19 | 0 | 18 | 0 | @@ -193,7 +193,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains all the key functionality of Kibana's unified search experience.Contains all the key functionality of Kibana's unified search experience. | 148 | 2 | 110 | 23 | | upgradeAssistant | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | | | [@elastic/uptime](https://github.com/orgs/elastic/teams/uptime) | This plugin visualizes data from Heartbeat, and integrates with other Observability solutions. | 1 | 0 | 1 | 0 | -| urlDrilldown | [@elastic/kibana-app-services](https://github.com/orgs/elastic/teams/kibana-app-services) | Adds drilldown implementations to Kibana | 0 | 0 | 0 | 0 | +| urlDrilldown | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds drilldown implementations to Kibana | 0 | 0 | 0 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 12 | 0 | 12 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 55 | 0 | 16 | 2 | | | [@elastic/uptime](https://github.com/orgs/elastic/teams/uptime) | - | 2 | 0 | 2 | 0 | diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index ece324d2fc2e7..8d3a8409b1143 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2023-10-09 +date: 2023-10-10 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 041732977bce3..4f6003795cf30 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2023-10-09 +date: 2023-10-10 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 35f1a628cd7d7..b0d716d969477 100644 --- a/api_docs/profiling_data_access.mdx +++ b/api_docs/profiling_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profilingDataAccess title: "profilingDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the profilingDataAccess plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profilingDataAccess'] --- import profilingDataAccessObj from './profiling_data_access.devdocs.json'; diff --git a/api_docs/remote_clusters.devdocs.json b/api_docs/remote_clusters.devdocs.json index eec38edb3e2ed..bc742af1091a7 100644 --- a/api_docs/remote_clusters.devdocs.json +++ b/api_docs/remote_clusters.devdocs.json @@ -3,9 +3,275 @@ "client": { "classes": [], "functions": [], - "interfaces": [], + "interfaces": [ + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster", + "type": "Interface", + "tags": [], + "label": "Cluster", + "description": [], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.seeds", + "type": "Array", + "tags": [], + "label": "seeds", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.skipUnavailable", + "type": "CompoundType", + "tags": [], + "label": "skipUnavailable", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.nodeConnections", + "type": "number", + "tags": [], + "label": "nodeConnections", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.proxyAddress", + "type": "string", + "tags": [], + "label": "proxyAddress", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.proxySocketConnections", + "type": "number", + "tags": [], + "label": "proxySocketConnections", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.serverName", + "type": "string", + "tags": [], + "label": "serverName", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.mode", + "type": "CompoundType", + "tags": [], + "label": "mode", + "description": [], + "signature": [ + "\"proxy\" | \"sniff\" | undefined" + ], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.isConnected", + "type": "CompoundType", + "tags": [], + "label": "isConnected", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.transportPingSchedule", + "type": "string", + "tags": [], + "label": "transportPingSchedule", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.transportCompress", + "type": "CompoundType", + "tags": [], + "label": "transportCompress", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.connectedNodesCount", + "type": "number", + "tags": [], + "label": "connectedNodesCount", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.maxConnectionsPerCluster", + "type": "CompoundType", + "tags": [], + "label": "maxConnectionsPerCluster", + "description": [], + "signature": [ + "string | number | undefined" + ], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.initialConnectTimeout", + "type": "CompoundType", + "tags": [], + "label": "initialConnectTimeout", + "description": [], + "signature": [ + "string | number | undefined" + ], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.connectedSocketsCount", + "type": "number", + "tags": [], + "label": "connectedSocketsCount", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.hasDeprecatedProxySetting", + "type": "CompoundType", + "tags": [], + "label": "hasDeprecatedProxySetting", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "remoteClusters", + "id": "def-public.Cluster.securityModel", + "type": "CompoundType", + "tags": [], + "label": "securityModel", + "description": [], + "signature": [ + "\"certificate\" | \"api_key\"" + ], + "path": "x-pack/plugins/remote_clusters/common/lib/cluster_serialization.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], "enums": [], - "misc": [], + "misc": [ + { + "parentPluginId": "remoteClusters", + "id": "def-public.API_BASE_PATH", + "type": "string", + "tags": [], + "label": "API_BASE_PATH", + "description": [], + "signature": [ + "\"/api/remote_clusters\"" + ], + "path": "x-pack/plugins/remote_clusters/common/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], "objects": [], "setup": { "parentPluginId": "remoteClusters", diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx index f83fb5c45a92d..79ce19cf80096 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'remoteClusters'] --- import remoteClustersObj from './remote_clusters.devdocs.json'; @@ -21,13 +21,19 @@ Contact [@elastic/platform-deployment-management](https://github.com/orgs/elasti | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 4 | 0 | 4 | 0 | +| 23 | 0 | 23 | 0 | ## Client ### Setup +### Interfaces + + +### Consts, variables and types + + ## Server ### Setup diff --git a/api_docs/reporting.mdx b/api_docs/reporting.mdx index 99cfa5c593790..80fb735b54978 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2023-10-09 +date: 2023-10-10 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 4654d9ae17ac7..bcc6ae10330a5 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2023-10-09 +date: 2023-10-10 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 d3ad71d50e951..a684e0048018c 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2023-10-09 +date: 2023-10-10 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 696d85ac9670f..c4a5c59cb4755 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2023-10-09 +date: 2023-10-10 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 3c4103f2019b0..36da9dc06283f 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2023-10-09 +date: 2023-10-10 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 904a012324a84..226bebabaaaf8 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2023-10-09 +date: 2023-10-10 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 a90a19c1a4e8a..ebde511998b75 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2023-10-09 +date: 2023-10-10 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 d441f27024157..9a53a2d923240 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2023-10-09 +date: 2023-10-10 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 ed8ad5ba33a2b..0f7a2b366249a 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2023-10-09 +date: 2023-10-10 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 4a14a189704dc..ba6274529515e 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2023-10-09 +date: 2023-10-10 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 1cb04eded6186..b1e6c9e228567 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2023-10-09 +date: 2023-10-10 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 0bc073e53f11d..9b3e271de5ef0 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/security.mdx b/api_docs/security.mdx index 116bc3eeb4348..2fdc7647b7057 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; diff --git a/api_docs/security_solution.devdocs.json b/api_docs/security_solution.devdocs.json index 461ab76dbedd6..26d27039d53cd 100644 --- a/api_docs/security_solution.devdocs.json +++ b/api_docs/security_solution.devdocs.json @@ -107,6 +107,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "securitySolution", + "id": "def-public.Plugin.configSettings", + "type": "Object", + "tags": [], + "label": "configSettings", + "description": [], + "signature": [ + "ConfigSettings" + ], + "path": "x-pack/plugins/security_solution/public/plugin.tsx", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "securitySolution", "id": "def-public.Plugin.Unnamed", @@ -1850,40 +1864,6 @@ } ], "returnComment": [] - }, - { - "parentPluginId": "securitySolution", - "id": "def-public.PluginSetup.setDataQualityPanelConfig", - "type": "Function", - "tags": [], - "label": "setDataQualityPanelConfig", - "description": [], - "signature": [ - "(dataQualityPanelConfig: ", - "DataQualityPanelConfig", - ") => void" - ], - "path": "x-pack/plugins/security_solution/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "securitySolution", - "id": "def-public.PluginSetup.setDataQualityPanelConfig.$1", - "type": "Object", - "tags": [], - "label": "dataQualityPanelConfig", - "description": [], - "signature": [ - "DataQualityPanelConfig" - ], - "path": "x-pack/plugins/security_solution/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] } ], "lifecycle": "setup", @@ -1955,38 +1935,6 @@ ], "returnComment": [] }, - { - "parentPluginId": "securitySolution", - "id": "def-public.PluginStart.setIsSidebarEnabled", - "type": "Function", - "tags": [], - "label": "setIsSidebarEnabled", - "description": [], - "signature": [ - "(isSidebarEnabled: boolean) => void" - ], - "path": "x-pack/plugins/security_solution/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "securitySolution", - "id": "def-public.PluginStart.setIsSidebarEnabled.$1", - "type": "boolean", - "tags": [], - "label": "isSidebarEnabled", - "description": [], - "signature": [ - "boolean" - ], - "path": "x-pack/plugins/security_solution/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, { "parentPluginId": "securitySolution", "id": "def-public.PluginStart.setComponents", @@ -2841,7 +2789,7 @@ "label": "ConfigType", "description": [], "signature": [ - "Readonly<{ prebuiltRulesPackageVersion?: string | undefined; } & { enabled: boolean; signalsIndex: string; maxRuleImportExportSize: number; maxRuleImportPayloadBytes: number; maxTimelineImportExportSize: number; maxTimelineImportPayloadBytes: number; alertMergeStrategy: \"allFields\" | \"missingFields\" | \"noFields\"; alertIgnoreFields: string[]; enableExperimental: string[]; packagerTaskInterval: string; packagerTaskPackagePolicyUpdateBatchSize: number; maxUploadResponseActionFileBytes: number; }> & { experimentalFeatures: ", + "Omit; }>, \"offeringSettings\"> & { experimentalFeatures: ", { "pluginId": "securitySolution", "scope": "common", @@ -2849,6 +2797,8 @@ "section": "def-common.ExperimentalFeatures", "text": "ExperimentalFeatures" }, + "; settings: ", + "ConfigSettings", "; }" ], "path": "x-pack/plugins/security_solution/server/config.ts", diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index 4c28333bc7e5c..5d008e6955bda 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] --- import securitySolutionObj from './security_solution.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/security-solution](https://github.com/orgs/elastic/teams/secur | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 176 | 0 | 109 | 35 | +| 173 | 0 | 106 | 35 | ## Client diff --git a/api_docs/security_solution_ess.mdx b/api_docs/security_solution_ess.mdx index 27ddad9e75957..8558e64777900 100644 --- a/api_docs/security_solution_ess.mdx +++ b/api_docs/security_solution_ess.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionEss title: "securitySolutionEss" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolutionEss plugin -date: 2023-10-09 +date: 2023-10-10 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 1eec62c22abd9..c39080c98e415 100644 --- a/api_docs/security_solution_serverless.mdx +++ b/api_docs/security_solution_serverless.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionServerless title: "securitySolutionServerless" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolutionServerless plugin -date: 2023-10-09 +date: 2023-10-10 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 7d413711a6add..1e5e45fba3490 100644 --- a/api_docs/serverless.mdx +++ b/api_docs/serverless.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverless title: "serverless" image: https://source.unsplash.com/400x175/?github description: API docs for the serverless plugin -date: 2023-10-09 +date: 2023-10-10 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 13bf1ca6dced1..9d36a40452443 100644 --- a/api_docs/serverless_observability.mdx +++ b/api_docs/serverless_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessObservability title: "serverlessObservability" image: https://source.unsplash.com/400x175/?github description: API docs for the serverlessObservability plugin -date: 2023-10-09 +date: 2023-10-10 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 b73034fa29bba..aab3a4b68d7b7 100644 --- a/api_docs/serverless_search.mdx +++ b/api_docs/serverless_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessSearch title: "serverlessSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the serverlessSearch plugin -date: 2023-10-09 +date: 2023-10-10 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 0acfba0e8a41d..4e536cde02643 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2023-10-09 +date: 2023-10-10 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 2b278028e3117..0770f0d7d0588 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share'] --- import shareObj from './share.devdocs.json'; diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx index 891f789c22782..33a07db7f0618 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2023-10-09 +date: 2023-10-10 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 377cdb97597b6..d447c18462b7c 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2023-10-09 +date: 2023-10-10 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 0c84bd10e3f02..240c386b8c7c8 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2023-10-09 +date: 2023-10-10 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 c126dbb518b55..ab7018a99eb56 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2023-10-09 +date: 2023-10-10 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 d3b05bec475eb..34ab3161b59bb 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2023-10-09 +date: 2023-10-10 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 c03f837957c92..ae71fbe3f2fbe 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2023-10-09 +date: 2023-10-10 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 6f57c4bfe3198..cb7cd0b2c0053 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2023-10-09 +date: 2023-10-10 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 c6d7b06d4c52d..218c9a8a336c2 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2023-10-09 +date: 2023-10-10 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 9002ab6f9de70..d2d3ad9902eee 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/text_based_languages.mdx b/api_docs/text_based_languages.mdx index 55375c32091dd..ce6a1c5939615 100644 --- a/api_docs/text_based_languages.mdx +++ b/api_docs/text_based_languages.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/textBasedLanguages title: "textBasedLanguages" image: https://source.unsplash.com/400x175/?github description: API docs for the textBasedLanguages plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'textBasedLanguages'] --- import textBasedLanguagesObj from './text_based_languages.devdocs.json'; diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index c9b9e833abca7..5885543b6308b 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2023-10-09 +date: 2023-10-10 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 d58a1b5c560ac..aa0463fbfd74a 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2023-10-09 +date: 2023-10-10 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 903f338439341..6533bb84a3d99 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2023-10-09 +date: 2023-10-10 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 223ef8d065b96..97da9a9a9c42e 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2023-10-09 +date: 2023-10-10 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 44d79d99b2daa..fc2a8a2d7b4e1 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2023-10-09 +date: 2023-10-10 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 7f050f3f529d9..d59fe62d2f22a 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2023-10-09 +date: 2023-10-10 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 64c12145ddbbf..8f45a5753e34d 100644 --- a/api_docs/unified_doc_viewer.mdx +++ b/api_docs/unified_doc_viewer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedDocViewer title: "unifiedDocViewer" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedDocViewer plugin -date: 2023-10-09 +date: 2023-10-10 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 6f78cb39f3f13..4e50b5717638e 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2023-10-09 +date: 2023-10-10 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 9742e707be4ef..eb8ef477dca9a 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2023-10-09 +date: 2023-10-10 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 2783f4a6bcc92..77299f351359a 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2023-10-09 +date: 2023-10-10 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 ffa7785ac8f08..36f224533894a 100644 --- a/api_docs/uptime.mdx +++ b/api_docs/uptime.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uptime title: "uptime" image: https://source.unsplash.com/400x175/?github description: API docs for the uptime plugin -date: 2023-10-09 +date: 2023-10-10 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 ad50094024e13..332e80e36c366 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2023-10-09 +date: 2023-10-10 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 9bbc6514a4ae2..e6917ae831beb 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2023-10-09 +date: 2023-10-10 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 3035eec0e2d59..6e4f05c4f6a76 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2023-10-09 +date: 2023-10-10 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 803d70dfbd509..c9990e2c0d591 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2023-10-09 +date: 2023-10-10 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 3a748b87a2230..7ebdac1611d3f 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2023-10-09 +date: 2023-10-10 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 1cffefd7094e7..c9ffe40e09484 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2023-10-09 +date: 2023-10-10 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 52eeb1bd66fac..043d4cfb124da 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2023-10-09 +date: 2023-10-10 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 1ee06c9b2b2d6..6a5759f8534e8 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2023-10-09 +date: 2023-10-10 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 9efab98a61115..ff42abbbe1e96 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2023-10-09 +date: 2023-10-10 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 cceb24814d406..fe8373bd17ca0 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2023-10-09 +date: 2023-10-10 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 223a34a684596..d30a8e90021a8 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2023-10-09 +date: 2023-10-10 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 7607880f7ebaa..5795286e0f3c9 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2023-10-09 +date: 2023-10-10 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 33fbaadf7959a..75d9d40816180 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2023-10-09 +date: 2023-10-10 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 5a366cd5cbdc6..7e9bf8b6bea22 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2023-10-09 +date: 2023-10-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From cafb9d0475917bceb8e02a1819bdaff3fa92282b Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Tue, 10 Oct 2023 02:37:24 -0400 Subject: [PATCH 12/48] skip failing test suite (#168424) --- .../group10/risk_engine/risk_scoring_task_execution.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/risk_scoring_task_execution.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/risk_scoring_task_execution.ts index f9070ef39bff8..9de57ceb970b4 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/risk_scoring_task_execution.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/risk_scoring_task_execution.ts @@ -37,7 +37,8 @@ export default ({ getService }: FtrProviderContext): void => { const createAndSyncRuleAndAlerts = createAndSyncRuleAndAlertsFactory({ supertest, log }); const riskEngineRoutes = riskEngineRouteHelpersFactory(supertest); - describe('Risk Engine - Risk Scoring Task', () => { + // Failing: See https://github.com/elastic/kibana/issues/168424 + describe.skip('Risk Engine - Risk Scoring Task', () => { context('with auditbeat data', () => { const { indexListOfDocuments } = dataGeneratorFactory({ es, From 5ef91117f7dc499c3e4824183bd9bf5766a74868 Mon Sep 17 00:00:00 2001 From: Janki Salvi <117571355+js-jankisalvi@users.noreply.github.com> Date: Tue, 10 Oct 2023 09:26:54 +0200 Subject: [PATCH 13/48] [Cases] e2e test for custom fields (#168347) ## Summary Added functional test for custom fields. ## Flaky test runner: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3414 https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3426 ### For maintainers - [x] 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> Co-authored-by: Antonio --- .../components/configure_cases/index.test.tsx | 4 +- .../custom_fields_list/index.test.tsx | 4 +- .../custom_fields_list/index.tsx | 2 +- .../custom_fields/text/configure.tsx | 1 + .../common/lib/api/configuration.ts | 1 + x-pack/test/functional/services/cases/api.ts | 27 ++++- .../apps/cases/group1/create_case_form.ts | 59 ++++++++++- .../apps/cases/group1/view_case.ts | 97 +++++++++++++++++- .../apps/cases/group2/configure.ts | 51 ++++++++++ .../observability/cases/configure.ts | 50 ++++++++++ .../observability/cases/create_case_form.ts | 59 ++++++++++- .../observability/cases/view_case.ts | 97 +++++++++++++++++- .../security/ftr/cases/configure.ts | 50 ++++++++++ .../security/ftr/cases/create_case_form.ts | 59 ++++++++++- .../security/ftr/cases/view_case.ts | 98 ++++++++++++++++++- 15 files changed, 647 insertions(+), 12 deletions(-) diff --git a/x-pack/plugins/cases/public/components/configure_cases/index.test.tsx b/x-pack/plugins/cases/public/components/configure_cases/index.test.tsx index 8b54575292d84..6420b33eefbf5 100644 --- a/x-pack/plugins/cases/public/components/configure_cases/index.test.tsx +++ b/x-pack/plugins/cases/public/components/configure_cases/index.test.tsx @@ -647,7 +647,7 @@ describe('ConfigureCases', () => { appMockRender.render(); expect( - screen.getByTestId(`custom-field-${customFieldsMock[0].label}-${customFieldsMock[0].type}`) + screen.getByTestId(`custom-field-${customFieldsMock[0].key}-${customFieldsMock[0].type}`) ).toBeInTheDocument(); }); @@ -666,7 +666,7 @@ describe('ConfigureCases', () => { for (const field of customFieldsConfigurationMock) { expect( - within(list).getByTestId(`custom-field-${field.label}-${field.type}`) + within(list).getByTestId(`custom-field-${field.key}-${field.type}`) ).toBeInTheDocument(); } }); diff --git a/x-pack/plugins/cases/public/components/custom_fields/custom_fields_list/index.test.tsx b/x-pack/plugins/cases/public/components/custom_fields/custom_fields_list/index.test.tsx index 22672ab3bbfd5..f9b913af4d429 100644 --- a/x-pack/plugins/cases/public/components/custom_fields/custom_fields_list/index.test.tsx +++ b/x-pack/plugins/cases/public/components/custom_fields/custom_fields_list/index.test.tsx @@ -40,7 +40,7 @@ describe('CustomFieldsList', () => { expect(screen.getByTestId('custom-fields-list')).toBeInTheDocument(); for (const field of customFieldsConfigurationMock) { - expect(screen.getByTestId(`custom-field-${field.label}-${field.type}`)).toBeInTheDocument(); + expect(screen.getByTestId(`custom-field-${field.key}-${field.type}`)).toBeInTheDocument(); } }); @@ -54,7 +54,7 @@ describe('CustomFieldsList', () => { expect(list).toBeInTheDocument(); expect( screen.getByTestId( - `custom-field-${customFieldsConfigurationMock[0].label}-${customFieldsConfigurationMock[0].type}` + `custom-field-${customFieldsConfigurationMock[0].key}-${customFieldsConfigurationMock[0].type}` ) ).toBeInTheDocument(); expect( diff --git a/x-pack/plugins/cases/public/components/custom_fields/custom_fields_list/index.tsx b/x-pack/plugins/cases/public/components/custom_fields/custom_fields_list/index.tsx index 32849a1e3ab52..64420fc463649 100644 --- a/x-pack/plugins/cases/public/components/custom_fields/custom_fields_list/index.tsx +++ b/x-pack/plugins/cases/public/components/custom_fields/custom_fields_list/index.tsx @@ -59,7 +59,7 @@ const CustomFieldsListComponent: React.FC = (props) => { diff --git a/x-pack/plugins/cases/public/components/custom_fields/text/configure.tsx b/x-pack/plugins/cases/public/components/custom_fields/text/configure.tsx index 5a03bcd046630..678c95c352173 100644 --- a/x-pack/plugins/cases/public/components/custom_fields/text/configure.tsx +++ b/x-pack/plugins/cases/public/components/custom_fields/text/configure.tsx @@ -20,6 +20,7 @@ const ConfigureComponent: CustomFieldType['Configure'] = () component={CheckBoxField} componentProps={{ label: i18n.FIELD_OPTIONS, + 'data-test-subj': 'text-custom-field-options-wrapper', euiFieldProps: { label: i18n.FIELD_OPTION_REQUIRED, 'data-test-subj': 'text-custom-field-options', diff --git a/x-pack/test/cases_api_integration/common/lib/api/configuration.ts b/x-pack/test/cases_api_integration/common/lib/api/configuration.ts index 7b1b6d1b76c6c..cfaa18b430c11 100644 --- a/x-pack/test/cases_api_integration/common/lib/api/configuration.ts +++ b/x-pack/test/cases_api_integration/common/lib/api/configuration.ts @@ -72,6 +72,7 @@ export const createConfiguration = async ( const { body: configuration } = await apiCall .set('kbn-xsrf', 'true') + .set('x-elastic-internal-origin', 'foo') .set(headers) .send(req) .expect(expectedHttpCode); diff --git a/x-pack/test/functional/services/cases/api.ts b/x-pack/test/functional/services/cases/api.ts index 8ba5ccbb47ed5..72a65bc98cb61 100644 --- a/x-pack/test/functional/services/cases/api.ts +++ b/x-pack/test/functional/services/cases/api.ts @@ -6,7 +6,12 @@ */ import pMap from 'p-map'; -import { Case, CaseSeverity, CaseStatuses } from '@kbn/cases-plugin/common/types/domain'; +import { + Case, + CaseSeverity, + CaseStatuses, + Configuration, +} from '@kbn/cases-plugin/common/types/domain'; import { CasePostRequest } from '@kbn/cases-plugin/common/types/api'; import { createCase as createCaseAPI, @@ -14,6 +19,8 @@ import { createComment, updateCase, getCase, + createConfiguration, + getConfigurationRequest, } from '../../../cases_api_integration/common/lib/api'; import { loginUsers, @@ -136,5 +143,23 @@ export function CasesAPIServiceProvider({ getService }: FtrProviderContext) { latestVersion = theCase[0].version; } }, + + async createConfigWithCustomFields({ + customFields, + owner, + }: { + customFields: Configuration['customFields']; + owner: string; + }) { + return createConfiguration( + kbnSupertest, + getConfigurationRequest({ + overrides: { + customFields, + owner, + }, + }) + ); + }, }; } diff --git a/x-pack/test/functional_with_es_ssl/apps/cases/group1/create_case_form.ts b/x-pack/test/functional_with_es_ssl/apps/cases/group1/create_case_form.ts index 7eec8e96ef380..93883f7fc9d22 100644 --- a/x-pack/test/functional_with_es_ssl/apps/cases/group1/create_case_form.ts +++ b/x-pack/test/functional_with_es_ssl/apps/cases/group1/create_case_form.ts @@ -7,7 +7,7 @@ import expect from '@kbn/expect'; import { v4 as uuidv4 } from 'uuid'; -import { CaseSeverity } from '@kbn/cases-plugin/common/types/domain'; +import { CaseSeverity, CustomFieldTypes } from '@kbn/cases-plugin/common/types/domain'; import { FtrProviderContext } from '../../../ftr_provider_context'; import { createUsersAndRoles, @@ -126,5 +126,62 @@ export default ({ getService, getPageObject }: FtrProviderContext) => { await testSubjects.existOrFail('user-profile-assigned-user-cases_all_user2-remove-group'); }); }); + + describe('customFields', () => { + it('creates a case with custom fields', async () => { + const customFields = [ + { + key: 'valid_key_1', + label: 'Summary', + type: CustomFieldTypes.TEXT, + required: true, + }, + { + key: 'valid_key_2', + label: 'Sync', + type: CustomFieldTypes.TOGGLE, + required: true, + }, + ]; + + await cases.api.createConfigWithCustomFields({ customFields, owner: 'cases' }); + + const caseTitle = 'test-' + uuidv4(); + await cases.create.openCreateCasePage(); + + // verify custom fields on create case page + await testSubjects.existOrFail('create-case-custom-fields'); + + await cases.create.setTitle(caseTitle); + await cases.create.setDescription('this is a test description'); + + // set custom field values + const textCustomField = await testSubjects.find( + `${customFields[0].key}-text-create-custom-field` + ); + await textCustomField.type('This is a sample text!'); + + const toggleCustomField = await testSubjects.find( + `${customFields[1].key}-toggle-create-custom-field` + ); + await toggleCustomField.click(); + + await cases.create.submitCase(); + + await header.waitUntilLoadingHasFinished(); + + await testSubjects.existOrFail('case-view-title'); + + // validate custom fields + const summary = await testSubjects.find(`case-text-custom-field-${customFields[0].key}`); + + expect(await summary.getVisibleText()).equal('This is a sample text!'); + + const sync = await testSubjects.find( + `case-toggle-custom-field-form-field-${customFields[1].key}` + ); + expect(await sync.getAttribute('aria-checked')).equal('true'); + }); + }); }); }; diff --git a/x-pack/test/functional_with_es_ssl/apps/cases/group1/view_case.ts b/x-pack/test/functional_with_es_ssl/apps/cases/group1/view_case.ts index a62af7f5e23d6..76e651e4c3398 100644 --- a/x-pack/test/functional_with_es_ssl/apps/cases/group1/view_case.ts +++ b/x-pack/test/functional_with_es_ssl/apps/cases/group1/view_case.ts @@ -7,7 +7,12 @@ import expect from '@kbn/expect'; import { v4 as uuidv4 } from 'uuid'; -import { AttachmentType, CaseSeverity, CaseStatuses } from '@kbn/cases-plugin/common/types/domain'; +import { + AttachmentType, + CaseSeverity, + CaseStatuses, + CustomFieldTypes, +} from '@kbn/cases-plugin/common/types/domain'; import { setTimeout as setTimeoutAsync } from 'timers/promises'; import { FtrProviderContext } from '../../../ftr_provider_context'; @@ -1148,6 +1153,96 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { expect(testUserText).to.be('test user'); }); }); + + describe('customFields', () => { + const customFields = [ + { + key: 'valid_key_1', + label: 'Summary', + type: CustomFieldTypes.TEXT, + required: true, + }, + { + key: 'valid_key_2', + label: 'Sync', + type: CustomFieldTypes.TOGGLE, + required: true, + }, + ]; + + before(async () => { + await cases.navigation.navigateToApp(); + await cases.api.createConfigWithCustomFields({ customFields, owner: 'cases' }); + await cases.api.createCase({ + customFields: [ + { + key: 'valid_key_1', + type: CustomFieldTypes.TEXT, + value: ['this is a text field value'], + }, + { + key: 'valid_key_2', + type: CustomFieldTypes.TOGGLE, + value: true, + }, + ], + }); + await cases.casesTable.waitForCasesToBeListed(); + await cases.casesTable.goToFirstListedCase(); + await header.waitUntilLoadingHasFinished(); + }); + + afterEach(async () => { + await cases.api.deleteAllCases(); + }); + + it('updates a custom field correctly', async () => { + const summary = await testSubjects.find(`case-text-custom-field-${customFields[0].key}`); + expect(await summary.getVisibleText()).equal('this is a text field value'); + + const sync = await testSubjects.find( + `case-toggle-custom-field-form-field-${customFields[1].key}` + ); + expect(await sync.getAttribute('aria-checked')).equal('true'); + + await testSubjects.click(`case-text-custom-field-edit-button-${customFields[0].key}`); + + await retry.waitFor('custom field edit form to exist', async () => { + return await testSubjects.exists( + `case-text-custom-field-form-field-${customFields[0].key}` + ); + }); + + const inputField = await testSubjects.find( + `case-text-custom-field-form-field-${customFields[0].key}` + ); + + await inputField.type(' edited!!'); + + await testSubjects.click(`case-text-custom-field-submit-button-${customFields[0].key}`); + + await retry.waitFor('update toast exist', async () => { + return await testSubjects.exists('toastCloseButton'); + }); + + await testSubjects.click('toastCloseButton'); + + await sync.click(); + + await header.waitUntilLoadingHasFinished(); + + expect(await summary.getVisibleText()).equal('this is a text field value edited!!'); + + expect(await sync.getAttribute('aria-checked')).equal('false'); + + // validate user action + const userActions = await find.allByCssSelector( + '[data-test-subj*="customFields-update-action"]' + ); + + expect(userActions).length(2); + }); + }); }); }; diff --git a/x-pack/test/functional_with_es_ssl/apps/cases/group2/configure.ts b/x-pack/test/functional_with_es_ssl/apps/cases/group2/configure.ts index 098297551347d..092cefbd4cc67 100644 --- a/x-pack/test/functional_with_es_ssl/apps/cases/group2/configure.ts +++ b/x-pack/test/functional_with_es_ssl/apps/cases/group2/configure.ts @@ -14,6 +14,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { const cases = getService('cases'); const toasts = getService('toasts'); const header = getPageObject('header'); + const find = getService('find'); describe('Configure', function () { before(async () => { @@ -28,6 +29,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { this.beforeEach(async () => { await header.waitUntilLoadingHasFinished(); }); + it('defaults the closure option correctly', async () => { await cases.common.assertRadioGroupValue('closure-options-radio-group', 'close-by-user'); }); @@ -53,5 +55,54 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { expect(await testSubjects.exists('euiFlyoutCloseButton')).to.be(false); }); }); + + describe('Custom fields', function () { + it('adds a custom field', async () => { + await testSubjects.existOrFail('custom-fields-form-group'); + await common.clickAndValidate('add-custom-field', 'custom-field-flyout'); + + await testSubjects.setValue('custom-field-label-input', 'Summary'); + + await testSubjects.setCheckbox('text-custom-field-options-wrapper', 'check'); + + await testSubjects.click('custom-field-flyout-save'); + expect(await testSubjects.exists('euiFlyoutCloseButton')).to.be(false); + + await testSubjects.existOrFail('custom-fields-list'); + + expect(await testSubjects.getVisibleText('custom-fields-list')).to.be('Summary\nText'); + }); + + it('edits a custom field', async () => { + await testSubjects.existOrFail('custom-fields-form-group'); + const textField = await find.byCssSelector('[data-test-subj*="-custom-field-edit"]'); + + await textField.click(); + + const input = await testSubjects.find('custom-field-label-input'); + + await input.type('!!!'); + + await testSubjects.click('custom-field-flyout-save'); + expect(await testSubjects.exists('euiFlyoutCloseButton')).to.be(false); + + await testSubjects.existOrFail('custom-fields-list'); + + expect(await testSubjects.getVisibleText('custom-fields-list')).to.be('Summary!!!\nText'); + }); + + it('deletes a custom field', async () => { + await testSubjects.existOrFail('custom-fields-form-group'); + const deleteButton = await find.byCssSelector('[data-test-subj*="-custom-field-delete"]'); + + await deleteButton.click(); + + await testSubjects.existOrFail('confirm-delete-custom-field-modal'); + + await testSubjects.click('confirmModalConfirmButton'); + + await testSubjects.missingOrFail('custom-fields-list'); + }); + }); }); }; diff --git a/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts b/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts index b243fb245503f..bd51ed5b848a6 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts @@ -17,6 +17,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { const cases = getService('cases'); const toasts = getService('toasts'); const retry = getService('retry'); + const find = getService('find'); describe('Configure Case', function () { // Error: timed out waiting for assertRadioGroupValue: Expected the radio group value to equal "close-by-pushing" @@ -67,5 +68,54 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { expect(await testSubjects.exists('euiFlyoutCloseButton')).to.be(false); }); }); + + describe('Custom fields', function () { + it('adds a custom field', async () => { + await testSubjects.existOrFail('custom-fields-form-group'); + await common.clickAndValidate('add-custom-field', 'custom-field-flyout'); + + await testSubjects.setValue('custom-field-label-input', 'Summary'); + + await testSubjects.setCheckbox('text-custom-field-options-wrapper', 'check'); + + await testSubjects.click('custom-field-flyout-save'); + expect(await testSubjects.exists('euiFlyoutCloseButton')).to.be(false); + + await testSubjects.existOrFail('custom-fields-list'); + + expect(await testSubjects.getVisibleText('custom-fields-list')).to.be('Summary\nText'); + }); + + it('edits a custom field', async () => { + await testSubjects.existOrFail('custom-fields-form-group'); + const textField = await find.byCssSelector('[data-test-subj*="-custom-field-edit"]'); + + await textField.click(); + + const input = await testSubjects.find('custom-field-label-input'); + + await input.type('!!!'); + + await testSubjects.click('custom-field-flyout-save'); + expect(await testSubjects.exists('euiFlyoutCloseButton')).to.be(false); + + await testSubjects.existOrFail('custom-fields-list'); + + expect(await testSubjects.getVisibleText('custom-fields-list')).to.be('Summary!!!\nText'); + }); + + it('deletes a custom field', async () => { + await testSubjects.existOrFail('custom-fields-form-group'); + const deleteButton = await find.byCssSelector('[data-test-subj*="-custom-field-delete"]'); + + await deleteButton.click(); + + await testSubjects.existOrFail('confirm-delete-custom-field-modal'); + + await testSubjects.click('confirmModalConfirmButton'); + + await testSubjects.missingOrFail('custom-fields-list'); + }); + }); }); }; diff --git a/x-pack/test_serverless/functional/test_suites/observability/cases/create_case_form.ts b/x-pack/test_serverless/functional/test_suites/observability/cases/create_case_form.ts index e0166ac9de2df..58fb83ce2c877 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/cases/create_case_form.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/cases/create_case_form.ts @@ -7,7 +7,7 @@ import expect from '@kbn/expect'; import { v4 as uuidv4 } from 'uuid'; -import { CaseSeverity } from '@kbn/cases-plugin/common/types/domain'; +import { CaseSeverity, CustomFieldTypes } from '@kbn/cases-plugin/common/types/domain'; import { OBSERVABILITY_OWNER } from '@kbn/cases-plugin/common'; import { FtrProviderContext } from '../../../ftr_provider_context'; import { navigateToCasesApp } from '../../../../shared/lib/cases'; @@ -74,5 +74,62 @@ export default ({ getService, getPageObject }: FtrProviderContext) => { const button = await find.byCssSelector('[data-test-subj*="case-callout"] button'); expect(await button.getVisibleText()).equal('Add connector'); }); + + describe('customFields', () => { + it('creates a case with custom fields', async () => { + const customFields = [ + { + key: 'valid_key_1', + label: 'Summary', + type: CustomFieldTypes.TEXT, + required: true, + }, + { + key: 'valid_key_2', + label: 'Sync', + type: CustomFieldTypes.TOGGLE, + required: true, + }, + ]; + + await cases.api.createConfigWithCustomFields({ customFields, owner }); + + const caseTitle = 'test-' + uuidv4(); + await cases.create.openCreateCasePage(); + + // verify custom fields on create case page + await testSubjects.existOrFail('create-case-custom-fields'); + + await cases.create.setTitle(caseTitle); + await cases.create.setDescription('this is a test description'); + + // set custom field values + const textCustomField = await testSubjects.find( + `${customFields[0].key}-text-create-custom-field` + ); + await textCustomField.type('This is a sample text!'); + + const toggleCustomField = await testSubjects.find( + `${customFields[1].key}-toggle-create-custom-field` + ); + await toggleCustomField.click(); + + await cases.create.submitCase(); + + await header.waitUntilLoadingHasFinished(); + + await testSubjects.existOrFail('case-view-title'); + + // validate custom fields + const summary = await testSubjects.find(`case-text-custom-field-${customFields[0].key}`); + + expect(await summary.getVisibleText()).equal('This is a sample text!'); + + const sync = await testSubjects.find( + `case-toggle-custom-field-form-field-${customFields[1].key}` + ); + expect(await sync.getAttribute('aria-checked')).equal('true'); + }); + }); }); }; diff --git a/x-pack/test_serverless/functional/test_suites/observability/cases/view_case.ts b/x-pack/test_serverless/functional/test_suites/observability/cases/view_case.ts index ac0fb6fec9d5f..2dbef464bb4e7 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/cases/view_case.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/cases/view_case.ts @@ -7,7 +7,11 @@ import expect from '@kbn/expect'; import { v4 as uuidv4 } from 'uuid'; -import { CaseSeverity, CaseStatuses } from '@kbn/cases-plugin/common/types/domain'; +import { + CaseSeverity, + CaseStatuses, + CustomFieldTypes, +} from '@kbn/cases-plugin/common/types/domain'; import { OBSERVABILITY_OWNER } from '@kbn/cases-plugin/common'; import { FtrProviderContext } from '../../../ftr_provider_context'; @@ -453,5 +457,96 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { expect(reporterText).to.be('elastic_serverless'); }); }); + + describe('customFields', () => { + const customFields = [ + { + key: 'valid_key_1', + label: 'Summary', + type: CustomFieldTypes.TEXT, + required: true, + }, + { + key: 'valid_key_2', + label: 'Sync', + type: CustomFieldTypes.TOGGLE, + required: true, + }, + ]; + + before(async () => { + await svlCommonNavigation.sidenav.clickLink({ deepLinkId: 'observability-overview:cases' }); + await cases.api.createConfigWithCustomFields({ customFields, owner }); + await cases.api.createCase({ + customFields: [ + { + key: 'valid_key_1', + type: CustomFieldTypes.TEXT, + value: ['this is a text field value'], + }, + { + key: 'valid_key_2', + type: CustomFieldTypes.TOGGLE, + value: true, + }, + ], + owner, + }); + await cases.casesTable.waitForCasesToBeListed(); + await cases.casesTable.goToFirstListedCase(); + await header.waitUntilLoadingHasFinished(); + }); + + afterEach(async () => { + await cases.api.deleteAllCases(); + }); + + it('updates a custom field correctly', async () => { + const summary = await testSubjects.find(`case-text-custom-field-${customFields[0].key}`); + expect(await summary.getVisibleText()).equal('this is a text field value'); + + const sync = await testSubjects.find( + `case-toggle-custom-field-form-field-${customFields[1].key}` + ); + expect(await sync.getAttribute('aria-checked')).equal('true'); + + await testSubjects.click(`case-text-custom-field-edit-button-${customFields[0].key}`); + + await retry.waitFor('custom field edit form to exist', async () => { + return await testSubjects.exists( + `case-text-custom-field-form-field-${customFields[0].key}` + ); + }); + + const inputField = await testSubjects.find( + `case-text-custom-field-form-field-${customFields[0].key}` + ); + + await inputField.type(' edited!!'); + + await testSubjects.click(`case-text-custom-field-submit-button-${customFields[0].key}`); + + await retry.waitFor('update toast exist', async () => { + return await testSubjects.exists('toastCloseButton'); + }); + + await testSubjects.click('toastCloseButton'); + + await sync.click(); + + await header.waitUntilLoadingHasFinished(); + + expect(await summary.getVisibleText()).equal('this is a text field value edited!!'); + + expect(await sync.getAttribute('aria-checked')).equal('false'); + + // validate user action + const userActions = await find.allByCssSelector( + '[data-test-subj*="customFields-update-action"]' + ); + + expect(userActions).length(2); + }); + }); }); }; diff --git a/x-pack/test_serverless/functional/test_suites/security/ftr/cases/configure.ts b/x-pack/test_serverless/functional/test_suites/security/ftr/cases/configure.ts index 6eb306d43ad00..e74deac161b26 100644 --- a/x-pack/test_serverless/functional/test_suites/security/ftr/cases/configure.ts +++ b/x-pack/test_serverless/functional/test_suites/security/ftr/cases/configure.ts @@ -16,6 +16,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { const cases = getService('cases'); const toasts = getService('toasts'); const retry = getService('retry'); + const find = getService('find'); describe('Configure Case', function () { // security_exception: action [indices:data/write/delete/byquery] is unauthorized for user [elastic] with effective roles [superuser] on restricted indices [.kibana_alerting_cases], this action is granted by the index privileges [delete,write,all] @@ -64,5 +65,54 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { expect(await testSubjects.exists('euiFlyoutCloseButton')).to.be(false); }); }); + + describe('Custom fields', function () { + it('adds a custom field', async () => { + await testSubjects.existOrFail('custom-fields-form-group'); + await common.clickAndValidate('add-custom-field', 'custom-field-flyout'); + + await testSubjects.setValue('custom-field-label-input', 'Summary'); + + await testSubjects.setCheckbox('text-custom-field-options-wrapper', 'check'); + + await testSubjects.click('custom-field-flyout-save'); + expect(await testSubjects.exists('euiFlyoutCloseButton')).to.be(false); + + await testSubjects.existOrFail('custom-fields-list'); + + expect(await testSubjects.getVisibleText('custom-fields-list')).to.be('Summary\nText'); + }); + + it('edits a custom field', async () => { + await testSubjects.existOrFail('custom-fields-form-group'); + const textField = await find.byCssSelector('[data-test-subj*="-custom-field-edit"]'); + + await textField.click(); + + const input = await testSubjects.find('custom-field-label-input'); + + await input.type('!!!'); + + await testSubjects.click('custom-field-flyout-save'); + expect(await testSubjects.exists('euiFlyoutCloseButton')).to.be(false); + + await testSubjects.existOrFail('custom-fields-list'); + + expect(await testSubjects.getVisibleText('custom-fields-list')).to.be('Summary!!!\nText'); + }); + + it('deletes a custom field', async () => { + await testSubjects.existOrFail('custom-fields-form-group'); + const deleteButton = await find.byCssSelector('[data-test-subj*="-custom-field-delete"]'); + + await deleteButton.click(); + + await testSubjects.existOrFail('confirm-delete-custom-field-modal'); + + await testSubjects.click('confirmModalConfirmButton'); + + await testSubjects.missingOrFail('custom-fields-list'); + }); + }); }); }; diff --git a/x-pack/test_serverless/functional/test_suites/security/ftr/cases/create_case_form.ts b/x-pack/test_serverless/functional/test_suites/security/ftr/cases/create_case_form.ts index f6436c6ffc6c6..9acc6378b620e 100644 --- a/x-pack/test_serverless/functional/test_suites/security/ftr/cases/create_case_form.ts +++ b/x-pack/test_serverless/functional/test_suites/security/ftr/cases/create_case_form.ts @@ -7,7 +7,7 @@ import expect from '@kbn/expect'; import { v4 as uuidv4 } from 'uuid'; -import { CaseSeverity } from '@kbn/cases-plugin/common/types/domain'; +import { CaseSeverity, CustomFieldTypes } from '@kbn/cases-plugin/common/types/domain'; import { SECURITY_SOLUTION_OWNER } from '@kbn/cases-plugin/common'; import { FtrProviderContext } from '../../../../ftr_provider_context'; import { navigateToCasesApp } from '../../../../../shared/lib/cases'; @@ -73,5 +73,62 @@ export default ({ getService, getPageObject }: FtrProviderContext) => { const button = await find.byCssSelector('[data-test-subj*="case-callout"] button'); expect(await button.getVisibleText()).equal('Add connector'); }); + + describe('customFields', () => { + it('creates a case with custom fields', async () => { + const customFields = [ + { + key: 'valid_key_1', + label: 'Summary', + type: CustomFieldTypes.TEXT, + required: true, + }, + { + key: 'valid_key_2', + label: 'Sync', + type: CustomFieldTypes.TOGGLE, + required: true, + }, + ]; + + await cases.api.createConfigWithCustomFields({ customFields, owner }); + + const caseTitle = 'test-' + uuidv4(); + await cases.create.openCreateCasePage(); + + // verify custom fields on create case page + await testSubjects.existOrFail('create-case-custom-fields'); + + await cases.create.setTitle(caseTitle); + await cases.create.setDescription('this is a test description'); + + // set custom field values + const textCustomField = await testSubjects.find( + `${customFields[0].key}-text-create-custom-field` + ); + await textCustomField.type('This is a sample text!'); + + const toggleCustomField = await testSubjects.find( + `${customFields[1].key}-toggle-create-custom-field` + ); + await toggleCustomField.click(); + + await cases.create.submitCase(); + + await header.waitUntilLoadingHasFinished(); + + await testSubjects.existOrFail('case-view-title'); + + // validate custom fields + const summary = await testSubjects.find(`case-text-custom-field-${customFields[0].key}`); + + expect(await summary.getVisibleText()).equal('This is a sample text!'); + + const sync = await testSubjects.find( + `case-toggle-custom-field-form-field-${customFields[1].key}` + ); + expect(await sync.getAttribute('aria-checked')).equal('true'); + }); + }); }); }; diff --git a/x-pack/test_serverless/functional/test_suites/security/ftr/cases/view_case.ts b/x-pack/test_serverless/functional/test_suites/security/ftr/cases/view_case.ts index 244867a1a0a1b..517dddbb5ecc6 100644 --- a/x-pack/test_serverless/functional/test_suites/security/ftr/cases/view_case.ts +++ b/x-pack/test_serverless/functional/test_suites/security/ftr/cases/view_case.ts @@ -7,7 +7,11 @@ import expect from '@kbn/expect'; import { v4 as uuidv4 } from 'uuid'; -import { CaseSeverity, CaseStatuses } from '@kbn/cases-plugin/common/types/domain'; +import { + CaseSeverity, + CaseStatuses, + CustomFieldTypes, +} from '@kbn/cases-plugin/common/types/domain'; import { SECURITY_SOLUTION_OWNER } from '@kbn/cases-plugin/common'; import { FtrProviderContext } from '../../../../ftr_provider_context'; @@ -452,5 +456,97 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { expect(reporterText).to.be('elastic_serverless'); }); }); + + describe('customFields', () => { + const customFields = [ + { + key: 'valid_key_1', + label: 'Summary', + type: CustomFieldTypes.TEXT, + required: true, + }, + { + key: 'valid_key_2', + label: 'Sync', + type: CustomFieldTypes.TOGGLE, + required: true, + }, + ]; + + before(async () => { + await testSubjects.click('solutionSideNavItemLink-cases'); + await cases.api.createConfigWithCustomFields({ customFields, owner }); + await cases.api.createCase({ + customFields: [ + { + key: 'valid_key_1', + type: CustomFieldTypes.TEXT, + value: ['this is a text field value'], + }, + { + key: 'valid_key_2', + type: CustomFieldTypes.TOGGLE, + value: true, + }, + ], + owner, + }); + + await cases.casesTable.waitForCasesToBeListed(); + await cases.casesTable.goToFirstListedCase(); + await header.waitUntilLoadingHasFinished(); + }); + + afterEach(async () => { + await cases.api.deleteAllCases(); + }); + + it('updates a custom field correctly', async () => { + const summary = await testSubjects.find(`case-text-custom-field-${customFields[0].key}`); + expect(await summary.getVisibleText()).equal('this is a text field value'); + + const sync = await testSubjects.find( + `case-toggle-custom-field-form-field-${customFields[1].key}` + ); + expect(await sync.getAttribute('aria-checked')).equal('true'); + + await testSubjects.click(`case-text-custom-field-edit-button-${customFields[0].key}`); + + await retry.waitFor('custom field edit form to exist', async () => { + return await testSubjects.exists( + `case-text-custom-field-form-field-${customFields[0].key}` + ); + }); + + const inputField = await testSubjects.find( + `case-text-custom-field-form-field-${customFields[0].key}` + ); + + await inputField.type(' edited!!'); + + await testSubjects.click(`case-text-custom-field-submit-button-${customFields[0].key}`); + + await retry.waitFor('update toast exist', async () => { + return await testSubjects.exists('toastCloseButton'); + }); + + await testSubjects.click('toastCloseButton'); + + await sync.click(); + + await header.waitUntilLoadingHasFinished(); + + expect(await summary.getVisibleText()).equal('this is a text field value edited!!'); + + expect(await sync.getAttribute('aria-checked')).equal('false'); + + // validate user action + const userActions = await find.allByCssSelector( + '[data-test-subj*="customFields-update-action"]' + ); + + expect(userActions).length(2); + }); + }); }); }; From aa48e31bfcc61e95987d487c688c73c3fa33cddf Mon Sep 17 00:00:00 2001 From: Achyut Jhunjhunwala Date: Tue, 10 Oct 2023 10:16:37 +0200 Subject: [PATCH 14/48] [APM] Add logic to use useSummaryField Prop for get Services endpoint (#168108) ## Summary Closes https://github.com/elastic/kibana/issues/168031 - This PR includes a long list of files. But mostly they are tests and places which calls the `getServicesItems` function either directly or via the endpoint. We have introduced an additional parameter which is already present in other endpoints, which would make sure if `transaction.duration.summary` field is present, then use it for aggregations as its faster. In case of transaction events, it would fallback to `transaction.duration.histogram` - To keep the scope simple, API tests are simply setting `true/false`. Rule of thumb used here is, for function calls in API tests, which are using transaction events i am passing `useDurationSummary: false` and which are using metric, passing `useDurationSummary: true`. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../components/app/service_inventory/index.tsx | 3 +++ .../server/routes/assistant_functions/route.ts | 1 + .../get_service_transaction_stats.ts | 7 ++++++- .../services/get_services/get_services_items.ts | 3 +++ .../apm/server/routes/services/queries.test.ts | 1 + .../plugins/apm/server/routes/services/route.ts | 16 ++++++++++++++-- .../tests/alerts/helpers/alerting_api_helper.ts | 1 + .../tests/error_rate/service_apis.spec.ts | 2 ++ .../tests/error_rate/service_maps.spec.ts | 2 ++ .../tests/fleet/input_only_package.spec.ts | 1 + .../tests/latency/service_apis.spec.ts | 2 ++ .../tests/latency/service_maps.spec.ts | 2 ++ .../observability_overview.spec.ts | 1 + .../service_group_with_overflow.spec.ts | 1 + .../tests/services/top_services.spec.ts | 10 ++++++++++ .../tests/throughput/service_apis.spec.ts | 2 ++ .../tests/throughput/service_maps.spec.ts | 2 ++ 17 files changed, 54 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/apm/public/components/app/service_inventory/index.tsx b/x-pack/plugins/apm/public/components/app/service_inventory/index.tsx index 3158ed7a285e4..1073a459cecbc 100644 --- a/x-pack/plugins/apm/public/components/app/service_inventory/index.tsx +++ b/x-pack/plugins/apm/public/components/app/service_inventory/index.tsx @@ -65,6 +65,8 @@ function useServicesMainStatisticsFetcher() { numBuckets: 20, }); + const shouldUseDurationSummary = !!preferred?.source?.hasDurationSummaryField; + const mainStatisticsFetch = useProgressiveFetcher( (callApmApi) => { if (preferred) { @@ -76,6 +78,7 @@ function useServicesMainStatisticsFetcher() { start, end, serviceGroup, + useDurationSummary: shouldUseDurationSummary, documentType: preferred.source.documentType, rollupInterval: preferred.source.rollupInterval, }, diff --git a/x-pack/plugins/apm/server/routes/assistant_functions/route.ts b/x-pack/plugins/apm/server/routes/assistant_functions/route.ts index 0d86bff4f7406..9a9fe3c2ee796 100644 --- a/x-pack/plugins/apm/server/routes/assistant_functions/route.ts +++ b/x-pack/plugins/apm/server/routes/assistant_functions/route.ts @@ -260,6 +260,7 @@ const getApmServicesListRoute = createApmServerRoute({ rollupInterval: RollupInterval.OneMinute, serviceGroup: null, mlClient, + useDurationSummary: false, }); let mappedItems = serviceItems.items.map((item): ApmServicesListItem => { diff --git a/x-pack/plugins/apm/server/routes/services/get_services/get_service_transaction_stats.ts b/x-pack/plugins/apm/server/routes/services/get_services/get_service_transaction_stats.ts index 9557d130522a6..6362b4a3c5e5a 100644 --- a/x-pack/plugins/apm/server/routes/services/get_services/get_service_transaction_stats.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/get_service_transaction_stats.ts @@ -44,6 +44,7 @@ interface AggregationParams { | ApmDocumentType.TransactionMetric | ApmDocumentType.TransactionEvent; rollupInterval: RollupInterval; + useDurationSummary: boolean; } export interface ServiceTransactionStatsResponse { @@ -70,13 +71,17 @@ export async function getServiceTransactionStats({ randomSampler, documentType, rollupInterval, + useDurationSummary, }: AggregationParams): Promise { const outcomes = getOutcomeAggregation(documentType); const metrics = { avg_duration: { avg: { - field: getDurationFieldForTransactions(documentType), + field: getDurationFieldForTransactions( + documentType, + useDurationSummary + ), }, }, ...outcomes, diff --git a/x-pack/plugins/apm/server/routes/services/get_services/get_services_items.ts b/x-pack/plugins/apm/server/routes/services/get_services/get_services_items.ts index a2fdd0a4d6712..c36754e4cf50f 100644 --- a/x-pack/plugins/apm/server/routes/services/get_services/get_services_items.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/get_services_items.ts @@ -41,6 +41,7 @@ export async function getServicesItems({ randomSampler, documentType, rollupInterval, + useDurationSummary, }: { environment: string; kuery: string; @@ -54,6 +55,7 @@ export async function getServicesItems({ randomSampler: RandomSampler; documentType: ApmServiceTransactionDocumentType; rollupInterval: RollupInterval; + useDurationSummary: boolean; }): Promise { return withApmSpan('get_services_items', async () => { const commonParams = { @@ -66,6 +68,7 @@ export async function getServicesItems({ randomSampler, documentType, rollupInterval, + useDurationSummary, }; const [ diff --git a/x-pack/plugins/apm/server/routes/services/queries.test.ts b/x-pack/plugins/apm/server/routes/services/queries.test.ts index 7f04d59639b31..7d45899aa84c0 100644 --- a/x-pack/plugins/apm/server/routes/services/queries.test.ts +++ b/x-pack/plugins/apm/server/routes/services/queries.test.ts @@ -71,6 +71,7 @@ describe('services queries', () => { seed: 0, }, apmAlertsClient: mockApmAlertsClient, + useDurationSummary: false, }) ); diff --git a/x-pack/plugins/apm/server/routes/services/route.ts b/x-pack/plugins/apm/server/routes/services/route.ts index ac394dbe467f5..24dc79ea668b4 100644 --- a/x-pack/plugins/apm/server/routes/services/route.ts +++ b/x-pack/plugins/apm/server/routes/services/route.ts @@ -6,7 +6,12 @@ */ import Boom from '@hapi/boom'; -import { isoToEpochRt, jsonRt, toNumberRt } from '@kbn/io-ts-utils'; +import { + isoToEpochRt, + jsonRt, + toBooleanRt, + toNumberRt, +} from '@kbn/io-ts-utils'; import { InsufficientMLCapabilities, MLPrivilegesUninitialized, @@ -105,7 +110,12 @@ const servicesRoute = createApmServerRoute({ t.partial({ serviceGroup: t.string }), t.intersection([ probabilityRt, - serviceTransactionDataSourceRt, + t.intersection([ + serviceTransactionDataSourceRt, + t.type({ + useDurationSummary: toBooleanRt, + }), + ]), environmentRt, kueryRt, rangeRt, @@ -131,6 +141,7 @@ const servicesRoute = createApmServerRoute({ probability, documentType, rollupInterval, + useDurationSummary, } = params.query; const savedObjectsClient = (await context.core).savedObjects.client; @@ -163,6 +174,7 @@ const servicesRoute = createApmServerRoute({ randomSampler, documentType, rollupInterval, + useDurationSummary, }); }, }); diff --git a/x-pack/test/apm_api_integration/tests/alerts/helpers/alerting_api_helper.ts b/x-pack/test/apm_api_integration/tests/alerts/helpers/alerting_api_helper.ts index e0423d9372d1d..0a500d1ad7bd4 100644 --- a/x-pack/test/apm_api_integration/tests/alerts/helpers/alerting_api_helper.ts +++ b/x-pack/test/apm_api_integration/tests/alerts/helpers/alerting_api_helper.ts @@ -71,6 +71,7 @@ export async function fetchServiceInventoryAlertCounts(apmApiClient: ApmApiClien probability: 1, documentType: ApmDocumentType.ServiceTransactionMetric, rollupInterval: RollupInterval.SixtyMinutes, + useDurationSummary: true, }, }, }); diff --git a/x-pack/test/apm_api_integration/tests/error_rate/service_apis.spec.ts b/x-pack/test/apm_api_integration/tests/error_rate/service_apis.spec.ts index 57807ec28c91b..bdcd2f30c1f84 100644 --- a/x-pack/test/apm_api_integration/tests/error_rate/service_apis.spec.ts +++ b/x-pack/test/apm_api_integration/tests/error_rate/service_apis.spec.ts @@ -51,10 +51,12 @@ export default function ApiTest({ getService }: FtrProviderContext) { ? { documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, } : { documentType: ApmDocumentType.TransactionEvent, rollupInterval: RollupInterval.None, + useDurationSummary: false, }), }, }, diff --git a/x-pack/test/apm_api_integration/tests/error_rate/service_maps.spec.ts b/x-pack/test/apm_api_integration/tests/error_rate/service_maps.spec.ts index 6df94ac122161..4207d9ea5c4a4 100644 --- a/x-pack/test/apm_api_integration/tests/error_rate/service_maps.spec.ts +++ b/x-pack/test/apm_api_integration/tests/error_rate/service_maps.spec.ts @@ -39,10 +39,12 @@ export default function ApiTest({ getService }: FtrProviderContext) { ? { documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, } : { documentType: ApmDocumentType.TransactionEvent, rollupInterval: RollupInterval.None, + useDurationSummary: false, }), }, }, diff --git a/x-pack/test/apm_api_integration/tests/fleet/input_only_package.spec.ts b/x-pack/test/apm_api_integration/tests/fleet/input_only_package.spec.ts index 982d37b802792..5b96b2ad8d1fb 100644 --- a/x-pack/test/apm_api_integration/tests/fleet/input_only_package.spec.ts +++ b/x-pack/test/apm_api_integration/tests/fleet/input_only_package.spec.ts @@ -189,6 +189,7 @@ function getApmServices(apmApiClient: ApmApiClient, start: string, end: string) kuery: '', documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, }, }, }); diff --git a/x-pack/test/apm_api_integration/tests/latency/service_apis.spec.ts b/x-pack/test/apm_api_integration/tests/latency/service_apis.spec.ts index 11fbdbee97f13..d174bcdf03411 100644 --- a/x-pack/test/apm_api_integration/tests/latency/service_apis.spec.ts +++ b/x-pack/test/apm_api_integration/tests/latency/service_apis.spec.ts @@ -54,10 +54,12 @@ export default function ApiTest({ getService }: FtrProviderContext) { ? { documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, } : { documentType: ApmDocumentType.TransactionEvent, rollupInterval: RollupInterval.None, + useDurationSummary: false, }), }, }, diff --git a/x-pack/test/apm_api_integration/tests/latency/service_maps.spec.ts b/x-pack/test/apm_api_integration/tests/latency/service_maps.spec.ts index 5f0f40c12b57a..b31d5a66b8389 100644 --- a/x-pack/test/apm_api_integration/tests/latency/service_maps.spec.ts +++ b/x-pack/test/apm_api_integration/tests/latency/service_maps.spec.ts @@ -39,10 +39,12 @@ export default function ApiTest({ getService }: FtrProviderContext) { ? { documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, } : { documentType: ApmDocumentType.TransactionEvent, rollupInterval: RollupInterval.None, + useDurationSummary: false, }), }, }, diff --git a/x-pack/test/apm_api_integration/tests/observability_overview/observability_overview.spec.ts b/x-pack/test/apm_api_integration/tests/observability_overview/observability_overview.spec.ts index 58585ae7477db..129f6350a3784 100644 --- a/x-pack/test/apm_api_integration/tests/observability_overview/observability_overview.spec.ts +++ b/x-pack/test/apm_api_integration/tests/observability_overview/observability_overview.spec.ts @@ -36,6 +36,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { kuery: '', documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, }, }, }), diff --git a/x-pack/test/apm_api_integration/tests/service_groups/service_group_with_overflow/service_group_with_overflow.spec.ts b/x-pack/test/apm_api_integration/tests/service_groups/service_group_with_overflow/service_group_with_overflow.spec.ts index dba8a21521a89..26d6b54025cca 100644 --- a/x-pack/test/apm_api_integration/tests/service_groups/service_group_with_overflow/service_group_with_overflow.spec.ts +++ b/x-pack/test/apm_api_integration/tests/service_groups/service_group_with_overflow/service_group_with_overflow.spec.ts @@ -90,6 +90,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { probability: 1, documentType: ApmDocumentType.ServiceTransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, }, }, }); diff --git a/x-pack/test/apm_api_integration/tests/services/top_services.spec.ts b/x-pack/test/apm_api_integration/tests/services/top_services.spec.ts index 91534921de4d5..b519a28de70e8 100644 --- a/x-pack/test/apm_api_integration/tests/services/top_services.spec.ts +++ b/x-pack/test/apm_api_integration/tests/services/top_services.spec.ts @@ -49,6 +49,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { probability: 1, documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, }, }, }); @@ -192,6 +193,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { probability: 1, documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, }, }, }); @@ -227,6 +229,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { probability: 1, documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, }, }, }); @@ -264,6 +267,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { probability: 1, documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, }, }, }); @@ -301,6 +305,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { probability: 1, documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, }, }, }); @@ -328,6 +333,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { probability: 1, documentType: ApmDocumentType.ServiceTransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, }, }, }); @@ -359,6 +365,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { probability: 1, documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.TenMinutes, + useDurationSummary: true, }, }, }); @@ -394,6 +401,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { probability: 1, documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, }, }, }); @@ -451,6 +459,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { probability: 1, documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, }, }, }); @@ -487,6 +496,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { probability: 1, documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, }, }, }); diff --git a/x-pack/test/apm_api_integration/tests/throughput/service_apis.spec.ts b/x-pack/test/apm_api_integration/tests/throughput/service_apis.spec.ts index c79a8e7eba04f..8294797a08949 100644 --- a/x-pack/test/apm_api_integration/tests/throughput/service_apis.spec.ts +++ b/x-pack/test/apm_api_integration/tests/throughput/service_apis.spec.ts @@ -47,10 +47,12 @@ export default function ApiTest({ getService }: FtrProviderContext) { ? { documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, } : { documentType: ApmDocumentType.TransactionEvent, rollupInterval: RollupInterval.None, + useDurationSummary: false, }), }, }, diff --git a/x-pack/test/apm_api_integration/tests/throughput/service_maps.spec.ts b/x-pack/test/apm_api_integration/tests/throughput/service_maps.spec.ts index d321217a33c03..3ca048253bf34 100644 --- a/x-pack/test/apm_api_integration/tests/throughput/service_maps.spec.ts +++ b/x-pack/test/apm_api_integration/tests/throughput/service_maps.spec.ts @@ -50,10 +50,12 @@ export default function ApiTest({ getService }: FtrProviderContext) { ? { documentType: ApmDocumentType.TransactionMetric, rollupInterval: RollupInterval.OneMinute, + useDurationSummary: true, } : { documentType: ApmDocumentType.TransactionEvent, rollupInterval: RollupInterval.None, + useDurationSummary: false, }), }, }, From 7839d518fbeb4a960fd19a98ae4cf13fdff69748 Mon Sep 17 00:00:00 2001 From: Cristina Amico Date: Tue, 10 Oct 2023 10:55:04 +0200 Subject: [PATCH 15/48] [Fleet] Fix validation errors in KQL queries (#168329) Related to https://github.com/elastic/kibana/issues/167139 ## Summary [Fleet] Fix validation errors in KQL searchboxes ### Testing - In the agent list searchbox, type the following query: ``` agent.version : 8.10.0 ``` The UI shouldn't display any error ### 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 --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../fleet/server/constants/mappings.ts | 9 +- .../server/routes/utils/filter_utils.test.ts | 2 +- .../fleet/server/routes/utils/filter_utils.ts | 54 ++++----- .../utils/filter_utils_real_queries.test.ts | 108 +++++++++++++++--- 4 files changed, 128 insertions(+), 45 deletions(-) diff --git a/x-pack/plugins/fleet/server/constants/mappings.ts b/x-pack/plugins/fleet/server/constants/mappings.ts index 617a5d35a46de..9ae9353396803 100644 --- a/x-pack/plugins/fleet/server/constants/mappings.ts +++ b/x-pack/plugins/fleet/server/constants/mappings.ts @@ -6,9 +6,12 @@ */ /** - * The mappings declared closely mirror the ones declared in indices and SOs - * But they are only used to perform validation on those endpoints using ListWithKuery - * Whenever a field is added on any of these mappings, make sure to add it here as well + * ATTENTION: New mappings for Fleet are defined in the ElasticSearch repo. + * + * The following mappings declared here closely mirror them + * But they are only used to perform validation on the endpoints using ListWithKuery + * They're needed to perform searches on these mapping trough the KQL searchboxes in the UI. + * Whenever a field is added on any of these mappings in ES, make sure to add it here as well */ export const AGENT_POLICY_MAPPINGS = { diff --git a/x-pack/plugins/fleet/server/routes/utils/filter_utils.test.ts b/x-pack/plugins/fleet/server/routes/utils/filter_utils.test.ts index f888959b152c4..c73f7e8762669 100644 --- a/x-pack/plugins/fleet/server/routes/utils/filter_utils.test.ts +++ b/x-pack/plugins/fleet/server/routes/utils/filter_utils.test.ts @@ -405,7 +405,7 @@ describe('Filter Utils', () => { }, { astPath: 'arguments.1', - error: 'The key is empty and needs to be wrapped by a saved object type like foo', + error: 'Invalid key', isSavedObjectAttr: false, key: null, type: null, diff --git a/x-pack/plugins/fleet/server/routes/utils/filter_utils.ts b/x-pack/plugins/fleet/server/routes/utils/filter_utils.ts index fccddd66891c6..4b34bd788d29a 100644 --- a/x-pack/plugins/fleet/server/routes/utils/filter_utils.ts +++ b/x-pack/plugins/fleet/server/routes/utils/filter_utils.ts @@ -131,8 +131,8 @@ export const hasFilterKeyError = ( indexMapping: IndexMapping, skipNormalization?: boolean ): string | null => { - if (key == null) { - return `The key is empty and needs to be wrapped by a saved object type like ${types.join()}`; + if (!key) { + return `Invalid key`; } if (!key.includes('.')) { if (allowedTerms.some((term) => term === key) || fieldDefined(indexMapping, key)) { @@ -141,12 +141,11 @@ export const hasFilterKeyError = ( return `This type '${key}' is not allowed`; } else if (key.includes('.')) { const keySplit = key.split('.'); - if ( - keySplit.length <= 1 && - !fieldDefined(indexMapping, keySplit[0]) && - !types.includes(keySplit[0]) - ) { - return `This type '${keySplit[0]}' is not allowed`; + const firstField = keySplit[0]; + const hasIndexWrap = types.includes(firstField); + + if (keySplit.length <= 1 && !fieldDefined(indexMapping, firstField) && !hasIndexWrap) { + return `This type '${firstField}' is not allowed`; } // In some cases we don't want to check about the `attributes` presence // In that case pass the `skipNormalization` parameter @@ -157,34 +156,35 @@ export const hasFilterKeyError = ( return `This key '${key}' does NOT match the filter proposition SavedObjectType.attributes.key`; } // Check that the key exists in the mappings - const searchKey = - skipNormalization || keySplit[1] !== 'attributes' - ? `${keySplit[0]}.${keySplit.slice(1, keySplit.length).join('.')}` - : `${keySplit[0]}.${keySplit.slice(2, keySplit.length).join('.')}`; - if ( - (keySplit.length === 2 && !fieldDefined(indexMapping, keySplit[1])) || - (keySplit.length === 2 && - !types.includes(keySplit[0]) && - !fieldDefined(indexMapping, searchKey)) || - (keySplit.length > 2 && !fieldDefined(indexMapping, searchKey)) - ) { + let searchKey = ''; + if (keySplit.length === 2) { + searchKey = hasIndexWrap ? keySplit[1] : key; + } else if (keySplit.length > 2) { + searchKey = + skipNormalization || keySplit[1] !== 'attributes' + ? `${firstField}.${keySplit.slice(1, keySplit.length).join('.')}` + : `${firstField}.${keySplit.slice(2, keySplit.length).join('.')}`; + } + if (!fieldDefined(indexMapping, searchKey)) { return `This key '${key}' does NOT exist in ${types.join()} saved object index patterns`; } } return null; }; +const getMappingKey = (key?: string) => + !!key ? 'properties.' + key.split('.').join('.properties.') : ''; + export const fieldDefined = (indexMappings: IndexMapping, key: string): boolean => { const keySplit = key.split('.'); const shortenedKey = `${keySplit[1]}.${keySplit.slice(2, keySplit.length).join('.')}`; - const mappingKey = 'properties.' + key.split('.').join('.properties.'); - const shortenedMappingKey = 'properties.' + shortenedKey.split('.').join('.properties.'); - - if (get(indexMappings, mappingKey) != null || get(indexMappings, shortenedMappingKey) != null) { - return true; - } + const mappingKey = getMappingKey(key); - if (mappingKey === 'properties.id') { + if ( + !!get(indexMappings, mappingKey) || + !!get(indexMappings, getMappingKey(shortenedKey)) || + mappingKey === 'properties.id' + ) { return true; } @@ -199,7 +199,7 @@ export const fieldDefined = (indexMappings: IndexMapping, key: string): boolean mappingKey.lastIndexOf(propertiesAttribute) + `${propertiesAttribute}.`.length ); const mapping = `${fieldMapping}fields.${fieldType}`; - if (get(indexMappings, mapping) != null) { + if (!!get(indexMappings, mapping)) { return true; } diff --git a/x-pack/plugins/fleet/server/routes/utils/filter_utils_real_queries.test.ts b/x-pack/plugins/fleet/server/routes/utils/filter_utils_real_queries.test.ts index e8d3b65598806..73712ebb72750 100644 --- a/x-pack/plugins/fleet/server/routes/utils/filter_utils_real_queries.test.ts +++ b/x-pack/plugins/fleet/server/routes/utils/filter_utils_real_queries.test.ts @@ -23,7 +23,7 @@ import { validateFilterKueryNode, validateKuery } from './filter_utils'; describe('ValidateFilterKueryNode validates real kueries through KueryNode', () => { describe('Agent policies', () => { - it('Test 1 - search by data_output_id', async () => { + it('Search by data_output_id', async () => { const astFilter = esKuery.fromKueryExpression( `${AGENT_POLICY_SAVED_OBJECT_TYPE}.data_output_id: test_id` ); @@ -44,7 +44,7 @@ describe('ValidateFilterKueryNode validates real kueries through KueryNode', () ]); }); - it('Test 2 - search by inactivity timeout', async () => { + it('Search by inactivity timeout', async () => { const astFilter = esKuery.fromKueryExpression( `${AGENT_POLICY_SAVED_OBJECT_TYPE}.inactivity_timeout:*` ); @@ -65,7 +65,7 @@ describe('ValidateFilterKueryNode validates real kueries through KueryNode', () ]); }); - it('Test 3 - complex query', async () => { + it('Complex query', async () => { const validationObject = validateFilterKueryNode({ astFilter: esKuery.fromKueryExpression( `${AGENT_POLICY_SAVED_OBJECT_TYPE}.download_source_id:some_id or (not ${AGENT_POLICY_SAVED_OBJECT_TYPE}.download_source_id:*)` @@ -93,7 +93,7 @@ describe('ValidateFilterKueryNode validates real kueries through KueryNode', () ]); }); - it('Test 4', async () => { + it('Test another complex query', async () => { const astFilter = esKuery.fromKueryExpression( `${AGENT_POLICY_SAVED_OBJECT_TYPE}.data_output_id: test_id or ${AGENT_POLICY_SAVED_OBJECT_TYPE}.monitoring_output_id: test_id or (not ${AGENT_POLICY_SAVED_OBJECT_TYPE}.data_output_id:*)` ); @@ -129,7 +129,7 @@ describe('ValidateFilterKueryNode validates real kueries through KueryNode', () ]); }); - it('Test 5 - returns error if the attribute does not exist', async () => { + it('Returns error if the attribute does not exist', async () => { const astFilter = esKuery.fromKueryExpression( `${AGENT_POLICY_SAVED_OBJECT_TYPE}.package_policies:test_id_1 or ${AGENT_POLICY_SAVED_OBJECT_TYPE}.package_policies:test_id_2` ); @@ -442,9 +442,47 @@ describe('ValidateFilterKueryNode validates real kueries through KueryNode', () }, ]); }); + it('Search by version', async () => { + const astFilter = esKuery.fromKueryExpression(`fleet-agents.agent.version: 8.10.0`); + const validationObj = validateFilterKueryNode({ + astFilter, + types: [AGENTS_PREFIX], + indexMapping: AGENT_MAPPINGS, + storeValue: true, + skipNormalization: true, + }); + expect(validationObj).toEqual([ + { + astPath: 'arguments.0', + error: null, + isSavedObjectAttr: false, + key: 'fleet-agents.agent.version', + type: 'fleet-agents', + }, + ]); + }); + it('Search by version without SO wrapping', async () => { + const astFilter = esKuery.fromKueryExpression(`agent.version: 8.10.0`); + const validationObj = validateFilterKueryNode({ + astFilter, + types: [AGENTS_PREFIX], + indexMapping: AGENT_MAPPINGS, + storeValue: true, + skipNormalization: true, + }); + expect(validationObj).toEqual([ + { + astPath: 'arguments.0', + error: null, + isSavedObjectAttr: false, + key: 'agent.version', + type: 'agent', + }, + ]); + }); }); - describe('Enrollment Api keys', () => { + describe('Enrollment API keys', () => { it('Search by policy id', async () => { const astFilter = esKuery.fromKueryExpression( `${FLEET_ENROLLMENT_API_PREFIX}.policy_id: policyId1` @@ -508,9 +546,7 @@ describe('validateKuery validates real kueries', () => { true ); expect(validationObj?.isValid).toEqual(false); - expect(validationObj?.error).toContain( - `KQLSyntaxError: The key is empty and needs to be wrapped by a saved object type like ingest-agent-policies` - ); + expect(validationObj?.error).toContain(`KQLSyntaxError: Invalid key`); }); it('Kuery with non existent parameter wrapped by SO', async () => { @@ -526,7 +562,7 @@ describe('validateKuery validates real kueries', () => { ); }); - it('Kuery with non existent parameter', async () => { + it('Invalid search by non existent parameter', async () => { const validationObj = validateKuery( `non_existent_parameter: 'test_id'`, [AGENT_POLICY_SAVED_OBJECT_TYPE], @@ -541,7 +577,7 @@ describe('validateKuery validates real kueries', () => { }); describe('Agents', () => { - it('Test 1 - search policy id', async () => { + it('Search policy id', async () => { const validationObj = validateKuery( `${AGENTS_PREFIX}.policy_id: "policy_id"`, [AGENTS_PREFIX], @@ -551,7 +587,7 @@ describe('validateKuery validates real kueries', () => { expect(validationObj?.isValid).toEqual(true); }); - it('Test 2 - status kuery without SO wrapping', async () => { + it('Status kuery without SO wrapping', async () => { const validationObj = validateKuery( `status:online or (status:updating or status:unenrolling or status:enrolling)`, [AGENTS_PREFIX], @@ -561,7 +597,7 @@ describe('validateKuery validates real kueries', () => { expect(validationObj?.isValid).toEqual(true); }); - it('Test 3 - status kuery with SO wrapping', async () => { + it('Status kuery with SO wrapping', async () => { const validationObj = validateKuery( `${AGENTS_PREFIX}.status:online or (${AGENTS_PREFIX}.status:updating or ${AGENTS_PREFIX}.status:unenrolling or ${AGENTS_PREFIX}.status:enrolling)`, [AGENTS_PREFIX], @@ -571,7 +607,7 @@ describe('validateKuery validates real kueries', () => { expect(validationObj?.isValid).toEqual(true); }); - it('Test 4 - valid kuery without SO wrapping', async () => { + it('Valid kuery without SO wrapping', async () => { const validationObj = validateKuery( `local_metadata.elastic.agent.version : "8.6.0"`, [AGENTS_PREFIX], @@ -650,6 +686,39 @@ describe('validateKuery validates real kueries', () => { ); expect(validationObj?.isValid).toEqual(true); }); + + it('Search by version', async () => { + const validationObj = validateKuery( + `agent.version: "8.10.0"`, + [AGENTS_PREFIX], + AGENT_MAPPINGS, + true + ); + expect(validationObj?.isValid).toEqual(true); + }); + + it('Search by activity', async () => { + const validationObj = validateKuery(`active: true`, [AGENTS_PREFIX], AGENT_MAPPINGS, true); + expect(validationObj?.isValid).toEqual(true); + }); + + it('Search by agent.id', async () => { + const validationObj = validateKuery(`agent.id: id1`, [AGENTS_PREFIX], AGENT_MAPPINGS, true); + expect(validationObj?.isValid).toEqual(true); + }); + + it('Invalid search by non existent parameter', async () => { + const validationObj = validateKuery( + `non_existent_parameter: 'test_id'`, + [AGENTS_PREFIX], + AGENT_MAPPINGS, + true + ); + expect(validationObj?.isValid).toEqual(false); + expect(validationObj?.error).toContain( + `KQLSyntaxError: This type 'non_existent_parameter' is not allowed` + ); + }); }); describe('Package policies', () => { @@ -751,5 +820,16 @@ describe('validateKuery validates real kueries', () => { ); expect(validationObj?.isValid).toEqual(true); }); + + it('Invalid search by non existent parameter', async () => { + const validationObj = validateKuery( + `policyId1`, + [FLEET_ENROLLMENT_API_PREFIX], + ENROLLMENT_API_KEY_MAPPINGS, + true + ); + expect(validationObj?.isValid).toEqual(false); + expect(validationObj?.error).toEqual(`KQLSyntaxError: Invalid key`); + }); }); }); From 570963b07b2e2cbffd2e5c10eae9896c50f019b2 Mon Sep 17 00:00:00 2001 From: Julia Rechkunova Date: Tue, 10 Oct 2023 11:25:12 +0200 Subject: [PATCH 16/48] [Discover] Unskip flaky field token tests (#168130) - Closes https://github.com/elastic/kibana/issues/168115 This PR unskips the flaky test and also extracts other tests from `discover/group2` into a new `discover/group4`. 100x group2 https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3390 100x group4 https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3386 --- .buildkite/ftr_configs.yml | 1 + .../group2/_data_grid_field_tokens.ts | 34 +++++++++++------ test/functional/apps/discover/group2/index.ts | 13 ------- .../{group2 => group4}/_adhoc_data_views.ts | 0 .../{group2 => group4}/_chart_hidden.ts | 0 .../_context_encoded_url_params.ts | 0 .../{group2 => group4}/_data_view_edit.ts | 0 .../{group2 => group4}/_date_nested.ts | 0 .../_discover_fields_api.ts | 0 .../discover/{group2 => group4}/_esql_view.ts | 0 .../{group2 => group4}/_hide_announcements.ts | 0 .../{group2 => group4}/_huge_fields.ts | 0 .../_indexpattern_with_unmapped_fields.ts | 0 .../_indexpattern_without_timefield.ts | 0 .../_runtime_fields_editor.ts | 0 .../_search_on_page_load.ts | 0 .../functional/apps/discover/group4/config.ts | 18 +++++++++ test/functional/apps/discover/group4/index.ts | 37 +++++++++++++++++++ test/functional/firefox/discover.config.ts | 2 + 19 files changed, 80 insertions(+), 25 deletions(-) rename test/functional/apps/discover/{group2 => group4}/_adhoc_data_views.ts (100%) rename test/functional/apps/discover/{group2 => group4}/_chart_hidden.ts (100%) rename test/functional/apps/discover/{group2 => group4}/_context_encoded_url_params.ts (100%) rename test/functional/apps/discover/{group2 => group4}/_data_view_edit.ts (100%) rename test/functional/apps/discover/{group2 => group4}/_date_nested.ts (100%) rename test/functional/apps/discover/{group2 => group4}/_discover_fields_api.ts (100%) rename test/functional/apps/discover/{group2 => group4}/_esql_view.ts (100%) rename test/functional/apps/discover/{group2 => group4}/_hide_announcements.ts (100%) rename test/functional/apps/discover/{group2 => group4}/_huge_fields.ts (100%) rename test/functional/apps/discover/{group2 => group4}/_indexpattern_with_unmapped_fields.ts (100%) rename test/functional/apps/discover/{group2 => group4}/_indexpattern_without_timefield.ts (100%) rename test/functional/apps/discover/{group2 => group4}/_runtime_fields_editor.ts (100%) rename test/functional/apps/discover/{group2 => group4}/_search_on_page_load.ts (100%) create mode 100644 test/functional/apps/discover/group4/config.ts create mode 100644 test/functional/apps/discover/group4/index.ts diff --git a/.buildkite/ftr_configs.yml b/.buildkite/ftr_configs.yml index 3e0a5e0e9381b..2cc8d8cb0ed7a 100644 --- a/.buildkite/ftr_configs.yml +++ b/.buildkite/ftr_configs.yml @@ -112,6 +112,7 @@ enabled: - test/functional/apps/discover/group1/config.ts - test/functional/apps/discover/group2/config.ts - test/functional/apps/discover/group3/config.ts + - test/functional/apps/discover/group4/config.ts - test/functional/apps/getting_started/config.ts - test/functional/apps/home/config.ts - test/functional/apps/kibana_overview/config.ts diff --git a/test/functional/apps/discover/group2/_data_grid_field_tokens.ts b/test/functional/apps/discover/group2/_data_grid_field_tokens.ts index 44e573d0dafa5..3731c1e15f446 100644 --- a/test/functional/apps/discover/group2/_data_grid_field_tokens.ts +++ b/test/functional/apps/discover/group2/_data_grid_field_tokens.ts @@ -7,7 +7,6 @@ */ import expect from '@kbn/expect'; -import { WebElementWrapper } from '../../../services/lib/web_element_wrapper'; import { FtrProviderContext } from '../ftr_provider_context'; export default function ({ getService, getPageObjects }: FtrProviderContext) { @@ -21,6 +20,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { 'header', ]); const esArchiver = getService('esArchiver'); + const log = getService('log'); + const retry = getService('retry'); const dashboardAddPanel = getService('dashboardAddPanel'); const testSubjects = getService('testSubjects'); const kibanaServer = getService('kibanaServer'); @@ -31,26 +32,35 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }; async function findFirstColumnTokens() { - const header = await testSubjects.find('euiDataGridBody > dataGridHeader'); - return await findFirstFieldIcons(header); + return await findFirstFieldIcons('euiDataGridBody > dataGridHeader'); } async function findFirstDocViewerTokens() { await dataGrid.clickRowToggle({ rowIndex: 0 }); - const docViewer = await testSubjects.find('docTableDetailsFlyout'); - return await findFirstFieldIcons(docViewer); + return await findFirstFieldIcons('docTableDetailsFlyout'); } - async function findFirstFieldIcons(element: WebElementWrapper) { - const fieldIcons = await element.findAllByCssSelector('.kbnFieldIcon svg'); + async function findFirstFieldIcons(elementSelector: string) { + let firstFieldIcons: string[] | undefined; - return await Promise.all( - fieldIcons.map((fieldIcon) => fieldIcon.getAttribute('aria-label')).slice(0, 10) - ); + await retry.waitFor('field tokens', async () => { + const element = await testSubjects.find(elementSelector); + const fieldIcons = await element.findAllByCssSelector('.kbnFieldIcon svg'); + + firstFieldIcons = await Promise.all( + fieldIcons.slice(0, 10).map((fieldIcon) => fieldIcon.getAttribute('aria-label')) + ).catch((error) => { + log.debug(`error in findFirstFieldIcons: ${error.message}`); + return undefined; + }); + + return typeof firstFieldIcons !== 'undefined'; + }); + + return firstFieldIcons; } - // Failing: See https://github.com/elastic/kibana/issues/168115 - describe.skip('discover data grid field tokens', function () { + describe('discover data grid field tokens', function () { before(async () => { await security.testUser.setRoles(['kibana_admin', 'test_logstash_reader']); await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional'); diff --git a/test/functional/apps/discover/group2/index.ts b/test/functional/apps/discover/group2/index.ts index a01110b5dc6ac..8174e3ef93aba 100644 --- a/test/functional/apps/discover/group2/index.ts +++ b/test/functional/apps/discover/group2/index.ts @@ -20,8 +20,6 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); }); - loadTestFile(require.resolve('./_indexpattern_without_timefield')); - loadTestFile(require.resolve('./_discover_fields_api')); loadTestFile(require.resolve('./_data_grid')); loadTestFile(require.resolve('./_data_grid_context')); loadTestFile(require.resolve('./_data_grid_field_data')); @@ -33,16 +31,5 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./_data_grid_pagination')); loadTestFile(require.resolve('./_data_grid_footer')); loadTestFile(require.resolve('./_data_grid_field_tokens')); - loadTestFile(require.resolve('./_adhoc_data_views')); - loadTestFile(require.resolve('./_esql_view')); - loadTestFile(require.resolve('./_indexpattern_with_unmapped_fields')); - loadTestFile(require.resolve('./_runtime_fields_editor')); - loadTestFile(require.resolve('./_huge_fields')); - loadTestFile(require.resolve('./_date_nested')); - loadTestFile(require.resolve('./_search_on_page_load')); - loadTestFile(require.resolve('./_chart_hidden')); - loadTestFile(require.resolve('./_context_encoded_url_params')); - loadTestFile(require.resolve('./_hide_announcements')); - loadTestFile(require.resolve('./_data_view_edit')); }); } diff --git a/test/functional/apps/discover/group2/_adhoc_data_views.ts b/test/functional/apps/discover/group4/_adhoc_data_views.ts similarity index 100% rename from test/functional/apps/discover/group2/_adhoc_data_views.ts rename to test/functional/apps/discover/group4/_adhoc_data_views.ts diff --git a/test/functional/apps/discover/group2/_chart_hidden.ts b/test/functional/apps/discover/group4/_chart_hidden.ts similarity index 100% rename from test/functional/apps/discover/group2/_chart_hidden.ts rename to test/functional/apps/discover/group4/_chart_hidden.ts diff --git a/test/functional/apps/discover/group2/_context_encoded_url_params.ts b/test/functional/apps/discover/group4/_context_encoded_url_params.ts similarity index 100% rename from test/functional/apps/discover/group2/_context_encoded_url_params.ts rename to test/functional/apps/discover/group4/_context_encoded_url_params.ts diff --git a/test/functional/apps/discover/group2/_data_view_edit.ts b/test/functional/apps/discover/group4/_data_view_edit.ts similarity index 100% rename from test/functional/apps/discover/group2/_data_view_edit.ts rename to test/functional/apps/discover/group4/_data_view_edit.ts diff --git a/test/functional/apps/discover/group2/_date_nested.ts b/test/functional/apps/discover/group4/_date_nested.ts similarity index 100% rename from test/functional/apps/discover/group2/_date_nested.ts rename to test/functional/apps/discover/group4/_date_nested.ts diff --git a/test/functional/apps/discover/group2/_discover_fields_api.ts b/test/functional/apps/discover/group4/_discover_fields_api.ts similarity index 100% rename from test/functional/apps/discover/group2/_discover_fields_api.ts rename to test/functional/apps/discover/group4/_discover_fields_api.ts diff --git a/test/functional/apps/discover/group2/_esql_view.ts b/test/functional/apps/discover/group4/_esql_view.ts similarity index 100% rename from test/functional/apps/discover/group2/_esql_view.ts rename to test/functional/apps/discover/group4/_esql_view.ts diff --git a/test/functional/apps/discover/group2/_hide_announcements.ts b/test/functional/apps/discover/group4/_hide_announcements.ts similarity index 100% rename from test/functional/apps/discover/group2/_hide_announcements.ts rename to test/functional/apps/discover/group4/_hide_announcements.ts diff --git a/test/functional/apps/discover/group2/_huge_fields.ts b/test/functional/apps/discover/group4/_huge_fields.ts similarity index 100% rename from test/functional/apps/discover/group2/_huge_fields.ts rename to test/functional/apps/discover/group4/_huge_fields.ts diff --git a/test/functional/apps/discover/group2/_indexpattern_with_unmapped_fields.ts b/test/functional/apps/discover/group4/_indexpattern_with_unmapped_fields.ts similarity index 100% rename from test/functional/apps/discover/group2/_indexpattern_with_unmapped_fields.ts rename to test/functional/apps/discover/group4/_indexpattern_with_unmapped_fields.ts diff --git a/test/functional/apps/discover/group2/_indexpattern_without_timefield.ts b/test/functional/apps/discover/group4/_indexpattern_without_timefield.ts similarity index 100% rename from test/functional/apps/discover/group2/_indexpattern_without_timefield.ts rename to test/functional/apps/discover/group4/_indexpattern_without_timefield.ts diff --git a/test/functional/apps/discover/group2/_runtime_fields_editor.ts b/test/functional/apps/discover/group4/_runtime_fields_editor.ts similarity index 100% rename from test/functional/apps/discover/group2/_runtime_fields_editor.ts rename to test/functional/apps/discover/group4/_runtime_fields_editor.ts diff --git a/test/functional/apps/discover/group2/_search_on_page_load.ts b/test/functional/apps/discover/group4/_search_on_page_load.ts similarity index 100% rename from test/functional/apps/discover/group2/_search_on_page_load.ts rename to test/functional/apps/discover/group4/_search_on_page_load.ts diff --git a/test/functional/apps/discover/group4/config.ts b/test/functional/apps/discover/group4/config.ts new file mode 100644 index 0000000000000..a70a190ca63f8 --- /dev/null +++ b/test/functional/apps/discover/group4/config.ts @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const functionalConfig = await readConfigFile(require.resolve('../../../config.base.js')); + + return { + ...functionalConfig.getAll(), + testFiles: [require.resolve('.')], + }; +} diff --git a/test/functional/apps/discover/group4/index.ts b/test/functional/apps/discover/group4/index.ts new file mode 100644 index 0000000000000..1aab3db2bfc43 --- /dev/null +++ b/test/functional/apps/discover/group4/index.ts @@ -0,0 +1,37 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { FtrProviderContext } from '../ftr_provider_context'; + +export default function ({ getService, loadTestFile }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const browser = getService('browser'); + + describe('discover/group4', function () { + before(async function () { + await browser.setWindowSize(1600, 1200); + }); + + after(async function unloadMakelogs() { + await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional'); + }); + + loadTestFile(require.resolve('./_indexpattern_without_timefield')); + loadTestFile(require.resolve('./_discover_fields_api')); + loadTestFile(require.resolve('./_adhoc_data_views')); + loadTestFile(require.resolve('./_esql_view')); + loadTestFile(require.resolve('./_indexpattern_with_unmapped_fields')); + loadTestFile(require.resolve('./_runtime_fields_editor')); + loadTestFile(require.resolve('./_huge_fields')); + loadTestFile(require.resolve('./_date_nested')); + loadTestFile(require.resolve('./_search_on_page_load')); + loadTestFile(require.resolve('./_chart_hidden')); + loadTestFile(require.resolve('./_context_encoded_url_params')); + loadTestFile(require.resolve('./_hide_announcements')); + loadTestFile(require.resolve('./_data_view_edit')); + }); +} diff --git a/test/functional/firefox/discover.config.ts b/test/functional/firefox/discover.config.ts index 332caa668b409..8b7e7205cd434 100644 --- a/test/functional/firefox/discover.config.ts +++ b/test/functional/firefox/discover.config.ts @@ -20,6 +20,8 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { require.resolve('../apps/discover/classic'), require.resolve('../apps/discover/group1'), require.resolve('../apps/discover/group2'), + require.resolve('../apps/discover/group3'), + require.resolve('../apps/discover/group4'), ], junit: { From 99f20d9397eb105cf9be04d20fe22693f7b19eab Mon Sep 17 00:00:00 2001 From: Dario Gieselaar Date: Tue, 10 Oct 2023 12:10:23 +0200 Subject: [PATCH 17/48] [Obs AI Assistant] Disable ILM for conversations (#168371) Co-authored-by: Alex Szabo --- .../server/service/index.ts | 20 ------------------- .../server/service/types.ts | 3 --- 2 files changed, 23 deletions(-) diff --git a/x-pack/plugins/observability_ai_assistant/server/service/index.ts b/x-pack/plugins/observability_ai_assistant/server/service/index.ts index c116e16d27471..978a8a2de6111 100644 --- a/x-pack/plugins/observability_ai_assistant/server/service/index.ts +++ b/x-pack/plugins/observability_ai_assistant/server/service/index.ts @@ -60,9 +60,6 @@ export class ObservabilityAIAssistantService { conversations: getResourceName('index-template-conversations'), kb: getResourceName('index-template-kb'), }, - ilmPolicy: { - conversations: getResourceName('ilm-policy-conversations'), - }, pipelines: { kb: getResourceName('kb-ingest-pipeline'), }, @@ -112,23 +109,6 @@ export class ObservabilityAIAssistantService { template: conversationComponentTemplate, }); - await esClient.ilm.putLifecycle({ - name: this.resourceNames.ilmPolicy.conversations, - policy: { - phases: { - hot: { - min_age: '0s', - actions: { - rollover: { - max_age: '90d', - max_primary_shard_size: '50gb', - }, - }, - }, - }, - }, - }); - await esClient.indices.putIndexTemplate({ name: this.resourceNames.indexTemplate.conversations, composed_of: [this.resourceNames.componentTemplate.conversations], diff --git a/x-pack/plugins/observability_ai_assistant/server/service/types.ts b/x-pack/plugins/observability_ai_assistant/server/service/types.ts index ee44b1beac90f..39c2b29dbb026 100644 --- a/x-pack/plugins/observability_ai_assistant/server/service/types.ts +++ b/x-pack/plugins/observability_ai_assistant/server/service/types.ts @@ -14,9 +14,6 @@ export interface ObservabilityAIAssistantResourceNames { conversations: string; kb: string; }; - ilmPolicy: { - conversations: string; - }; aliases: { conversations: string; kb: string; From 3d979ad04618aeba50e071d6dc70079d00d7811a Mon Sep 17 00:00:00 2001 From: Christos Nasikas Date: Tue, 10 Oct 2023 14:28:36 +0300 Subject: [PATCH 18/48] [Cases] Add migration test for the Find Cases API (#168444) --- .../tests/common/cases/migrations.ts | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/x-pack/test/cases_api_integration/security_and_spaces/tests/common/cases/migrations.ts b/x-pack/test/cases_api_integration/security_and_spaces/tests/common/cases/migrations.ts index 3be3095ca2830..723646a1763e6 100644 --- a/x-pack/test/cases_api_integration/security_and_spaces/tests/common/cases/migrations.ts +++ b/x-pack/test/cases_api_integration/security_and_spaces/tests/common/cases/migrations.ts @@ -18,6 +18,7 @@ import { getCase, getCaseSavedObjectsFromES, resolveCase, + findCases, } from '../../../../common/lib/api'; import { superUser } from '../../../../common/lib/authentication/users'; @@ -73,6 +74,62 @@ export default function createGetTests({ getService }: FtrProviderContext) { syncAlerts: true, }); }); + + it('should return the cases correctly', async () => { + const cases = await findCases({ supertest }); + const theCase = cases.cases[0]; + + const { version, ...caseWithoutVersion } = theCase; + const { cases: _, ...caseStats } = cases; + + expect(cases.cases.length).to.eql(1); + + expect(caseStats).to.eql({ + count_closed_cases: 0, + count_in_progress_cases: 0, + count_open_cases: 1, + page: 1, + per_page: 20, + total: 1, + }); + + expect(caseWithoutVersion).to.eql({ + assignees: [], + category: null, + closed_at: null, + closed_by: null, + comments: [], + connector: { + fields: null, + id: 'connector-1', + name: 'none', + type: '.none', + }, + created_at: '2020-09-28T11:43:52.158Z', + created_by: { + email: null, + full_name: null, + username: 'elastic', + }, + customFields: [], + description: 'This is a brand new case of a bad meanie defacing data', + duration: null, + external_service: null, + id: 'e1900ac0-017f-11eb-93f8-d161651bf509', + owner: 'securitySolution', + settings: { + syncAlerts: true, + }, + severity: 'low', + status: 'open', + tags: ['defacement'], + title: 'Super Bad Security Issue', + totalAlerts: 0, + totalComment: 1, + updated_at: null, + updated_by: null, + }); + }); }); // tests upgrading a 7.11.1 saved object to the latest version From b0dbc706038c77a53c8757d9b8f7149dac71426b Mon Sep 17 00:00:00 2001 From: Stratoula Kalafateli Date: Tue, 10 Oct 2023 14:37:42 +0300 Subject: [PATCH 19/48] [ES|QL] Hides fields with nulls from document view (#168321) ## Summary ES|QL atm can be quite noisy at the Document view with many fields with null values. To improve a bit the experience we decided to not display these values in the Document view. The columns still exist in the available fields list and the expanded row. It is only for the document view that we don't want them to be rendered. In the example below you can see the `meta.char` field which is hidden on the document view but still available in the sidebar and the expanded row. ![image (11)](https://github.com/elastic/kibana/assets/17003240/35f975be-ff96-4eee-8420-571386329cfb) ![image (12)](https://github.com/elastic/kibana/assets/17003240/f5db6303-c583-4114-b18d-fa6088cb618f) ![image (13)](https://github.com/elastic/kibana/assets/17003240/82c5fbb1-5dc7-41c2-8978-c7d248821eee) ### 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 --- .../src/components/data_table.tsx | 2 + .../src/utils/get_render_cell_value.test.tsx | 83 +++++++++++++++++++ .../src/utils/get_render_cell_value.tsx | 29 ++++--- 3 files changed, 103 insertions(+), 11 deletions(-) diff --git a/packages/kbn-unified-data-table/src/components/data_table.tsx b/packages/kbn-unified-data-table/src/components/data_table.tsx index aa61ecdd1bfe6..a1540e88a5cd6 100644 --- a/packages/kbn-unified-data-table/src/components/data_table.tsx +++ b/packages/kbn-unified-data-table/src/components/data_table.tsx @@ -538,6 +538,7 @@ export const UnifiedDataTable = ({ fieldFormats: services.fieldFormats, maxEntries: maxDocFieldsDisplayed, externalCustomRenderers, + isPlainRecord, }), [ dataView, @@ -547,6 +548,7 @@ export const UnifiedDataTable = ({ maxDocFieldsDisplayed, services.fieldFormats, externalCustomRenderers, + isPlainRecord, ] ); diff --git a/packages/kbn-unified-data-table/src/utils/get_render_cell_value.test.tsx b/packages/kbn-unified-data-table/src/utils/get_render_cell_value.test.tsx index d522ae70d28b5..7db7ffedfdecf 100644 --- a/packages/kbn-unified-data-table/src/utils/get_render_cell_value.test.tsx +++ b/packages/kbn-unified-data-table/src/utils/get_render_cell_value.test.tsx @@ -75,6 +75,18 @@ const rowsSource: EsHitRecord[] = [ }, ]; +const rowsSourceWithEmptyValues: EsHitRecord[] = [ + { + _id: '1', + _index: 'test', + _score: 1, + _source: { bytes: 100, extension: null }, + highlight: { + extension: ['@kibana-highlighted-field.gz@/kibana-highlighted-field'], + }, + }, +]; + const rowsFields: EsHitRecord[] = [ { _id: '1', @@ -344,6 +356,77 @@ describe('Unified data table cell rendering', function () { `); }); + it('renders _source column correctly if on text based mode and have nulls', () => { + const DataTableCellValue = getRenderCellValueFn({ + dataView: dataViewMock, + rows: rowsSourceWithEmptyValues.map(build), + useNewFieldsApi: false, + shouldShowFieldHandler: (fieldName) => ['extension', 'bytes'].includes(fieldName), + closePopover: jest.fn(), + fieldFormats: mockServices.fieldFormats as unknown as FieldFormatsStart, + maxEntries: 100, + isPlainRecord: true, + }); + const component = shallow( + + ); + expect(component).toMatchInlineSnapshot(` + + + bytesDisplayName + + + + _index + + + + _score + + + + `); + }); + it('renders fields-based column correctly', () => { const DataTableCellValue = getRenderCellValueFn({ dataView: dataViewMock, diff --git a/packages/kbn-unified-data-table/src/utils/get_render_cell_value.tsx b/packages/kbn-unified-data-table/src/utils/get_render_cell_value.tsx index 2f9a3dd92b575..581230b525757 100644 --- a/packages/kbn-unified-data-table/src/utils/get_render_cell_value.tsx +++ b/packages/kbn-unified-data-table/src/utils/get_render_cell_value.tsx @@ -43,6 +43,7 @@ export const getRenderCellValueFn = ({ fieldFormats, maxEntries, externalCustomRenderers, + isPlainRecord, }: { dataView: DataView; rows: DataTableRecord[] | undefined; @@ -55,6 +56,7 @@ export const getRenderCellValueFn = ({ string, (props: EuiDataGridCellValueElementProps) => React.ReactNode >; + isPlainRecord?: boolean; }) => { return ({ rowIndex, @@ -144,17 +146,22 @@ export const getRenderCellValueFn = ({ compressed className={classnames('unifiedDataTable__descriptionList', CELL_CLASS)} > - {pairs.map(([fieldDisplayName, value]) => ( - - - {fieldDisplayName} - - - - ))} + {pairs.map(([fieldDisplayName, value, fieldName]) => { + // temporary solution for text based mode. As there are a lot of unsupported fields we want to + // hide the empty one from the Document view + if (isPlainRecord && fieldName && row.flattened[fieldName] === null) return null; + return ( + + + {fieldDisplayName} + + + + ); + })} ); } From 631c62b8ffc6ec5a8fa3dab4c0ecc85ba59edb1b Mon Sep 17 00:00:00 2001 From: Alex Szabo Date: Tue, 10 Oct 2023 13:41:42 +0200 Subject: [PATCH 20/48] [Ops] Disable test suite (#168455) ## Summary Disabling a very unstable suite (https://github.com/elastic/kibana/issues/168429) cc: @nkhristinin --- .../security_and_spaces/group10/risk_engine/telemetry_usage.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/telemetry_usage.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/telemetry_usage.ts index 9135879f3e2eb..5306937a97ab5 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/telemetry_usage.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_engine/telemetry_usage.ts @@ -65,7 +65,8 @@ export default ({ getService }: FtrProviderContext) => { }); }); - describe('Risk engine enabled', () => { + // FLAKY: https://github.com/elastic/kibana/issues/168429 + describe.skip('Risk engine enabled', () => { let hostId: string; let userId: string; From 05791d4bd18ca877efe96cbcd1aa818a0752a81a Mon Sep 17 00:00:00 2001 From: James Rodewig Date: Tue, 10 Oct 2023 08:03:45 -0500 Subject: [PATCH 21/48] [Serverless Search] Update G/S "Elasticsearch clients" link (#168218) ## Summary **Problem:** The "Elasticsearch Clients" link under **Select your client** points to the HTTP API docs rather than the ES clients docs. **Solution:** Update the link to the point to the **ES Client Libraries** page instead. --- packages/kbn-doc-links/src/get_doc_links.ts | 1 + packages/kbn-doc-links/src/types.ts | 1 + x-pack/plugins/serverless_search/common/doc_links.ts | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index 9784908948f43..181537423fd1d 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -824,6 +824,7 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { elasticsearch: `${SEARCH_UI_DOCS}tutorials/elasticsearch`, }, serverlessClients: { + clientLib: `${SERVERLESS_ELASTICSEARCH_DOCS}clients`, goApiReference: `${SERVERLESS_ELASTICSEARCH_DOCS}go-client-getting-started`, goGettingStarted: `${SERVERLESS_ELASTICSEARCH_DOCS}go-client-getting-started`, httpApis: `${SERVERLESS_ELASTICSEARCH_DOCS}http-apis`, diff --git a/packages/kbn-doc-links/src/types.ts b/packages/kbn-doc-links/src/types.ts index ebb4fb07fe21f..6d6d9b7587e51 100644 --- a/packages/kbn-doc-links/src/types.ts +++ b/packages/kbn-doc-links/src/types.ts @@ -581,6 +581,7 @@ export interface DocLinks { readonly elasticsearch: string; }; readonly serverlessClients: { + readonly clientLib: string; readonly goApiReference: string; readonly goGettingStarted: string; readonly httpApis: string; diff --git a/x-pack/plugins/serverless_search/common/doc_links.ts b/x-pack/plugins/serverless_search/common/doc_links.ts index 4c93763a145c8..2ee278b7f3d9c 100644 --- a/x-pack/plugins/serverless_search/common/doc_links.ts +++ b/x-pack/plugins/serverless_search/common/doc_links.ts @@ -61,7 +61,7 @@ class ESDocLinks { this.securityApis = newDocLinks.apis.securityApis; // Client links - this.elasticsearchClients = newDocLinks.serverlessClients.httpApis; + this.elasticsearchClients = newDocLinks.serverlessClients.clientLib; // Go this.goApiReference = newDocLinks.serverlessClients.goApiReference; this.goBasicConfig = newDocLinks.serverlessClients.goGettingStarted; From 348563b52f8ed037f02db0860594c179ec938659 Mon Sep 17 00:00:00 2001 From: Brandon Morelli Date: Tue, 10 Oct 2023 06:31:40 -0700 Subject: [PATCH 22/48] Add security update to 8.10.3 (#168468) --- docs/CHANGELOG.asciidoc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/CHANGELOG.asciidoc b/docs/CHANGELOG.asciidoc index aaceec07701cb..e6e426e7a8623 100644 --- a/docs/CHANGELOG.asciidoc +++ b/docs/CHANGELOG.asciidoc @@ -54,7 +54,19 @@ Review important information about the {kib} 8.x releases. [[release-notes-8.10.3]] == {kib} 8.10.3 -The 8.10.3 release includes the following bug fixes. +[float] +[[security-update-8.10.3]] +=== Security updates + +* **Kibana heap buffer overflow vulnerability** ++ +On Sept 11, 2023, Google Chrome announced CVE-2023-4863, described as “Heap buffer overflow in libwebp in Google Chrome prior to 116.0.5845.187 and libwebp 1.3.2 allowed a remote attacker to perform an out of bounds memory write via a crafted HTML page”. Kibana includes a bundled version of headless Chromium that is only used for Kibana’s reporting capabilities and which is affected by this vulnerability. An exploit for Kibana has not been identified, however as a resolution, the bundled version of Chromium is updated in this release. ++ +The issue is resolved in 8.10.3. ++ +For more information, see our related +https://discuss.elastic.co/t/kibana-8-10-3-7-17-14-security-update/344735[security +announcement]. [float] [[enhancement-v8.10.3]] From 229b883e5052f9fd7ea37c891e6b94e52c87aac1 Mon Sep 17 00:00:00 2001 From: Cristina Amico Date: Tue, 10 Oct 2023 15:33:33 +0200 Subject: [PATCH 23/48] [Fleet] Create template endpoint for integrations inputs (#168015) Closes https://github.com/elastic/kibana/issues/167325 ## Summary Create a new endpoints that returns template integrations inputs with all possible options enabled. It's going to be used for enhancing the standalone flow. This is basically equivalent to the following flow: - Add an integration to a new agent policy - Enable all the options in the package policy - Go to the agent policy page and select action "view agent policy" - Copy only the `inputs` section of it. Actually the api returns the `streams` fields of the inputs and applies a `flatMap`, so the format is slightly different. Note that the api returns the template even when the integration is not installed, since the endpoint retrieves the packageInfo from cache or registry (depending on what it finds). I looked for a way to preserve comments in yaml but it seems that the [js-yaml](https://github.com/nodeca/js-yaml) library does not have this capability. ### Testing Integration that has `inputs.streams` (`yml` and `yaml` options are equivalent): ``` GET kbn:api/fleet/epm/templates/nginx/1.15.0/inputs?format=json GET kbn:api/fleet/epm/templates/nginx/1.15.0/inputs?format=yml GET kbn:api/fleet/epm/templates/nginx/1.15.0/inputs?format=yaml ``` Integration that has only `compiled_inputs`: ``` GET kbn:api/fleet/epm/templates/apm/8.4.2/inputs?format=json GET kbn:api/fleet/epm/templates/apm/8.4.2/inputs?format=yaml ``` ### Checklist - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../plugins/fleet/common/constants/routes.ts | 1 + .../plugins/fleet/common/openapi/bundled.json | 50 +++ .../plugins/fleet/common/openapi/bundled.yaml | 31 ++ .../fleet/common/openapi/entrypoint.yaml | 2 + ...lates@{pkg_name}@{pkg_version}@inputs.yaml | 30 ++ .../services/full_agent_policy_to_yaml.ts | 2 +- .../fleet/server/routes/epm/handlers.ts | 24 ++ .../plugins/fleet/server/routes/epm/index.ts | 15 + .../epm/packages/get_template_inputs.ts | 122 +++++++ .../epm/packages/get_templates_inputs.test.ts | 303 ++++++++++++++++++ .../server/services/epm/packages/index.ts | 1 + .../fleet/server/services/package_policy.ts | 13 +- .../fleet/server/types/rest_spec/epm.ts | 12 + .../apis/epm/get_templates_inputs.ts | 200 ++++++++++++ .../fleet_api_integration/apis/epm/index.js | 1 + 15 files changed, 803 insertions(+), 4 deletions(-) create mode 100644 x-pack/plugins/fleet/common/openapi/paths/epm@templates@{pkg_name}@{pkg_version}@inputs.yaml create mode 100644 x-pack/plugins/fleet/server/services/epm/packages/get_template_inputs.ts create mode 100644 x-pack/plugins/fleet/server/services/epm/packages/get_templates_inputs.test.ts create mode 100644 x-pack/test/fleet_api_integration/apis/epm/get_templates_inputs.ts diff --git a/x-pack/plugins/fleet/common/constants/routes.ts b/x-pack/plugins/fleet/common/constants/routes.ts index d675b1b42bb36..3a5df3768ae96 100644 --- a/x-pack/plugins/fleet/common/constants/routes.ts +++ b/x-pack/plugins/fleet/common/constants/routes.ts @@ -41,6 +41,7 @@ export const EPM_API_ROUTES = { VERIFICATION_KEY_ID: `${EPM_API_ROOT}/verification_key_id`, STATS_PATTERN: `${EPM_PACKAGES_MANY}/{pkgName}/stats`, BULK_ASSETS_PATTERN: `${EPM_API_ROOT}/bulk_assets`, + INPUTS_PATTERN: `${EPM_API_ROOT}/templates/{pkgName}/{pkgVersion}/inputs`, INFO_PATTERN_DEPRECATED: EPM_PACKAGES_ONE_DEPRECATED, INSTALL_FROM_REGISTRY_PATTERN_DEPRECATED: EPM_PACKAGES_ONE_DEPRECATED, diff --git a/x-pack/plugins/fleet/common/openapi/bundled.json b/x-pack/plugins/fleet/common/openapi/bundled.json index a4604a7d7427b..f87ab5a3edacc 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.json +++ b/x-pack/plugins/fleet/common/openapi/bundled.json @@ -1420,6 +1420,56 @@ } ] }, + "/epm/templates/{pkgName}/{pkgVersion}/inputs": { + "get": { + "summary": "Get inputs template", + "tags": [ + "Elastic Package Manager (EPM)" + ], + "responses": { + "400": { + "$ref": "#/components/responses/error" + } + }, + "operationId": "get-inputs-template", + "security": [ + { + "basicAuth": [] + } + ] + }, + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "pkgName", + "in": "path", + "required": true + }, + { + "schema": { + "type": "string" + }, + "name": "pkgVersion", + "in": "path", + "required": true + }, + { + "schema": { + "type": "string", + "enum": [ + "json", + "yaml", + "yml" + ] + }, + "name": "format", + "description": "Format of response - json or yaml", + "in": "query" + } + ] + }, "/agents/setup": { "get": { "summary": "Get agent setup info", diff --git a/x-pack/plugins/fleet/common/openapi/bundled.yaml b/x-pack/plugins/fleet/common/openapi/bundled.yaml index be132c9f19e48..4629a95af27e8 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.yaml +++ b/x-pack/plugins/fleet/common/openapi/bundled.yaml @@ -894,6 +894,37 @@ paths: name: pkgName in: path required: true + /epm/templates/{pkgName}/{pkgVersion}/inputs: + get: + summary: Get inputs template + tags: + - Elastic Package Manager (EPM) + responses: + '400': + $ref: '#/components/responses/error' + operationId: get-inputs-template + security: + - basicAuth: [] + parameters: + - schema: + type: string + name: pkgName + in: path + required: true + - schema: + type: string + name: pkgVersion + in: path + required: true + - schema: + type: string + enum: + - json + - yaml + - yml + name: format + description: Format of response - json or yaml + in: query /agents/setup: get: summary: Get agent setup info diff --git a/x-pack/plugins/fleet/common/openapi/entrypoint.yaml b/x-pack/plugins/fleet/common/openapi/entrypoint.yaml index b8a7e024f3c4e..92bffe4968092 100644 --- a/x-pack/plugins/fleet/common/openapi/entrypoint.yaml +++ b/x-pack/plugins/fleet/common/openapi/entrypoint.yaml @@ -46,6 +46,8 @@ paths: $ref: paths/epm@get_file.yaml '/epm/packages/{pkgName}/stats': $ref: 'paths/epm@packages@{pkg_name}@stats.yaml' + '/epm/templates/{pkgName}/{pkgVersion}/inputs': + $ref: 'paths/epm@templates@{pkg_name}@{pkg_version}@inputs.yaml' # Agent endpoints /agents/setup: diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@templates@{pkg_name}@{pkg_version}@inputs.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@templates@{pkg_name}@{pkg_version}@inputs.yaml new file mode 100644 index 0000000000000..9888fd0036ea1 --- /dev/null +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@templates@{pkg_name}@{pkg_version}@inputs.yaml @@ -0,0 +1,30 @@ +get: + summary: Get inputs template + tags: + - Elastic Package Manager (EPM) + responses: + '400': + $ref: ../components/responses/error.yaml + operationId: get-inputs-template + security: + - basicAuth: [] +parameters: + - schema: + type: string + name: pkgName + in: path + required: true + - schema: + type: string + name: pkgVersion + in: path + required: true + - schema: + type: string + enum: + - json + - yaml + - yml + name: format + description: 'Format of response - json or yaml' + in: query diff --git a/x-pack/plugins/fleet/common/services/full_agent_policy_to_yaml.ts b/x-pack/plugins/fleet/common/services/full_agent_policy_to_yaml.ts index 30389ee45cbde..18d995c96f2b8 100644 --- a/x-pack/plugins/fleet/common/services/full_agent_policy_to_yaml.ts +++ b/x-pack/plugins/fleet/common/services/full_agent_policy_to_yaml.ts @@ -39,7 +39,7 @@ export const fullAgentPolicyToYaml = (policy: FullAgentPolicy, toYaml: typeof sa return _formatSecrets(policy.secret_references, yaml); }; -function _sortYamlKeys(keyA: string, keyB: string) { +export function _sortYamlKeys(keyA: string, keyB: string) { const indexA = POLICY_KEYS_ORDER.indexOf(keyA); const indexB = POLICY_KEYS_ORDER.indexOf(keyB); if (indexA >= 0 && indexB < 0) { diff --git a/x-pack/plugins/fleet/server/routes/epm/handlers.ts b/x-pack/plugins/fleet/server/routes/epm/handlers.ts index 5781fa623bb9b..8ce1bf7006f6b 100644 --- a/x-pack/plugins/fleet/server/routes/epm/handlers.ts +++ b/x-pack/plugins/fleet/server/routes/epm/handlers.ts @@ -53,6 +53,7 @@ import type { GetLimitedPackagesRequestSchema, GetBulkAssetsRequestSchema, CreateCustomIntegrationRequestSchema, + GetInputsRequestSchema, } from '../../types'; import { bulkInstallPackages, @@ -67,6 +68,7 @@ import { getLimitedPackages, getInstallation, getBulkAssets, + getTemplateInputs, } from '../../services/epm/packages'; import type { BulkInstallResponse } from '../../services/epm/packages'; import { defaultFleetErrorHandler, fleetErrorToResponseOptions, FleetError } from '../../errors'; @@ -650,6 +652,28 @@ export const reauthorizeTransformsHandler: FleetRequestHandler< } }; +export const getInputsHandler: FleetRequestHandler< + TypeOf, + TypeOf, + undefined +> = async (context, request, response) => { + const soClient = (await context.fleet).internalSoClient; + + try { + const { pkgName, pkgVersion } = request.params; + const { format } = request.query; + let body; + if (format === 'json') { + body = await getTemplateInputs(soClient, pkgName, pkgVersion, 'json'); + } else if (format === 'yml' || format === 'yaml') { + body = await getTemplateInputs(soClient, pkgName, pkgVersion, 'yml'); + } + return response.ok({ body }); + } catch (error) { + return defaultFleetErrorHandler({ error, response }); + } +}; + // Don't expose the whole SO in the API response, only selected fields const soToInstallationInfo = (pkg: PackageListItem | PackageInfo) => { if ('savedObject' in pkg && pkg.savedObject?.attributes) { diff --git a/x-pack/plugins/fleet/server/routes/epm/index.ts b/x-pack/plugins/fleet/server/routes/epm/index.ts index 4f354ae77d7f0..6e0000bf4ccbf 100644 --- a/x-pack/plugins/fleet/server/routes/epm/index.ts +++ b/x-pack/plugins/fleet/server/routes/epm/index.ts @@ -47,6 +47,7 @@ import { ReauthorizeTransformRequestSchema, GetDataStreamsRequestSchema, CreateCustomIntegrationRequestSchema, + GetInputsRequestSchema, } from '../../types'; import { @@ -67,6 +68,7 @@ import { reauthorizeTransformsHandler, getDataStreamsHandler, createCustomIntegrationHandler, + getInputsHandler, } from './handlers'; const MAX_FILE_SIZE_BYTES = 104857600; // 100MB @@ -145,6 +147,19 @@ export const registerRoutes = (router: FleetAuthzRouter) => { getStatsHandler ); + router.versioned + .get({ + path: EPM_API_ROUTES.INPUTS_PATTERN, + fleetAuthz: READ_PACKAGE_INFO_AUTHZ, + }) + .addVersion( + { + version: API_VERSIONS.public.v1, + validate: { request: GetInputsRequestSchema }, + }, + getInputsHandler + ); + router.versioned .get({ path: EPM_API_ROUTES.FILEPATH_PATTERN, diff --git a/x-pack/plugins/fleet/server/services/epm/packages/get_template_inputs.ts b/x-pack/plugins/fleet/server/services/epm/packages/get_template_inputs.ts new file mode 100644 index 0000000000000..04c65535ad0ad --- /dev/null +++ b/x-pack/plugins/fleet/server/services/epm/packages/get_template_inputs.ts @@ -0,0 +1,122 @@ +/* + * 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 { SavedObjectsClientContract } from '@kbn/core/server'; + +import { merge } from 'lodash'; +import { safeDump } from 'js-yaml'; + +import { packageToPackagePolicy } from '../../../../common/services/package_to_package_policy'; +import { getInputsWithStreamIds, _compilePackagePolicyInputs } from '../../package_policy'; + +import type { + PackageInfo, + NewPackagePolicy, + PackagePolicyInput, + FullAgentPolicyInput, + FullAgentPolicyInputStream, +} from '../../../../common/types'; +import { _sortYamlKeys } from '../../../../common/services/full_agent_policy_to_yaml'; + +import { getPackageInfo } from '.'; + +type Format = 'yml' | 'json'; + +// Function based off storedPackagePolicyToAgentInputs, it only creates the `streams` section instead of the FullAgentPolicyInput +export const templatePackagePolicyToFullInputs = ( + packagePolicyInputs: PackagePolicyInput[] +): FullAgentPolicyInput[] => { + const fullInputs: FullAgentPolicyInput[] = []; + + if (!packagePolicyInputs || packagePolicyInputs.length === 0) return fullInputs; + + packagePolicyInputs.forEach((input) => { + const fullInput = { + ...(input.compiled_input || {}), + ...(input.streams.length + ? { + streams: input.streams.map((stream) => { + const fullStream: FullAgentPolicyInputStream = { + id: stream.id, + type: input.type, + data_stream: stream.data_stream, + ...stream.compiled_stream, + ...Object.entries(stream.config || {}).reduce((acc, [key, { value }]) => { + acc[key] = value; + return acc; + }, {} as { [k: string]: any }), + }; + return fullStream; + }), + } + : {}), + }; + + // deeply merge the input.config values with the full policy input + merge( + fullInput, + Object.entries(input.config || {}).reduce((acc, [key, { value }]) => { + acc[key] = value; + return acc; + }, {} as Record) + ); + fullInputs.push(fullInput); + }); + + return fullInputs; +}; + +export async function getTemplateInputs( + soClient: SavedObjectsClientContract, + pkgName: string, + pkgVersion: string, + format: Format +) { + const packageInfoMap = new Map(); + let packageInfo: PackageInfo; + + if (packageInfoMap.has(pkgName)) { + packageInfo = packageInfoMap.get(pkgName)!; + } else { + packageInfo = await getPackageInfo({ + savedObjectsClient: soClient, + pkgName, + pkgVersion, + }); + } + const emptyPackagePolicy = packageToPackagePolicy(packageInfo, ''); + const inputsWithStreamIds = getInputsWithStreamIds(emptyPackagePolicy, undefined, true); + + const compiledInputs = await _compilePackagePolicyInputs( + packageInfo, + emptyPackagePolicy.vars || {}, + inputsWithStreamIds + ); + const packagePolicyWithInputs: NewPackagePolicy = { + ...emptyPackagePolicy, + inputs: compiledInputs, + }; + const fullAgentPolicyInputs = templatePackagePolicyToFullInputs( + packagePolicyWithInputs.inputs as PackagePolicyInput[] + ); + // @ts-ignore-next-line The return type is any because in some case we can have compiled_input instead of input.streams + // we don't know what it is. An example is integration APM + const inputs: any = fullAgentPolicyInputs.flatMap((input) => input?.streams || input); + + if (format === 'json') { + return { inputs }; + } else if (format === 'yml') { + const yaml = safeDump( + { inputs }, + { + skipInvalid: true, + sortKeys: _sortYamlKeys, + } + ); + return yaml; + } + return { inputs: [] }; +} diff --git a/x-pack/plugins/fleet/server/services/epm/packages/get_templates_inputs.test.ts b/x-pack/plugins/fleet/server/services/epm/packages/get_templates_inputs.test.ts new file mode 100644 index 0000000000000..e9912cc8d8bd2 --- /dev/null +++ b/x-pack/plugins/fleet/server/services/epm/packages/get_templates_inputs.test.ts @@ -0,0 +1,303 @@ +/* + * 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 { PackagePolicyInput } from '../../../../common/types'; + +import { templatePackagePolicyToFullInputs } from './get_template_inputs'; + +const packageInfoCache = new Map(); +packageInfoCache.set('mock_package-0.0.0', { + name: 'mock_package', + version: '0.0.0', + policy_templates: [ + { + multiple: true, + }, + ], +}); +packageInfoCache.set('limited_package-0.0.0', { + name: 'limited_package', + version: '0.0.0', + policy_templates: [ + { + multiple: false, + }, + ], +}); + +describe('Fleet - templatePackagePolicyToFullInputs', () => { + const mockInput: PackagePolicyInput = { + type: 'test-logs', + enabled: true, + vars: { + inputVar: { value: 'input-value' }, + inputVar2: { value: undefined }, + inputVar3: { + type: 'yaml', + value: 'testField: test', + }, + inputVar4: { value: '' }, + }, + streams: [ + { + id: 'test-logs-foo', + enabled: true, + data_stream: { dataset: 'foo', type: 'logs' }, + vars: { + fooVar: { value: 'foo-value' }, + fooVar2: { value: [1, 2] }, + }, + compiled_stream: { + fooKey: 'fooValue1', + fooKey2: ['fooValue2'], + }, + }, + { + id: 'test-logs-bar', + enabled: true, + data_stream: { dataset: 'bar', type: 'logs' }, + vars: { + barVar: { value: 'bar-value' }, + barVar2: { value: [1, 2] }, + barVar3: { + type: 'yaml', + value: + '- namespace: mockNamespace\n #disabledProp: ["test"]\n anotherProp: test\n- namespace: mockNamespace2\n #disabledProp: ["test2"]\n anotherProp: test2', + }, + barVar4: { + type: 'yaml', + value: '', + }, + barVar5: { + type: 'yaml', + value: 'testField: test\n invalidSpacing: foo', + }, + }, + }, + ], + }; + + const mockInput2: PackagePolicyInput = { + type: 'test-metrics', + policy_template: 'some-template', + enabled: true, + vars: { + inputVar: { value: 'input-value' }, + inputVar2: { value: undefined }, + inputVar3: { + type: 'yaml', + value: 'testField: test', + }, + inputVar4: { value: '' }, + }, + streams: [ + { + id: 'test-metrics-foo', + enabled: true, + data_stream: { dataset: 'foo', type: 'metrics' }, + vars: { + fooVar: { value: 'foo-value' }, + fooVar2: { value: [1, 2] }, + }, + compiled_stream: { + fooKey: 'fooValue1', + fooKey2: ['fooValue2'], + }, + }, + ], + }; + + it('returns no inputs for package policy with no inputs', async () => { + expect(await templatePackagePolicyToFullInputs([])).toEqual([]); + }); + + it('returns inputs even when inputs where disabled', async () => { + expect(await templatePackagePolicyToFullInputs([{ ...mockInput, enabled: false }])).toEqual([ + { + streams: [ + { + data_stream: { + dataset: 'foo', + type: 'logs', + }, + fooKey: 'fooValue1', + fooKey2: ['fooValue2'], + id: 'test-logs-foo', + type: 'test-logs', + }, + { + data_stream: { + dataset: 'bar', + type: 'logs', + }, + id: 'test-logs-bar', + type: 'test-logs', + }, + ], + }, + ]); + }); + + it('returns agent inputs with streams', async () => { + expect(await templatePackagePolicyToFullInputs([mockInput])).toEqual([ + { + streams: [ + { + id: 'test-logs-foo', + data_stream: { dataset: 'foo', type: 'logs' }, + fooKey: 'fooValue1', + fooKey2: ['fooValue2'], + type: 'test-logs', + }, + { + id: 'test-logs-bar', + data_stream: { dataset: 'bar', type: 'logs' }, + type: 'test-logs', + }, + ], + }, + ]); + }); + + it('returns unique agent inputs IDs, with policy template name if one exists for non-limited packages', async () => { + expect(await templatePackagePolicyToFullInputs([mockInput])).toEqual([ + { + streams: [ + { + id: 'test-logs-foo', + type: 'test-logs', + data_stream: { dataset: 'foo', type: 'logs' }, + fooKey: 'fooValue1', + fooKey2: ['fooValue2'], + }, + { + id: 'test-logs-bar', + data_stream: { dataset: 'bar', type: 'logs' }, + type: 'test-logs', + }, + ], + }, + ]); + }); + + it('returns agent inputs without streams', async () => { + expect(await templatePackagePolicyToFullInputs([mockInput2])).toEqual([ + { + streams: [ + { + data_stream: { + dataset: 'foo', + type: 'metrics', + }, + fooKey: 'fooValue1', + fooKey2: ['fooValue2'], + id: 'test-metrics-foo', + type: 'test-metrics', + }, + ], + }, + ]); + }); + + it('returns agent inputs without disabled streams', async () => { + expect( + await templatePackagePolicyToFullInputs([ + { + ...mockInput, + streams: [{ ...mockInput.streams[0] }, { ...mockInput.streams[1], enabled: false }], + }, + ]) + ).toEqual([ + { + streams: [ + { + id: 'test-logs-foo', + type: 'test-logs', + data_stream: { dataset: 'foo', type: 'logs' }, + fooKey: 'fooValue1', + fooKey2: ['fooValue2'], + }, + { + data_stream: { + dataset: 'bar', + type: 'logs', + }, + id: 'test-logs-bar', + type: 'test-logs', + }, + ], + }, + ]); + }); + + it('returns agent inputs with deeply merged config values', async () => { + expect( + await templatePackagePolicyToFullInputs([ + { + ...mockInput, + compiled_input: { + agent_input_template_group1_vars: { + inputVar: 'input-value', + }, + agent_input_template_group2_vars: { + inputVar3: { + testFieldGroup: { + subField1: 'subfield1', + }, + testField: 'test', + }, + }, + }, + config: { + agent_input_template_group1_vars: { + value: { + inputVar2: {}, + }, + }, + agent_input_template_group2_vars: { + value: { + inputVar3: { + testFieldGroup: { + subField2: 'subfield2', + }, + }, + inputVar4: '', + }, + }, + }, + }, + ]) + ).toEqual([ + { + agent_input_template_group1_vars: { + inputVar: 'input-value', + inputVar2: {}, + }, + agent_input_template_group2_vars: { + inputVar3: { + testField: 'test', + testFieldGroup: { + subField1: 'subfield1', + subField2: 'subfield2', + }, + }, + inputVar4: '', + }, + streams: [ + { + id: 'test-logs-foo', + data_stream: { dataset: 'foo', type: 'logs' }, + fooKey: 'fooValue1', + fooKey2: ['fooValue2'], + type: 'test-logs', + }, + { id: 'test-logs-bar', data_stream: { dataset: 'bar', type: 'logs' }, type: 'test-logs' }, + ], + }, + ]); + }); +}); diff --git a/x-pack/plugins/fleet/server/services/epm/packages/index.ts b/x-pack/plugins/fleet/server/services/epm/packages/index.ts index 5895d4a7819c6..f6cee5a34bae0 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/index.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/index.ts @@ -27,6 +27,7 @@ export { export { getBundledPackages } from './bundled_packages'; export { getBulkAssets } from './get_bulk_assets'; +export { getTemplateInputs } from './get_template_inputs'; export type { BulkInstallResponse, IBulkInstallPackageError } from './install'; export { handleInstallPackageFailure, installPackage, ensureInstalledPackage } from './install'; diff --git a/x-pack/plugins/fleet/server/services/package_policy.ts b/x-pack/plugins/fleet/server/services/package_policy.ts index 46ac72f69ecab..983fdd7e8d29b 100644 --- a/x-pack/plugins/fleet/server/services/package_policy.ts +++ b/x-pack/plugins/fleet/server/services/package_policy.ts @@ -1861,16 +1861,23 @@ function validatePackagePolicyOrThrow(packagePolicy: NewPackagePolicy, pkgInfo: } } -function getInputsWithStreamIds( +// the option `allEnabled` is only used to generate inputs integration templates where everything is enabled by default +// it shouldn't be used in the normal install flow +export function getInputsWithStreamIds( packagePolicy: NewPackagePolicy, - packagePolicyId: string + packagePolicyId?: string, + allEnabled?: boolean ): PackagePolicy['inputs'] { return packagePolicy.inputs.map((input) => { return { ...input, + enabled: !!allEnabled ? true : input.enabled, streams: input.streams.map((stream) => ({ ...stream, - id: `${input.type}-${stream.data_stream.dataset}-${packagePolicyId}`, + enabled: !!allEnabled ? true : stream.enabled, + id: packagePolicyId + ? `${input.type}-${stream.data_stream.dataset}-${packagePolicyId}` + : `${input.type}-${stream.data_stream.dataset}`, })), }; }); diff --git a/x-pack/plugins/fleet/server/types/rest_spec/epm.ts b/x-pack/plugins/fleet/server/types/rest_spec/epm.ts index 2c046134598a7..da0628cbeb911 100644 --- a/x-pack/plugins/fleet/server/types/rest_spec/epm.ts +++ b/x-pack/plugins/fleet/server/types/rest_spec/epm.ts @@ -247,3 +247,15 @@ export const DeletePackageRequestSchemaDeprecated = { }) ), }; + +export const GetInputsRequestSchema = { + params: schema.object({ + pkgName: schema.string(), + pkgVersion: schema.string(), + }), + query: schema.object({ + format: schema.oneOf([schema.literal('json'), schema.literal('yml'), schema.literal('yaml')], { + defaultValue: 'json', + }), + }), +}; diff --git a/x-pack/test/fleet_api_integration/apis/epm/get_templates_inputs.ts b/x-pack/test/fleet_api_integration/apis/epm/get_templates_inputs.ts new file mode 100644 index 0000000000000..e879269c89fa1 --- /dev/null +++ b/x-pack/test/fleet_api_integration/apis/epm/get_templates_inputs.ts @@ -0,0 +1,200 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import fs from 'fs'; +import path from 'path'; +import { FtrProviderContext } from '../../../api_integration/ftr_provider_context'; +import { skipIfNoDockerRegistry } from '../../helpers'; +import { setupFleetAndAgents } from '../agents/services'; +import { testUsers } from '../test_users'; + +export default function (providerContext: FtrProviderContext) { + const { getService } = providerContext; + + const supertest = getService('supertest'); + const supertestWithoutAuth = getService('supertestWithoutAuth'); + + const testPkgName = 'apache'; + const testPkgVersion = '0.1.4'; + + const uninstallPackage = async (name: string, version: string) => { + await supertest.delete(`/api/fleet/epm/packages/${name}/${version}`).set('kbn-xsrf', 'xxxx'); + }; + + const testPkgArchiveZip = path.join( + path.dirname(__filename), + '../fixtures/direct_upload_packages/apache_0.1.4.zip' + ); + + describe('EPM Templates - Get Inputs', () => { + skipIfNoDockerRegistry(providerContext); + setupFleetAndAgents(providerContext); + before(async () => { + const buf = fs.readFileSync(testPkgArchiveZip); + await supertest + .post(`/api/fleet/epm/packages`) + .set('kbn-xsrf', 'xxxx') + .type('application/zip') + .send(buf) + .expect(200); + }); + after(async () => { + await uninstallPackage(testPkgName, testPkgVersion); + }); + const expectedYml = `inputs: + - id: logfile-apache.access + type: logfile + data_stream: + dataset: apache.access + type: logs + paths: + - /var/log/apache2/access.log* + - /var/log/apache2/other_vhosts_access.log* + - /var/log/httpd/access_log* + exclude_files: + - .gz$ + processors: + - add_fields: + target: '' + fields: + ecs.version: 1.5.0 + - id: logfile-apache.error + type: logfile + data_stream: + dataset: apache.error + type: logs + paths: + - /var/log/apache2/error.log* + - /var/log/httpd/error_log* + exclude_files: + - .gz$ + processors: + - add_locale: null + - add_fields: + target: '' + fields: + ecs.version: 1.5.0 + - id: apache/metrics-apache.status + type: apache/metrics + data_stream: + dataset: apache.status + type: metrics + metricsets: + - status + hosts: + - 'http://127.0.0.1' + period: 10s + server_status_path: /server-status +`; + const expectedJson = [ + { + id: 'logfile-apache.access', + type: 'logfile', + data_stream: { + type: 'logs', + dataset: 'apache.access', + }, + paths: [ + '/var/log/apache2/access.log*', + '/var/log/apache2/other_vhosts_access.log*', + '/var/log/httpd/access_log*', + ], + exclude_files: ['.gz$'], + processors: [ + { + add_fields: { + target: '', + fields: { + 'ecs.version': '1.5.0', + }, + }, + }, + ], + }, + { + id: 'logfile-apache.error', + type: 'logfile', + data_stream: { + type: 'logs', + dataset: 'apache.error', + }, + paths: ['/var/log/apache2/error.log*', '/var/log/httpd/error_log*'], + exclude_files: ['.gz$'], + processors: [ + { + add_locale: null, + }, + { + add_fields: { + target: '', + fields: { + 'ecs.version': '1.5.0', + }, + }, + }, + ], + }, + { + id: 'apache/metrics-apache.status', + type: 'apache/metrics', + data_stream: { + type: 'metrics', + dataset: 'apache.status', + }, + metricsets: ['status'], + hosts: ['http://127.0.0.1'], + period: '10s', + server_status_path: '/server-status', + }, + ]; + + it('returns inputs template in json format', async function () { + const res = await supertest + .get(`/api/fleet/epm/templates/${testPkgName}/${testPkgVersion}/inputs?format=json`) + .expect(200); + const inputs = res.body.inputs; + + expect(inputs).to.eql(expectedJson); + }); + + it('returns inputs template in yaml format if format=yaml', async function () { + const res = await supertest + .get(`/api/fleet/epm/templates/${testPkgName}/${testPkgVersion}/inputs?format=yaml`) + .expect(200); + + expect(res.text).to.eql(expectedYml); + }); + + it('returns inputs template in yaml format if format=yml', async function () { + const res = await supertest + .get(`/api/fleet/epm/templates/${testPkgName}/${testPkgVersion}/inputs?format=yml`) + .expect(200); + expect(res.text).to.eql(expectedYml); + }); + + it('returns a 404 for a version that does not exists', async function () { + await supertest + .get(`/api/fleet/epm/templates/${testPkgName}/0.1.0/inputs?format=json`) + .expect(404); + }); + + it('allows user with only fleet permission to access', async () => { + await supertestWithoutAuth + .get(`/api/fleet/epm/templates/${testPkgName}/${testPkgVersion}/inputs?format=json`) + .auth(testUsers.fleet_all_only.username, testUsers.fleet_all_only.password) + .expect(200); + }); + + it('allows user with integrations read permission to access', async () => { + await supertestWithoutAuth + .get(`/api/fleet/epm/templates/${testPkgName}/${testPkgVersion}/inputs?format=json`) + .auth(testUsers.fleet_all_int_read.username, testUsers.fleet_all_int_read.password) + .expect(200); + }); + }); +} diff --git a/x-pack/test/fleet_api_integration/apis/epm/index.js b/x-pack/test/fleet_api_integration/apis/epm/index.js index 045626e95a740..94f7c12a15ce4 100644 --- a/x-pack/test/fleet_api_integration/apis/epm/index.js +++ b/x-pack/test/fleet_api_integration/apis/epm/index.js @@ -46,5 +46,6 @@ export default function loadTests({ loadTestFile, getService }) { loadTestFile(require.resolve('./install_dynamic_template_metric')); loadTestFile(require.resolve('./routing_rules')); loadTestFile(require.resolve('./install_runtime_field')); + loadTestFile(require.resolve('./get_templates_inputs')); }); } From a0c7d60f8c232213f2bced1f79d14c1e862d42d5 Mon Sep 17 00:00:00 2001 From: James Rodewig Date: Tue, 10 Oct 2023 08:47:15 -0500 Subject: [PATCH 24/48] [Serverless Search] Fix API key privileges link (#168290) ## Summary **Problem:** When creating an API key from the **Getting Started** page, the "Learn how to structure role descriptors" link under **Security Privileges** links to https://www.elastic.co/guide/en/elasticsearch/reference/master/mapping-roles.html. This page talks about Security realms and isn't relevant for Serverless. **Solution:** Update the link to the point to a related page in the Serverless docs instead. **Note:** We can't apply this to the **API Keys** page under **Project settings > Management > API keys** as its shared. --- packages/kbn-doc-links/src/get_doc_links.ts | 3 +++ packages/kbn-doc-links/src/types.ts | 3 +++ x-pack/plugins/serverless_search/common/doc_links.ts | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index 181537423fd1d..074e0f1c921c6 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -848,6 +848,9 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { gettingStartedIngest: `${SERVERLESS_ELASTICSEARCH_DOCS}get-started#ingest`, gettingStartedSearch: `${SERVERLESS_ELASTICSEARCH_DOCS}get-started#search`, }, + serverlessSecurity: { + apiKeyPrivileges: `${SERVERLESS_DOCS}api-keys#restrict-privileges`, + }, synthetics: { featureRoles: `${ELASTIC_WEBSITE_URL}guide/en/observability/${DOC_LINK_VERSION}/synthetics-feature-roles.html`, }, diff --git a/packages/kbn-doc-links/src/types.ts b/packages/kbn-doc-links/src/types.ts index 6d6d9b7587e51..7a61d9f3dd30e 100644 --- a/packages/kbn-doc-links/src/types.ts +++ b/packages/kbn-doc-links/src/types.ts @@ -605,6 +605,9 @@ export interface DocLinks { readonly integrationsConnectorClient: string; readonly integrationsLogstash: string; }; + readonly serverlessSecurity: { + readonly apiKeyPrivileges: string; + }; readonly synthetics: { readonly featureRoles: string; }; diff --git a/x-pack/plugins/serverless_search/common/doc_links.ts b/x-pack/plugins/serverless_search/common/doc_links.ts index 2ee278b7f3d9c..0c816e3c7a389 100644 --- a/x-pack/plugins/serverless_search/common/doc_links.ts +++ b/x-pack/plugins/serverless_search/common/doc_links.ts @@ -57,7 +57,7 @@ class ESDocLinks { this.kibanaFeedback = newDocLinks.kibana.feedback; this.kibanaRunApiInConsole = newDocLinks.console.serverlessGuide; this.metadata = newDocLinks.security.mappingRoles; - this.roleDescriptors = newDocLinks.security.mappingRoles; + this.roleDescriptors = newDocLinks.serverlessSecurity.apiKeyPrivileges; this.securityApis = newDocLinks.apis.securityApis; // Client links From 3131bc228124e8641dca52508cffd91c14290564 Mon Sep 17 00:00:00 2001 From: Drew Tate Date: Tue, 10 Oct 2023 07:57:52 -0600 Subject: [PATCH 25/48] [Event annotations] expand and stabilize listing page tests (#168139) ## Summary Fix #167434 (reenables embeddable test) Fix https://github.com/elastic/kibana/issues/168281 Flaky test runner (100 times): https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3417 --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../visualize/group3/_annotation_listing.ts | 35 ++++++++++- .../annotation_listing_page_search.json | 61 +++++++++++++++++++ 2 files changed, 94 insertions(+), 2 deletions(-) diff --git a/test/functional/apps/visualize/group3/_annotation_listing.ts b/test/functional/apps/visualize/group3/_annotation_listing.ts index cdb0cb615be47..5d33f714159f0 100644 --- a/test/functional/apps/visualize/group3/_annotation_listing.ts +++ b/test/functional/apps/visualize/group3/_annotation_listing.ts @@ -13,6 +13,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const PageObjects = getPageObjects(['visualize', 'annotationEditor']); const listingTable = getService('listingTable'); const kibanaServer = getService('kibanaServer'); + const testSubjects = getService('testSubjects'); const find = getService('find'); const retry = getService('retry'); const log = getService('log'); @@ -32,6 +33,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.visualize.gotoVisualizationLandingPage(); await PageObjects.visualize.selectAnnotationsTab(); + await listingTable.waitUntilTableIsLoaded(); }); after(async function () { @@ -156,7 +158,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); }); - describe.skip('data view switching', () => { + describe('data view switching', () => { it('recovers from missing data view', async () => { await listingTable.clickItemLink('eventAnnotation', 'missing data view'); @@ -175,7 +177,36 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.annotationEditor.saveGroup(); }); - it('recovers from missing field in data view', () => {}); + it('recovers from missing field in data view', async () => { + const assertShowingMissingFieldError = async (yes: boolean) => { + const [failureExists, canvasExists] = await Promise.all([ + testSubjects.exists('embeddable-lens-failure'), + find.existsByCssSelector('canvas', 1000), + ]); + expect(failureExists).to.be(yes); + expect(canvasExists).to.be(!yes); + }; + + await listingTable.clickItemLink('eventAnnotation', 'Group with additional fields'); + + await assertShowingMissingFieldError(false); + + await retry.try(async () => { + await PageObjects.annotationEditor.editGroupMetadata({ + dataView: 'Data view without fields', + }); + + await assertShowingMissingFieldError(true); + }); + + await retry.try(async () => { + await PageObjects.annotationEditor.editGroupMetadata({ + dataView: 'logs*', + }); + + await assertShowingMissingFieldError(false); + }); + }); }); }); }); diff --git a/test/functional/fixtures/kbn_archiver/annotation_listing_page_search.json b/test/functional/fixtures/kbn_archiver/annotation_listing_page_search.json index 34f4fb8ed1b48..a54a042effb6e 100644 --- a/test/functional/fixtures/kbn_archiver/annotation_listing_page_search.json +++ b/test/functional/fixtures/kbn_archiver/annotation_listing_page_search.json @@ -21,6 +21,29 @@ "version": "WzIyNywxXQ==" } +{ + "attributes": { + "fieldAttrs": "{}", + "fieldFormatMap": "{}", + "fields": "[]", + "name": "Data view without fields", + "runtimeFieldMap": "{}", + "sourceFilters": "[]", + "timeFieldName": "timestamp", + "title": "kibana_sample_data_logs", + "typeMeta": "{}" + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-09-07T17:23:20.906Z", + "id": "data-view-without-fields", + "managed": false, + "references": [], + "type": "index-pattern", + "typeMigrationVersion": "8.0.0", + "updated_at": "2023-09-11T15:50:59.227Z", + "version": "WzIyNywxXQ==" +} + { "attributes": { "fieldAttrs": "{}", @@ -44,6 +67,44 @@ "version": "WzIyNywxXQ==" } +{ + "attributes": { + "annotations": [ + { + "extraFields": [ + "@message.raw" + ], + "icon": "triangle", + "id": "3d28ce7e-fc5e-409b-aea3-4d9e15010843", + "key": { + "type": "point_in_time" + }, + "label": "Event", + "timeField": "@timestamp", + "type": "query" + } + ], + "dataViewSpec": null, + "description": "", + "ignoreGlobalFilters": true, + "title": "Group with additional fields" + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2023-10-06T17:15:58.790Z", + "id": "12371e00-5174-11ee-a5c4-7dce2e3293a7", + "managed": false, + "references": [ + { + "id": "90943e30-9a47-11e8-b64d-95841ca0b247", + "name": "event-annotation-group_dataView-ref-90943e30-9a47-11e8-b64d-95841ca0b247", + "type": "index-pattern" + } + ], + "type": "event-annotation-group", + "updated_at": "2023-10-06T17:17:05.384Z", + "version": "WzE4MywxXQ==" +} + { "attributes": { "annotations": [ From 1af7f8c8f4938eb40a0a87f500465e8d413f9c29 Mon Sep 17 00:00:00 2001 From: Christos Nasikas Date: Tue, 10 Oct 2023 17:05:55 +0300 Subject: [PATCH 26/48] [Cases] Fix navigation dependency between tests (#168452) --- .../test_suites/observability/cases/configure.ts | 9 +++------ .../test_suites/security/ftr/cases/configure.ts | 5 ++--- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts b/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts index bd51ed5b848a6..3ed07084edd8c 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/cases/configure.ts @@ -10,6 +10,7 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default ({ getPageObject, getService }: FtrProviderContext) => { const common = getPageObject('common'); + const header = getPageObject('header'); const svlCommonNavigation = getPageObject('svlCommonNavigation'); const svlCommonPage = getPageObject('svlCommonPage'); const svlObltNavigation = getService('svlObltNavigation'); @@ -24,10 +25,10 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { this.tags(['failsOnMKI']); before(async () => { await svlCommonPage.login(); - await svlObltNavigation.navigateToLandingPage(); - await svlCommonNavigation.sidenav.clickLink({ deepLinkId: 'observability-overview:cases' }); + await common.clickAndValidate('configure-case-button', 'case-configure-title'); + await header.waitUntilLoadingHasFinished(); }); after(async () => { @@ -37,10 +38,6 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { // FLAKY: https://github.com/elastic/kibana/issues/166469 describe.skip('Closure options', function () { - before(async () => { - await common.clickAndValidate('configure-case-button', 'case-configure-title'); - }); - it('defaults the closure option correctly', async () => { await cases.common.assertRadioGroupValue('closure-options-radio-group', 'close-by-user'); }); diff --git a/x-pack/test_serverless/functional/test_suites/security/ftr/cases/configure.ts b/x-pack/test_serverless/functional/test_suites/security/ftr/cases/configure.ts index e74deac161b26..5c71abf3ad7ba 100644 --- a/x-pack/test_serverless/functional/test_suites/security/ftr/cases/configure.ts +++ b/x-pack/test_serverless/functional/test_suites/security/ftr/cases/configure.ts @@ -10,6 +10,7 @@ import { FtrProviderContext } from '../../../../ftr_provider_context'; export default ({ getPageObject, getService }: FtrProviderContext) => { const common = getPageObject('common'); + const header = getPageObject('header'); const svlCommonPage = getPageObject('svlCommonPage'); const svlSecNavigation = getService('svlSecNavigation'); const testSubjects = getService('testSubjects'); @@ -23,12 +24,10 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { this.tags(['failsOnMKI']); before(async () => { await svlCommonPage.login(); - await svlSecNavigation.navigateToLandingPage(); - await testSubjects.click('solutionSideNavItemLink-cases'); - await common.clickAndValidate('configure-case-button', 'case-configure-title'); + await header.waitUntilLoadingHasFinished(); }); after(async () => { From e3d9f3d62e403f56b9d3a553338a3c5201edc021 Mon Sep 17 00:00:00 2001 From: Sid Date: Tue, 10 Oct 2023 16:12:45 +0200 Subject: [PATCH 27/48] Fix API Key flyout double submit (#167468) ## Summary Closes https://github.com/elastic/kibana/issues/163314 ## Fixes - Removed an extra EuiPortal that was not needed as EuiFlyout adds a Portal - Inverted control of the form by wrapping the flyout content in the form. Prevents multiple submits by using traditional form controls and button type as submit. ## Release Notes: - Fixes issue with multiple API keys being created if the form is submitted using the enter key fired multiple times in quick succession. https://github.com/elastic/kibana/issues/163314 --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../public/components/form_flyout.tsx | 104 --- .../api_keys/api_keys_grid/api_key_flyout.tsx | 851 +++++++++--------- 2 files changed, 444 insertions(+), 511 deletions(-) delete mode 100644 x-pack/plugins/security/public/components/form_flyout.tsx diff --git a/x-pack/plugins/security/public/components/form_flyout.tsx b/x-pack/plugins/security/public/components/form_flyout.tsx deleted file mode 100644 index 51ab56a11d225..0000000000000 --- a/x-pack/plugins/security/public/components/form_flyout.tsx +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import type { EuiButtonProps, EuiFlyoutProps } from '@elastic/eui'; -import { - EuiButton, - EuiButtonEmpty, - EuiFlexGroup, - EuiFlexItem, - EuiFlyout, - EuiFlyoutBody, - EuiFlyoutFooter, - EuiFlyoutHeader, - EuiPortal, - EuiTitle, -} from '@elastic/eui'; -import type { FunctionComponent, RefObject } from 'react'; -import React, { useEffect } from 'react'; - -import { FormattedMessage } from '@kbn/i18n-react'; - -import { useHtmlId } from './use_html_id'; - -export interface FormFlyoutProps extends Omit { - title: string; - initialFocus?: RefObject; - onCancel(): void; - onSubmit(): void; - submitButtonText: string; - submitButtonColor?: EuiButtonProps['color']; - isLoading?: EuiButtonProps['isLoading']; - isDisabled?: EuiButtonProps['isDisabled']; - isSubmitButtonHidden?: boolean; -} - -export const FormFlyout: FunctionComponent = ({ - title, - submitButtonText, - submitButtonColor, - onCancel, - onSubmit, - isLoading, - isDisabled, - isSubmitButtonHidden, - children, - initialFocus, - ...rest -}) => { - useEffect(() => { - if (initialFocus && initialFocus.current) { - initialFocus.current.focus(); - } - }, [initialFocus]); - - const titleId = useHtmlId('formFlyout', 'title'); - - return ( - - - - -

{title}

-
-
- {children} - - - - - - - - {!isSubmitButtonHidden && ( - - - {submitButtonText} - - - )} - - -
-
- ); -}; diff --git a/x-pack/plugins/security/public/management/api_keys/api_keys_grid/api_key_flyout.tsx b/x-pack/plugins/security/public/management/api_keys/api_keys_grid/api_key_flyout.tsx index 6d100f2a8261e..b3792941fc6d0 100644 --- a/x-pack/plugins/security/public/management/api_keys/api_keys_grid/api_key_flyout.tsx +++ b/x-pack/plugins/security/public/management/api_keys/api_keys_grid/api_key_flyout.tsx @@ -7,11 +7,17 @@ import type { ExclusiveUnion } from '@elastic/eui'; import { + EuiButton, + EuiButtonEmpty, EuiCallOut, EuiCheckableCard, EuiFieldNumber, EuiFlexGroup, EuiFlexItem, + EuiFlyout, + EuiFlyoutBody, + EuiFlyoutFooter, + EuiFlyoutHeader, EuiFormFieldset, EuiFormRow, EuiHorizontalRule, @@ -36,10 +42,9 @@ import { ApiKeyBadge, ApiKeyStatus, TimeToolTip, UsernameWithIcon } from './api_ import type { ApiKeyRoleDescriptors } from '../../../../common/model'; import { DocLink } from '../../../components/doc_link'; import { FormField } from '../../../components/form_field'; -import type { FormFlyoutProps } from '../../../components/form_flyout'; -import { FormFlyout } from '../../../components/form_flyout'; import { FormRow } from '../../../components/form_row'; import { useCurrentUser } from '../../../components/use_current_user'; +import { useHtmlId } from '../../../components/use_html_id'; import { useInitialFocus } from '../../../components/use_initial_focus'; import { RolesAPIClient } from '../../roles/roles_api_client'; import { APIKeysAPIClient } from '../api_keys_api_client'; @@ -64,7 +69,7 @@ export interface ApiKeyFormValues { interface CommonApiKeyFlyoutProps { initialValues?: ApiKeyFormValues; - onCancel: FormFlyoutProps['onCancel']; + onCancel(): void; canManageCrossClusterApiKeys?: boolean; readOnly?: boolean; } @@ -175,337 +180,466 @@ export const ApiKeyFlyout: FunctionComponent = ({ const firstFieldRef = useInitialFocus([isLoading]); + const titleId = useHtmlId('formFlyout', 'title'); + const isSubmitButtonHidden = readOnly || (apiKey && !canEdit); + + const isSubmitDisabled = + isLoading || (formik.submitCount > 0 && !formik.isValid) || readOnly || (apiKey && !canEdit); + + const title = apiKey + ? readOnly || !canEdit + ? i18n.translate('xpack.security.accountManagement.apiKeyFlyout.viewTitle', { + defaultMessage: `API key details`, + }) + : i18n.translate('xpack.security.accountManagement.apiKeyFlyout.updateTitle', { + defaultMessage: `Update API key`, + }) + : i18n.translate('xpack.security.accountManagement.apiKeyFlyout.createTitle', { + defaultMessage: `Create API key`, + }); + + const submitButtonText = apiKey + ? i18n.translate('xpack.security.accountManagement.apiKeyFlyout.updateSubmitButton', { + defaultMessage: `{isSubmitting, select, true{Updating API key…} other{Update API key}}`, + values: { isSubmitting: formik.isSubmitting }, + }) + : i18n.translate('xpack.security.accountManagement.apiKeyFlyout.createSubmitButton', { + defaultMessage: `{isSubmitting, select, true{Creating API key…} other{Create API key}}`, + values: { isSubmitting: formik.isSubmitting }, + }); + return ( - 0 && !formik.isValid) || - readOnly || - (apiKey && !canEdit) - } - isSubmitButtonHidden={readOnly || (apiKey && !canEdit)} - size="m" - ownFocus - > - - {apiKey && !readOnly ? ( - !isOwner ? ( - <> - - } - /> - - - ) : hasExpired ? ( - <> - - } - /> - - - ) : null - ) : null} - -
- - } - fullWidth - > - - - - {apiKey ? ( - <> - - - - - } - > - - - - - - } - > - - - - - + + + +

{title}

+
+
+ + + {apiKey && !readOnly ? ( + !isOwner ? ( + <> + } - > - -
-
- - + + + ) : hasExpired ? ( + <> + } - > - - - -
- - ) : canManageCrossClusterApiKeys ? ( + /> + + + ) : null + ) : null} + } fullWidth > - - - - -

- -

-
- - - - - + formik.setFieldValue('type', 'rest')} - checked={formik.values.type === 'rest'} + ), + }} + fullWidth + /> +
+ + {apiKey ? ( + <> + + + + + } + > + + + + + + } + > + + + + + + } + > + + + + + + } + > + + + + + + ) : canManageCrossClusterApiKeys ? ( + - - - - -

+ } + fullWidth + > + + + + +

+ +

+
+ + -

-
- - - - - - } - onChange={() => formik.setFieldValue('type', 'cross_cluster')} - checked={formik.values.type === 'cross_cluster'} + + + } + onChange={() => formik.setFieldValue('type', 'rest')} + checked={formik.values.type === 'rest'} + /> +
+ + + +

+ +

+
+ + + + + + } + onChange={() => formik.setFieldValue('type', 'cross_cluster')} + checked={formik.values.type === 'cross_cluster'} + /> +
+ +
+ ) : ( + - - - - ) : ( - - } - > - - - )} - + } + > + + + )} + - {formik.values.type === 'cross_cluster' ? ( - - } - helpText={ - + {formik.values.type === 'cross_cluster' ? ( + - - } - fullWidth - > - formik.setFieldValue('access', value)} - validate={(value: string) => { - if (!value) { - return i18n.translate( - 'xpack.security.management.apiKeys.apiKeyFlyout.accessRequired', - { - defaultMessage: 'Enter access permissions or disable this option.', - } - ); + } + helpText={ + + + + } + fullWidth + > + formik.setFieldValue('access', value)} + validate={(value: string) => { + if (!value) { + return i18n.translate( + 'xpack.security.management.apiKeys.apiKeyFlyout.accessRequired', + { + defaultMessage: 'Enter access permissions or disable this option.', + } + ); + } + try { + JSON.parse(value); + } catch (e) { + return i18n.translate( + 'xpack.security.management.apiKeys.apiKeyFlyout.invalidJsonError', + { + defaultMessage: 'Enter valid JSON.', + } + ); + } + }} + fullWidth + languageId="xjson" + height={200} + /> + + ) : ( + + } - try { - JSON.parse(value); - } catch (e) { - return i18n.translate( - 'xpack.security.management.apiKeys.apiKeyFlyout.invalidJsonError', - { - defaultMessage: 'Enter valid JSON.', + checked={formik.values.customPrivileges} + data-test-subj="apiKeysRoleDescriptorsSwitch" + onChange={(e) => formik.setFieldValue('customPrivileges', e.target.checked)} + disabled={readOnly || (apiKey && !canEdit)} + /> + {formik.values.customPrivileges && ( + <> + + + + } - ); - } - }} - fullWidth - languageId="xjson" - height={200} - /> - - ) : ( + fullWidth + data-test-subj="apiKeysRoleDescriptorsCodeEditor" + > + + formik.setFieldValue('role_descriptors', value) + } + validate={(value: string) => { + if (!value) { + return i18n.translate( + 'xpack.security.management.apiKeys.apiKeyFlyout.roleDescriptorsRequired', + { + defaultMessage: 'Enter role descriptors or disable this option.', + } + ); + } + try { + JSON.parse(value); + } catch (e) { + return i18n.translate( + 'xpack.security.management.apiKeys.apiKeyFlyout.invalidJsonError', + { + defaultMessage: 'Enter valid JSON.', + } + ); + } + }} + fullWidth + languageId="xjson" + height={200} + /> + + + + )} + + )} + + {!apiKey && ( + <> + + + + } + checked={formik.values.customExpiration} + onChange={(e) => formik.setFieldValue('customExpiration', e.target.checked)} + disabled={readOnly || !!apiKey} + data-test-subj="apiKeyCustomExpirationSwitch" + /> + {formik.values.customExpiration && ( + <> + + + } + fullWidth + > + + + + + )} + + + )} + } - checked={formik.values.customPrivileges} - data-test-subj="apiKeysRoleDescriptorsSwitch" - onChange={(e) => formik.setFieldValue('customPrivileges', e.target.checked)} + data-test-subj="apiKeysMetadataSwitch" + checked={formik.values.includeMetadata} disabled={readOnly || (apiKey && !canEdit)} + onChange={(e) => formik.setFieldValue('includeMetadata', e.target.checked)} /> - {formik.values.customPrivileges && ( + {formik.values.includeMetadata && ( <> } fullWidth - data-test-subj="apiKeysRoleDescriptorsCodeEditor" > - formik.setFieldValue('role_descriptors', value) - } + value={formik.values.metadata} + onChange={(value: string) => formik.setFieldValue('metadata', value)} validate={(value: string) => { if (!value) { return i18n.translate( - 'xpack.security.management.apiKeys.apiKeyFlyout.roleDescriptorsRequired', + 'xpack.security.management.apiKeys.apiKeyFlyout.metadataRequired', { - defaultMessage: 'Enter role descriptors or disable this option.', + defaultMessage: 'Enter metadata or disable this option.', } ); } @@ -529,137 +663,40 @@ export const ApiKeyFlyout: FunctionComponent = ({ )} - )} - - {!apiKey && ( - <> - - - - } - checked={formik.values.customExpiration} - onChange={(e) => formik.setFieldValue('customExpiration', e.target.checked)} - disabled={readOnly || !!apiKey} - data-test-subj="apiKeyCustomExpirationSwitch" - /> - {formik.values.customExpiration && ( - <> - - - } - fullWidth - > - - - - - )} - - - )} - - - + + + + + - } - data-test-subj="apiKeysMetadataSwitch" - checked={formik.values.includeMetadata} - disabled={readOnly || (apiKey && !canEdit)} - onChange={(e) => formik.setFieldValue('includeMetadata', e.target.checked)} - /> - {formik.values.includeMetadata && ( - <> - - - - - } - fullWidth + + + {!isSubmitButtonHidden && ( + + - formik.setFieldValue('metadata', value)} - validate={(value: string) => { - if (!value) { - return i18n.translate( - 'xpack.security.management.apiKeys.apiKeyFlyout.metadataRequired', - { - defaultMessage: 'Enter metadata or disable this option.', - } - ); - } - try { - JSON.parse(value); - } catch (e) { - return i18n.translate( - 'xpack.security.management.apiKeys.apiKeyFlyout.invalidJsonError', - { - defaultMessage: 'Enter valid JSON.', - } - ); - } - }} - fullWidth - languageId="xjson" - height={200} - /> - - - + {submitButtonText} + + )} - - -
-
+
+ + + ); }; From 9f06e30a4e9addf1db6a3e78a11103d644e37995 Mon Sep 17 00:00:00 2001 From: Dima Arnautov Date: Tue, 10 Oct 2023 16:55:03 +0200 Subject: [PATCH 28/48] [ML] AIOps: Fix Data View runtime fields support in Change point detection UI (#168249) ## Summary Fixes [#162212](https://github.com/elastic/kibana/issues/168212) If a Data View runtime field is used as a metric or split field, appends a `runtime_mappings` to the search request. ### 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 --- .../use_change_point_agg_request.ts | 72 ++++++++++++------- .../use_split_field_cardinality.ts | 12 +++- .../embeddable_chart_component_wrapper.tsx | 41 ++++++----- 3 files changed, 81 insertions(+), 44 deletions(-) diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/use_change_point_agg_request.ts b/x-pack/plugins/aiops/public/components/change_point_detection/use_change_point_agg_request.ts index 35096d303e61a..a574ae7abd09b 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/use_change_point_agg_request.ts +++ b/x-pack/plugins/aiops/public/components/change_point_detection/use_change_point_agg_request.ts @@ -9,12 +9,17 @@ import { useCallback, useEffect, useMemo, useState } from 'react'; import { type QueryDslQueryContainer } from '@elastic/elasticsearch/lib/api/types'; import { i18n } from '@kbn/i18n'; import { isDefined } from '@kbn/ml-is-defined'; +import type { + MappingRuntimeFields, + SearchRequest, +} from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { useReload } from '../../hooks/use_reload'; import { useAiopsAppContext } from '../../hooks/use_aiops_app_context'; import { ChangePointAnnotation, ChangePointDetectionRequestParams, FieldConfig, + useChangePointDetectionControlsContext, } from './change_point_detection_context'; import { useDataSource } from '../../hooks/use_data_source'; import { useCancellableSearch } from '../../hooks/use_cancellable_search'; @@ -37,8 +42,9 @@ interface RequestOptions { function getChangePointDetectionRequestBody( { index, fn, metricField, splitField, timeInterval, timeField, afterKey }: RequestOptions, - query: QueryDslQueryContainer -) { + query: QueryDslQueryContainer, + runtimeMappings: MappingRuntimeFields +): SearchRequest { const timeSeriesAgg = { over_time: { date_histogram: { @@ -98,15 +104,14 @@ function getChangePointDetectionRequestBody( : timeSeriesAgg; return { - params: { - index, - size: 0, - body: { - ...(query ? { query } : {}), - aggregations, - }, + index, + size: 0, + body: { + ...(query ? { query } : {}), + ...(runtimeMappings ? { runtime_mappings: runtimeMappings } : {}), + aggregations, }, - }; + } as SearchRequest; } export function useChangePointResults( @@ -120,7 +125,7 @@ export function useChangePointResults( } = useAiopsAppContext(); const { dataView } = useDataSource(); - + const { splitFieldsOptions, metricFieldOptions } = useChangePointDetectionControlsContext(); const { refreshTimestamp: refresh } = useReload(); const [results, setResults] = useState([]); @@ -152,7 +157,23 @@ export function useChangePointResults( return; } - const requestPayload = getChangePointDetectionRequestBody( + const metricFieldDV = metricFieldOptions.find( + (option) => option.name === fieldConfig.metricField + ); + const splitFieldDV = splitFieldsOptions.find( + (option) => option.name === fieldConfig.splitField + ); + + const runtimeMappings = { + ...(metricFieldDV?.isRuntimeField + ? { [metricFieldDV.name]: metricFieldDV.runtimeField! } + : {}), + ...(splitFieldDV?.isRuntimeField + ? { [splitFieldDV.name]: splitFieldDV.runtimeField! } + : {}), + } as MappingRuntimeFields; + + const requestPayload: SearchRequest = getChangePointDetectionRequestBody( { index: dataView.getIndexPattern(), fn: fieldConfig.fn, @@ -162,13 +183,14 @@ export function useChangePointResults( splitField: fieldConfig.splitField, afterKey, }, - query + query, + runtimeMappings ); const result = await runRequest< - typeof requestPayload, + { params: SearchRequest }, { rawResponse: ChangePointAggResponse } - >(requestPayload); + >({ params: requestPayload }); if (result === null) { setProgress(null); @@ -176,7 +198,7 @@ export function useChangePointResults( } const isFetchCompleted = !( - result.rawResponse.aggregations?.groupings?.after_key?.splitFieldTerm && + isDefined(result.rawResponse.aggregations?.groupings?.after_key?.splitFieldTerm) && pageNumber < totalAggPages ); @@ -227,11 +249,11 @@ export function useChangePointResults( if ( !isFetchCompleted && - result.rawResponse.aggregations?.groupings?.after_key?.splitFieldTerm + isDefined(result.rawResponse.aggregations?.groupings?.after_key?.splitFieldTerm) ) { await fetchResults( pageNumber + 1, - result.rawResponse.aggregations.groupings.after_key.splitFieldTerm + result.rawResponse.aggregations.groupings.after_key!.splitFieldTerm ); } } catch (e) { @@ -243,17 +265,19 @@ export function useChangePointResults( } }, [ - runRequest, - requestParams.interval, - requestParams.changePointType, + isSingleMetric, + totalAggPages, + dataView, fieldConfig.fn, fieldConfig.metricField, fieldConfig.splitField, + requestParams.interval, + requestParams.changePointType, query, - dataView, - totalAggPages, + metricFieldOptions, + splitFieldsOptions, + runRequest, toasts, - isSingleMetric, ] ); diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/use_split_field_cardinality.ts b/x-pack/plugins/aiops/public/components/change_point_detection/use_split_field_cardinality.ts index 26e23622944d6..91d764e0d7d95 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/use_split_field_cardinality.ts +++ b/x-pack/plugins/aiops/public/components/change_point_detection/use_split_field_cardinality.ts @@ -12,6 +12,7 @@ import type { SearchResponseBody, } from '@elastic/elasticsearch/lib/api/types'; import usePrevious from 'react-use/lib/usePrevious'; +import { useChangePointDetectionControlsContext } from './change_point_detection_context'; import { useCancellableSearch } from '../../hooks/use_cancellable_search'; import { useDataSource } from '../../hooks/use_data_source'; @@ -25,11 +26,19 @@ export function useSplitFieldCardinality( query: QueryDslQueryContainer ) { const prevSplitField = usePrevious(splitField); + const { splitFieldsOptions } = useChangePointDetectionControlsContext(); const [cardinality, setCardinality] = useState(null); const { dataView } = useDataSource(); const requestPayload = useMemo(() => { + const optionDefinition = splitFieldsOptions.find((option) => option.name === splitField); + let runtimeMappings = {}; + if (optionDefinition?.isRuntimeField) { + runtimeMappings = { + runtime_mappings: { [optionDefinition.name]: optionDefinition.runtimeField }, + }; + } return { params: { index: dataView.getIndexPattern(), @@ -43,10 +52,11 @@ export function useSplitFieldCardinality( }, }, }, + ...runtimeMappings, }, }, }; - }, [splitField, dataView, query]); + }, [splitField, dataView, query, splitFieldsOptions]); const { runRequest: getSplitFieldCardinality, cancelRequest } = useCancellableSearch(); diff --git a/x-pack/plugins/aiops/public/embeddable/embeddable_chart_component_wrapper.tsx b/x-pack/plugins/aiops/public/embeddable/embeddable_chart_component_wrapper.tsx index 2bace3b693853..43fbe2ff92606 100644 --- a/x-pack/plugins/aiops/public/embeddable/embeddable_chart_component_wrapper.tsx +++ b/x-pack/plugins/aiops/public/embeddable/embeddable_chart_component_wrapper.tsx @@ -12,9 +12,10 @@ import { useTimefilter } from '@kbn/ml-date-picker'; import { css } from '@emotion/react'; import useObservable from 'react-use/lib/useObservable'; import { ReloadContextProvider } from '../hooks/use_reload'; -import type { - ChangePointAnnotation, - ChangePointDetectionRequestParams, +import { + type ChangePointAnnotation, + ChangePointDetectionControlsContextProvider, + type ChangePointDetectionRequestParams, } from '../components/change_point_detection/change_point_detection_context'; import type { EmbeddableChangePointChartInput, @@ -82,22 +83,24 @@ export const EmbeddableInputTracker: FC = ({ return ( - - - + + + + + ); From b641a6998540a3f8f565d32fa3cac2b657ffd4c5 Mon Sep 17 00:00:00 2001 From: Enrico Zimuel Date: Tue, 10 Oct 2023 17:37:02 +0200 Subject: [PATCH 29/48] Updated the getting started page for PHP in serverless_search (#168456) As titled --- .../application/components/languages/php.ts | 124 ++++-------------- 1 file changed, 23 insertions(+), 101 deletions(-) diff --git a/x-pack/plugins/serverless_search/public/application/components/languages/php.ts b/x-pack/plugins/serverless_search/public/application/components/languages/php.ts index e31f02e025954..4bf4cca292339 100644 --- a/x-pack/plugins/serverless_search/public/application/components/languages/php.ts +++ b/x-pack/plugins/serverless_search/public/application/components/languages/php.ts @@ -13,15 +13,9 @@ import { INDEX_NAME_PLACEHOLDER } from '../../constants'; export const phpDefinition: LanguageDefinition = { apiReference: docLinks.phpApiReference, basicConfig: docLinks.phpBasicConfig, - buildSearchQuery: `$params = [ - 'index' => 'books', - 'body' => [ - 'q' => 'snow' - ] -]; - -$response = $client->search($params); -print_r($response->asArray());`, + buildSearchQuery: `$params = [ 'q' => 'snow' ]; + $response = $client->search(index: "books", params: $params); + print_r($response['hits']['hits']); # list of books`, configureClient: ({ url, apiKey }) => `$client = ClientBuilder::create() ->setHosts(['${url}']) ->setApiKey('${apiKey}') @@ -35,111 +29,39 @@ print_r($response->asArray());`, }, iconType: 'php.svg', id: Languages.PHP, - ingestData: `$params = [ -'body' => [ -[ -'index' => [ -'_index' => 'books', -'_id' => '9780553351927', -], -], -[ -'name' => 'Snow Crash', -'author' => 'Neal Stephenson', -'release_date' => '1992-06-01', -'page_count' => 470, -], -[ -'index' => [ -'_index' => 'books', -'_id' => '9780441017225', -], -], -[ -'name' => 'Revelation Space', -'author' => 'Alastair Reynolds', -'release_date' => '2000-03-15', -'page_count' => 585, -], -[ -'index' => [ -'_index' => 'books', -'_id' => '9780451524935', -], -], -[ -'name' => '1984', -'author' => 'George Orwell', -'release_date' => '1985-06-01', -'page_count' => 328, -], -[ -'index' => [ -'_index' => 'books', -'_id' => '9781451673319', -], -], -[ -'name' => 'Fahrenheit 451', -'author' => 'Ray Bradbury', -'release_date' => '1953-10-15', -'page_count' => 227, -], -[ -'index' => [ -'_index' => 'books', -'_id' => '9780060850524', -], -], -[ -'name' => 'Brave New World', -'author' => 'Aldous Huxley', -'release_date' => '1932-06-01', -'page_count' => 268, -], -[ -'index' => [ -'_index' => 'books', -'_id' => '9780385490818', -], -], -[ -'name' => 'The Handmaid\'s Tale', -'author' => 'Margaret Atwood', -'release_date' => '1985-06-01', -'page_count' => 311, -], -], + ingestData: `$body = [ + [ "index" => [ "_index" => "books" ]], + [ "name" => "Snow Crash", "author" => "Neal Stephenson", "release_date" => "1992-06-01", "page_count" => 470], + [ "index" => [ "_index" => "books" ]], + [ "name" => "Revelation Space", "author" => "Alastair Reynolds", "release_date" => "2000-03-15", "page_count" => 585], + [ "index" => [ "_index" => "books" ]], + [ "name" => "1984", "author" => "George Orwell", "release_date" => "1949-06-08", "page_count" => 328], + [ "index" => [ "_index" => "books" ]], + [ "name" => "Fahrenheit 451", "author" => "Ray Bradbury", "release_date" => "1953-10-15", "page_count" => 227], + [ "index" => [ "_index" => "books" ]], + [ "name" => "Brave New World", "author" => "Aldous Huxley", "release_date" => "1932-06-01", "page_count" => 268], + [ "index" => [ "_index" => "books" ]], + [ "name" => "The Handmaid's Tale", "author" => "Margaret Atwood", "release_date" => "1985-06-01", "page_count" => 311] ]; -$response = $client->bulk($params); +$response = $client->bulk(body: $body); echo $response->getStatusCode(); echo (string) $response->getBody();`, ingestDataIndex: ({ apiKey, url, indexName }) => `$client = ClientBuilder::create() - ->setHosts(['${url}']) + ->setEndpoint('${url}') ->setApiKey('${apiKey}') ->build(); -$params = [ -'body' => [ -[ -'index' => [ -'_index' => '${indexName ?? INDEX_NAME_PLACEHOLDER}', -'_id' => '1', -], -], -[ -'name' => 'foo', -'title' => 'bar', -], -], +$body = [ + [ 'index' => [ '_index' => '${indexName ?? INDEX_NAME_PLACEHOLDER}', '_id' => '1' ]], + [ 'name' => 'foo', 'title' => 'bar' ] ]; -$response = $client->bulk($params); +$response = $client->bulk(body: $body); echo $response->getStatusCode(); echo (string) $response->getBody(); `, - installClient: 'composer require elasticsearch/elasticsearch', + installClient: 'composer require elastic/elasticsearch-serverless:0.1.0-alpha1', name: i18n.translate('xpack.serverlessSearch.languages.php', { defaultMessage: 'PHP', }), From fe623b55229ac1ccd51c3d4478194a2799c46fb5 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Tue, 10 Oct 2023 16:45:55 +0100 Subject: [PATCH 30/48] skip flaky suite (#168148) --- .../test/functional_with_es_ssl/apps/cases/group2/list_view.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/functional_with_es_ssl/apps/cases/group2/list_view.ts b/x-pack/test/functional_with_es_ssl/apps/cases/group2/list_view.ts index 38dbc575ae494..d798dde84b77a 100644 --- a/x-pack/test/functional_with_es_ssl/apps/cases/group2/list_view.ts +++ b/x-pack/test/functional_with_es_ssl/apps/cases/group2/list_view.ts @@ -634,7 +634,8 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { }); }); - describe('Delete', () => { + // FLAKY: https://github.com/elastic/kibana/issues/168148 + describe.skip('Delete', () => { before(async () => { await cases.api.createNthRandomCases(1); await header.waitUntilLoadingHasFinished(); From 5946a6af8559bd18a3a1f14f479fb598456c4ad2 Mon Sep 17 00:00:00 2001 From: Thomas Neirynck Date: Tue, 10 Oct 2023 11:54:56 -0400 Subject: [PATCH 31/48] [Newsletter] add August/September link (#168264) --- nav-kibana-dev.docnav.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nav-kibana-dev.docnav.json b/nav-kibana-dev.docnav.json index 0c70e54167122..a02acdd367fa4 100644 --- a/nav-kibana-dev.docnav.json +++ b/nav-kibana-dev.docnav.json @@ -196,6 +196,9 @@ { "label": "Contributors Newsletters", "items": [ + { + "id": "kibSeptember2023ContributorNewsletter" + }, { "id": "kibJuly2023ContributorNewsletter" }, From 20fe8e41530122fb1d1dc1201178a9d850981ef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Efe=20G=C3=BCrkan=20YALAMAN?= Date: Tue, 10 Oct 2023 18:17:23 +0200 Subject: [PATCH 32/48] [Enterprise Search] Update connector license and availability (#168443) ## Summary Update connectors to promote to GA. - GitHub, ServiceNow and Dropbox is updated. https://github.com/elastic/kibana/assets/1410658/724aef4a-1fb9-483b-abdc-5dc2668ce497 Screenshot 2023-10-10 at 11 29 32 Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- packages/kbn-search-connectors/connectors.ts | 6 +++--- .../components/search_index/connector/constants.ts | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/kbn-search-connectors/connectors.ts b/packages/kbn-search-connectors/connectors.ts index 9673af86e14d9..199a96308631c 100644 --- a/packages/kbn-search-connectors/connectors.ts +++ b/packages/kbn-search-connectors/connectors.ts @@ -45,7 +45,7 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ }, { iconPath: 'dropbox.svg', - isBeta: true, + isBeta: false, isNative: true, isTechPreview: false, keywords: ['dropbox', 'connector'], @@ -66,7 +66,7 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ }, { iconPath: 'github.svg', - isBeta: true, + isBeta: false, isNative: true, keywords: ['github', 'cloud', 'connector'], name: i18n.translate('searchConnectors.content.nativeConnectors.github.name', { @@ -157,7 +157,7 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ }, { iconPath: 'servicenow.svg', - isBeta: true, + isBeta: false, isNative: true, isTechPreview: false, keywords: ['servicenow', 'cloud', 'connector'], diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/constants.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/constants.ts index d2797ea0b2abd..9fb9ac9b31b01 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/constants.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/constants.ts @@ -47,6 +47,7 @@ export const CONNECTORS_DICT: Record = { externalAuthDocsUrl: '', externalDocsUrl: '', icon: CONNECTOR_ICONS.dropbox, + platinumOnly: true, }, github: { docsUrl: docLinks.connectorsGithub, @@ -152,6 +153,7 @@ export const CONNECTORS_DICT: Record = { externalAuthDocsUrl: '', externalDocsUrl: '', icon: CONNECTOR_ICONS.servicenow, + platinumOnly: true, }, sharepoint_server: { docsUrl: docLinks.connectorsSharepoint, From 1fb81fbe1d6626073aa451d047f0b60c472f3369 Mon Sep 17 00:00:00 2001 From: "Devin W. Hurley" Date: Tue, 10 Oct 2023 12:43:29 -0400 Subject: [PATCH 33/48] [Security Solution] adds users + roles for security serverless projects to kibana (#168420) ## Summary * Allows local testing of serverless security roles * Fixes roles set in roles.yml file used in yarn es serverless. * Adds users + roles for security serverless projects to be used directly --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../kbn-es/src/serverless_resources/README.md | 13 +- .../serverless_resources/operator_users.yml | 40 +- .../kbn-es/src/serverless_resources/roles.yml | 526 ++++++------------ .../kbn-es/src/serverless_resources/users | 11 + .../src/serverless_resources/users_roles | 10 + 5 files changed, 213 insertions(+), 387 deletions(-) diff --git a/packages/kbn-es/src/serverless_resources/README.md b/packages/kbn-es/src/serverless_resources/README.md index aa9c0eeafe592..8ead2197be3ea 100644 --- a/packages/kbn-es/src/serverless_resources/README.md +++ b/packages/kbn-es/src/serverless_resources/README.md @@ -1,4 +1,5 @@ # Elasticsearch Serverless Resources + The resources in this directory are used for seeding Elasticsearch Serverless images with users, roles and tokens for SSL and authentication. Serverless requires file realm authentication, so we will bind mount them into the containers at `/usr/share/elasticsearch/config/`. ## Users @@ -14,22 +15,23 @@ password: changeme ### Adding users -1. Add the `user:encrypted_password` to `users` file. The encrypted password for `elastic_serverless` is `changeme` if you want to reuse the value. -1. Set the new user's roles in `users_roles` file. +1. Add the user:encrypted_password to `users` file. The encrypted password for `elastic_serverless` is `changeme` if you want to reuse the value. +1. Set the new user's roles in `users_roles` file in the format of `role:username` 1. Add the username to `operator_users.yml` in the array for file realm users. - ## Service Account and Tokens This section for Service Accounts was originally from the [ES Serverless repository](https://github.com/elastic/elasticsearch-serverless/blob/main/serverless-build-tools/src/main/resources/README.service_tokens.md). The "service_tokens" file contains this line: + ``` elastic/kibana/kibana-dev:$2a$10$mY2RuGROhk56vLNh.Mgwue98BnkdQPlTR.yGh38ao5jhPJobvuBCq elastic/fleet-server/fleet-server-dev:$2a$10$tgMX7U09G/EVTP8F/O4zHewhA3DXdv7iM5F2vny9TC6zw77RrutyG ``` That line defines a single service token + - For the `elastic/kibana` service account - The token is named `kibana-dev` - The token's secret is hashed using bcrypt (`$2a$`) using `10` rounds @@ -43,19 +45,18 @@ That produces an encoded token of: `AAEAAWVsYXN0aWMva2liYW5hL2tpYmFuYS1kZXY6VVVV Yes, the secret was specially chosen to produce an encoded value that can be more easily recognised in development. If a node is configured to use this `service_tokens` file, then you can authenticate to it with + ``` curl -H "Authorization: Bearer AAEAAWVsYXN0aWMva2liYW5hL2tpYmFuYS1kZXY6VVVVVVVVTEstKiBaNA" http://localhost:9200/_security/_authenticate ``` The name of the token (`kibana-dev`) is important because the `operator_users.yml` file designates that token as an operator and allows us to seed a serverless cluster with this token. - ## Overriding resources The files found in this directory can be overwritten with customized versions by using the `--resources` option of the `yarn es serverless` command. Assuming a customized `users` and `users_roles` are located in `/tmp/my_es/` directory and executing the below command from the root of Kibana, here is an example: ```shell -yarn es serverless --resources=/tmp/my_es/users --resources=/tmp/my_es/users_roles +yarn es serverless --resources=/tmp/my_es/users --resources=/tmp/my_es/users_roles ``` - diff --git a/packages/kbn-es/src/serverless_resources/operator_users.yml b/packages/kbn-es/src/serverless_resources/operator_users.yml index 493b042461688..7e8e7163e6a84 100644 --- a/packages/kbn-es/src/serverless_resources/operator_users.yml +++ b/packages/kbn-es/src/serverless_resources/operator_users.yml @@ -1,14 +1,28 @@ operator: - - usernames: ["elastic_serverless", "system_indices_superuser", "soc_manager"] - realm_type: "file" - auth_type: "realm" - - usernames: [ "elastic/kibana" ] - realm_type: "_service_account" - auth_type: "token" - token_source: "file" - token_names: [ "kibana-dev" ] - - usernames: [ "elastic/fleet-server" ] - realm_type: "_service_account" - auth_type: "token" - token_source: "file" - token_names: [ "fleet-server-dev" ] + - usernames: + [ + 'elastic_serverless', + 'system_indices_superuser', + 't1_analyst', + 't2_analyst', + 't3_analyst', + 'threat_intelligence_analyst', + 'rule_author', + 'soc_manager', + 'detections_admin', + 'platform_engineer', + 'endpoint_operations_analyst', + 'endpoint_policy_manager', + ] + realm_type: 'file' + auth_type: 'realm' + - usernames: ['elastic/kibana'] + realm_type: '_service_account' + auth_type: 'token' + token_source: 'file' + token_names: ['kibana-dev'] + - usernames: ['elastic/fleet-server'] + realm_type: '_service_account' + auth_type: 'token' + token_source: 'file' + token_names: ['fleet-server-dev'] diff --git a/packages/kbn-es/src/serverless_resources/roles.yml b/packages/kbn-es/src/serverless_resources/roles.yml index 38d3ecfa77d97..bde917d2f9750 100644 --- a/packages/kbn-es/src/serverless_resources/roles.yml +++ b/packages/kbn-es/src/serverless_resources/roles.yml @@ -1,14 +1,14 @@ system_indices_superuser: - cluster: ['all'] + cluster: ["all"] indices: - - names: ['*'] - privileges: ['all'] + - names: ["*"] + privileges: ["all"] allow_restricted_indices: true applications: - - application: '*' - privileges: ['*'] - resources: ['*'] - run_as: ['*'] + - application: "*" + privileges: ["*"] + resources: ["*"] + run_as: ["*"] # ----- # Source: https://github.com/elastic/project-controller/blob/main/internal/project/observability/config/roles.yml @@ -94,9 +94,7 @@ editor: - "*" run_as: [] -# ----- -# Source: https://github.com/elastic/project-controller/blob/main/internal/project/security/config/roles.yml -# ----- +# source: https://github.com/elastic/project-controller/blob/main/internal/project/security/config/roles.yml t1_analyst: cluster: indices: @@ -122,36 +120,17 @@ t1_analyst: privileges: - read applications: - - application: ml - privileges: - - read - resources: "*" - - application: siem - privileges: - - read - - read_alerts - - endpoint_list_read - resources: "*" - - application: securitySolutionCases - privileges: - - read - resources: "*" - - application: actions - privileges: - - read - resources: "*" - - application: builtInAlerts - privileges: - - read - resources: "*" - - application: spaces - privileges: - - all - resources: "*" - - application: osquery + - application: "kibana-.kibana" privileges: - - read - - run_saved_queries + - feature_ml.read + - feature_siem.read + - feature_siem.read_alerts + - feature_siem.endpoint_list_read + - feature_securitySolutionCases.read + - feature_actions.read + - feature_builtInAlerts.read + - feature_osquery.read + - feature_osquery.run_saved_queries resources: "*" t2_analyst: @@ -181,36 +160,17 @@ t2_analyst: privileges: - read applications: - - application: ml - privileges: - - read - resources: "*" - - application: siem - privileges: - - read - - read_alerts - - endpoint_list_read - resources: "*" - - application: securitySolutionCases - privileges: - - all - resources: "*" - - application: actions - privileges: - - read - resources: "*" - - application: builtInAlerts - privileges: - - read - resources: "*" - - application: spaces - privileges: - - all - resources: "*" - - application: osquery + - application: "kibana-.kibana" privileges: - - read - - run_saved_queries + - feature_ml.read + - feature_siem.read + - feature_siem.read_alerts + - feature_siem.endpoint_list_read + - feature_securitySolutionCases.all + - feature_actions.read + - feature_builtInAlerts.read + - feature_osquery.read + - feature_osquery.run_saved_queries resources: "*" t3_analyst: @@ -247,45 +207,26 @@ t3_analyst: privileges: - read applications: - - application: ml - privileges: - - read - resources: "*" - - application: siem - privileges: - - all - - read_alerts - - crud_alerts - - endpoint_list_all - - trusted_applications_all - - event_filters_all - - host_isolation_exceptions_all - - blocklist_all - - policy_management_read # Elastic Defend Policy Management - - host_isolation_all - - process_operations_all - - actions_log_management_all # Response actions history - - file_operations_all - resources: "*" - - application: securitySolutionCases - privileges: - - all - resources: "*" - - application: actions - privileges: - - read - resources: "*" - - application: builtInAlerts - privileges: - - all - resources: "*" - - application: osquery - privileges: - - all - resources: "*" - - application: spaces + - application: "kibana-.kibana" privileges: - - all + - feature_ml.read + - feature_siem.all + - feature_siem.read_alerts + - feature_siem.crud_alerts + - feature_siem.endpoint_list_all + - feature_siem.trusted_applications_all + - feature_siem.event_filters_all + - feature_siem.host_isolation_exceptions_all + - feature_siem.blocklist_all + - feature_siem.policy_management_read # Elastic Defend Policy Management + - feature_siem.host_isolation_all + - feature_siem.process_operations_all + - feature_siem.actions_log_management_all # Response actions history + - feature_siem.file_operations_all + - feature_securitySolutionCases.all + - feature_actions.read + - feature_builtInAlerts.all + - feature_osquery.all resources: "*" threat_intelligence_analyst: @@ -318,36 +259,17 @@ threat_intelligence_analyst: privileges: - read applications: - - application: ml - privileges: - - read - resources: "*" - - application: siem - privileges: - - read - - read_alerts - - endpoint_list_read - - blocklist_all - resources: "*" - - application: securitySolutionCases - privileges: - - all - resources: "*" - - application: actions - privileges: - - read - resources: "*" - - application: builtInAlerts - privileges: - - read - resources: "*" - - application: spaces - privileges: - - all - resources: "*" - - application: osquery + - application: "kibana-.kibana" privileges: - - all + - feature_ml.read + - feature_siem.read + - feature_siem.read_alerts + - feature_siem.endpoint_list_read + - feature_siem.blocklist_all + - feature_securitySolutionCases.all + - feature_actions.read + - feature_builtInAlerts.read + - feature_osquery.all resources: "*" rule_author: @@ -388,38 +310,23 @@ rule_author: privileges: - read applications: - - application: ml - privileges: - - read - resources: "*" - - application: siem - privileges: - - all - - read_alerts - - crud_alerts - - policy_management_all - - endpoint_list_all - - trusted_applications_all - - event_filters_all - - host_isolation_exceptions_read - - blocklist_all - - actions_log_management_read - resources: "*" - - application: securitySolutionCases - privileges: - - all - resources: "*" - - application: actions - privileges: - - read - resources: "*" - - application: builtInAlerts - privileges: - - all - resources: "*" - - application: spaces + - application: "kibana-.kibana" privileges: - - all + - feature_ml.read + - feature_siem.all + - feature_siem.read_alerts + - feature_siem.crud_alerts + - feature_siem.policy_management_all + - feature_siem.endpoint_list_all + - feature_siem.trusted_applications_all + - feature_siem.event_filters_all + - feature_siem.host_isolation_exceptions_read + - feature_siem.blocklist_all # Elastic Defend Policy Management + - feature_siem.actions_log_management_read + - feature_securitySolutionCases.all + - feature_actions.read + - feature_builtInAlerts.all + - feature_osquery.all resources: "*" soc_manager: @@ -459,50 +366,27 @@ soc_manager: privileges: - read applications: - - application: ml - privileges: - - read - resources: "*" - - application: siem - privileges: - - all - - read_alerts - - crud_alerts - - policy_management_all - - endpoint_list_all - - trusted_applications_all - - event_filters_all - - host_isolation_exceptions_all - - blocklist_all - - host_isolation_all - - process_operations_all - - actions_log_management_all - - file_operations_all - - execute_operations_all - resources: "*" - - application: securitySolutionCases - privileges: - - all - resources: "*" - - application: actions - privileges: - - all - resources: "*" - - application: builtInAlerts - privileges: - - all - resources: "*" - - application: spaces - privileges: - - all - resources: "*" - - application: osquery + - application: "kibana-.kibana" privileges: - - all - resources: "*" - - application: savedObjectsManagement - privileges: - - all + - feature_ml.read + - feature_siem.all + - feature_siem.read_alerts + - feature_siem.crud_alerts + - feature_siem.policy_management_all + - feature_siem.endpoint_list_all + - feature_siem.trusted_applications_all + - feature_siem.event_filters_all + - feature_siem.host_isolation_exceptions_all + - feature_siem.blocklist_all + - feature_siem.host_isolation_all + - feature_siem.process_operations_all + - feature_siem.actions_log_management_all + - feature_siem.file_operations_all + - feature_siem.execute_operations_all + - feature_securitySolutionCases.all + - feature_actions.all + - feature_builtInAlerts.all + - feature_osquery.all resources: "*" detections_admin: @@ -534,35 +418,16 @@ detections_admin: privileges: - read applications: - - application: ml - privileges: - - all - resources: "*" - - application: siem - privileges: - - all - - read_alerts - - crud_alerts - resources: "*" - - application: securitySolutionCases - privileges: - - all - resources: "*" - - application: actions - privileges: - - read - resources: "*" - - application: builtInAlerts - privileges: - - all - resources: "*" - - application: dev_tools - privileges: - - all - resources: "*" - - application: spaces + - application: "kibana-.kibana" privileges: - - all + - feature_ml.all + - feature_siem.all + - feature_siem.read_alerts + - feature_siem.crud_alerts + - feature_securitySolutionCases.all + - feature_actions.all + - feature_builtInAlerts.all + - feature_dev_tools.all resources: "*" platform_engineer: @@ -587,50 +452,25 @@ platform_engineer: privileges: - all applications: - - application: ml - privileges: - - all - resources: "*" - - application: siem - privileges: - - all - - read_alerts - - crud_alerts - - policy_management_all - - endpoint_list_all - - trusted_applications_all - - event_filters_all - - host_isolation_exceptions_all - - blocklist_all - - actions_log_management_read - resources: "*" - - application: securitySolutionCases - privileges: - - all - resources: "*" - - application: actions - privileges: - - all - resources: "*" - - application: builtInAlerts - privileges: - - all - resources: "*" - - application: fleet - privileges: - - all - resources: "*" - - application: fleetv2 - privileges: - - all - resources: "*" - - application: spaces - privileges: - - all - resources: "*" - - application: osquery + - application: "kibana-.kibana" privileges: - - all + - feature_ml.all + - feature_siem.all + - feature_siem.read_alerts + - feature_siem.crud_alerts + - feature_siem.policy_management_all + - feature_siem.endpoint_list_all + - feature_siem.trusted_applications_all + - feature_siem.event_filters_all + - feature_siem.host_isolation_exceptions_all + - feature_siem.blocklist_all # Elastic Defend Policy Management + - feature_siem.actions_log_management_read + - feature_securitySolutionCases.all + - feature_actions.all + - feature_builtInAlerts.all + - feature_fleet.all + - feature_fleetv2.all + - feature_osquery.all resources: "*" endpoint_operations_analyst: @@ -664,53 +504,28 @@ endpoint_operations_analyst: - read - write applications: - - application: ml - privileges: - - read - resources: "*" - - application: siem - privileges: - - all - - read_alerts - - policy_management_all - - endpoint_list_all - - trusted_applications_all - - event_filters_all - - host_isolation_exceptions_all - - blocklist_all - - host_isolation_all - - process_operations_all - - actions_log_management_all # Response History - - file_operations_all - - execute_operations_all # Execute - resources: "*" - - application: securitySolutionCases - privileges: - - all - resources: "*" - - application: actions - privileges: - - all - resources: "*" - - application: builtInAlerts - privileges: - - all - resources: "*" - - application: osquery - privileges: - - all - resources: "*" - - application: fleet + - application: "kibana-.kibana" privileges: - - all - resources: "*" - - application: fleetv2 - privileges: - - all - resources: "*" - - application: spaces - privileges: - - all + - feature_ml.read + - feature_siem.all + - feature_siem.read_alerts + - feature_siem.policy_management_all + - feature_siem.endpoint_list_all + - feature_siem.trusted_applications_all + - feature_siem.event_filters_all + - feature_siem.host_isolation_exceptions_all + - feature_siem.blocklist_all + - feature_siem.host_isolation_all + - feature_siem.process_operations_all + - feature_siem.actions_log_management_all # Response History + - feature_siem.file_operations_all + - feature_siem.execute_operations_all # Execute + - feature_securitySolutionCases.all + - feature_actions.all + - feature_builtInAlerts.all + - feature_osquery.all + - feature_fleet.all + - feature_fleetv2.all resources: "*" endpoint_policy_manager: @@ -745,47 +560,22 @@ endpoint_policy_manager: - write - manage applications: - - application: ml - privileges: - - read - resources: "*" - - application: siem - privileges: - - all - - read_alerts - - crud_alerts - - policy_management_all - - trusted_applications_all - - event_filters_all - - host_isolation_exceptions_all - - blocklist_all - - endpoint_list_all - resources: "*" - - application: securitySolutionCases - privileges: - - all - resources: "*" - - application: actions - privileges: - - all - resources: "*" - - application: builtInAlerts - privileges: - - all - resources: "*" - - application: osquery - privileges: - - all - resources: "*" - - application: fleet - privileges: - - all - resources: "*" - - application: fleetv2 - privileges: - - all - resources: "*" - - application: spaces + - application: "kibana-.kibana" privileges: - - all + - feature_ml.all + - feature_siem.all + - feature_siem.read_alerts + - feature_siem.crud_alerts + - feature_siem.policy_management_all + - feature_siem.endpoint_list_all + - feature_siem.trusted_applications_all + - feature_siem.event_filters_all + - feature_siem.host_isolation_exceptions_all + - feature_siem.blocklist_all # Elastic Defend Policy Management + - feature_securitySolutionCases.all + - feature_actions.all + - feature_builtInAlerts.all + - feature_osquery.all + - feature_fleet.all + - feature_fleetv2.all resources: "*" diff --git a/packages/kbn-es/src/serverless_resources/users b/packages/kbn-es/src/serverless_resources/users index 01d8d2e82a372..4ed7023a64b1f 100644 --- a/packages/kbn-es/src/serverless_resources/users +++ b/packages/kbn-es/src/serverless_resources/users @@ -1,3 +1,14 @@ elastic_serverless:$2a$10$nN6sRtQl2KX9Gn8kV/.NpOLSk6Jwn8TehEDnZ7aaAgzyl/dy5PYzW system_indices_superuser:$2a$10$nN6sRtQl2KX9Gn8kV/.NpOLSk6Jwn8TehEDnZ7aaAgzyl/dy5PYzW + +t1_analyst:$2a$10$nN6sRtQl2KX9Gn8kV/.NpOLSk6Jwn8TehEDnZ7aaAgzyl/dy5PYzW +t2_analyst:$2a$10$nN6sRtQl2KX9Gn8kV/.NpOLSk6Jwn8TehEDnZ7aaAgzyl/dy5PYzW +t3_analyst:$2a$10$nN6sRtQl2KX9Gn8kV/.NpOLSk6Jwn8TehEDnZ7aaAgzyl/dy5PYzW +threat_intelligence_analyst:$2a$10$nN6sRtQl2KX9Gn8kV/.NpOLSk6Jwn8TehEDnZ7aaAgzyl/dy5PYzW +rule_author:$2a$10$nN6sRtQl2KX9Gn8kV/.NpOLSk6Jwn8TehEDnZ7aaAgzyl/dy5PYzW soc_manager:$2a$10$nN6sRtQl2KX9Gn8kV/.NpOLSk6Jwn8TehEDnZ7aaAgzyl/dy5PYzW +detections_admin:$2a$10$nN6sRtQl2KX9Gn8kV/.NpOLSk6Jwn8TehEDnZ7aaAgzyl/dy5PYzW +platform_engineer:$2a$10$nN6sRtQl2KX9Gn8kV/.NpOLSk6Jwn8TehEDnZ7aaAgzyl/dy5PYzW +endpoint_operations_analyst:$2a$10$nN6sRtQl2KX9Gn8kV/.NpOLSk6Jwn8TehEDnZ7aaAgzyl/dy5PYzW +endpoint_policy_manager:$2a$10$nN6sRtQl2KX9Gn8kV/.NpOLSk6Jwn8TehEDnZ7aaAgzyl/dy5PYzW + diff --git a/packages/kbn-es/src/serverless_resources/users_roles b/packages/kbn-es/src/serverless_resources/users_roles index 3e84bd5799228..9f6adcd83dd7b 100644 --- a/packages/kbn-es/src/serverless_resources/users_roles +++ b/packages/kbn-es/src/serverless_resources/users_roles @@ -1,3 +1,13 @@ superuser:elastic_serverless system_indices_superuser:system_indices_superuser + +t1_analyst:t1_analyst +t2_analyst:t2_analyst +t3_analyst:t3_analyst +threat_intelligence_analyst:threat_intelligence_analyst +rule_author:rule_author soc_manager:soc_manager +detections_admin:detections_admin +platform_engineer:platform_engineer +endpoint_operations_analyst:endpoint_operations_analyst +endpoint_policy_manager:endpoint_policy_manager From ae075848e83eba6ed411f063ce7ed807b5c545a1 Mon Sep 17 00:00:00 2001 From: Maxim Kholod Date: Tue, 10 Oct 2023 18:45:10 +0200 Subject: [PATCH 34/48] [Cloud Security] add first cloud security e2e test for serverless (#167309) --- .buildkite/ftr_configs.yml | 1 + .github/CODEOWNERS | 3 + .../page_objects/csp_dashboard_page.ts | 12 +++- .../page_objects/index.ts | 7 +- .../test_serverless/functional/config.base.ts | 3 + .../functional/page_objects/index.ts | 3 + .../security/config.cloud_security_posture.ts | 21 ++++++ .../compliance_dashboard.ts | 67 +++++++++++++++++++ .../ftr/cloud_security_posture/index.ts | 15 +++++ 9 files changed, 128 insertions(+), 4 deletions(-) create mode 100644 x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.ts create mode 100644 x-pack/test_serverless/functional/test_suites/security/ftr/cloud_security_posture/compliance_dashboard.ts create mode 100644 x-pack/test_serverless/functional/test_suites/security/ftr/cloud_security_posture/index.ts diff --git a/.buildkite/ftr_configs.yml b/.buildkite/ftr_configs.yml index 2cc8d8cb0ed7a..05738be182699 100644 --- a/.buildkite/ftr_configs.yml +++ b/.buildkite/ftr_configs.yml @@ -425,6 +425,7 @@ enabled: - x-pack/test_serverless/functional/test_suites/search/common_configs/config.group4.ts - x-pack/test_serverless/functional/test_suites/security/config.ts - x-pack/test_serverless/functional/test_suites/security/config.examples.ts + - x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.ts - x-pack/test_serverless/functional/test_suites/security/common_configs/config.group1.ts - x-pack/test_serverless/functional/test_suites/security/common_configs/config.group2.ts - x-pack/test_serverless/functional/test_suites/security/common_configs/config.group3.ts diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ff782b29989e3..c2037209e5949 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1388,6 +1388,9 @@ x-pack/test/detection_engine_api_integration/security_and_spaces/group10/risk_en /x-pack/plugins/security_solution/public/cloud_security_posture @elastic/kibana-cloud-security-posture /x-pack/test/api_integration/apis/cloud_security_posture/ @elastic/kibana-cloud-security-posture /x-pack/test/cloud_security_posture_functional/ @elastic/kibana-cloud-security-posture +/x-pack/test/cloud_security_posture_api/ @elastic/kibana-cloud-security-posture +/x-pack/test_serverless/functional/test_suites/security/ftr/cloud_security_posture/ @elastic/kibana-cloud-security-posture +/x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.ts @elastic/kibana-cloud-security-posture # Security Solution onboarding tour /x-pack/plugins/security_solution/public/common/components/guided_onboarding @elastic/security-threat-hunting-explore diff --git a/x-pack/test/cloud_security_posture_functional/page_objects/csp_dashboard_page.ts b/x-pack/test/cloud_security_posture_functional/page_objects/csp_dashboard_page.ts index 56b83c6cc2d7f..24a89549fb025 100644 --- a/x-pack/test/cloud_security_posture_functional/page_objects/csp_dashboard_page.ts +++ b/x-pack/test/cloud_security_posture_functional/page_objects/csp_dashboard_page.ts @@ -6,7 +6,10 @@ */ import expect from '@kbn/expect'; -import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; import type { FtrProviderContext } from '../ftr_provider_context'; // Defined in CSP plugin @@ -29,6 +32,7 @@ export function CspDashboardPageProvider({ getService, getPageObjects }: FtrProv const response = await supertest .get('/internal/cloud_security_posture/status?check=init') .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(response.body).to.eql({ isPluginInitialized: true }); log.debug('CSP plugin is initialized'); @@ -110,7 +114,11 @@ export function CspDashboardPageProvider({ getService, getPageObjects }: FtrProv }, getKubernetesComplianceScore: async () => { - await dashboard.getKubernetesSummarySection(); + await retry.waitFor( + 'Cloud posture dashboard summary section to be displayed', + async () => !!(await dashboard.getKubernetesSummarySection()) + ); + return await testSubjects.find('dashboard-summary-section-compliance-score'); }, }; diff --git a/x-pack/test/cloud_security_posture_functional/page_objects/index.ts b/x-pack/test/cloud_security_posture_functional/page_objects/index.ts index 71f5619498c06..36dbf1bdc0fe9 100644 --- a/x-pack/test/cloud_security_posture_functional/page_objects/index.ts +++ b/x-pack/test/cloud_security_posture_functional/page_objects/index.ts @@ -10,9 +10,12 @@ import { FindingsPageProvider } from './findings_page'; import { CspDashboardPageProvider } from './csp_dashboard_page'; import { VulnerabilityDashboardPageProvider } from './vulnerability_dashboard_page_object'; -export const pageObjects = { - ...xpackFunctionalPageObjects, +export const cloudSecurityPosturePageObjects = { findings: FindingsPageProvider, cloudPostureDashboard: CspDashboardPageProvider, vulnerabilityDashboard: VulnerabilityDashboardPageProvider, }; +export const pageObjects = { + ...xpackFunctionalPageObjects, + ...cloudSecurityPosturePageObjects, +}; diff --git a/x-pack/test_serverless/functional/config.base.ts b/x-pack/test_serverless/functional/config.base.ts index 6f45ac8e2ca84..bda1c59abac65 100644 --- a/x-pack/test_serverless/functional/config.base.ts +++ b/x-pack/test_serverless/functional/config.base.ts @@ -78,6 +78,9 @@ export function createTestConfig(options: CreateTestConfigOptions) { login: { pathname: '/login', }, + securitySolution: { + pathname: '/app/security', + }, }, // choose where screenshots should be saved screenshots: { diff --git a/x-pack/test_serverless/functional/page_objects/index.ts b/x-pack/test_serverless/functional/page_objects/index.ts index d3a9cddca6fe1..8a3a253198f88 100644 --- a/x-pack/test_serverless/functional/page_objects/index.ts +++ b/x-pack/test_serverless/functional/page_objects/index.ts @@ -7,6 +7,8 @@ // eslint-disable-next-line @kbn/imports/no_boundary_crossing import { pageObjects as xpackFunctionalPageObjects } from '../../../test/functional/page_objects'; +// eslint-disable-next-line @kbn/imports/no_boundary_crossing +import { cloudSecurityPosturePageObjects } from '../../../test/cloud_security_posture_functional/page_objects'; import { SvlCommonPageProvider } from './svl_common_page'; import { SvlCommonNavigationProvider } from './svl_common_navigation'; import { SvlObltOnboardingPageProvider } from './svl_oblt_onboarding_page'; @@ -18,6 +20,7 @@ import { SvlTriggersActionsPageProvider } from './svl_triggers_actions_ui_page'; export const pageObjects = { ...xpackFunctionalPageObjects, + ...cloudSecurityPosturePageObjects, svlCommonPage: SvlCommonPageProvider, svlCommonNavigation: SvlCommonNavigationProvider, diff --git a/x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.ts b/x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.ts new file mode 100644 index 0000000000000..65903c2343df6 --- /dev/null +++ b/x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.ts @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { createTestConfig } from '../../config.base'; + +export default createTestConfig({ + serverlessProject: 'security', + junit: { + reportName: 'Serverless Security Cloud Security Functional Tests', + }, + kbnServerArgs: [ + `--xpack.fleet.packages.0.name=cloud_security_posture`, + `--xpack.fleet.packages.0.version=1.5.2`, + ], + // load tests in the index file + testFiles: [require.resolve('./ftr/cloud_security_posture')], +}); diff --git a/x-pack/test_serverless/functional/test_suites/security/ftr/cloud_security_posture/compliance_dashboard.ts b/x-pack/test_serverless/functional/test_suites/security/ftr/cloud_security_posture/compliance_dashboard.ts new file mode 100644 index 0000000000000..54fa5a725e29a --- /dev/null +++ b/x-pack/test_serverless/functional/test_suites/security/ftr/cloud_security_posture/compliance_dashboard.ts @@ -0,0 +1,67 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import Chance from 'chance'; +import type { FtrProviderContext } from '../../../../ftr_provider_context'; + +export default function ({ getPageObjects, getService }: FtrProviderContext) { + const retry = getService('retry'); + const pageObjects = getPageObjects(['common', 'svlCommonPage', 'cloudPostureDashboard']); + const chance = new Chance(); + + const data = [ + { + '@timestamp': new Date().toISOString(), + resource: { id: chance.guid(), name: `kubelet`, sub_type: 'lower case sub type' }, + result: { evaluation: 'failed' }, + rule: { + name: 'Upper case rule name', + section: 'Upper case section', + benchmark: { + id: 'cis_k8s', + posture_type: 'kspm', + }, + }, + cluster_id: 'Upper case cluster id', + }, + ]; + + describe('Cloud Posture Dashboard Page', function () { + // TODO: we need to check if the tests are running on MKI. There is a suspicion that installing csp package via Kibana server args is not working on MKI. + this.tags(['skipMKI', 'cloud_security_posture_compliance_dashboard']); + let cspDashboard: typeof pageObjects.cloudPostureDashboard; + let dashboard: typeof pageObjects.cloudPostureDashboard.dashboard; + + before(async () => { + await pageObjects.svlCommonPage.login(); + cspDashboard = pageObjects.cloudPostureDashboard; + dashboard = pageObjects.cloudPostureDashboard.dashboard; + await cspDashboard.waitForPluginInitialized(); + + await cspDashboard.index.add(data); + await cspDashboard.navigateToComplianceDashboardPage(); + await retry.waitFor( + 'Cloud posture integration dashboard to be displayed', + async () => !!dashboard.getIntegrationDashboardContainer() + ); + }); + + after(async () => { + await cspDashboard.index.remove(); + await pageObjects.svlCommonPage.forceLogout(); + }); + + describe('Kubernetes Dashboard', () => { + it('displays accurate summary compliance score', async () => { + const scoreElement = await dashboard.getKubernetesComplianceScore(); + + expect((await scoreElement.getVisibleText()) === '0%').to.be(true); + }); + }); + }); +} diff --git a/x-pack/test_serverless/functional/test_suites/security/ftr/cloud_security_posture/index.ts b/x-pack/test_serverless/functional/test_suites/security/ftr/cloud_security_posture/index.ts new file mode 100644 index 0000000000000..4750199f7f566 --- /dev/null +++ b/x-pack/test_serverless/functional/test_suites/security/ftr/cloud_security_posture/index.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrProviderContext } from '../../../../ftr_provider_context'; + +export default function ({ loadTestFile }: FtrProviderContext) { + describe('cloud_security_posture', function () { + this.tags(['cloud_security_posture']); + loadTestFile(require.resolve('./compliance_dashboard')); + }); +} From 9ba0e710a545ae3bb6f54303a5989619ea8f64ee Mon Sep 17 00:00:00 2001 From: Dima Arnautov Date: Tue, 10 Oct 2023 18:59:33 +0200 Subject: [PATCH 35/48] [ML] API integration tests for start and stop model deployment (#168460) ## Summary Part of #164562 Adds API integration tests for `_start` and `_stop` trained model deployment. ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --- .../server/routes/schemas/inference_schema.ts | 6 +- .../apis/ml/trained_models/index.ts | 1 + .../trained_models/start_stop_deployment.ts | 203 ++++++++++++++++++ x-pack/test/functional/services/ml/api.ts | 29 ++- 4 files changed, 228 insertions(+), 11 deletions(-) create mode 100644 x-pack/test/api_integration/apis/ml/trained_models/start_stop_deployment.ts diff --git a/x-pack/plugins/ml/server/routes/schemas/inference_schema.ts b/x-pack/plugins/ml/server/routes/schemas/inference_schema.ts index 260b3bc5881d8..b24451bf755de 100644 --- a/x-pack/plugins/ml/server/routes/schemas/inference_schema.ts +++ b/x-pack/plugins/ml/server/routes/schemas/inference_schema.ts @@ -27,9 +27,9 @@ export const modelAndDeploymentIdSchema = schema.object({ export const threadingParamsSchema = schema.maybe( schema.object({ - number_of_allocations: schema.number(), - threads_per_allocation: schema.number(), - priority: schema.oneOf([schema.literal('low'), schema.literal('normal')]), + number_of_allocations: schema.maybe(schema.number()), + threads_per_allocation: schema.maybe(schema.number()), + priority: schema.maybe(schema.oneOf([schema.literal('low'), schema.literal('normal')])), deployment_id: schema.maybe(schema.string()), }) ); diff --git a/x-pack/test/api_integration/apis/ml/trained_models/index.ts b/x-pack/test/api_integration/apis/ml/trained_models/index.ts index d1812dc188b00..80e31fd715ea1 100644 --- a/x-pack/test/api_integration/apis/ml/trained_models/index.ts +++ b/x-pack/test/api_integration/apis/ml/trained_models/index.ts @@ -13,5 +13,6 @@ export default function ({ loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./get_model_stats')); loadTestFile(require.resolve('./get_model_pipelines')); loadTestFile(require.resolve('./delete_model')); + loadTestFile(require.resolve('./start_stop_deployment')); }); } diff --git a/x-pack/test/api_integration/apis/ml/trained_models/start_stop_deployment.ts b/x-pack/test/api_integration/apis/ml/trained_models/start_stop_deployment.ts new file mode 100644 index 0000000000000..debbba310fad1 --- /dev/null +++ b/x-pack/test/api_integration/apis/ml/trained_models/start_stop_deployment.ts @@ -0,0 +1,203 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import type { MlGetTrainedModelsStatsResponse } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import { SUPPORTED_TRAINED_MODELS } from '../../../../functional/services/ml/api'; +import { FtrProviderContext } from '../../../ftr_provider_context'; +import { USER } from '../../../../functional/services/ml/security_common'; +import { getCommonRequestHeader } from '../../../../functional/services/ml/common_api'; + +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertestWithoutAuth'); + const ml = getService('ml'); + + const testModel = { + ...SUPPORTED_TRAINED_MODELS.TINY_NER, + id: SUPPORTED_TRAINED_MODELS.TINY_NER.name, + }; + + const customDeploymentId = 'my_deployment_id'; + + describe('Start and stop deployment tests', () => { + before(async () => { + await ml.api.importTrainedModel(testModel.id, testModel.name); + await ml.testResources.setKibanaTimeZoneToUTC(); + + // Make sure the .ml-stats index is created in advance, see https://github.com/elastic/elasticsearch/issues/65846 + await ml.api.assureMlStatsIndexExists(); + }); + + after(async () => { + await ml.api.stopAllTrainedModelDeploymentsES(); + await ml.api.deleteAllTrainedModelsES(); + await ml.api.cleanMlIndices(); + await ml.testResources.cleanMLSavedObjects(); + }); + + it('does not allow to start trained model deployment if the user does not have required permissions', async () => { + const { body: startResponseBody, status: startResponseStatus } = await supertest + .post(`/internal/ml/trained_models/${testModel.id}/deployment/_start`) + .auth(USER.ML_VIEWER, ml.securityCommon.getPasswordForUser(USER.ML_VIEWER)) + .set(getCommonRequestHeader('1')); + ml.api.assertResponseStatusCode(403, startResponseStatus, startResponseBody); + + // verify that model deployment has not been started + const { body: statsResponse, status: statsResponseStatus } = await supertest + .get(`/internal/ml/trained_models/${testModel.id}/_stats`) + .auth(USER.ML_POWERUSER, ml.securityCommon.getPasswordForUser(USER.ML_POWERUSER)) + .set(getCommonRequestHeader('1')); + ml.api.assertResponseStatusCode(200, statsResponseStatus, statsResponse); + + const deploymentStats = ( + statsResponse as MlGetTrainedModelsStatsResponse + ).trained_model_stats.find((v) => v.deployment_stats?.deployment_id === testModel.id); + + expect(deploymentStats).to.be(undefined); + }); + + it('starts trained model deployment with the default ID', async () => { + const { body: startResponseBody, status: deleteResponseStatus } = await supertest + .post(`/internal/ml/trained_models/${testModel.id}/deployment/_start`) + .auth(USER.ML_POWERUSER, ml.securityCommon.getPasswordForUser(USER.ML_POWERUSER)) + .set(getCommonRequestHeader('1')); + ml.api.assertResponseStatusCode(200, deleteResponseStatus, startResponseBody); + + expect(startResponseBody.assignment.assignment_state).to.eql('started'); + expect(startResponseBody.assignment.task_parameters.threads_per_allocation).to.eql(1); + expect(startResponseBody.assignment.task_parameters.priority).to.eql('normal'); + expect(startResponseBody.assignment.task_parameters.deployment_id).to.eql(testModel.id); + + // check deployment status + const { body: statsResponse, status: statsResponseStatus } = await supertest + .get(`/internal/ml/trained_models/${testModel.id}/_stats`) + .auth(USER.ML_POWERUSER, ml.securityCommon.getPasswordForUser(USER.ML_POWERUSER)) + .set(getCommonRequestHeader('1')); + ml.api.assertResponseStatusCode(200, statsResponseStatus, statsResponse); + + const modelStats = ( + statsResponse as MlGetTrainedModelsStatsResponse + ).trained_model_stats.find((v) => v.deployment_stats?.deployment_id === testModel.id); + + expect(modelStats!.deployment_stats!.allocation_status.state).to.match( + /\bstarted\b|\bfully_allocated\b/ + ); + }); + + it('starts trained model deployment with provided deployment ID', async () => { + const { body: startResponseBody, status: deleteResponseStatus } = await supertest + .post(`/internal/ml/trained_models/${testModel.id}/deployment/_start`) + .query({ deployment_id: customDeploymentId }) + .auth(USER.ML_POWERUSER, ml.securityCommon.getPasswordForUser(USER.ML_POWERUSER)) + .set(getCommonRequestHeader('1')); + ml.api.assertResponseStatusCode(200, deleteResponseStatus, startResponseBody); + + expect(startResponseBody.assignment.assignment_state).to.eql('started'); + expect(startResponseBody.assignment.task_parameters.deployment_id).to.eql(customDeploymentId); + + // check deployment status + const { body: statsResponse, status: statsResponseStatus } = await supertest + .get(`/internal/ml/trained_models/${testModel.id}/_stats`) + .auth(USER.ML_POWERUSER, ml.securityCommon.getPasswordForUser(USER.ML_POWERUSER)) + .set(getCommonRequestHeader('1')); + ml.api.assertResponseStatusCode(200, statsResponseStatus, statsResponse); + + const modelStats = ( + statsResponse as MlGetTrainedModelsStatsResponse + ).trained_model_stats.find((v) => v.deployment_stats?.deployment_id === customDeploymentId); + + expect(modelStats!.deployment_stats!.allocation_status.state).to.match( + /\bstarted\b|\bfully_allocated\b/ + ); + }); + + it('returns 404 if requested trained model does not exist', async () => { + const { body, status } = await supertest + .post(`/internal/ml/trained_models/not_existing_model/deployment/_start`) + .auth(USER.ML_POWERUSER, ml.securityCommon.getPasswordForUser(USER.ML_POWERUSER)) + .set(getCommonRequestHeader('1')); + ml.api.assertResponseStatusCode(404, status, body); + }); + + it('does not allow to stop trained model deployment if the user does not have required permissions', async () => { + const { body: stopResponseBody, status: stopResponseStatus } = await supertest + .post(`/internal/ml/trained_models/${testModel.id}/${testModel.id}/deployment/_stop`) + .auth(USER.ML_VIEWER, ml.securityCommon.getPasswordForUser(USER.ML_VIEWER)) + .set(getCommonRequestHeader('1')); + ml.api.assertResponseStatusCode(403, stopResponseStatus, stopResponseBody); + + // verify that model deployment has not been started + const { body: statsResponse, status: statsResponseStatus } = await supertest + .get(`/internal/ml/trained_models/${testModel.id}/_stats`) + .auth(USER.ML_POWERUSER, ml.securityCommon.getPasswordForUser(USER.ML_POWERUSER)) + .set(getCommonRequestHeader('1')); + ml.api.assertResponseStatusCode(200, statsResponseStatus, statsResponse); + + const modelStats = ( + statsResponse as MlGetTrainedModelsStatsResponse + ).trained_model_stats.find((v) => v.deployment_stats?.deployment_id === testModel.id); + + expect(modelStats!.deployment_stats!.allocation_status.state).to.match( + /\bstarted\b|\bfully_allocated\b/ + ); + }); + + it('stops trained model deployment with the default ID', async () => { + const { body: stopResponseBody, status: stopResponseStatus } = await supertest + .post(`/internal/ml/trained_models/${testModel.id}/${testModel.id}/deployment/_stop`) + .auth(USER.ML_POWERUSER, ml.securityCommon.getPasswordForUser(USER.ML_POWERUSER)) + .set(getCommonRequestHeader('1')); + ml.api.assertResponseStatusCode(200, stopResponseStatus, stopResponseBody); + + expect(stopResponseBody).to.eql({ + [testModel.id]: { + success: true, + }, + }); + + // check deployment status + const { body: statsResponse, status: statsResponseStatus } = await supertest + .get(`/internal/ml/trained_models/${testModel.id}/_stats`) + .auth(USER.ML_POWERUSER, ml.securityCommon.getPasswordForUser(USER.ML_POWERUSER)) + .set(getCommonRequestHeader('1')); + ml.api.assertResponseStatusCode(200, statsResponseStatus, statsResponse); + + const deploymentStats = ( + statsResponse as MlGetTrainedModelsStatsResponse + ).trained_model_stats.find((v) => v.deployment_stats?.deployment_id === testModel.id); + + expect(deploymentStats).to.be(undefined); + }); + + it('stops trained model deployment with provided deployment ID', async () => { + const { body: stopResponseBody, status: stopResponseStatus } = await supertest + .post(`/internal/ml/trained_models/${testModel.id}/${customDeploymentId}/deployment/_stop`) + .auth(USER.ML_POWERUSER, ml.securityCommon.getPasswordForUser(USER.ML_POWERUSER)) + .set(getCommonRequestHeader('1')); + ml.api.assertResponseStatusCode(200, stopResponseStatus, stopResponseBody); + + expect(stopResponseBody).to.eql({ + [customDeploymentId]: { + success: true, + }, + }); + + // check deployment status + const { body: statsResponse, status: statsResponseStatus } = await supertest + .get(`/internal/ml/trained_models/${testModel.id}/_stats`) + .auth(USER.ML_POWERUSER, ml.securityCommon.getPasswordForUser(USER.ML_POWERUSER)) + .set(getCommonRequestHeader('1')); + ml.api.assertResponseStatusCode(200, statsResponseStatus, statsResponse); + + const deploymentStats = ( + statsResponse as MlGetTrainedModelsStatsResponse + ).trained_model_stats.find((v) => v.deployment_stats?.deployment_id === customDeploymentId); + + expect(deploymentStats).to.be(undefined); + }); + }); +}; diff --git a/x-pack/test/functional/services/ml/api.ts b/x-pack/test/functional/services/ml/api.ts index b514d18d552ad..58c83cd78a1e4 100644 --- a/x-pack/test/functional/services/ml/api.ts +++ b/x-pack/test/functional/services/ml/api.ts @@ -1341,6 +1341,15 @@ export function MachineLearningAPIProvider({ getService }: FtrProviderContext) { return body; }, + async getTrainedModelStatsES(): Promise { + log.debug(`Getting trained models stats`); + const { body, status } = await esSupertest.get(`/_ml/trained_models/_stats`); + this.assertResponseStatusCode(200, status, body); + + log.debug('> Trained model stats fetched'); + return body; + }, + async deleteTrainedModelES(modelId: string) { log.debug(`Deleting trained model with id "${modelId}"`); const { body, status } = await esSupertest @@ -1363,10 +1372,10 @@ export function MachineLearningAPIProvider({ getService }: FtrProviderContext) { } }, - async stopTrainedModelDeploymentES(modelId: string) { - log.debug(`Stopping trained model deployment with id "${modelId}"`); + async stopTrainedModelDeploymentES(deploymentId: string) { + log.debug(`Stopping trained model deployment with id "${deploymentId}"`); const { body, status } = await esSupertest.post( - `/_ml/trained_models/${modelId}/deployment/_stop` + `/_ml/trained_models/${deploymentId}/deployment/_stop` ); this.assertResponseStatusCode(200, status, body); @@ -1375,13 +1384,17 @@ export function MachineLearningAPIProvider({ getService }: FtrProviderContext) { async stopAllTrainedModelDeploymentsES() { log.debug(`Stopping all trained model deployments`); - const getModelsRsp = await this.getTrainedModelsES(); - for (const model of getModelsRsp.trained_model_configs) { - if (this.isInternalModelId(model.model_id)) { - log.debug(`> Skipping internal ${model.model_id}`); + const getModelsRsp = await this.getTrainedModelStatsES(); + for (const modelStats of getModelsRsp.trained_model_stats) { + if (this.isInternalModelId(modelStats.model_id)) { + log.debug(`> Skipping internal ${modelStats.model_id}`); + continue; + } + if (modelStats.deployment_stats === undefined) { + log.debug(`> Skipping, no deployment stats for ${modelStats.model_id} found`); continue; } - await this.stopTrainedModelDeploymentES(model.model_id); + await this.stopTrainedModelDeploymentES(modelStats.deployment_stats.deployment_id); } }, From cb22b6ce25ef4ae97606431cd9bae172b385be61 Mon Sep 17 00:00:00 2001 From: Umberto Pepato Date: Tue, 10 Oct 2023 19:04:46 +0200 Subject: [PATCH 36/48] [RAM] Reset scroll in rule form when selecting rule type (#167219) Closes #158675 ## Summary Resets the scroll position of the rule add/edit flyout when changing the rule type. Before: ![before](https://user-images.githubusercontent.com/3756330/242063222-56b759f7-c24b-495e-a600-cccc31091bad.gif) After: ![after](https://github.com/elastic/kibana/assets/18363145/5dc35fef-e5e3-48f9-9a17-60a821f219f3) --- .../sections/rule_form/rule_form.tsx | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.tsx index d47b2e62e4763..7988dcefc1bef 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_form.tsx @@ -5,7 +5,15 @@ * 2.0. */ -import React, { Fragment, useState, useEffect, useCallback, Suspense, useMemo } from 'react'; +import React, { + Fragment, + useState, + useEffect, + useCallback, + Suspense, + useMemo, + useRef, +} from 'react'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import { @@ -184,6 +192,7 @@ export const RuleForm = ({ const canShowActions = hasShowActionsCapability(capabilities); const [ruleTypeModel, setRuleTypeModel] = useState(null); + const flyoutBodyOverflowRef = useRef(null); const defaultRuleInterval = getInitialInterval(config.minimumScheduleInterval?.value); const defaultScheduleInterval = getDurationNumberInItsUnit(defaultRuleInterval); @@ -306,6 +315,22 @@ export const RuleForm = ({ } }, [rule.schedule.interval, defaultScheduleInterval, defaultScheduleIntervalUnit]); + useEffect(() => { + if (!flyoutBodyOverflowRef.current) { + // We're using this as a reliable way to reset the scroll position + // of the flyout independently of the selected rule type + flyoutBodyOverflowRef.current = document.querySelector('.euiFlyoutBody__overflow'); + } + }, []); + + const resetContentScroll = useCallback(() => flyoutBodyOverflowRef?.current?.scroll?.(0, 0), []); + + useEffect(() => { + if (rule.ruleTypeId) { + resetContentScroll(); + } + }, [rule.ruleTypeId, resetContentScroll]); + const setRuleProperty = useCallback( (key: Key, value: Rule[Key] | null) => { dispatch({ command: { type: 'setProperty' }, payload: { key, value } }); From 0c2a4961da989b02a23ad93f1a6b6bba11da77bd Mon Sep 17 00:00:00 2001 From: Sander Philipse <94373878+sphilipse@users.noreply.github.com> Date: Tue, 10 Oct 2023 19:15:19 +0200 Subject: [PATCH 37/48] [Search] Fix sync job duration (#168246) ## Summary This fixes the displayed sync job duration for connector syncs. --- .../sync_jobs/sync_jobs_view_logic.test.ts | 2 +- .../search_index/sync_jobs/sync_jobs_view_logic.ts | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_jobs_view_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_jobs_view_logic.test.ts index 7ccc28de37772..62e4c84f99e0b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_jobs_view_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_jobs_view_logic.test.ts @@ -152,7 +152,7 @@ describe('SyncJobsViewLogic', () => { completed_at: null, deleted_document_count: 0, duration: expect.anything(), - lastSync: syncJob.created_at, + lastSync: null, status: SyncStatus.IN_PROGRESS, }, ], diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_jobs_view_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_jobs_view_logic.ts index 900b3a8360728..ca0e4f293789a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_jobs_view_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_jobs_view_logic.ts @@ -69,12 +69,12 @@ export const SyncJobsViewLogic = kea { return { ...syncJob, - duration: syncJob.completed_at - ? moment.duration(moment(syncJob.completed_at).diff(moment(syncJob.created_at))) - : syncJob.started_at - ? moment.duration(moment(new Date()).diff(moment(syncJob.started_at))) + duration: syncJob.started_at + ? moment.duration( + moment(syncJob.completed_at || new Date()).diff(moment(syncJob.started_at)) + ) : undefined, - lastSync: syncJob.completed_at ?? syncJob.created_at, + lastSync: syncJob.completed_at, }; }) ?? [], ], From 9259f4836e12ab5ddd2220f1523d68e98944cad8 Mon Sep 17 00:00:00 2001 From: Walter Rafelsberger Date: Tue, 10 Oct 2023 19:24:08 +0200 Subject: [PATCH 38/48] [ML] AIOps: Functional/API integration tests for text field support for log rate analysis (#168177) This updates the artificial dataset generator for log rate analysis to allow to create variants including text fields. The artificial dataset is now used for 4 variants of functional and API integration tests: Testing spike and dip with both with and without a text field. The new tests surfaced some issues that were fixed as part of this PR: - Getting the counts of log patterns in combination with individual significant terms ended up with to granular groups. This PR adds additional queries to get counts for log patterns in combination with item sets already derived from significant terms. - The `support` value is returned by the frequent item sets agg and is used as a threshold whether to include an item set for grouping. This was missing from significant log patterns and is fixed by this PR. - Adds a check to not get frequent item sets for log patterns if there are no significant terms. - The way we fetched log patterns using a time filter that spans the whole of the baseline start to the deviation end caused problems with analysing dips. This PR updates those queries to only fetch the actual baseline and deviation time range. - The integration tests caught an issue where we'd still fetch the histogram for log patterns even if we'd request grouping information only. --- .../filtered_frequent_item_sets.ts | 4 +- ...final_significant_term_groups_textfield.ts | 129 ++++++++++++++++++ .../artificial_logs/frequent_item_sets.ts | 4 +- .../significant_log_patterns.ts | 24 ++++ x-pack/plugins/aiops/common/constants.ts | 14 +- x-pack/plugins/aiops/common/types.ts | 8 +- .../aiops/server/routes/log_rate_analysis.ts | 45 +++--- .../server/routes/queries/fetch_categories.ts | 6 +- .../queries/fetch_frequent_item_sets.ts | 20 +-- .../queries/fetch_significant_categories.ts | 39 ++++-- .../fetch_significant_term_p_values.ts | 7 +- .../fetch_terms_2_categories_counts.ts | 72 ++++++++-- .../routes/queries/get_query_with_params.ts | 3 + .../queries/get_significant_term_groups.ts | 4 +- .../queries/get_simple_hierarchical_tree.ts | 12 +- .../server/routes/queries/get_value_counts.ts | 4 +- .../routes/queries/get_values_descending.ts | 4 +- .../aiops/log_rate_analysis_groups_only.ts | 25 +++- .../api_integration/apis/aiops/test_data.ts | 104 +++++++++++++- .../test/api_integration/apis/aiops/types.ts | 4 +- .../apps/aiops/log_rate_analysis.ts | 2 +- ...data.ts => log_rate_analysis_test_data.ts} | 104 ++++++++++---- x-pack/test/functional/apps/aiops/types.ts | 4 +- .../apps/ml/data_visualizer/data_drift.ts | 2 +- .../aiops/log_rate_analysis_data_generator.ts | 101 ++++++++++---- 25 files changed, 603 insertions(+), 142 deletions(-) create mode 100644 x-pack/plugins/aiops/common/__mocks__/artificial_logs/final_significant_term_groups_textfield.ts create mode 100644 x-pack/plugins/aiops/common/__mocks__/artificial_logs/significant_log_patterns.ts rename x-pack/test/functional/apps/aiops/{test_data.ts => log_rate_analysis_test_data.ts} (70%) diff --git a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/filtered_frequent_item_sets.ts b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/filtered_frequent_item_sets.ts index 5f3d8ce759e19..89e9c1fb141ab 100644 --- a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/filtered_frequent_item_sets.ts +++ b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/filtered_frequent_item_sets.ts @@ -5,9 +5,9 @@ * 2.0. */ -import type { ItemsetResult } from '../../types'; +import type { ItemSet } from '../../types'; -export const filteredFrequentItemSets: ItemsetResult[] = [ +export const filteredFrequentItemSets: ItemSet[] = [ { set: { response_code: '500', url: 'home.php' }, size: 2, diff --git a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/final_significant_term_groups_textfield.ts b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/final_significant_term_groups_textfield.ts new file mode 100644 index 0000000000000..f959d9408c418 --- /dev/null +++ b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/final_significant_term_groups_textfield.ts @@ -0,0 +1,129 @@ +/* + * 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 { SignificantTermGroup } from '@kbn/ml-agg-utils'; + +export const finalSignificantTermGroupsTextfield: SignificantTermGroup[] = [ + { + docCount: 636, + group: [ + { + docCount: 792, + duplicate: 2, + fieldName: 'url', + fieldValue: 'home.php', + key: 'url:home.php', + pValue: 0.00974308761016614, + type: 'keyword', + }, + { + docCount: 636, + duplicate: 2, + fieldName: 'user', + fieldValue: 'Peter', + key: 'user:Peter', + pValue: 0.00974308761016614, + type: 'keyword', + }, + ], + id: '2091742187', + pValue: 0.00974308761016614, + }, + { + docCount: 634, + group: [ + { + docCount: 1266, + duplicate: 2, + fieldName: 'response_code', + fieldValue: '500', + key: 'response_code:500', + pValue: 0.012783309213417932, + type: 'keyword', + }, + { + docCount: 792, + duplicate: 2, + fieldName: 'url', + fieldValue: 'home.php', + key: 'url:home.php', + pValue: 0.00974308761016614, + type: 'keyword', + }, + { + docCount: 634, + duplicate: 2, + fieldName: 'message', + fieldValue: 'an unexpected error occured', + key: 'an unexpected error occured', + pValue: 0.00974308761016614, + type: 'log_pattern', + }, + ], + id: '1528268618', + pValue: 0.00974308761016614, + }, + { + docCount: 632, + group: [ + { + docCount: 1266, + duplicate: 2, + fieldName: 'response_code', + fieldValue: '500', + key: 'response_code:500', + pValue: 0.012783309213417932, + type: 'keyword', + }, + { + docCount: 790, + duplicate: 2, + fieldName: 'url', + fieldValue: 'login.php', + key: 'url:login.php', + pValue: 0.012783309213417932, + type: 'keyword', + }, + { + docCount: 632, + duplicate: 2, + fieldName: 'message', + fieldValue: 'an unexpected error occured', + key: 'an unexpected error occured', + pValue: 0.012783309213417932, + type: 'log_pattern', + }, + ], + id: '2619569380', + pValue: 0.012783309213417932, + }, + { + docCount: 632, + group: [ + { + docCount: 790, + duplicate: 2, + fieldName: 'url', + fieldValue: 'login.php', + key: 'url:login.php', + pValue: 0.012783309213417932, + type: 'keyword', + }, + { + docCount: 632, + duplicate: 2, + fieldName: 'user', + fieldValue: 'Peter', + key: 'user:Peter', + pValue: 0.012783309213417932, + type: 'keyword', + }, + ], + id: '1937394803', + pValue: 0.012783309213417932, + }, +]; diff --git a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/frequent_item_sets.ts b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/frequent_item_sets.ts index 3a744a0a3a578..b354bb00f7b2c 100644 --- a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/frequent_item_sets.ts +++ b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/frequent_item_sets.ts @@ -5,9 +5,9 @@ * 2.0. */ -import type { ItemsetResult } from '../../types'; +import type { ItemSet } from '../../types'; -export const frequentItemSets: ItemsetResult[] = [ +export const frequentItemSets: ItemSet[] = [ { set: { response_code: '500', url: 'home.php' }, size: 2, diff --git a/x-pack/plugins/aiops/common/__mocks__/artificial_logs/significant_log_patterns.ts b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/significant_log_patterns.ts new file mode 100644 index 0000000000000..ab3ebe02dc536 --- /dev/null +++ b/x-pack/plugins/aiops/common/__mocks__/artificial_logs/significant_log_patterns.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 { SignificantTerm } from '@kbn/ml-agg-utils'; + +export const significantLogPatterns: SignificantTerm[] = [ + { + bg_count: 0, + doc_count: 1266, + fieldName: 'message', + fieldValue: 'an unexpected error occured', + key: 'an unexpected error occured', + normalizedScore: 0, + pValue: 0.000001, + score: -13.815510557964274, + total_bg_count: 1975, + total_doc_count: 4669, + type: 'log_pattern', + }, +]; diff --git a/x-pack/plugins/aiops/common/constants.ts b/x-pack/plugins/aiops/common/constants.ts index 226082e6041b9..47bdee0d5e6c6 100644 --- a/x-pack/plugins/aiops/common/constants.ts +++ b/x-pack/plugins/aiops/common/constants.ts @@ -5,10 +5,16 @@ * 2.0. */ -/** - * The p-value threshold to be used for statistically significant items. - */ -export const LOG_RATE_ANALYSIS_P_VALUE_THRESHOLD = 0.02; +export const LOG_RATE_ANALYSIS_SETTINGS = { + /** + * The p-value threshold to be used for statistically significant items. + */ + P_VALUE_THRESHOLD: 0.02, + /** + * The minimum support value to be used for the frequent item sets aggration. + */ + FREQUENT_ITEMS_SETS_MINIMUM_SUPPORT: 0.001, +} as const; /** * For the technical preview of Log Rate Analysis we use a hard coded seed. diff --git a/x-pack/plugins/aiops/common/types.ts b/x-pack/plugins/aiops/common/types.ts index b46dd587838b4..4b26e30c76a72 100644 --- a/x-pack/plugins/aiops/common/types.ts +++ b/x-pack/plugins/aiops/common/types.ts @@ -14,7 +14,7 @@ export interface SignificantTermDuplicateGroup { export type FieldValuePairCounts = Record>; -export interface ItemsetResult { +export interface ItemSet { set: Record; size: number; maxPValue: number; @@ -23,6 +23,12 @@ export interface ItemsetResult { total_doc_count: number; } +export interface FetchFrequentItemSetsResponse { + fields: string[]; + itemSets: ItemSet[]; + totalDocCount: number; +} + interface SimpleHierarchicalTreeNodeSet extends FieldValuePair { key: string; type: SignificantTermType; diff --git a/x-pack/plugins/aiops/server/routes/log_rate_analysis.ts b/x-pack/plugins/aiops/server/routes/log_rate_analysis.ts index 7a0d1be0d7585..7576faa22ec27 100644 --- a/x-pack/plugins/aiops/server/routes/log_rate_analysis.ts +++ b/x-pack/plugins/aiops/server/routes/log_rate_analysis.ts @@ -506,7 +506,7 @@ export const defineLogRateAnalysisRoute = ( ); try { - const { fields, df } = await fetchFrequentItemSets( + const { fields, itemSets } = await fetchFrequentItemSets( client, request.body.index, JSON.parse(request.body.searchQuery) as estypes.QueryDslQueryContainer, @@ -520,23 +520,26 @@ export const defineLogRateAnalysisRoute = ( abortSignal ); - if (significantCategories.length > 0) { - const { fields: significantCategoriesFields, df: significantCategoriesDf } = - await fetchTerms2CategoriesCounts( - client, - request.body, - JSON.parse(request.body.searchQuery) as estypes.QueryDslQueryContainer, - significantTerms, - significantCategories, - request.body.deviationMin, - request.body.deviationMax, - logger, - pushError, - abortSignal - ); + if (significantCategories.length > 0 && significantTerms.length > 0) { + const { + fields: significantCategoriesFields, + itemSets: significantCategoriesItemSets, + } = await fetchTerms2CategoriesCounts( + client, + request.body, + JSON.parse(request.body.searchQuery) as estypes.QueryDslQueryContainer, + significantTerms, + itemSets, + significantCategories, + request.body.deviationMin, + request.body.deviationMax, + logger, + pushError, + abortSignal + ); fields.push(...significantCategoriesFields); - df.push(...significantCategoriesDf); + itemSets.push(...significantCategoriesItemSets); } if (shouldStop) { @@ -545,9 +548,9 @@ export const defineLogRateAnalysisRoute = ( return; } - if (fields.length > 0 && df.length > 0) { + if (fields.length > 0 && itemSets.length > 0) { const significantTermGroups = getSignificantTermGroups( - df, + itemSets, [...significantTerms, ...significantCategories], fields ); @@ -757,7 +760,11 @@ export const defineLogRateAnalysisRoute = ( } // histograms for text field patterns - if (overallTimeSeries !== undefined && significantCategories.length > 0) { + if ( + overallTimeSeries !== undefined && + significantCategories.length > 0 && + !request.body.overrides?.regroupOnly + ) { const significantCategoriesHistogramQueries = significantCategories.map((d) => { const histogramQuery = getHistogramQuery(request.body); const categoryQuery = getCategoryQuery(d.fieldName, [ diff --git a/x-pack/plugins/aiops/server/routes/queries/fetch_categories.ts b/x-pack/plugins/aiops/server/routes/queries/fetch_categories.ts index dd72e21990150..b58e438e3882a 100644 --- a/x-pack/plugins/aiops/server/routes/queries/fetch_categories.ts +++ b/x-pack/plugins/aiops/server/routes/queries/fetch_categories.ts @@ -33,11 +33,14 @@ export const getCategoryRequest = ( fieldName: string, from: number | undefined, to: number | undefined, + filter: estypes.QueryDslQueryContainer, { wrap }: RandomSamplerWrapper ): estypes.SearchRequest => { const { index, timeFieldName } = params; const query = getQueryWithParams({ params, + termFilters: undefined, + filter, }); const { params: request } = createCategoryRequest( index, @@ -63,6 +66,7 @@ export const fetchCategories = async ( fieldNames: string[], from: number | undefined, to: number | undefined, + filter: estypes.QueryDslQueryContainer, logger: Logger, // The default value of 1 means no sampling will be used sampleProbability: number = 1, @@ -78,7 +82,7 @@ export const fetchCategories = async ( const settledPromises = await Promise.allSettled( fieldNames.map((fieldName) => { - const request = getCategoryRequest(params, fieldName, from, to, randomSamplerWrapper); + const request = getCategoryRequest(params, fieldName, from, to, filter, randomSamplerWrapper); return esClient.search(request, { signal: abortSignal, maxRetries: 0, diff --git a/x-pack/plugins/aiops/server/routes/queries/fetch_frequent_item_sets.ts b/x-pack/plugins/aiops/server/routes/queries/fetch_frequent_item_sets.ts index ccb237314c125..d73c3742e8e66 100644 --- a/x-pack/plugins/aiops/server/routes/queries/fetch_frequent_item_sets.ts +++ b/x-pack/plugins/aiops/server/routes/queries/fetch_frequent_item_sets.ts @@ -15,8 +15,12 @@ import type { Logger } from '@kbn/logging'; import { type SignificantTerm } from '@kbn/ml-agg-utils'; import { createRandomSamplerWrapper } from '@kbn/ml-random-sampler-utils'; -import { RANDOM_SAMPLER_SEED } from '../../../common/constants'; -import type { SignificantTermDuplicateGroup, ItemsetResult } from '../../../common/types'; +import { RANDOM_SAMPLER_SEED, LOG_RATE_ANALYSIS_SETTINGS } from '../../../common/constants'; +import type { + SignificantTermDuplicateGroup, + ItemSet, + FetchFrequentItemSetsResponse, +} from '../../../common/types'; interface FrequentItemSetsAggregation extends estypes.AggregationsSamplerAggregation { fi: { @@ -74,7 +78,7 @@ export async function fetchFrequentItemSets( sampleProbability: number = 1, emitError: (m: string) => void, abortSignal?: AbortSignal -) { +): Promise { // Sort significant terms by ascending p-value, necessary to apply the field limit correctly. const sortedSignificantTerms = significantTerms.slice().sort((a, b) => { return (a.pValue ?? 0) - (b.pValue ?? 0); @@ -103,7 +107,7 @@ export async function fetchFrequentItemSets( frequent_item_sets: { minimum_set_size: 2, size: 200, - minimum_support: 0.001, + minimum_support: LOG_RATE_ANALYSIS_SETTINGS.FREQUENT_ITEMS_SETS_MINIMUM_SUPPORT, fields: getFrequentItemSetsAggFields(sortedSignificantTerms), }, }, @@ -138,7 +142,7 @@ export async function fetchFrequentItemSets( emitError(`Failed to fetch frequent_item_sets.`); return { fields: [], - df: [], + itemSets: [], totalDocCount: 0, }; } @@ -158,10 +162,10 @@ export async function fetchFrequentItemSets( const fiss = frequentItemSets.fi.buckets; fiss.length = maximum; - const results: ItemsetResult[] = []; + const results: ItemSet[] = []; fiss.forEach((fis) => { - const result: ItemsetResult = { + const result: ItemSet = { set: {}, size: 0, maxPValue: 0, @@ -203,7 +207,7 @@ export async function fetchFrequentItemSets( return { fields: uniqueFields, - df: results, + itemSets: results, totalDocCount: totalDocCountFi, }; } diff --git a/x-pack/plugins/aiops/server/routes/queries/fetch_significant_categories.ts b/x-pack/plugins/aiops/server/routes/queries/fetch_significant_categories.ts index 84e99f820bfb4..d8bd92f04e6a6 100644 --- a/x-pack/plugins/aiops/server/routes/queries/fetch_significant_categories.ts +++ b/x-pack/plugins/aiops/server/routes/queries/fetch_significant_categories.ts @@ -14,7 +14,7 @@ import { type SignificantTerm, SIGNIFICANT_TERM_TYPE } from '@kbn/ml-agg-utils'; import type { Category } from '../../../common/api/log_categorization/types'; import type { AiopsLogRateAnalysisSchema } from '../../../common/api/log_rate_analysis'; -import { LOG_RATE_ANALYSIS_P_VALUE_THRESHOLD } from '../../../common/constants'; +import { LOG_RATE_ANALYSIS_SETTINGS } from '../../../common/constants'; import { fetchCategories } from './fetch_categories'; import { fetchCategoryCounts } from './fetch_category_counts'; @@ -42,16 +42,39 @@ export const fetchSignificantCategories = async ( emitError: (m: string) => void, abortSignal?: AbortSignal ) => { - // To make sure we have the same categories for both baseline and deviation, - // we do an initial query that spans across baseline start and deviation end. - // We could update this to query the exact baseline AND deviation range, but - // wanted to avoid the refactor here and it should be good enough for a start. + // Filter that includes docs from both the baseline and deviation time range. + const baselineOrDeviationFilter = { + bool: { + should: [ + { + range: { + [params.timeFieldName]: { + gte: params.baselineMin, + lte: params.baselineMax, + format: 'epoch_millis', + }, + }, + }, + { + range: { + [params.timeFieldName]: { + gte: params.deviationMin, + lte: params.deviationMax, + format: 'epoch_millis', + }, + }, + }, + ], + }, + }; + const categoriesOverall = await fetchCategories( esClient, params, fieldNames, - params.baselineMin, - params.deviationMax, + undefined, + undefined, + baselineOrDeviationFilter, logger, sampleProbability, emitError, @@ -117,7 +140,7 @@ export const fetchSignificantCategories = async ( const pValue = criticalTableLookup(chiSquared, 1); const score = Math.log(pValue); - if (pValue <= LOG_RATE_ANALYSIS_P_VALUE_THRESHOLD && observed > expected) { + if (pValue <= LOG_RATE_ANALYSIS_SETTINGS.P_VALUE_THRESHOLD && observed > expected) { significantCategories.push({ key, fieldName, diff --git a/x-pack/plugins/aiops/server/routes/queries/fetch_significant_term_p_values.ts b/x-pack/plugins/aiops/server/routes/queries/fetch_significant_term_p_values.ts index 85a21e6870a03..ec1500092168f 100644 --- a/x-pack/plugins/aiops/server/routes/queries/fetch_significant_term_p_values.ts +++ b/x-pack/plugins/aiops/server/routes/queries/fetch_significant_term_p_values.ts @@ -15,10 +15,7 @@ import { type RandomSamplerWrapper, } from '@kbn/ml-random-sampler-utils'; -import { - LOG_RATE_ANALYSIS_P_VALUE_THRESHOLD, - RANDOM_SAMPLER_SEED, -} from '../../../common/constants'; +import { LOG_RATE_ANALYSIS_SETTINGS, RANDOM_SAMPLER_SEED } from '../../../common/constants'; import type { AiopsLogRateAnalysisSchema } from '../../../common/api/log_rate_analysis'; import { isRequestAbortedError } from '../../lib/is_request_aborted_error'; @@ -168,7 +165,7 @@ export const fetchSignificantTermPValues = async ( for (const bucket of overallResult.buckets) { const pValue = Math.exp(-bucket.score); - if (typeof pValue === 'number' && pValue < LOG_RATE_ANALYSIS_P_VALUE_THRESHOLD) { + if (typeof pValue === 'number' && pValue < LOG_RATE_ANALYSIS_SETTINGS.P_VALUE_THRESHOLD) { result.push({ key: `${fieldName}:${String(bucket.key)}`, type: SIGNIFICANT_TERM_TYPE.KEYWORD, diff --git a/x-pack/plugins/aiops/server/routes/queries/fetch_terms_2_categories_counts.ts b/x-pack/plugins/aiops/server/routes/queries/fetch_terms_2_categories_counts.ts index 1fdeaef5e18c3..a88090d3ab059 100644 --- a/x-pack/plugins/aiops/server/routes/queries/fetch_terms_2_categories_counts.ts +++ b/x-pack/plugins/aiops/server/routes/queries/fetch_terms_2_categories_counts.ts @@ -11,13 +11,14 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; import type { Logger } from '@kbn/logging'; -import { type SignificantTerm } from '@kbn/ml-agg-utils'; +import type { FieldValuePair, SignificantTerm } from '@kbn/ml-agg-utils'; import { isPopulatedObject } from '@kbn/ml-is-populated-object'; import type { AiopsLogRateAnalysisSchema } from '../../../common/api/log_rate_analysis'; -import type { ItemsetResult } from '../../../common/types'; +import type { FetchFrequentItemSetsResponse, ItemSet } from '../../../common/types'; import { getCategoryQuery } from '../../../common/api/log_categorization/get_category_query'; import type { Category } from '../../../common/api/log_categorization/types'; +import { LOG_RATE_ANALYSIS_SETTINGS } from '../../../common/constants'; import { isRequestAbortedError } from '../../lib/is_request_aborted_error'; @@ -26,9 +27,9 @@ import { getQueryWithParams } from './get_query_with_params'; const isMsearchResponseItem = (arg: unknown): arg is estypes.MsearchMultiSearchItem => isPopulatedObject(arg, ['hits']); -export const getTerm2CategoryCountRequest = ( +const getTerm2CategoryCountRequest = ( params: AiopsLogRateAnalysisSchema, - significantTerm: SignificantTerm, + fieldValuePairs: FieldValuePair[], categoryFieldName: string, category: Category, from: number | undefined, @@ -41,7 +42,9 @@ export const getTerm2CategoryCountRequest = ( const categoryQuery = getCategoryQuery(categoryFieldName, [category]); if (Array.isArray(query.bool?.filter)) { - query.bool?.filter?.push({ term: { [significantTerm.fieldName]: significantTerm.fieldValue } }); + for (const { fieldName, fieldValue } of fieldValuePairs) { + query.bool?.filter?.push({ term: { [fieldName]: fieldValue } }); + } query.bool?.filter?.push(categoryQuery); query.bool?.filter?.push({ range: { @@ -66,28 +69,29 @@ export async function fetchTerms2CategoriesCounts( params: AiopsLogRateAnalysisSchema, searchQuery: estypes.QueryDslQueryContainer, significantTerms: SignificantTerm[], + itemSets: ItemSet[], significantCategories: SignificantTerm[], from: number, to: number, logger: Logger, emitError: (m: string) => void, abortSignal?: AbortSignal -) { +): Promise { const searches: Array< | estypes.MsearchMultisearchBody | { index: string; } > = []; - const results: ItemsetResult[] = []; + const results: ItemSet[] = []; - significantTerms.forEach((term) => { - significantCategories.forEach((category) => { + significantCategories.forEach((category) => { + significantTerms.forEach((term) => { searches.push({ index: params.index }); searches.push( getTerm2CategoryCountRequest( params, - term, + [{ fieldName: term.fieldName, fieldValue: term.fieldValue }], category.fieldName, { key: `${category.key}`, count: category.doc_count, examples: [] }, from, @@ -102,8 +106,36 @@ export async function fetchTerms2CategoriesCounts( size: 2, maxPValue: Math.max(term.pValue ?? 1, category.pValue ?? 1), doc_count: 0, - support: 1, - total_doc_count: 0, + support: 0, + total_doc_count: Math.max(term.total_doc_count, category.total_doc_count), + }); + }); + + itemSets.forEach((itemSet) => { + searches.push({ index: params.index }); + searches.push( + getTerm2CategoryCountRequest( + params, + Object.entries(itemSet.set).map(([fieldName, fieldValue]) => ({ + fieldName, + fieldValue, + })), + category.fieldName, + { key: `${category.key}`, count: category.doc_count, examples: [] }, + from, + to + ) as estypes.MsearchMultisearchBody + ); + results.push({ + set: { + ...itemSet.set, + [category.fieldName]: category.fieldValue, + }, + size: Object.keys(itemSet.set).length + 1, + maxPValue: Math.max(itemSet.maxPValue ?? 1, category.pValue ?? 1), + doc_count: 0, + support: 0, + total_doc_count: Math.max(itemSet.total_doc_count, category.total_doc_count), }); }); }); @@ -127,7 +159,7 @@ export async function fetchTerms2CategoriesCounts( } return { fields: [], - df: [], + itemSets: [], totalDocCount: 0, }; } @@ -136,15 +168,25 @@ export async function fetchTerms2CategoriesCounts( return { fields: uniq(significantCategories.map((c) => c.fieldName)), - df: results + itemSets: results .map((result, i) => { const resp = mSearchResponses[i]; if (isMsearchResponseItem(resp)) { result.doc_count = (resp.hits.total as estypes.SearchTotalHits).value ?? 0; + if (result.total_doc_count > 0) { + // Replicates how the `frequent_item_sets` aggregation calculates + // the support value by dividing the number of documents containing + // the item set by the total number of documents. + result.support = result.doc_count / result.total_doc_count; + } } return result; }) - .filter((d) => d.doc_count > 0), + .filter( + (d) => + d.doc_count > 0 && + d.support > LOG_RATE_ANALYSIS_SETTINGS.FREQUENT_ITEMS_SETS_MINIMUM_SUPPORT + ), totalDocCount: 0, }; } diff --git a/x-pack/plugins/aiops/server/routes/queries/get_query_with_params.ts b/x-pack/plugins/aiops/server/routes/queries/get_query_with_params.ts index 6c95085b379be..c9d15d6b89232 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_query_with_params.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_query_with_params.ts @@ -20,10 +20,12 @@ export const getTermsQuery = ({ fieldName, fieldValue }: FieldValuePair) => { interface QueryParams { params: AiopsLogRateAnalysisSchema; termFilters?: FieldValuePair[]; + filter?: estypes.QueryDslQueryContainer; } export const getQueryWithParams = ({ params, termFilters, + filter, }: QueryParams): estypes.QueryDslQueryContainer => { const searchQuery = JSON.parse(params.searchQuery) as estypes.QueryDslQueryContainer; return { @@ -32,6 +34,7 @@ export const getQueryWithParams = ({ searchQuery, ...getFilters(params), ...(Array.isArray(termFilters) ? termFilters.map(getTermsQuery) : []), + ...(filter ? [filter] : []), ] as estypes.QueryDslQueryContainer[], }, }; diff --git a/x-pack/plugins/aiops/server/routes/queries/get_significant_term_groups.ts b/x-pack/plugins/aiops/server/routes/queries/get_significant_term_groups.ts index 74951bf7aa1d9..33337603bd04e 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_significant_term_groups.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_significant_term_groups.ts @@ -15,10 +15,10 @@ import { getSimpleHierarchicalTree } from './get_simple_hierarchical_tree'; import { getSimpleHierarchicalTreeLeaves } from './get_simple_hierarchical_tree_leaves'; import { getMissingSignificantTerms } from './get_missing_significant_terms'; import { transformSignificantTermToGroup } from './transform_significant_term_to_group'; -import type { ItemsetResult } from '../../../common/types'; +import type { ItemSet } from '../../../common/types'; export function getSignificantTermGroups( - itemsets: ItemsetResult[], + itemsets: ItemSet[], significantTerms: SignificantTerm[], fields: string[] ): SignificantTermGroup[] { diff --git a/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree.ts b/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree.ts index 2462878798322..fc445fd88f1a6 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_simple_hierarchical_tree.ts @@ -7,7 +7,7 @@ import type { SignificantTerm } from '@kbn/ml-agg-utils'; -import type { ItemsetResult, SimpleHierarchicalTreeNode } from '../../../common/types'; +import type { ItemSet, SimpleHierarchicalTreeNode } from '../../../common/types'; import { getValueCounts } from './get_value_counts'; import { getValuesDescending } from './get_values_descending'; @@ -54,7 +54,7 @@ function dfDepthFirstSearch( parentLabel: string, field: string, value: string, - iss: ItemsetResult[], + iss: ItemSet[], collapseRedundant: boolean, displayOther: boolean ) { @@ -178,18 +178,18 @@ function dfDepthFirstSearch( * By default (fields==None), the field search order is dependent on the highest count itemsets. */ export function getSimpleHierarchicalTree( - df: ItemsetResult[], + itemSets: ItemSet[], collapseRedundant: boolean, displayOther: boolean, significantTerms: SignificantTerm[], fields: string[] = [] ) { - const totalDocCount = Math.max(...df.map((d) => d.total_doc_count)); + const totalDocCount = Math.max(...itemSets.map((d) => d.total_doc_count)); const newRoot = NewNodeFactory(''); for (const field of fields) { - for (const value of getValuesDescending(df, field)) { + for (const value of getValuesDescending(itemSets, field)) { dfDepthFirstSearch( significantTerms, fields, @@ -198,7 +198,7 @@ export function getSimpleHierarchicalTree( '', field, value, - df, + itemSets, collapseRedundant, displayOther ); diff --git a/x-pack/plugins/aiops/server/routes/queries/get_value_counts.ts b/x-pack/plugins/aiops/server/routes/queries/get_value_counts.ts index b287d49494d78..42f022db5dccf 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_value_counts.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_value_counts.ts @@ -5,9 +5,9 @@ * 2.0. */ -import type { ItemsetResult } from '../../../common/types'; +import type { ItemSet } from '../../../common/types'; -export function getValueCounts(df: ItemsetResult[], field: string) { +export function getValueCounts(df: ItemSet[], field: string) { return df.reduce>((p, c) => { if (c.set[field] === undefined) { return p; diff --git a/x-pack/plugins/aiops/server/routes/queries/get_values_descending.ts b/x-pack/plugins/aiops/server/routes/queries/get_values_descending.ts index 8429ca4fcae75..bad62b3056ace 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_values_descending.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_values_descending.ts @@ -5,11 +5,11 @@ * 2.0. */ -import type { ItemsetResult } from '../../../common/types'; +import type { ItemSet } from '../../../common/types'; import { getValueCounts } from './get_value_counts'; -export function getValuesDescending(df: ItemsetResult[], field: string): string[] { +export function getValuesDescending(df: ItemSet[], field: string): string[] { const valueCounts = getValueCounts(df, field); const keys = Object.keys(valueCounts); diff --git a/x-pack/test/api_integration/apis/aiops/log_rate_analysis_groups_only.ts b/x-pack/test/api_integration/apis/aiops/log_rate_analysis_groups_only.ts index 4bdd0dc0f8a94..e504f2250986f 100644 --- a/x-pack/test/api_integration/apis/aiops/log_rate_analysis_groups_only.ts +++ b/x-pack/test/api_integration/apis/aiops/log_rate_analysis_groups_only.ts @@ -63,11 +63,17 @@ export default ({ getService }: FtrProviderContext) => { const addSignificantTermsActions = data.filter( (d) => d.type === testData.expected.significantTermFilter ); - expect(addSignificantTermsActions.length).to.be(0); + expect(addSignificantTermsActions.length).to.eql( + 0, + `Expected significant terms actions to be 0, got ${addSignificantTermsActions.length}` + ); const histogramActions = data.filter((d) => d.type === testData.expected.histogramFilter); // for each significant term we should get a histogram - expect(histogramActions.length).to.be(0); + expect(histogramActions.length).to.eql( + 0, + `Expected histogram actions to be 0, got ${histogramActions.length}` + ); const groupActions = data.filter((d) => d.type === testData.expected.groupFilter); const groups = groupActions.flatMap((d) => d.payload); @@ -188,21 +194,26 @@ export default ({ getService }: FtrProviderContext) => { } // If streaming works correctly we should receive more than one chunk. - expect(chunkCounter).to.be.greaterThan(1); + expect(chunkCounter).to.be.greaterThan( + 1, + `Expected 'chunkCounter' to be greater than 1, got ${chunkCounter} with the following data: ${JSON.stringify( + data + )}.` + ); await assertAnalysisResult(data); } } - it('should return group only in chunks with streaming with compression with flushFix', async () => { + it('should return group only in chunks with streaming with compression with flushFix', async () => { await requestWithStreaming({ ...testData.requestBody, overrides }); }); - it('should return group only in chunks with streaming with compression without flushFix', async () => { + it('should return group only in chunks with streaming with compression without flushFix', async () => { await requestWithStreaming({ ...testData.requestBody, overrides, flushFix: false }); }); - it('should return group only in chunks with streaming without compression with flushFix', async () => { + it('should return group only in chunks with streaming without compression with flushFix', async () => { await requestWithStreaming({ ...testData.requestBody, overrides, @@ -210,7 +221,7 @@ export default ({ getService }: FtrProviderContext) => { }); }); - it('should return group only in chunks with streaming without compression without flushFix', async () => { + it('should return group only in chunks with streaming without compression without flushFix', async () => { await requestWithStreaming({ ...testData.requestBody, overrides, diff --git a/x-pack/test/api_integration/apis/aiops/test_data.ts b/x-pack/test/api_integration/apis/aiops/test_data.ts index 9ec8b69a3ca5d..184925310940e 100644 --- a/x-pack/test/api_integration/apis/aiops/test_data.ts +++ b/x-pack/test/api_integration/apis/aiops/test_data.ts @@ -9,7 +9,9 @@ // This makes sure should the assertions for the integration tests need to be updated, // that also the jest unit tests use mocks that are not outdated. import { significantTerms as artificialLogSignificantTerms } from '@kbn/aiops-plugin/common/__mocks__/artificial_logs/significant_terms'; +import { significantLogPatterns as artificialLogSignificantLogPatterns } from '@kbn/aiops-plugin/common/__mocks__/artificial_logs/significant_log_patterns'; import { finalSignificantTermGroups as artificialLogsSignificantTermGroups } from '@kbn/aiops-plugin/common/__mocks__/artificial_logs/final_significant_term_groups'; +import { finalSignificantTermGroupsTextfield as artificialLogsSignificantTermGroupsTextfield } from '@kbn/aiops-plugin/common/__mocks__/artificial_logs/final_significant_term_groups_textfield'; import type { TestData } from './types'; @@ -74,14 +76,14 @@ export const logRateAnalysisTestData: TestData[] = [ }, }, { - testName: 'artificial_logs_with_spike', - dataGenerator: 'artificial_logs_with_spike', + testName: 'artificial_logs_with_spike_notextfield', + dataGenerator: 'artificial_logs_with_spike_notextfield', requestBody: { start: 1668760018793, end: 1668931954793, searchQuery: '{"match_all":{}}', timeFieldName: '@timestamp', - index: 'artificial_logs_with_spike', + index: 'artificial_logs_with_spike_notextfield', baselineMin: 1668769200000, baselineMax: 1668837600000, deviationMin: 1668855600000, @@ -105,4 +107,100 @@ export const logRateAnalysisTestData: TestData[] = [ histogramLength: 20, }, }, + { + testName: 'artificial_logs_with_spike_textfield', + dataGenerator: 'artificial_logs_with_spike_textfield', + requestBody: { + start: 1668760018793, + end: 1668931954793, + searchQuery: '{"match_all":{}}', + timeFieldName: '@timestamp', + index: 'artificial_logs_with_spike_textfield', + baselineMin: 1668769200000, + baselineMax: 1668837600000, + deviationMin: 1668855600000, + deviationMax: 1668924000000, + grouping: true, + }, + expected: { + chunksLength: 30, + chunksLengthGroupOnly: 11, + actionsLength: 29, + actionsLengthGroupOnly: 10, + noIndexChunksLength: 4, + noIndexActionsLength: 3, + significantTermFilter: 'add_significant_terms', + groupFilter: 'add_significant_terms_group', + groupHistogramFilter: 'add_significant_terms_group_histogram', + histogramFilter: 'add_significant_terms_histogram', + errorFilter: 'add_error', + significantTerms: [...artificialLogSignificantTerms, ...artificialLogSignificantLogPatterns], + groups: artificialLogsSignificantTermGroupsTextfield, + histogramLength: 20, + }, + }, + { + testName: 'artificial_logs_with_dip_notextfield', + dataGenerator: 'artificial_logs_with_dip_notextfield', + requestBody: { + start: 1668760018793, + end: 1668931954793, + searchQuery: '{"match_all":{}}', + timeFieldName: '@timestamp', + index: 'artificial_logs_with_dip_notextfield', + baselineMin: 1668855600000, + baselineMax: 1668924000000, + deviationMin: 1668769200000, + deviationMax: 1668837600000, + grouping: true, + }, + expected: { + chunksLength: 27, + chunksLengthGroupOnly: 11, + actionsLength: 26, + actionsLengthGroupOnly: 10, + noIndexChunksLength: 4, + noIndexActionsLength: 3, + significantTermFilter: 'add_significant_terms', + groupFilter: 'add_significant_terms_group', + groupHistogramFilter: 'add_significant_terms_group_histogram', + histogramFilter: 'add_significant_terms_histogram', + errorFilter: 'add_error', + significantTerms: artificialLogSignificantTerms, + groups: artificialLogsSignificantTermGroups, + histogramLength: 20, + }, + }, + { + testName: 'artificial_logs_with_dip_textfield', + dataGenerator: 'artificial_logs_with_dip_textfield', + requestBody: { + start: 1668760018793, + end: 1668931954793, + searchQuery: '{"match_all":{}}', + timeFieldName: '@timestamp', + index: 'artificial_logs_with_dip_textfield', + baselineMin: 1668855600000, + baselineMax: 1668924000000, + deviationMin: 1668769200000, + deviationMax: 1668837600000, + grouping: true, + }, + expected: { + chunksLength: 30, + chunksLengthGroupOnly: 11, + actionsLength: 29, + actionsLengthGroupOnly: 10, + noIndexChunksLength: 4, + noIndexActionsLength: 3, + significantTermFilter: 'add_significant_terms', + groupFilter: 'add_significant_terms_group', + groupHistogramFilter: 'add_significant_terms_group_histogram', + histogramFilter: 'add_significant_terms_histogram', + errorFilter: 'add_error', + significantTerms: [...artificialLogSignificantTerms, ...artificialLogSignificantLogPatterns], + groups: artificialLogsSignificantTermGroupsTextfield, + histogramLength: 20, + }, + }, ]; diff --git a/x-pack/test/api_integration/apis/aiops/types.ts b/x-pack/test/api_integration/apis/aiops/types.ts index 67ef9ea19a9da..c4e9eb8191108 100644 --- a/x-pack/test/api_integration/apis/aiops/types.ts +++ b/x-pack/test/api_integration/apis/aiops/types.ts @@ -8,10 +8,12 @@ import type { AiopsApiLogRateAnalysis } from '@kbn/aiops-plugin/common/api'; import type { SignificantTerm, SignificantTermGroup } from '@kbn/ml-agg-utils'; +import type { LogRateAnalysisDataGenerator } from '../../../functional/services/aiops/log_rate_analysis_data_generator'; + export interface TestData { testName: string; esArchive?: string; - dataGenerator?: string; + dataGenerator?: LogRateAnalysisDataGenerator; requestBody: AiopsApiLogRateAnalysis['body']; expected: { chunksLength: number; diff --git a/x-pack/test/functional/apps/aiops/log_rate_analysis.ts b/x-pack/test/functional/apps/aiops/log_rate_analysis.ts index 72323d4fef37c..8e33b4b1c8e4a 100644 --- a/x-pack/test/functional/apps/aiops/log_rate_analysis.ts +++ b/x-pack/test/functional/apps/aiops/log_rate_analysis.ts @@ -11,7 +11,7 @@ import expect from '@kbn/expect'; import type { FtrProviderContext } from '../../ftr_provider_context'; import { isTestDataExpectedWithSampleProbability, type TestData } from './types'; -import { logRateAnalysisTestData } from './test_data'; +import { logRateAnalysisTestData } from './log_rate_analysis_test_data'; export default function ({ getPageObjects, getService }: FtrProviderContext) { const PageObjects = getPageObjects(['common', 'console', 'header', 'home', 'security']); diff --git a/x-pack/test/functional/apps/aiops/test_data.ts b/x-pack/test/functional/apps/aiops/log_rate_analysis_test_data.ts similarity index 70% rename from x-pack/test/functional/apps/aiops/test_data.ts rename to x-pack/test/functional/apps/aiops/log_rate_analysis_test_data.ts index adf1447b1f346..3fb1e00b95201 100644 --- a/x-pack/test/functional/apps/aiops/test_data.ts +++ b/x-pack/test/functional/apps/aiops/log_rate_analysis_test_data.ts @@ -176,12 +176,19 @@ const DAY_MS = 86400000; const DEVIATION_TS = REFERENCE_TS - DAY_MS * 2; const BASELINE_TS = DEVIATION_TS - DAY_MS * 1; -const getArtificialLogDataViewTestData = (analysisType: LogRateAnalysisType): TestData => ({ - suiteTitle: `artificial logs with ${analysisType}`, +const getArtificialLogDataViewTestData = ( + analysisType: LogRateAnalysisType, + textField: boolean +): TestData => ({ + suiteTitle: `artificial logs with ${analysisType} and ${ + textField ? 'text field' : 'no text field' + }`, analysisType, - dataGenerator: `artificial_logs_with_${analysisType}`, + dataGenerator: `artificial_logs_with_${analysisType}_${textField ? 'textfield' : 'notextfield'}`, isSavedSearch: false, - sourceIndexOrSavedSearch: `artificial_logs_with_${analysisType}`, + sourceIndexOrSavedSearch: `artificial_logs_with_${analysisType}_${ + textField ? 'textfield' : 'notextfield' + }`, brushBaselineTargetTimestamp: BASELINE_TS + DAY_MS / 2, brushDeviationTargetTimestamp: DEVIATION_TS + DAY_MS / 2, brushIntervalFactor: 10, @@ -191,14 +198,24 @@ const getArtificialLogDataViewTestData = (analysisType: LogRateAnalysisType): Te expected: { totalDocCountFormatted: '8,400', analysisGroupsTable: [ - { - group: 'response_code: 500url: home.php', - docCount: '792', - }, - { - group: 'url: login.phpresponse_code: 500', - docCount: '790', - }, + textField + ? { + group: 'message: an unexpected error occuredurl: home.phpresponse_code: 500', + docCount: '634', + } + : { + group: 'response_code: 500url: home.php', + docCount: '792', + }, + textField + ? { + group: 'message: an unexpected error occuredurl: login.phpresponse_code: 500', + docCount: '632', + } + : { + group: 'url: login.phpresponse_code: 500', + docCount: '790', + }, { docCount: '636', group: 'user: Peterurl: home.php', @@ -208,11 +225,40 @@ const getArtificialLogDataViewTestData = (analysisType: LogRateAnalysisType): Te group: 'user: Peterurl: login.php', }, ], - filteredAnalysisGroupsTable: [ - { group: '* url: home.phpresponse_code: 500', docCount: '792' }, - { group: '* url: login.phpresponse_code: 500', docCount: '790' }, - ], + filteredAnalysisGroupsTable: textField + ? [ + { + group: '* url: home.phpmessage: an unexpected error occuredresponse_code: 500', + docCount: '634', + }, + { + group: '* url: login.phpmessage: an unexpected error occuredresponse_code: 500', + docCount: '632', + }, + ] + : [ + { group: '* url: home.phpresponse_code: 500', docCount: '792' }, + { group: '* url: login.phpresponse_code: 500', docCount: '790' }, + ], analysisTable: [ + ...(textField + ? [ + { + fieldName: 'message', + fieldValue: 'an unexpected error occured', + logRate: 'Chart type:bar chart', + pValue: '0.00000100', + impact: 'Medium', + }, + { + fieldName: 'response_code', + fieldValue: '500', + logRate: 'Chart type:bar chart', + pValue: '3.61e-12', + impact: 'High', + }, + ] + : []), { fieldName: 'url', fieldValue: 'home.php', @@ -220,15 +266,19 @@ const getArtificialLogDataViewTestData = (analysisType: LogRateAnalysisType): Te logRate: 'Chart type:bar chart', pValue: '0.00974', }, - { - fieldName: 'user', - fieldValue: 'Peter', - impact: 'High', - logRate: 'Chart type:bar chart', - pValue: '2.63e-21', - }, + ...(textField + ? [] + : [ + { + fieldName: 'user', + fieldValue: 'Peter', + impact: 'High', + logRate: 'Chart type:bar chart', + pValue: '2.63e-21', + }, + ]), ], - fieldSelectorPopover: ['response_code', 'url', 'user'], + fieldSelectorPopover: [...(textField ? ['message'] : []), 'response_code', 'url', 'user'], }, }); @@ -236,6 +286,8 @@ export const logRateAnalysisTestData: TestData[] = [ kibanaLogsDataViewTestData, farequoteDataViewTestData, farequoteDataViewTestDataWithQuery, - getArtificialLogDataViewTestData(LOG_RATE_ANALYSIS_TYPE.SPIKE), - getArtificialLogDataViewTestData(LOG_RATE_ANALYSIS_TYPE.DIP), + getArtificialLogDataViewTestData(LOG_RATE_ANALYSIS_TYPE.SPIKE, false), + getArtificialLogDataViewTestData(LOG_RATE_ANALYSIS_TYPE.SPIKE, true), + getArtificialLogDataViewTestData(LOG_RATE_ANALYSIS_TYPE.DIP, false), + getArtificialLogDataViewTestData(LOG_RATE_ANALYSIS_TYPE.DIP, true), ]; diff --git a/x-pack/test/functional/apps/aiops/types.ts b/x-pack/test/functional/apps/aiops/types.ts index 0832d9d921615..45f376cb670e1 100644 --- a/x-pack/test/functional/apps/aiops/types.ts +++ b/x-pack/test/functional/apps/aiops/types.ts @@ -8,6 +8,8 @@ import type { LogRateAnalysisType } from '@kbn/aiops-utils'; import { isPopulatedObject } from '@kbn/ml-is-populated-object'; +import { LogRateAnalysisDataGenerator } from '../../services/aiops/log_rate_analysis_data_generator'; + interface TestDataTableActionLogPatternAnalysis { type: 'LogPatternAnalysis'; tableRowId: string; @@ -46,7 +48,7 @@ interface TestDataExpectedWithoutSampleProbability { export interface TestData { suiteTitle: string; analysisType: LogRateAnalysisType; - dataGenerator: string; + dataGenerator: LogRateAnalysisDataGenerator; isSavedSearch?: boolean; sourceIndexOrSavedSearch: string; rowsPerPage?: 10 | 25 | 50; diff --git a/x-pack/test/functional/apps/ml/data_visualizer/data_drift.ts b/x-pack/test/functional/apps/ml/data_visualizer/data_drift.ts index 2eb579c1720d8..a0cd70db3655a 100644 --- a/x-pack/test/functional/apps/ml/data_visualizer/data_drift.ts +++ b/x-pack/test/functional/apps/ml/data_visualizer/data_drift.ts @@ -6,7 +6,7 @@ */ import { FtrProviderContext } from '../../../ftr_provider_context'; -import { farequoteDataViewTestDataWithQuery } from '../../aiops/test_data'; +import { farequoteDataViewTestDataWithQuery } from '../../aiops/log_rate_analysis_test_data'; import { TestData } from '../../aiops/types'; export default function ({ getService, getPageObjects }: FtrProviderContext) { diff --git a/x-pack/test/functional/services/aiops/log_rate_analysis_data_generator.ts b/x-pack/test/functional/services/aiops/log_rate_analysis_data_generator.ts index a628c730fdf76..48028b2ddbd1a 100644 --- a/x-pack/test/functional/services/aiops/log_rate_analysis_data_generator.ts +++ b/x-pack/test/functional/services/aiops/log_rate_analysis_data_generator.ts @@ -11,6 +11,17 @@ import { LOG_RATE_ANALYSIS_TYPE } from '@kbn/aiops-utils'; import { FtrProviderContext } from '../../ftr_provider_context'; +const LOG_RATE_ANALYSYS_DATA_GENERATOR = { + KIBANA_SAMPLE_DATA_LOGS: 'kibana_sample_data_logs', + FAREQUOTE_WITH_SPIKE: 'farequote_with_spike', + ARTIFICIAL_LOGS_WITH_SPIKE_NOTEXTFIELD: 'artificial_logs_with_spike_notextfield', + ARTIFICIAL_LOGS_WITH_SPIKE_TEXTFIELD: 'artificial_logs_with_spike_textfield', + ARTIFICIAL_LOGS_WITH_DIP_NOTEXTFIELD: 'artificial_logs_with_dip_notextfield', + ARTIFICIAL_LOGS_WITH_DIP_TEXTFIELD: 'artificial_logs_with_dip_textfield', +} as const; +export type LogRateAnalysisDataGenerator = + typeof LOG_RATE_ANALYSYS_DATA_GENERATOR[keyof typeof LOG_RATE_ANALYSYS_DATA_GENERATOR]; + export interface GeneratedDoc { user: string; response_code: string; @@ -18,6 +29,7 @@ export interface GeneratedDoc { version: string; '@timestamp': number; should_ignore_this_field: string; + message?: string; } const REFERENCE_TS = 1669018354793; @@ -26,7 +38,16 @@ const DAY_MS = 86400000; const DEVIATION_TS = REFERENCE_TS - DAY_MS * 2; const BASELINE_TS = DEVIATION_TS - DAY_MS * 1; -function getArtificialLogsWithDeviation(index: string, deviationType: string) { +function getMessage(timestamp: number, user: string, url: string, responseCode: string) { + const date = new Date(timestamp); + return `${user} [${date.toLocaleString('en-US')}] "GET /${url} HTTP/1.1" ${responseCode}`; +} + +function getArtificialLogsWithDeviation( + index: string, + deviationType: string, + includeTextField = false +) { const bulkBody: estypes.BulkRequest['body'] = []; const action = { index: { _index: index } }; let tsOffset = 0; @@ -47,15 +68,20 @@ function getArtificialLogsWithDeviation(index: string, deviationType: string) { tsOffset = 0; [...Array(100)].forEach(() => { tsOffset += Math.round(DAY_MS / 100); + const timestamp = ts + tsOffset; const doc: GeneratedDoc = { user, response_code: responseCode, url, version: 'v1.0.0', - '@timestamp': ts + tsOffset, + '@timestamp': timestamp, should_ignore_this_field: 'should_ignore_this_field', }; + if (includeTextField) { + doc.message = getMessage(timestamp, user, url, responseCode); + } + bulkBody.push(action); bulkBody.push(doc); }); @@ -77,17 +103,24 @@ function getArtificialLogsWithDeviation(index: string, deviationType: string) { tsOffset = 0; [...Array(docsPerUrl1[url])].forEach(() => { tsOffset += Math.round(DAY_MS / docsPerUrl1[url]); - bulkBody.push(action); - bulkBody.push({ + const timestamp = + (deviationType === LOG_RATE_ANALYSIS_TYPE.SPIKE ? DEVIATION_TS : BASELINE_TS) + tsOffset; + + const doc: GeneratedDoc = { user: 'Peter', response_code: responseCode, url, version: 'v1.0.0', - '@timestamp': - (deviationType === LOG_RATE_ANALYSIS_TYPE.SPIKE ? DEVIATION_TS : BASELINE_TS) + - tsOffset, + '@timestamp': timestamp, should_ignore_this_field: 'should_ignore_this_field', - }); + }; + + if (includeTextField) { + doc.message = getMessage(timestamp, 'Peter', url, responseCode); + } + + bulkBody.push(action); + bulkBody.push(doc); }); }); }); @@ -102,17 +135,24 @@ function getArtificialLogsWithDeviation(index: string, deviationType: string) { tsOffset = 0; [...Array(docsPerUrl2[url] + userIndex)].forEach(() => { tsOffset += Math.round(DAY_MS / docsPerUrl2[url]); - bulkBody.push(action); - bulkBody.push({ + const timestamp = + (deviationType === LOG_RATE_ANALYSIS_TYPE.SPIKE ? DEVIATION_TS : BASELINE_TS) + tsOffset; + + const doc: GeneratedDoc = { user, response_code: '500', url, version: 'v1.0.0', - '@timestamp': - (deviationType === LOG_RATE_ANALYSIS_TYPE.SPIKE ? DEVIATION_TS : BASELINE_TS) + - tsOffset, + '@timestamp': timestamp, should_ignore_this_field: 'should_ignore_this_field', - }); + }; + + if (includeTextField) { + doc.message = 'an unexpected error occured'; + } + + bulkBody.push(action); + bulkBody.push(doc); }); }); }); @@ -126,7 +166,7 @@ export function LogRateAnalysisDataGeneratorProvider({ getService }: FtrProvider const log = getService('log'); return new (class DataGenerator { - public async generateData(dataGenerator: string) { + public async generateData(dataGenerator: LogRateAnalysisDataGenerator) { switch (dataGenerator) { case 'kibana_sample_data_logs': // will be added via UI @@ -164,12 +204,19 @@ export function LogRateAnalysisDataGeneratorProvider({ getService }: FtrProvider }); break; - case 'artificial_logs_with_spike': - case 'artificial_logs_with_dip': + case 'artificial_logs_with_spike_notextfield': + case 'artificial_logs_with_spike_textfield': + case 'artificial_logs_with_dip_notextfield': + case 'artificial_logs_with_dip_textfield': try { - await es.indices.delete({ + const indexExists = await es.indices.exists({ index: dataGenerator, }); + if (indexExists) { + await es.indices.delete({ + index: dataGenerator, + }); + } } catch (e) { log.info(`Could not delete index '${dataGenerator}' in before() callback`); } @@ -185,16 +232,18 @@ export function LogRateAnalysisDataGeneratorProvider({ getService }: FtrProvider version: { type: 'keyword' }, '@timestamp': { type: 'date' }, should_ignore_this_field: { type: 'keyword', doc_values: false, index: false }, + message: { type: 'text' }, }, }, }); + const dataGeneratorOptions = dataGenerator.split('_'); + const deviationType = dataGeneratorOptions[3] ?? LOG_RATE_ANALYSIS_TYPE.SPIKE; + const textField = dataGeneratorOptions[4] === 'textfield' ?? false; + await es.bulk({ refresh: 'wait_for', - body: getArtificialLogsWithDeviation( - dataGenerator, - dataGenerator.split('_').pop() ?? LOG_RATE_ANALYSIS_TYPE.SPIKE - ), + body: getArtificialLogsWithDeviation(dataGenerator, deviationType, textField), }); break; @@ -203,7 +252,7 @@ export function LogRateAnalysisDataGeneratorProvider({ getService }: FtrProvider } } - public async removeGeneratedData(dataGenerator: string) { + public async removeGeneratedData(dataGenerator: LogRateAnalysisDataGenerator) { switch (dataGenerator) { case 'kibana_sample_data_logs': // do not remove @@ -213,8 +262,10 @@ export function LogRateAnalysisDataGeneratorProvider({ getService }: FtrProvider await esArchiver.unload('x-pack/test/functional/es_archives/ml/farequote'); break; - case 'artificial_logs_with_spike': - case 'artificial_logs_with_dip': + case 'artificial_logs_with_spike_notextfield': + case 'artificial_logs_with_spike_textfield': + case 'artificial_logs_with_dip_notextfield': + case 'artificial_logs_with_dip_textfield': try { await es.indices.delete({ index: dataGenerator, From a50968d5e751a5250629895af0010047fc08ce38 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Tue, 10 Oct 2023 18:53:15 +0100 Subject: [PATCH 39/48] chore(NA): update versions after v7.17.15 bump (#168518) This PR is a simple update of our versions file after the recent bumps. --- versions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions.json b/versions.json index 183bd9a9163fe..10def747a0786 100644 --- a/versions.json +++ b/versions.json @@ -20,7 +20,7 @@ "previousMinor": true }, { - "version": "7.17.14", + "version": "7.17.15", "branch": "7.17", "previousMajor": true } From 07e7b5eccd824f1ccc3b75c104fddcd9ff15c0b7 Mon Sep 17 00:00:00 2001 From: Tomasz Ciecierski Date: Tue, 10 Oct 2023 20:23:54 +0200 Subject: [PATCH 40/48] [EDR Workflows] Unskip osquery tests and UI changes to response tab in flyout (#167830) --- .../all/alerts_automated_action_results.cy.ts | 119 ++++++++ .../cypress/e2e/all/alerts_cases.cy.ts | 189 ++++++------ .../cypress/e2e/all/alerts_liked_apps.cy.ts | 190 ------------ .../cypress/e2e/all/alerts_linked_apps.cy.ts | 97 +++++++ .../e2e/all/alerts_multiple_agents.cy.ts | 12 +- .../all/alerts_response_actions_form.cy.ts | 274 +++++++++--------- .../cypress/e2e/all/packs_create_edit.cy.ts | 137 ++++----- .../cypress/e2e/all/saved_queries.cy.ts | 27 +- .../cypress/e2e/roles/alert_test.cy.ts | 6 - x-pack/plugins/osquery/cypress/support/e2e.ts | 6 + .../project_controller_osquery_roles.yml | 21 +- .../osquery/cypress/tasks/api_fixtures.ts | 12 +- .../osquery/cypress/tasks/live_query.ts | 21 +- .../osquery/cypress/tasks/navigation.ts | 4 + .../osquery/cypress/tasks/wait_until.ts | 40 +++ x-pack/plugins/osquery/cypress/tsconfig.json | 5 +- .../event_details/response_actions_view.tsx | 121 +++++--- .../left/components/response_details.test.tsx | 5 +- .../left/components/response_details.tsx | 49 +--- .../right/components/response_button.test.tsx | 14 - .../right/components/response_button.tsx | 51 +--- .../use_get_automated_action_list.ts | 4 +- ...ert_details_right_panel_overview_tab.cy.ts | 8 +- .../alert_details_right_panel_overview_tab.ts | 3 + .../project_controller_security_roles.yml | 1 + 25 files changed, 716 insertions(+), 700 deletions(-) create mode 100644 x-pack/plugins/osquery/cypress/e2e/all/alerts_automated_action_results.cy.ts delete mode 100644 x-pack/plugins/osquery/cypress/e2e/all/alerts_liked_apps.cy.ts create mode 100644 x-pack/plugins/osquery/cypress/e2e/all/alerts_linked_apps.cy.ts create mode 100644 x-pack/plugins/osquery/cypress/tasks/wait_until.ts diff --git a/x-pack/plugins/osquery/cypress/e2e/all/alerts_automated_action_results.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/alerts_automated_action_results.cy.ts new file mode 100644 index 0000000000000..1b431719fa662 --- /dev/null +++ b/x-pack/plugins/osquery/cypress/e2e/all/alerts_automated_action_results.cy.ts @@ -0,0 +1,119 @@ +/* + * 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 { cleanupRule, loadRule } from '../../tasks/api_fixtures'; +import { checkActionItemsInResults, loadRuleAlerts } from '../../tasks/live_query'; + +const UUID_REGEX = '[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}'; + +describe( + 'Alert Flyout Automated Action Results', + { + tags: ['@ess', '@serverless'], + }, + () => { + let ruleId: string; + + beforeEach(() => { + loadRule(true).then((data) => { + ruleId = data.id; + loadRuleAlerts(data.name); + }); + }); + + afterEach(() => { + cleanupRule(ruleId); + }); + + it('can visit discover from response action results', () => { + const discoverRegex = new RegExp(`action_id: ${UUID_REGEX}`); + cy.getBySel('expand-event').first().click(); + cy.getBySel('securitySolutionFlyoutResponseSectionHeader').click(); + cy.getBySel('securitySolutionFlyoutResponseButton').click(); + cy.getBySel('responseActionsViewWrapper').should('exist'); + checkActionItemsInResults({ + lens: true, + discover: true, + cases: true, + timeline: true, + }); + cy.contains('View in Discover') + .should('exist') + .should('have.attr', 'href') + .then(($href) => { + // @ts-expect-error-next-line href string - check types + cy.visit($href); + cy.getBySel('discoverDocTable', { timeout: 60000 }).within(() => { + cy.contains(`action_data.query`); + }); + cy.contains(discoverRegex); + }); + }); + + it('can visit lens from response action results', () => { + const lensRegex = new RegExp(`Action ${UUID_REGEX} results`); + cy.getBySel('expand-event').first().click(); + cy.getBySel('securitySolutionFlyoutResponseSectionHeader').click(); + cy.getBySel('securitySolutionFlyoutResponseButton').click(); + cy.getBySel('responseActionsViewWrapper').should('exist'); + checkActionItemsInResults({ + lens: true, + discover: true, + cases: true, + timeline: true, + }); + cy.getBySel('osquery-results-comment') + .first() + .within(() => { + let lensUrl = ''; + cy.window().then((win) => { + cy.stub(win, 'open') + .as('windowOpen') + .callsFake((url) => { + lensUrl = url; + }); + }); + cy.get(`[aria-label="View in Lens"]`).click(); + cy.window() + .its('open') + .then(() => { + cy.visit(lensUrl); + }); + }); + cy.getBySel('lnsWorkspace').should('exist'); + cy.getBySel('breadcrumbs').contains(lensRegex); + }); + + it('can add to timeline from response action results', () => { + const timelineRegex = new RegExp(`Added ${UUID_REGEX} to timeline`); + const filterRegex = new RegExp(`action_id: "${UUID_REGEX}"`); + cy.getBySel('expand-event').first().click(); + cy.getBySel('securitySolutionFlyoutResponseSectionHeader').click(); + cy.getBySel('securitySolutionFlyoutResponseButton').click(); + cy.getBySel('responseActionsViewWrapper').should('exist'); + checkActionItemsInResults({ + lens: true, + discover: true, + cases: true, + timeline: true, + }); + cy.getBySel('osquery-results-comment') + .first() + .within(() => { + cy.get('.euiTableRow') + .first() + .within(() => { + cy.getBySel('add-to-timeline').click(); + }); + }); + cy.contains(timelineRegex); + cy.getBySel('securitySolutionFlyoutHeaderCollapseDetailButton').click(); + cy.getBySel('flyoutBottomBar').contains('Untitled timeline').click(); + cy.contains(filterRegex); + }); + } +); diff --git a/x-pack/plugins/osquery/cypress/e2e/all/alerts_cases.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/alerts_cases.cy.ts index 5b9a43b6015ff..2d681bdc71729 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/alerts_cases.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/alerts_cases.cy.ts @@ -18,135 +18,112 @@ import { import { addToCase, checkActionItemsInResults, - clickRuleName, loadRuleAlerts, submitQuery, viewRecentCaseAndCheckResults, } from '../../tasks/live_query'; import { generateRandomStringName, interceptCaseId } from '../../tasks/integrations'; -import { ServerlessRoleName } from '../../support/roles'; -describe( - 'Alert Event Details - Cases', - { tags: ['@ess', '@serverless', '@brokenInServerless'] }, - () => { - let ruleId: string; - let ruleName: string; - let packId: string; - let packName: string; - const packData = packFixture(); +describe('Alert Event Details - Cases', { tags: ['@ess', '@serverless'] }, () => { + let ruleId: string; + let packId: string; + let packName: string; + const packData = packFixture(); - before(() => { - loadPack(packData).then((data) => { - packId = data.saved_object_id; - packName = data.name; - }); - loadRule(true).then((data) => { - ruleId = data.id; - ruleName = data.name; - loadRuleAlerts(data.name); - }); + beforeEach(() => { + loadPack(packData).then((data) => { + packId = data.saved_object_id; + packName = data.name; }); - - beforeEach(() => { - cy.login(ServerlessRoleName.SOC_MANAGER); - cy.visit('/app/security/rules'); - clickRuleName(ruleName); + loadRule(true).then((data) => { + ruleId = data.id; + loadRuleAlerts(data.name); }); + }); - after(() => { - cleanupPack(packId); - cleanupRule(ruleId); - }); + afterEach(() => { + cleanupPack(packId); + cleanupRule(ruleId); + }); - describe('Case creation', () => { - let caseId: string; + describe('Case creation', () => { + let caseId: string; - before(() => { - interceptCaseId((id) => { - caseId = id; - }); + before(() => { + interceptCaseId((id) => { + caseId = id; }); + }); - after(() => { - cleanupCase(caseId); - }); + after(() => { + cleanupCase(caseId); + }); - it('runs osquery against alert and creates a new case', () => { - const [caseName, caseDescription] = generateRandomStringName(2); - cy.getBySel('expand-event').first().click({ force: true }); - cy.getBySel('take-action-dropdown-btn').click(); - cy.getBySel('osquery-action-item').click(); - cy.contains(/^\d+ agen(t|ts) selected/); - cy.contains('Run a set of queries in a pack').click(); - cy.get(OSQUERY_FLYOUT_BODY_EDITOR).should('not.exist'); - cy.getBySel('select-live-pack').click().type(`${packName}{downArrow}{enter}`); - submitQuery(); - cy.get('[aria-label="Add to Case"]').first().click(); - cy.getBySel('cases-table-add-case-filter-bar').click(); - cy.getBySel('create-case-flyout').should('be.visible'); - cy.getBySel('caseTitle').within(() => { - cy.getBySel('input').type(caseName); - }); - cy.getBySel('caseDescription').within(() => { - cy.getBySel('euiMarkdownEditorTextArea').type(caseDescription); - }); - cy.getBySel('create-case-submit').click(); - cy.contains(`An alert was added to "${caseName}"`); - }); + it('runs osquery against alert and creates a new case', () => { + const [caseName, caseDescription] = generateRandomStringName(2); + cy.getBySel('expand-event').first().click({ force: true }); + cy.getBySel('take-action-dropdown-btn').click(); + cy.getBySel('osquery-action-item').click(); + cy.contains(/^\d+ agen(t|ts) selected/); + cy.contains('Run a set of queries in a pack').click(); + cy.get(OSQUERY_FLYOUT_BODY_EDITOR).should('not.exist'); + cy.getBySel('select-live-pack').click().type(`${packName}{downArrow}{enter}`); + submitQuery(); + cy.get('[aria-label="Add to Case"]').first().click(); + cy.getBySel('cases-table-add-case-filter-bar').click(); + cy.getBySel('create-case-flyout').should('be.visible'); + cy.get('input[aria-describedby="caseTitle"]').type(caseName); + cy.get('textarea[aria-label="caseDescription"]').type(caseDescription); + cy.getBySel('create-case-submit').click(); + cy.contains(`An alert was added to "${caseName}"`); }); + }); - // verify why calling new action doesnt add to response actions list - describe.skip('Case', () => { - let caseId: string; + describe('Case', () => { + let caseId: string; - before(() => { - loadCase('securitySolution').then((data) => { - caseId = data.id; - }); + before(() => { + loadCase('securitySolution').then((data) => { + caseId = data.id; }); + }); - after(() => { - cleanupCase(caseId); - }); + after(() => { + cleanupCase(caseId); + }); - it('sees osquery results from last action and add to a case', () => { - cy.getBySel('expand-event').first().click(); - cy.getBySel('securitySolutionDocumentDetailsFlyoutResponseSectionHeader').click(); - cy.getBySel('securitySolutionDocumentDetailsFlyoutResponseButton').click(); - cy.getBySel('responseActionsViewWrapper').should('exist'); - cy.contains('select * from users;'); - cy.contains("SELECT * FROM os_version where name='Ubuntu';"); - cy.getBySel('osquery-results-comment').each(($comment) => { - cy.wrap($comment).within(() => { - // On initial load result table might not render due to displayed error - if ($comment.find('div .euiDataGridRow').length <= 0) { - // If tabs are present try clicking between status and results to get rid of the error message - if ($comment.find('div .euiTabs').length > 0) { - cy.getBySel('osquery-status-tab').click(); - cy.getBySel('osquery-results-tab').click(); - cy.getBySel('dataGridRowCell', { timeout: 120000 }).should( - 'have.lengthOf.above', - 0 - ); - } - } else { - // Result tab was rendered successfully + it('sees osquery results from last action and add to a case', () => { + cy.getBySel('expand-event').first().click(); + cy.getBySel('securitySolutionFlyoutResponseSectionHeader').click(); + cy.getBySel('securitySolutionFlyoutResponseButton').click(); + cy.getBySel('responseActionsViewWrapper').should('exist'); + cy.contains('select * from users;'); + cy.contains("SELECT * FROM os_version where name='Ubuntu';"); + cy.getBySel('osquery-results-comment').each(($comment) => { + cy.wrap($comment).within(() => { + // On initial load result table might not render due to displayed error + if ($comment.find('div .euiDataGridRow').length <= 0) { + // If tabs are present try clicking between status and results to get rid of the error message + if ($comment.find('div .euiTabs').length > 0) { + cy.getBySel('osquery-status-tab').click(); + cy.getBySel('osquery-results-tab').click(); cy.getBySel('dataGridRowCell', { timeout: 120000 }).should('have.lengthOf.above', 0); } - // } - }); - }); - checkActionItemsInResults({ - lens: true, - discover: true, - cases: true, - timeline: true, + } else { + // Result tab was rendered successfully + cy.getBySel('dataGridRowCell', { timeout: 120000 }).should('have.lengthOf.above', 0); + } }); - - addToCase(caseId); - viewRecentCaseAndCheckResults(); }); + checkActionItemsInResults({ + lens: true, + discover: true, + cases: true, + timeline: true, + }); + + addToCase(caseId); + viewRecentCaseAndCheckResults(); }); - } -); + }); +}); diff --git a/x-pack/plugins/osquery/cypress/e2e/all/alerts_liked_apps.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/alerts_liked_apps.cy.ts deleted file mode 100644 index 19774d956a303..0000000000000 --- a/x-pack/plugins/osquery/cypress/e2e/all/alerts_liked_apps.cy.ts +++ /dev/null @@ -1,190 +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 { cleanupRule, loadRule } from '../../tasks/api_fixtures'; -import { RESPONSE_ACTIONS_ITEM_0, RESPONSE_ACTIONS_ITEM_1 } from '../../tasks/response_actions'; -import { - checkActionItemsInResults, - clickRuleName, - inputQuery, - loadRuleAlerts, - submitQuery, -} from '../../tasks/live_query'; -import { closeModalIfVisible, closeToastIfVisible } from '../../tasks/integrations'; -import { RESULTS_TABLE, RESULTS_TABLE_BUTTON } from '../../screens/live_query'; -import { ServerlessRoleName } from '../../support/roles'; - -const UUID_REGEX = '[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}'; - -// Issue: https://github.com/elastic/security-team/issues/7731 -describe.skip('Alert Event Details', { tags: ['@ess', '@serverless'] }, () => { - let ruleId: string; - let ruleName: string; - - before(() => { - loadRule().then((data) => { - ruleId = data.id; - ruleName = data.name; - loadRuleAlerts(data.name); - }); - }); - - after(() => { - cleanupRule(ruleId); - }); - - beforeEach(() => { - cy.login(ServerlessRoleName.SOC_MANAGER); - cy.visit('/app/security/rules'); - clickRuleName(ruleName); - }); - - it('should be able to add investigation guides to response actions', () => { - const investigationGuideNote = - 'You have queries in the investigation guide. Add them as response actions?'; - cy.getBySel('editRuleSettingsLink').click(); - cy.getBySel('globalLoadingIndicator').should('not.exist'); - cy.getBySel('edit-rule-actions-tab').click(); - - cy.contains(investigationGuideNote); - cy.getBySel('osqueryAddInvestigationGuideQueries').click(); - cy.contains(investigationGuideNote).should('not.exist'); - - cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => { - cy.contains("SELECT * FROM os_version where name='{{host.os.name}}';"); - cy.contains('host.os.platform'); - cy.contains('platform'); - }); - cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => { - cy.contains('select * from users'); - }); - cy.contains('Save changes').click(); - cy.contains(`${ruleName} was saved`).should('exist'); - closeToastIfVisible(); - }); - - it('should be able to run live query and add to timeline', () => { - const TIMELINE_NAME = 'Untitled timeline'; - cy.getBySel('timeline-context-menu-button').first().click(); - cy.contains('Run Osquery'); - cy.getBySel('expand-event').first().click(); - cy.getBySel('take-action-dropdown-btn').click(); - cy.getBySel('osquery-action-item').click(); - cy.contains('1 agent selected.'); - inputQuery('select * from uptime;'); - submitQuery(); - cy.contains('Results'); - cy.contains('Add to timeline investigation'); - cy.contains('Save for later').click(); - cy.contains('Save query'); - cy.get('[data-test-subj="osquery-save-query-flyout"]').within(() => { - cy.get('.euiButtonEmpty').contains('Cancel').click(); - }); - cy.getBySel('add-to-timeline').first().click(); - cy.getBySel('globalToastList').contains('Added'); - closeToastIfVisible(); - cy.getBySel(RESULTS_TABLE).within(() => { - cy.getBySel(RESULTS_TABLE_BUTTON).should('not.exist'); - }); - cy.contains('Cancel').click(); - cy.getBySel('flyoutBottomBar').within(() => { - cy.contains(TIMELINE_NAME).click(); - }); - cy.getBySel('draggableWrapperKeyboardHandler').contains('action_id: "'); - // timeline unsaved changes modal - cy.visit('/app/osquery'); - closeModalIfVisible(); - }); - - it('can visit discover from response action results', { tags: ['@ess'] }, () => { - const discoverRegex = new RegExp(`action_id: ${UUID_REGEX}`); - cy.getBySel('expand-event').first().click(); - cy.getBySel('securitySolutionDocumentDetailsFlyoutResponseSectionHeader').click(); - cy.getBySel('securitySolutionDocumentDetailsFlyoutResponseButton').click(); - cy.getBySel('responseActionsViewWrapper').should('exist'); - checkActionItemsInResults({ - lens: true, - discover: true, - cases: true, - timeline: true, - }); - cy.contains('View in Discover') - .should('exist') - .should('have.attr', 'href') - .then(($href) => { - // @ts-expect-error-next-line href string - check types - cy.visit($href); - cy.getBySel('breadcrumbs').contains('Discover').should('exist'); - cy.getBySel('discoverDocTable', { timeout: 60000 }).within(() => { - cy.contains(`action_data.query`); - }); - cy.contains(discoverRegex); - }); - }); - - it('can visit lens from response action results', { tags: ['@ess'] }, () => { - const lensRegex = new RegExp(`Action ${UUID_REGEX} results`); - cy.getBySel('expand-event').first().click(); - cy.getBySel('securitySolutionDocumentDetailsFlyoutResponseSectionHeader').click(); - cy.getBySel('securitySolutionDocumentDetailsFlyoutResponseButton').click(); - cy.getBySel('responseActionsViewWrapper').should('exist'); - checkActionItemsInResults({ - lens: true, - discover: true, - cases: true, - timeline: true, - }); - cy.getBySel('osquery-results-comment') - .first() - .within(() => { - let lensUrl = ''; - cy.window().then((win) => { - cy.stub(win, 'open') - .as('windowOpen') - .callsFake((url) => { - lensUrl = url; - }); - }); - cy.get(`[aria-label="View in Lens"]`).click(); - cy.window() - .its('open') - .then(() => { - cy.visit(lensUrl); - }); - }); - cy.getBySel('lnsWorkspace').should('exist'); - cy.getBySel('breadcrumbs').contains(lensRegex); - }); - - it('can add to timeline from response action results', { tags: ['@ess'] }, () => { - const timelineRegex = new RegExp(`Added ${UUID_REGEX} to timeline`); - const filterRegex = new RegExp(`action_id: "${UUID_REGEX}"`); - cy.getBySel('expand-event').first().click(); - cy.getBySel('securitySolutionDocumentDetailsFlyoutResponseSectionHeader').click(); - cy.getBySel('securitySolutionDocumentDetailsFlyoutResponseButton').click(); - cy.getBySel('responseActionsViewWrapper').should('exist'); - checkActionItemsInResults({ - lens: true, - discover: true, - cases: true, - timeline: true, - }); - cy.getBySel('osquery-results-comment') - .first() - .within(() => { - cy.get('.euiTableRow') - .first() - .within(() => { - cy.getBySel('add-to-timeline').click(); - }); - }); - cy.contains(timelineRegex); - cy.getBySel('securitySolutionDocumentDetailsFlyoutHeaderCollapseDetailButton').click(); - cy.getBySel('flyoutBottomBar').contains('Untitled timeline').click(); - cy.contains(filterRegex); - }); -}); diff --git a/x-pack/plugins/osquery/cypress/e2e/all/alerts_linked_apps.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/alerts_linked_apps.cy.ts new file mode 100644 index 0000000000000..8fca7b0164eef --- /dev/null +++ b/x-pack/plugins/osquery/cypress/e2e/all/alerts_linked_apps.cy.ts @@ -0,0 +1,97 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { cleanupRule, loadRule } from '../../tasks/api_fixtures'; +import { RESPONSE_ACTIONS_ITEM_0, RESPONSE_ACTIONS_ITEM_1 } from '../../tasks/response_actions'; +import { + checkResults, + inputQueryInFlyout, + loadRuleAlerts, + selectAllAgents, + submitQuery, +} from '../../tasks/live_query'; +import { closeModalIfVisible, closeToastIfVisible } from '../../tasks/integrations'; +import { RESULTS_TABLE, RESULTS_TABLE_BUTTON } from '../../screens/live_query'; + +describe( + 'Alert Event Details', + { + tags: ['@ess', '@serverless'], + }, + () => { + let ruleId: string; + let ruleName: string; + + beforeEach(() => { + loadRule().then((data) => { + ruleId = data.id; + ruleName = data.name; + loadRuleAlerts(data.name); + }); + }); + + afterEach(() => { + cleanupRule(ruleId); + }); + + it('should be able to add investigation guides to response actions', () => { + const investigationGuideNote = + 'You have queries in the investigation guide. Add them as response actions?'; + cy.getBySel('editRuleSettingsLink').click(); + cy.getBySel('globalLoadingIndicator').should('not.exist'); + cy.getBySel('edit-rule-actions-tab').click(); + + cy.contains(investigationGuideNote); + cy.getBySel('osqueryAddInvestigationGuideQueries').click(); + cy.contains(investigationGuideNote).should('not.exist'); + + cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => { + cy.contains("SELECT * FROM os_version where name='{{host.os.name}}';"); + cy.contains('host.os.platform'); + cy.contains('platform'); + }); + cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => { + cy.contains('select * from users'); + }); + cy.contains('Save changes').click(); + cy.contains(`${ruleName} was saved`).should('exist'); + closeToastIfVisible(); + }); + + it('should be able to run live query and add to timeline', () => { + const TIMELINE_NAME = 'Untitled timeline'; + cy.getBySel('expand-event').first().click(); + cy.getBySel('take-action-dropdown-btn').click(); + cy.getBySel('osquery-action-item').click(); + cy.contains('1 agent selected.'); + selectAllAgents(); + inputQueryInFlyout('select * from uptime;'); + submitQuery(); + checkResults(); + cy.contains('Add to timeline investigation'); + cy.contains('Save for later').click(); + cy.contains('Save query'); + cy.get('[data-test-subj="osquery-save-query-flyout"]').within(() => { + cy.get('.euiButtonEmpty').contains('Cancel').click(); + }); + cy.getBySel('add-to-timeline').first().click(); + cy.getBySel('globalToastList').contains('Added'); + closeToastIfVisible(); + cy.getBySel(RESULTS_TABLE).within(() => { + cy.getBySel(RESULTS_TABLE_BUTTON).should('not.exist'); + }); + cy.contains('Cancel').click(); + cy.getBySel('flyoutBottomBar').within(() => { + cy.contains(TIMELINE_NAME).click(); + }); + cy.getBySel('draggableWrapperKeyboardHandler').contains('action_id: "'); + // timeline unsaved changes modal + cy.visit('/app/osquery'); + closeModalIfVisible(); + }); + } +); diff --git a/x-pack/plugins/osquery/cypress/e2e/all/alerts_multiple_agents.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/alerts_multiple_agents.cy.ts index 84f685c87b770..6dde203828a19 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/alerts_multiple_agents.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/alerts_multiple_agents.cy.ts @@ -7,18 +7,18 @@ import { cleanupRule, loadRule } from '../../tasks/api_fixtures'; import { - clickRuleName, inputQuery, loadRuleAlerts, submitQuery, takeOsqueryActionWithParams, } from '../../tasks/live_query'; -import { ServerlessRoleName } from '../../support/roles'; import { OSQUERY_FLYOUT_BODY_EDITOR } from '../../screens/live_query'; describe( 'Alert Event Details - dynamic params', - { tags: ['@ess', '@serverless', '@brokenInServerless'] }, + { + tags: ['@ess', '@serverless'], + }, () => { let ruleId: string; let ruleName: string; @@ -27,7 +27,6 @@ describe( loadRule(true).then((data) => { ruleId = data.id; ruleName = data.name; - loadRuleAlerts(data.name); }); }); @@ -36,9 +35,7 @@ describe( }); beforeEach(() => { - cy.login(ServerlessRoleName.SOC_MANAGER); - cy.visit('/app/security/rules'); - clickRuleName(ruleName); + loadRuleAlerts(ruleName); }); it('should substitute parameters in investigation guide', () => { @@ -102,7 +99,6 @@ describe( }); it('should substitute params in osquery ran from timelines alerts', () => { - loadRuleAlerts(ruleName); cy.getBySel('send-alert-to-timeline-button').first().click(); cy.getBySel('query-events-table').within(() => { cy.getBySel('expand-event').first().click(); diff --git a/x-pack/plugins/osquery/cypress/e2e/all/alerts_response_actions_form.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/alerts_response_actions_form.cy.ts index cd7f70a3ac9c3..4a49d85d0ffa9 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/alerts_response_actions_form.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/alerts_response_actions_form.cy.ts @@ -14,10 +14,10 @@ import { packFixture, } from '../../tasks/api_fixtures'; import { + OSQUERY_RESPONSE_ACTION_ADD_BUTTON, RESPONSE_ACTIONS_ITEM_0, RESPONSE_ACTIONS_ITEM_1, RESPONSE_ACTIONS_ITEM_2, - OSQUERY_RESPONSE_ACTION_ADD_BUTTON, } from '../../tasks/response_actions'; import { checkActionItemsInResults, @@ -26,118 +26,129 @@ import { typeInECSFieldInput, } from '../../tasks/live_query'; import { closeDateTabIfVisible, closeToastIfVisible } from '../../tasks/integrations'; -import { ServerlessRoleName } from '../../support/roles'; -// Issue: https://github.com/elastic/security-team/issues/7731 -describe.skip( - 'Alert Event Details - Response Actions Form', - { tags: ['@ess', '@serverless'] }, - () => { - let multiQueryPackId: string; - let multiQueryPackName: string; - let ruleId: string; - let ruleName: string; - let packId: string; - let packName: string; - const packData = packFixture(); - const multiQueryPackData = multiQueryPackFixture(); +interface ITestRuleBody { + response_actions: [ + { + params: { + queries: Array<{ + interval?: number; + query: string; + platform: string; + id: string; + }>; + }; + } + ]; +} - beforeEach(() => { - loadPack(packData).then((data) => { - packId = data.saved_object_id; - packName = data.name; - }); - loadPack(multiQueryPackData).then((data) => { - multiQueryPackId = data.saved_object_id; - multiQueryPackName = data.name; - }); - loadRule().then((data) => { - ruleId = data.id; - ruleName = data.name; - }); - cy.login(ServerlessRoleName.SOC_MANAGER); +describe('Alert Event Details - Response Actions Form', { tags: ['@ess', '@serverless'] }, () => { + let multiQueryPackId: string; + let multiQueryPackName: string; + let ruleId: string; + let ruleName: string; + let packId: string; + let packName: string; + const packData = packFixture(); + const multiQueryPackData = multiQueryPackFixture(); + + beforeEach(() => { + loadPack(packData).then((data) => { + packId = data.saved_object_id; + packName = data.name; + }); + loadPack(multiQueryPackData).then((data) => { + multiQueryPackId = data.saved_object_id; + multiQueryPackName = data.name; }); - afterEach(() => { - cleanupPack(packId); - cleanupPack(multiQueryPackId); - cleanupRule(ruleId); + loadRule().then((data) => { + ruleId = data.id; + ruleName = data.name; }); + }); + afterEach(() => { + cleanupPack(packId); + cleanupPack(multiQueryPackId); + cleanupRule(ruleId); + }); - it('adds response actions with osquery with proper validation and form values', () => { - cy.visit('/app/security/rules'); - clickRuleName(ruleName); - cy.getBySel('editRuleSettingsLink').click(); - cy.getBySel('globalLoadingIndicator').should('not.exist'); - closeDateTabIfVisible(); - cy.getBySel('edit-rule-actions-tab').click(); - cy.contains('Response actions are run on each rule execution.'); - cy.getBySel(OSQUERY_RESPONSE_ACTION_ADD_BUTTON).click(); - cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => { - cy.contains('Query is a required field'); - inputQuery('select * from uptime1'); - }); - cy.getBySel(OSQUERY_RESPONSE_ACTION_ADD_BUTTON).click(); - cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => { - cy.contains('Run a set of queries in a pack').click(); - }); - cy.contains('Save changes').click(); - cy.getBySel('response-actions-error') - .within(() => { - cy.contains('Pack is a required field'); - }) - .should('exist'); - cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => { + it('adds response actions with osquery with proper validation and form values', () => { + cy.visit('/app/security/rules'); + clickRuleName(ruleName); + cy.getBySel('editRuleSettingsLink').click(); + cy.getBySel('globalLoadingIndicator').should('not.exist'); + closeDateTabIfVisible(); + cy.getBySel('edit-rule-actions-tab').click(); + cy.contains('Response actions are run on each rule execution.'); + cy.getBySel(OSQUERY_RESPONSE_ACTION_ADD_BUTTON).click(); + cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => { + cy.contains('Query is a required field'); + inputQuery('select * from uptime1'); + }); + cy.getBySel(OSQUERY_RESPONSE_ACTION_ADD_BUTTON).click(); + cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => { + cy.contains('Run a set of queries in a pack').click(); + }); + cy.getBySel('response-actions-error') + .within(() => { cy.contains('Pack is a required field'); - cy.getBySel('comboBoxInput').type(`${packName}{downArrow}{enter}`); - }); + }) + .should('exist'); + cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => { + cy.contains('Pack is a required field'); + cy.getBySel('comboBoxInput').type(`${packName}{downArrow}{enter}`); + }); - cy.getBySel(OSQUERY_RESPONSE_ACTION_ADD_BUTTON).click(); + cy.getBySel(OSQUERY_RESPONSE_ACTION_ADD_BUTTON).click(); - cy.getBySel(RESPONSE_ACTIONS_ITEM_2).within(() => { - cy.contains('Query is a required field'); - inputQuery('select * from uptime'); - cy.contains('Advanced').click(); - typeInECSFieldInput('message{downArrow}{enter}'); - cy.getBySel('osqueryColumnValueSelect').type('days{downArrow}{enter}'); - cy.wait(1000); // wait for the validation to trigger - cypress is way faster than users ;) - }); + cy.getBySel(RESPONSE_ACTIONS_ITEM_2).within(() => { + cy.contains('Query is a required field'); + inputQuery('select * from uptime'); + cy.contains('Advanced').click(); + typeInECSFieldInput('message{downArrow}{enter}'); + cy.getBySel('osqueryColumnValueSelect').type('days{downArrow}{enter}'); + cy.wait(1000); // wait for the validation to trigger - cypress is way faster than users ;) + }); - cy.getBySel('ruleEditSubmitButton').click(); - cy.contains(`${ruleName} was saved`).should('exist'); - closeToastIfVisible(); + cy.getBySel('ruleEditSubmitButton').click(); + cy.contains(`${ruleName} was saved`).should('exist'); + closeToastIfVisible(); - cy.getBySel('editRuleSettingsLink').click(); - cy.getBySel('globalLoadingIndicator').should('not.exist'); - cy.getBySel('edit-rule-actions-tab').click(); - cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => { - cy.contains('select * from uptime1'); - }); - cy.getBySel(RESPONSE_ACTIONS_ITEM_2).within(() => { - cy.contains('select * from uptime'); - cy.contains('Log message optimized for viewing in a log viewer'); - cy.contains('Days of uptime'); - }); - cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => { - cy.contains(packName); - cy.getBySel('comboBoxInput').type('{backspace}{enter}'); - }); - cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => { - cy.contains('select * from uptime1'); - cy.getBySel('remove-response-action').click(); - }); - cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => { - cy.contains('Search for a pack to run'); - cy.contains('Pack is a required field'); - cy.getBySel('comboBoxInput').type(`${packName}{downArrow}{enter}`); - }); - cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => { - cy.contains('select * from uptime'); - cy.contains('Log message optimized for viewing in a log viewer'); - cy.contains('Days of uptime'); - }); - cy.intercept('PUT', '/api/detection_engine/rules').as('saveRuleSingleQuery'); - cy.getBySel('ruleEditSubmitButton').click(); - cy.wait('@saveRuleSingleQuery').should(({ request }) => { + cy.getBySel('editRuleSettingsLink').click(); + cy.getBySel('globalLoadingIndicator').should('not.exist'); + cy.getBySel('edit-rule-actions-tab').click(); + cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => { + cy.contains('select * from uptime1'); + }); + cy.getBySel(RESPONSE_ACTIONS_ITEM_2).within(() => { + cy.contains('select * from uptime'); + cy.contains('Log message optimized for viewing in a log viewer'); + cy.contains('Days of uptime'); + }); + cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => { + cy.contains(packName); + cy.getBySel('comboBoxInput').type('{backspace}{enter}'); + }); + cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => { + cy.contains('select * from uptime1'); + cy.getBySel('remove-response-action').click(); + }); + cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => { + cy.contains('Search for a pack to run'); + cy.contains('Pack is a required field'); + cy.getBySel('comboBoxInput').type(`${packName}{downArrow}{enter}`); + }); + cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => { + cy.contains('select * from uptime'); + cy.contains('Log message optimized for viewing in a log viewer'); + cy.contains('Days of uptime'); + }); + cy.intercept('PUT', '/api/detection_engine/rules').as('saveRuleChangesOne'); + cy.getBySel('ruleEditSubmitButton').click(); + + cy.wait('@saveRuleChangesOne'); + cy.get<{ request: { url: string; body: ITestRuleBody } }>('@saveRuleChangesOne').should( + ({ request }) => { const oneQuery = [ { interval: 3600, @@ -146,33 +157,36 @@ describe.skip( }, ]; expect(request.body.response_actions[0].params.queries).to.deep.equal(oneQuery); - }); + } + ); - cy.contains(`${ruleName} was saved`).should('exist'); - closeToastIfVisible(); + cy.contains(`${ruleName} was saved`).should('exist'); + closeToastIfVisible(); - cy.getBySel('editRuleSettingsLink').click(); - cy.getBySel('globalLoadingIndicator').should('not.exist'); - cy.getBySel('edit-rule-actions-tab').click(); - cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => { - cy.contains(packName); - cy.getBySel('comboBoxInput').type(`${multiQueryPackName}{downArrow}{enter}`); - checkActionItemsInResults({ - cases: false, - lens: false, - discover: false, - timeline: false, - }); - }); - cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => { - cy.contains('select * from uptime'); - cy.contains('Log message optimized for viewing in a log viewer'); - cy.contains('Days of uptime'); + cy.getBySel('editRuleSettingsLink').click(); + cy.getBySel('globalLoadingIndicator').should('not.exist'); + cy.getBySel('edit-rule-actions-tab').click(); + cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => { + cy.contains(packName); + cy.getBySel('comboBoxInput').type(`${multiQueryPackName}{downArrow}{enter}`); + checkActionItemsInResults({ + cases: false, + lens: false, + discover: false, + timeline: false, }); - cy.intercept('PUT', '/api/detection_engine/rules').as('saveRuleMultiQuery'); + }); + cy.getBySel(RESPONSE_ACTIONS_ITEM_1).within(() => { + cy.contains('select * from uptime'); + cy.contains('Log message optimized for viewing in a log viewer'); + cy.contains('Days of uptime'); + }); + cy.intercept('PUT', '/api/detection_engine/rules').as('saveRuleChangesTwo'); - cy.contains('Save changes').click(); - cy.wait('@saveRuleMultiQuery').should(({ request }) => { + cy.contains('Save changes').click(); + cy.wait('@saveRuleChangesTwo'); + cy.get<{ request: { url: string; body: ITestRuleBody } }>('@saveRuleChangesTwo').should( + ({ request }) => { const threeQueries = [ { interval: 3600, @@ -192,7 +206,7 @@ describe.skip( }, ]; expect(request.body.response_actions[0].params.queries).to.deep.equal(threeQueries); - }); - }); - } -); + } + ); + }); +}); diff --git a/x-pack/plugins/osquery/cypress/e2e/all/packs_create_edit.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/packs_create_edit.cy.ts index ca093c9241256..3b03ca07fbe15 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/packs_create_edit.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/packs_create_edit.cy.ts @@ -8,7 +8,7 @@ import { recurse } from 'cypress-recurse'; import type { PackagePolicy } from '@kbn/fleet-plugin/common'; import { API_VERSIONS } from '../../../common/constants'; -import { navigateTo } from '../../tasks/navigation'; +import { navigateTo, waitForReact } from '../../tasks/navigation'; import { deleteAndConfirm, findAndClickButton, @@ -28,7 +28,7 @@ import { loadSavedQuery, cleanupSavedQuery, cleanupPack, loadPack } from '../../ import { request } from '../../tasks/common'; import { ServerlessRoleName } from '../../support/roles'; -describe('Packs - Create and Edit', () => { +describe('Packs - Create and Edit', { tags: ['@ess', '@serverless'] }, () => { let savedQueryId: string; let savedQueryName: string; let nomappingSavedQueryId: string; @@ -222,8 +222,8 @@ describe('Packs - Create and Edit', () => { }); describe('Check if pack is created', { tags: ['@ess', '@serverless'] }, () => { - const packName = 'Pack-name' + generateRandomStringName(1)[0]; let packId: string; + let packName: string; before(() => { interceptPackId((pack) => { @@ -231,6 +231,10 @@ describe('Packs - Create and Edit', () => { }); }); + beforeEach(() => { + packName = 'Pack-name' + generateRandomStringName(1)[0]; + }); + after(() => { cleanupPack(packId); }); @@ -262,10 +266,9 @@ describe('Packs - Create and Edit', () => { }); describe('to click the edit button and edit pack', { tags: ['@ess', '@serverless'] }, () => { - const newQueryName = 'new-query-name' + generateRandomStringName(1)[0]; - let packId: string; let packName: string; + let newQueryName: string; before(() => { request<{ items: PackagePolicy[] }>({ @@ -287,6 +290,9 @@ describe('Packs - Create and Edit', () => { packName = pack.name; }); }); + beforeEach(() => { + newQueryName = 'new-query-name' + generateRandomStringName(1)[0]; + }); after(() => { cleanupPack(packId); @@ -509,80 +515,77 @@ describe('Packs - Create and Edit', () => { }); }); - describe( - 'should verify that packs are triggered', - { tags: ['@ess', '@serverless', '@brokenInServerless'] }, - () => { - let packId: string; - let packName: string; + describe('should verify that packs are triggered', { tags: ['@ess', '@serverless'] }, () => { + let packId: string; + let packName: string; - before(() => { - request<{ items: PackagePolicy[] }>({ - url: '/internal/osquery/fleet_wrapper/package_policies', - headers: { - 'Elastic-Api-Version': API_VERSIONS.internal.v1, - }, - }) - .then((response) => - loadPack({ - policy_ids: [response.body.items[0].policy_id], - queries: { - [savedQueryName]: { ecs_mapping: {}, interval: 60, query: 'select * from uptime;' }, - }, - }) - ) - .then((pack) => { - packId = pack.saved_object_id; - packName = pack.name; - }); - }); + before(() => { + request<{ items: PackagePolicy[] }>({ + url: '/internal/osquery/fleet_wrapper/package_policies', + headers: { + 'Elastic-Api-Version': API_VERSIONS.internal.v1, + }, + }) + .then((response) => + loadPack({ + policy_ids: [response.body.items[0].policy_id], + queries: { + [savedQueryName]: { ecs_mapping: {}, interval: 60, query: 'select * from uptime;' }, + }, + }) + ) + .then((pack) => { + packId = pack.saved_object_id; + packName = pack.name; + }); + }); - after(() => { - cleanupPack(packId); - }); + after(() => { + cleanupPack(packId); + }); - it('', () => { - preparePack(packName); - cy.contains(`${packName} details`).should('exist'); + it('', () => { + preparePack(packName); + cy.contains(`${packName} details`).should('exist'); - recurse( - () => { - cy.getBySel('docsLoading').should('exist'); - cy.getBySel('docsLoading').should('not.exist'); + recurse( + () => { + cy.getBySel('docsLoading').should('exist'); + cy.getBySel('docsLoading').should('not.exist'); - return cy.get('tbody .euiTableRow > td:nth-child(5)').invoke('text'); + return cy.get('tbody .euiTableRow > td:nth-child(5)').invoke('text'); + }, + (response) => response !== 'Docs-', + { + timeout: 300000, + post: () => { + cy.reload(); }, - (response) => response === 'Docs1', - { - timeout: 300000, - post: () => { - cy.reload(); - }, - } - ); - - cy.react('ScheduledQueryLastResults', { options: { timeout: 3000 } }) - .should('exist') - .within(() => { - cy.react('FormattedRelative'); - }); + } + ); + waitForReact(); - cy.react('DocsColumnResults').within(() => { - cy.react('EuiNotificationBadge').contains('1'); - }); - cy.react('AgentsColumnResults').within(() => { - cy.react('EuiNotificationBadge').contains('1'); + cy.react('ScheduledQueryLastResults', { options: { timeout: 3000 } }) + .should('exist') + .within(() => { + cy.react('FormattedRelative'); }); - cy.getBySel('packResultsErrorsEmpty').should('have.length', 1); + + cy.react('DocsColumnResults').within(() => { + cy.react('EuiNotificationBadge').contains('1'); }); - } - ); + cy.react('AgentsColumnResults').within(() => { + cy.react('EuiNotificationBadge').contains('1'); + }); + cy.getBySel('packResultsErrorsEmpty').should('have.length', 1); + }); + }); describe('delete all queries in the pack', { tags: ['@ess', '@serverless'] }, () => { let packId: string; let packName: string; - before(() => { + beforeEach(() => { request<{ items: PackagePolicy[] }>({ url: '/internal/osquery/fleet_wrapper/package_policies', headers: { @@ -603,7 +606,7 @@ describe('Packs - Create and Edit', () => { }); }); - after(() => { + afterEach(() => { cleanupPack(packId); }); @@ -702,7 +705,7 @@ describe('Packs - Create and Edit', () => { describe('to click delete button', { tags: ['@ess', '@serverless'] }, () => { let packName: string; - before(() => { + beforeEach(() => { request<{ items: PackagePolicy[] }>({ url: '/internal/osquery/fleet_wrapper/package_policies', headers: { diff --git a/x-pack/plugins/osquery/cypress/e2e/all/saved_queries.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/saved_queries.cy.ts index a02d10bda2bf9..c7528a1410d87 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/saved_queries.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/saved_queries.cy.ts @@ -19,10 +19,17 @@ import { } from '../../tasks/live_query'; import { navigateTo } from '../../tasks/navigation'; import { getSavedQueriesComplexTest } from '../../tasks/saved_queries'; -import { loadCase, cleanupCase, loadPack, cleanupPack } from '../../tasks/api_fixtures'; +import { + loadCase, + cleanupCase, + loadPack, + cleanupPack, + loadSavedQuery, + cleanupSavedQuery, +} from '../../tasks/api_fixtures'; import { ServerlessRoleName } from '../../support/roles'; -describe('ALL - Saved queries', { tags: ['@ess', '@serverless', '@brokenInServerless'] }, () => { +describe('ALL - Saved queries', { tags: ['@ess', '@serverless'] }, () => { let caseId: string; before(() => { @@ -65,6 +72,7 @@ describe('ALL - Saved queries', { tags: ['@ess', '@serverless', '@brokenInServer describe('prebuilt', () => { let packName: string; let packId: string; + let savedQueryId: string; before(() => { loadPack({ @@ -79,6 +87,9 @@ describe('ALL - Saved queries', { tags: ['@ess', '@serverless', '@brokenInServer packId = data.saved_object_id; packName = data.name; }); + loadSavedQuery().then((data) => { + savedQueryId = data.saved_object_id; + }); }); beforeEach(() => { @@ -90,6 +101,7 @@ describe('ALL - Saved queries', { tags: ['@ess', '@serverless', '@brokenInServer after(() => { cleanupPack(packId); + cleanupSavedQuery(savedQueryId); }); it('checks result type on prebuilt saved query', () => { @@ -113,20 +125,13 @@ describe('ALL - Saved queries', { tags: ['@ess', '@serverless', '@brokenInServer viewRecentCaseAndCheckResults(); }); - it('user cant delete prebuilt saved query', () => { + it('user can not delete prebuilt saved query but can delete normal saved query', () => { cy.react('CustomItemAction', { props: { index: 1, item: { id: 'users_elastic' } }, }).click(); cy.contains('Delete query').should('not.exist'); - navigateTo('/app/osquery/saved_queries'); + navigateTo(`/app/osquery/saved_queries/${savedQueryId}`); - cy.contains('Add saved query').click(); - inputQuery('test'); - findFormFieldByRowsLabelAndType('ID', 'query-to-delete'); - cy.contains('Save query').click(); - cy.react('CustomItemAction', { - props: { index: 1, item: { id: 'query-to-delete' } }, - }).click(); deleteAndConfirm('query'); }); diff --git a/x-pack/plugins/osquery/cypress/e2e/roles/alert_test.cy.ts b/x-pack/plugins/osquery/cypress/e2e/roles/alert_test.cy.ts index 4abdf9dd05592..38352c49c6459 100644 --- a/x-pack/plugins/osquery/cypress/e2e/roles/alert_test.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/roles/alert_test.cy.ts @@ -21,12 +21,6 @@ describe('Alert Test', { tags: ['@ess'] }, () => { }); describe('t1_analyst role', () => { - before(() => { - cy.login(ServerlessRoleName.SOC_MANAGER); - - cy.visit('/app/security/rules'); - clickRuleName(ruleName); - }); beforeEach(() => { cy.login(ServerlessRoleName.T1_ANALYST); diff --git a/x-pack/plugins/osquery/cypress/support/e2e.ts b/x-pack/plugins/osquery/cypress/support/e2e.ts index 3ff2329a1f5b9..3a3d32f4d0954 100644 --- a/x-pack/plugins/osquery/cypress/support/e2e.ts +++ b/x-pack/plugins/osquery/cypress/support/e2e.ts @@ -27,6 +27,7 @@ export {}; // @ts-expect-error ts(2306) module has some interesting ways of importing, see https://github.com/cypress-io/cypress/blob/0871b03c5b21711cd23056454da8f23dcaca4950/npm/grep/README.md#support-file import registerCypressGrep from '@cypress/grep'; + registerCypressGrep(); import type { SecuritySolutionDescribeBlockFtrConfig } from '@kbn/security-solution-plugin/scripts/run_cypress/utils'; @@ -34,6 +35,7 @@ import type { ServerlessRoleName } from './roles'; import 'cypress-react-selector'; import { login } from '../../../../test_serverless/functional/test_suites/security/cypress/tasks/login'; +import { waitUntil } from '../tasks/wait_until'; declare global { // eslint-disable-next-line @typescript-eslint/no-namespace @@ -54,6 +56,8 @@ declare global { clickOutside(): Chainable>; login(role?: ServerlessRoleName | 'elastic'): void; + + waitUntil(fn: () => Cypress.Chainable): Cypress.Chainable | undefined; } } } @@ -84,6 +88,8 @@ Cypress.Commands.add('login', (role) => { return login(role); }); +Cypress.Commands.add('waitUntil', waitUntil); + // Alternatively you can use CommonJS syntax: // require('./commands') Cypress.on('uncaught:exception', () => false); diff --git a/x-pack/plugins/osquery/cypress/support/project_controller_osquery_roles.yml b/x-pack/plugins/osquery/cypress/support/project_controller_osquery_roles.yml index c15e8b558ddbd..b811316b2d9de 100644 --- a/x-pack/plugins/osquery/cypress/support/project_controller_osquery_roles.yml +++ b/x-pack/plugins/osquery/cypress/support/project_controller_osquery_roles.yml @@ -1,29 +1,10 @@ +# add more functionalities just for ESS environment soc_manager: applications: - - application: discover - privileges: - - all - resources: "*" - - application: visualize - privileges: - - read - resources: "*" - application: observabilityCases privileges: - all resources: "*" - - application: securitySolutionCases - privileges: - - all - resources: "*" - - application: infrastructure - privileges: - - read - resources: "*" - - application: indexPatterns - privileges: - - all - resources: "*" # custom roles for osquery lack of permission testing reader: diff --git a/x-pack/plugins/osquery/cypress/tasks/api_fixtures.ts b/x-pack/plugins/osquery/cypress/tasks/api_fixtures.ts index d7b9f7d43ce43..be716d7effe64 100644 --- a/x-pack/plugins/osquery/cypress/tasks/api_fixtures.ts +++ b/x-pack/plugins/osquery/cypress/tasks/api_fixtures.ts @@ -18,6 +18,7 @@ import type { PackSavedObject, PackItem } from '../../public/packs/types'; import type { SavedQuerySO } from '../../public/routes/saved_queries/list'; import { generateRandomStringName } from './integrations'; import { request } from './common'; +import { ServerlessRoleName } from '../support/roles'; export const savedQueryFixture = { id: generateRandomStringName(1)[0], @@ -136,8 +137,14 @@ export const loadLiveQuery = ( }, }).then((response) => response.body.data); -export const loadRule = (includeResponseActions = false) => - request({ +export const loadRule = (includeResponseActions = false) => { + cy.login('elastic'); + cy.visit('/app/security/rules'); + cy.getBySel('globalLoadingIndicator').should('exist'); + cy.getBySel('globalLoadingIndicator').should('not.exist'); + cy.login(ServerlessRoleName.SOC_MANAGER); + + return request({ method: 'POST', body: { type: 'query', @@ -227,6 +234,7 @@ export const loadRule = (includeResponseActions = false) => 'Elastic-Api-Version': API_VERSIONS.public.v1, }, }).then((response) => response.body); +}; export const cleanupRule = (id: string) => { request({ diff --git a/x-pack/plugins/osquery/cypress/tasks/live_query.ts b/x-pack/plugins/osquery/cypress/tasks/live_query.ts index 1fd8be180b5dd..efcb3687b320b 100644 --- a/x-pack/plugins/osquery/cypress/tasks/live_query.ts +++ b/x-pack/plugins/osquery/cypress/tasks/live_query.ts @@ -5,8 +5,9 @@ * 2.0. */ -import { LIVE_QUERY_EDITOR } from '../screens/live_query'; +import { LIVE_QUERY_EDITOR, OSQUERY_FLYOUT_BODY_EDITOR } from '../screens/live_query'; import { ServerlessRoleName } from '../support/roles'; +import { waitForAlertsToPopulate } from '../../../../test/security_solution_cypress/cypress/tasks/create_new_rule'; export const DEFAULT_QUERY = 'select * from processes;'; export const BIG_QUERY = 'select * from processes, users limit 110;'; @@ -29,6 +30,11 @@ export const clearInputQuery = () => export const inputQuery = (query: string, options?: { parseSpecialCharSequences: boolean }) => cy.get(LIVE_QUERY_EDITOR).type(query, options); +export const inputQueryInFlyout = ( + query: string, + options?: { parseSpecialCharSequences: boolean } +) => cy.get(OSQUERY_FLYOUT_BODY_EDITOR).type(query, options); + export const submitQuery = () => { cy.wait(1000); // wait for the validation to trigger - cypress is way faster than users ;) cy.contains('Submit').click(); @@ -104,18 +110,7 @@ export const loadRuleAlerts = (ruleName: string) => { cy.login(ServerlessRoleName.SOC_MANAGER); cy.visit('/app/security/rules'); clickRuleName(ruleName); - cy.getBySel('alertsTable').within(() => { - cy.getBySel('expand-event') - .first() - .within(() => { - cy.get(`[data-is-loading="true"]`).should('exist'); - }); - cy.getBySel('expand-event') - .first() - .within(() => { - cy.get(`[data-is-loading="true"]`).should('not.exist'); - }); - }); + waitForAlertsToPopulate(); }; export const addToCase = (caseId: string) => { diff --git a/x-pack/plugins/osquery/cypress/tasks/navigation.ts b/x-pack/plugins/osquery/cypress/tasks/navigation.ts index 13ab8d4105b3e..b6acc081feccd 100644 --- a/x-pack/plugins/osquery/cypress/tasks/navigation.ts +++ b/x-pack/plugins/osquery/cypress/tasks/navigation.ts @@ -21,6 +21,10 @@ export const navigateTo = (page: string, opts?: Partial) = // There's a security warning toast that seemingly makes ui elements in the bottom right unavailable, so we close it closeToastIfVisible(); + waitForReact(); +}; + +export const waitForReact = () => { cy.waitForReact( 10000, Cypress.env('cypress-react-selector')?.root, diff --git a/x-pack/plugins/osquery/cypress/tasks/wait_until.ts b/x-pack/plugins/osquery/cypress/tasks/wait_until.ts new file mode 100644 index 0000000000000..30df5bc0708fe --- /dev/null +++ b/x-pack/plugins/osquery/cypress/tasks/wait_until.ts @@ -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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const waitUntil = (fn: () => Cypress.Chainable) => { + const timeout = 90000; + const interval = 5000; + let attempts = timeout / interval; + + const completeOrRetry = (result: Cypress.Chainable) => { + if (result) { + return result; + } + + if (attempts < 1) { + throw new Error(`Timed out while retrying, last result was: {${result}}`); + } + + cy.wait(interval, { log: false }).then(() => { + attempts--; + + return evaluate(); + }); + }; + + const evaluate = () => { + const result = fn(); + + if (result && result.then) { + return result.then(completeOrRetry); + } else { + return completeOrRetry(result); + } + }; + + return evaluate(); +}; diff --git a/x-pack/plugins/osquery/cypress/tsconfig.json b/x-pack/plugins/osquery/cypress/tsconfig.json index ddd53a1ad7156..5b797830caae6 100644 --- a/x-pack/plugins/osquery/cypress/tsconfig.json +++ b/x-pack/plugins/osquery/cypress/tsconfig.json @@ -4,7 +4,7 @@ "**/*", "./cypress.config.ts", "./serverless_cypress.config.ts", - "../../../test_serverless/shared/lib" + "../../../test_serverless/shared/lib", ], "exclude": [ "target/**/*", @@ -23,6 +23,9 @@ { "path": "../../../test_serverless/tsconfig.json" }, + { + "path": "../../../test/security_solution_cypress/cypress/tsconfig.json" + }, "@kbn/cypress-config", // cypress projects that are nested inside of other ts project use code // from the parent ts project in ways that can't be automatically deteceted diff --git a/x-pack/plugins/security_solution/public/common/components/event_details/response_actions_view.tsx b/x-pack/plugins/security_solution/public/common/components/event_details/response_actions_view.tsx index 06c9b18081aea..23f0948304379 100644 --- a/x-pack/plugins/security_solution/public/common/components/event_details/response_actions_view.tsx +++ b/x-pack/plugins/security_solution/public/common/components/event_details/response_actions_view.tsx @@ -5,12 +5,13 @@ * 2.0. */ -import React from 'react'; +import React, { useMemo, useState, useEffect } from 'react'; import styled from 'styled-components'; import type { EuiTabbedContentTab } from '@elastic/eui'; -import { EuiNotificationBadge, EuiSpacer } from '@elastic/eui'; +import { EuiLink, EuiNotificationBadge, EuiSpacer } from '@elastic/eui'; import type { Ecs } from '@kbn/cases-plugin/common'; import { FormattedMessage } from '@kbn/i18n-react'; +import { RESPONSE_NO_DATA_TEST_ID } from '../../../flyout/left/components/test_ids'; import type { SearchHit } from '../../../../common/search_strategy'; import type { ExpandedEventFieldsObject, @@ -28,6 +29,34 @@ const TabContentWrapper = styled.div` height: 100%; position: relative; `; +const InlineBlock = styled.div` + display: inline-block; + line-height: 1.7em; +`; + +const EmptyResponseActions = () => { + return ( + + + + + ), + }} + /> + + ); +}; export const useResponseActionsView = ({ rawEventData, @@ -36,6 +65,15 @@ export const useResponseActionsView = ({ ecsData?: Ecs | null; rawEventData: SearchHit | undefined; }): EuiTabbedContentTab | undefined => { + // can not be moved outside of the component, because then EventsViewType throws runtime error regarding not being initialized yet + const viewData = useMemo( + () => ({ + id: EventsViewType.responseActionsView, + 'data-test-subj': 'responseActionsViewTab', + name: i18n.RESPONSE_ACTIONS_VIEW, + }), + [] + ); const responseActionsEnabled = useIsExperimentalFeatureEnabled('endpointResponseActionsEnabled'); const expandedEventFieldsObject = rawEventData ? (expandDottedObject((rawEventData as RawEventData).fields) as ExpandedEventFieldsObject) @@ -43,54 +81,55 @@ export const useResponseActionsView = ({ const responseActions = expandedEventFieldsObject?.kibana?.alert?.rule?.parameters?.[0].response_actions; - const shouldEarlyReturn = !rawEventData || !responseActionsEnabled || !responseActions?.length; + const shouldEarlyReturn = !rawEventData || !responseActionsEnabled; const alertId = rawEventData?._id ?? ''; + const [isLive, setIsLive] = useState(false); const { data: automatedList, isFetched } = useGetAutomatedActionList( { alertIds: [alertId], }, - { enabled: !shouldEarlyReturn } + { enabled: !shouldEarlyReturn, isLive } ); - if (shouldEarlyReturn) { - return; - } - - const ruleName = expandedEventFieldsObject?.kibana?.alert?.rule?.name?.[0]; - - const totalItemCount = automatedList?.items?.length ?? 0; + // calculating whether or not our useGetAutomatedActionList (react-query) should try to refetch data + useEffect(() => { + setIsLive(() => !(!responseActions?.length || !!automatedList?.items?.length)); + }, [automatedList, responseActions?.length]); - const content = ( - <> - - - {isFetched && totalItemCount && automatedList?.items.length ? ( - - ) : ( - - )} - - - ); + if (shouldEarlyReturn) { + return { + ...viewData, + content: , + }; + } else { + const ruleName = expandedEventFieldsObject?.kibana?.alert?.rule?.name?.[0]; - return { - id: EventsViewType.responseActionsView, - 'data-test-subj': 'responseActionsViewTab', - name: i18n.RESPONSE_ACTIONS_VIEW, - append: ( - - {totalItemCount} - - ), - content, - }; + const automatedListItems = automatedList?.items ?? []; + return { + ...viewData, + append: ( + + {automatedListItems.length} + + ), + content: ( + <> + + + {isFetched && !!automatedListItems.length ? ( + + ) : ( + + )} + + + ), + }; + } }; diff --git a/x-pack/plugins/security_solution/public/flyout/left/components/response_details.test.tsx b/x-pack/plugins/security_solution/public/flyout/left/components/response_details.test.tsx index dc6f3168eccad..9f477ee45991c 100644 --- a/x-pack/plugins/security_solution/public/flyout/left/components/response_details.test.tsx +++ b/x-pack/plugins/security_solution/public/flyout/left/components/response_details.test.tsx @@ -116,8 +116,7 @@ describe('', () => { expect(wrapper.getByTestId(RESPONSE_DETAILS_TEST_ID)).toBeInTheDocument(); expect(wrapper.getByTestId('responseActionsViewWrapper')).toBeInTheDocument(); expect(wrapper.queryByTestId('osqueryViewWrapper')).not.toBeInTheDocument(); - - expect(wrapper.getByTestId(RESPONSE_DETAILS_TEST_ID)).not.toHaveTextContent(NO_DATA_MESSAGE); + // TODO mock osquery results }); it('should render the view with osquery only', () => { @@ -135,7 +134,7 @@ describe('', () => { const wrapper = renderResponseDetails(defaultContextValue); expect(wrapper.getByTestId(RESPONSE_DETAILS_TEST_ID)).toBeInTheDocument(); - expect(wrapper.queryByTestId('responseActionsViewWrapper')).not.toBeInTheDocument(); + expect(wrapper.queryByTestId('responseActionsViewWrapper')).toBeInTheDocument(); expect(wrapper.queryByTestId('osqueryViewWrapper')).not.toBeInTheDocument(); expect(wrapper.getByTestId(RESPONSE_DETAILS_TEST_ID)).toHaveTextContent(NO_DATA_MESSAGE); diff --git a/x-pack/plugins/security_solution/public/flyout/left/components/response_details.tsx b/x-pack/plugins/security_solution/public/flyout/left/components/response_details.tsx index 06bb1096e3d98..82ce4ac3ffdb0 100644 --- a/x-pack/plugins/security_solution/public/flyout/left/components/response_details.tsx +++ b/x-pack/plugins/security_solution/public/flyout/left/components/response_details.tsx @@ -6,15 +6,10 @@ */ import React from 'react'; -import { EuiLink, EuiSpacer, EuiTitle } from '@elastic/eui'; +import { EuiSpacer, EuiTitle } from '@elastic/eui'; import styled from 'styled-components'; import { FormattedMessage } from '@kbn/i18n-react'; -import { RESPONSE_DETAILS_TEST_ID, RESPONSE_NO_DATA_TEST_ID } from './test_ids'; -import { expandDottedObject } from '../../../../common/utils/expand_dotted'; -import type { - ExpandedEventFieldsObject, - RawEventData, -} from '../../../../common/types/response_actions'; +import { RESPONSE_DETAILS_TEST_ID } from './test_ids'; import { useLeftPanelContext } from '../context'; import { useIsExperimentalFeatureEnabled } from '../../../common/hooks/use_experimental_features'; import { useOsqueryTab } from '../../../common/components/event_details/osquery_tab'; @@ -25,11 +20,6 @@ const ExtendedFlyoutWrapper = styled.div` background-color: white `; -const InlineBlock = styled.div` - display: inline-block; - line-height: 1.7em; -`; - /** * Automated response actions results, displayed in the document details expandable flyout left section under the Insights tab, Response tab */ @@ -38,12 +28,6 @@ export const ResponseDetails: React.FC = () => { const endpointResponseActionsEnabled = useIsExperimentalFeatureEnabled( 'endpointResponseActionsEnabled' ); - const expandedEventFieldsObject = searchHit - ? (expandDottedObject((searchHit as RawEventData).fields) as ExpandedEventFieldsObject) - : undefined; - - const responseActions = - expandedEventFieldsObject?.kibana?.alert?.rule?.parameters?.[0].response_actions; const responseActionsView = useResponseActionsView({ rawEventData: searchHit, @@ -65,31 +49,10 @@ export const ResponseDetails: React.FC = () => { - {!responseActions ? ( - - - - - ), - }} - /> - - ) : ( - - {endpointResponseActionsEnabled ? responseActionsView?.content : osqueryView?.content} - - )} + + + {endpointResponseActionsEnabled ? responseActionsView?.content : osqueryView?.content} + ); }; diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/response_button.test.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/response_button.test.tsx index 489c1e54a60cc..e18d815e93cf0 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/components/response_button.test.tsx +++ b/x-pack/plugins/security_solution/public/flyout/right/components/response_button.test.tsx @@ -31,10 +31,6 @@ const mockValidSearchHit = { }, } as unknown as SearchHit; -const mockInvalidSearchHit = { - fields: {}, -} as unknown as SearchHit; - const renderResponseButton = (panelContextValue: RightPanelContext = mockContextValue) => render( @@ -53,14 +49,4 @@ describe('', () => { expect(getByTestId(RESPONSE_BUTTON_TEST_ID)).toHaveTextContent('Response'); expect(queryByTestId(RESPONSE_EMPTY_TEST_ID)).not.toBeInTheDocument(); }); - - it(`should not render investigation guide button when searchHit doesn't have correct data`, () => { - const panelContextValue = { ...mockContextValue, searchHit: mockInvalidSearchHit }; - const { getByTestId, queryByTestId } = renderResponseButton(panelContextValue); - expect(getByTestId(RESPONSE_EMPTY_TEST_ID)).toBeInTheDocument(); - expect(getByTestId(RESPONSE_EMPTY_TEST_ID)).toHaveTextContent( - 'There are no response actions defined for this event.' - ); - expect(queryByTestId(RESPONSE_BUTTON_TEST_ID)).not.toBeInTheDocument(); - }); }); diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/response_button.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/response_button.tsx index 9a6b55b824011..0d1b6fac8df4b 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/components/response_button.tsx +++ b/x-pack/plugins/security_solution/public/flyout/right/components/response_button.tsx @@ -8,28 +8,16 @@ import React, { useCallback } from 'react'; import { EuiButton } from '@elastic/eui'; import { useExpandableFlyoutContext } from '@kbn/expandable-flyout'; import { FormattedMessage } from '@kbn/i18n-react'; -import { i18n } from '@kbn/i18n'; -import { expandDottedObject } from '../../../../common/utils/expand_dotted'; -import type { - ExpandedEventFieldsObject, - RawEventData, -} from '../../../../common/types/response_actions'; import { useRightPanelContext } from '../context'; import { LeftPanelKey, LeftPanelResponseTab } from '../../left'; -import { RESPONSE_BUTTON_TEST_ID, RESPONSE_EMPTY_TEST_ID } from './test_ids'; +import { RESPONSE_BUTTON_TEST_ID } from './test_ids'; /** * Response button that opens Response section in the left panel */ export const ResponseButton: React.FC = () => { const { openLeftPanel } = useExpandableFlyoutContext(); - const { eventId, indexName, scopeId, searchHit } = useRightPanelContext(); - - const expandedEventFieldsObject = searchHit - ? (expandDottedObject((searchHit as RawEventData).fields) as ExpandedEventFieldsObject) - : undefined; - const responseActions = - expandedEventFieldsObject?.kibana?.alert?.rule?.parameters?.[0].response_actions; + const { eventId, indexName, scopeId } = useRightPanelContext(); const goToResponseTab = useCallback(() => { openLeftPanel({ @@ -45,31 +33,16 @@ export const ResponseButton: React.FC = () => { return ( <> - {!responseActions ? ( -

- -

- ) : ( - - - - )} + + + ); }; diff --git a/x-pack/plugins/security_solution/public/management/hooks/response_actions/use_get_automated_action_list.ts b/x-pack/plugins/security_solution/public/management/hooks/response_actions/use_get_automated_action_list.ts index 7f5abfebb557c..dc6832ce04f46 100644 --- a/x-pack/plugins/security_solution/public/management/hooks/response_actions/use_get_automated_action_list.ts +++ b/x-pack/plugins/security_solution/public/management/hooks/response_actions/use_get_automated_action_list.ts @@ -30,6 +30,7 @@ import type { interface GetAutomatedActionsListOptions { enabled: boolean; + isLive: boolean; } // Make sure we keep this and ACTIONS_QUERY_KEY in osquery_flyout.tsx in sync. @@ -37,7 +38,7 @@ const ACTIONS_QUERY_KEY = 'actions'; export const useGetAutomatedActionList = ( query: EndpointAutomatedActionListRequestQuery, - { enabled }: GetAutomatedActionsListOptions + { enabled, isLive }: GetAutomatedActionsListOptions ): UseQueryResult => { const { data } = useKibana().services; @@ -79,6 +80,7 @@ export const useGetAutomatedActionList = ( }; }, enabled, + refetchInterval: isLive ? 5000 : false, keepPreviousData: true, }); }; diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts index e93c74235f9b7..0843be4a919fe 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts @@ -43,7 +43,7 @@ import { DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_SESSION_PREVIEW_CONTAINER, DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_TABLE_FIELD_CELL, DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_TABLE_VALUE_CELL, - DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_RESPONSE_SECTION_EMPTY_RESPONSE, + DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_RESPONSE_BUTTON, } from '../../../../screens/expandable_flyout/alert_details_right_panel_overview_tab'; import { navigateToCorrelationsDetails, @@ -363,14 +363,12 @@ describe( }); describe('response section', () => { - it('should display empty message', () => { + it('should display button', () => { toggleOverviewTabAboutSection(); toggleOverviewTabInvestigationSection(); toggleOverviewTabResponseSection(); - cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_RESPONSE_SECTION_EMPTY_RESPONSE).should( - 'be.visible' - ); + cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_RESPONSE_BUTTON).should('be.visible'); }); }); } diff --git a/x-pack/test/security_solution_cypress/cypress/screens/expandable_flyout/alert_details_right_panel_overview_tab.ts b/x-pack/test/security_solution_cypress/cypress/screens/expandable_flyout/alert_details_right_panel_overview_tab.ts index 9c830339db486..952f78fe4c9c7 100644 --- a/x-pack/test/security_solution_cypress/cypress/screens/expandable_flyout/alert_details_right_panel_overview_tab.ts +++ b/x-pack/test/security_solution_cypress/cypress/screens/expandable_flyout/alert_details_right_panel_overview_tab.ts @@ -42,6 +42,7 @@ import { REASON_DETAILS_PREVIEW_BUTTON_TEST_ID, ANALYZER_PREVIEW_TEST_ID, SESSION_PREVIEW_TEST_ID, + RESPONSE_BUTTON_TEST_ID, } from '@kbn/security-solution-plugin/public/flyout/right/components/test_ids'; import { getDataTestSubjectSelector } from '../../helpers/common'; @@ -160,5 +161,7 @@ export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_SESSION_PREVIEW_CONTAINER = export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_RESPONSE_SECTION_HEADER = getDataTestSubjectSelector(RESPONSE_SECTION_HEADER_TEST_ID); +export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_RESPONSE_BUTTON = + getDataTestSubjectSelector(RESPONSE_BUTTON_TEST_ID); export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_RESPONSE_SECTION_EMPTY_RESPONSE = getDataTestSubjectSelector(RESPONSE_EMPTY_TEST_ID); diff --git a/x-pack/test_serverless/shared/lib/security/kibana_roles/project_controller_security_roles.yml b/x-pack/test_serverless/shared/lib/security/kibana_roles/project_controller_security_roles.yml index 8c866d0a5a7b7..13a8d07a79502 100644 --- a/x-pack/test_serverless/shared/lib/security/kibana_roles/project_controller_security_roles.yml +++ b/x-pack/test_serverless/shared/lib/security/kibana_roles/project_controller_security_roles.yml @@ -355,6 +355,7 @@ soc_manager: - .items* privileges: - read + - maintenance - write - names: - metrics-endpoint.metadata_current_* From 6213e41b6cc4915e9003999949d7c190e05ac256 Mon Sep 17 00:00:00 2001 From: "Quynh Nguyen (Quinn)" <43350163+qn895@users.noreply.github.com> Date: Tue, 10 Oct 2023 13:29:51 -0500 Subject: [PATCH 41/48] [ML] Fix Create a data view option not working in Transforms (#168263) --- .../search_selection/search_selection.tsx | 40 ++++----------- .../transform_management_section.tsx | 49 ++++++++++++++++--- 2 files changed, 50 insertions(+), 39 deletions(-) diff --git a/x-pack/plugins/transform/public/app/sections/transform_management/components/search_selection/search_selection.tsx b/x-pack/plugins/transform/public/app/sections/transform_management/components/search_selection/search_selection.tsx index 75731baf92c06..3c6fcc67f0c7e 100644 --- a/x-pack/plugins/transform/public/app/sections/transform_management/components/search_selection/search_selection.tsx +++ b/x-pack/plugins/transform/public/app/sections/transform_management/components/search_selection/search_selection.tsx @@ -8,46 +8,25 @@ import { EuiButton, EuiModalBody, EuiModalHeader, EuiModalHeaderTitle } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; -import React, { type FC, Fragment, useCallback, useEffect, useRef } from 'react'; +import React, { type FC, Fragment } from 'react'; import { SavedObjectFinder } from '@kbn/saved-objects-finder-plugin/public'; import { useAppDependencies } from '../../../../app_dependencies'; interface SearchSelectionProps { onSearchSelected: (searchId: string, searchType: string) => void; - onCloseModal: () => void; + createNewDataView: () => void; + canEditDataView: boolean; } const fixedPageSize: number = 8; -export const SearchSelection: FC = ({ onSearchSelected, onCloseModal }) => { - const { contentManagement, uiSettings, dataViewEditor } = useAppDependencies(); - - const canEditDataView = Boolean(dataViewEditor?.userPermissions.editDataView()); - - const closeDataViewEditor = useRef<() => void | undefined>(); - - const createNewDataView = useCallback(() => { - onCloseModal(); - closeDataViewEditor.current = dataViewEditor?.openEditor({ - onSave: async (dataView) => { - if (dataView.id) { - onSearchSelected(dataView.id, 'index-pattern'); - } - }, - - allowAdHocDataView: true, - }); - }, [dataViewEditor, onCloseModal, onSearchSelected]); - - useEffect(function cleanUpFlyout() { - return () => { - // Close the editor when unmounting - if (closeDataViewEditor.current) { - closeDataViewEditor.current(); - } - }; - }, []); +export const SearchSelection: FC = ({ + onSearchSelected, + createNewDataView, + canEditDataView, +}) => { + const { contentManagement, uiSettings } = useAppDependencies(); return ( <> @@ -103,7 +82,6 @@ export const SearchSelection: FC = ({ onSearchSelected, on {canEditDataView ? ( { const { esTransform } = useDocumentationLinks(); const { showNodeInfo } = useEnabledFeatures(); + const { dataViewEditor } = useAppDependencies(); const deleteTransforms = useDeleteTransforms(); @@ -167,16 +169,43 @@ export const TransformManagement: FC = () => { const [isSearchSelectionVisible, setIsSearchSelectionVisible] = useState(false); const [savedObjectId, setSavedObjectId] = useState(null); + const onCloseModal = useCallback(() => setIsSearchSelectionVisible(false), []); + const onOpenModal = () => setIsSearchSelectionVisible(true); + + const onSearchSelected = useCallback((id: string, type: string) => { + setSavedObjectId(id); + }, []); + + const canEditDataView = Boolean(dataViewEditor?.userPermissions.editDataView()); + + const closeDataViewEditorRef = useRef<() => void | undefined>(); + + const createNewDataView = useCallback(() => { + onCloseModal(); + closeDataViewEditorRef.current = dataViewEditor?.openEditor({ + onSave: async (dataView) => { + if (dataView.id) { + onSearchSelected(dataView.id, 'index-pattern'); + } + }, + + allowAdHocDataView: true, + }); + }, [dataViewEditor, onCloseModal, onSearchSelected]); + + useEffect(function cleanUpDataViewEditorFlyout() { + return () => { + // Close the editor when unmounting + if (closeDataViewEditorRef.current) { + closeDataViewEditorRef.current(); + } + }; + }, []); + if (savedObjectId !== null) { return ; } - const onCloseModal = () => setIsSearchSelectionVisible(false); - const onOpenModal = () => setIsSearchSelectionVisible(true); - const onSearchSelected = (id: string, type: string) => { - setSavedObjectId(id); - }; - const docsLink = ( { className="transformCreateTransformSearchDialog" data-test-subj="transformSelectSourceModal" > - + )} From 4db2c37dcda7d7bd8664c456847085f1f82dd64e Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Tue, 10 Oct 2023 19:40:23 +0100 Subject: [PATCH 42/48] chore(NA): update versions after v8.10.4 bump (#168519) This PR is a simple update of our versions file after the recent bumps. --- versions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions.json b/versions.json index 10def747a0786..624287e414444 100644 --- a/versions.json +++ b/versions.json @@ -14,7 +14,7 @@ "previousMinor": true }, { - "version": "8.10.3", + "version": "8.10.4", "branch": "8.10", "currentMajor": true, "previousMinor": true From 184de5ecacfd0e615cb45b3e06bb52b9bfd41816 Mon Sep 17 00:00:00 2001 From: Liam Thompson <32779855+leemthompo@users.noreply.github.com> Date: Tue, 10 Oct 2023 21:03:10 +0200 Subject: [PATCH 43/48] [Serverless Search] Fix typos (#168511) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes content bug, and typos flagged by @florent-leborgne. Are labels correct here❓ --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- packages/kbn-search-api-panels/components/install_client.tsx | 3 +-- packages/kbn-search-api-panels/components/select_client.tsx | 2 +- .../public/application/components/overview.tsx | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/kbn-search-api-panels/components/install_client.tsx b/packages/kbn-search-api-panels/components/install_client.tsx index 38ec6a488aa55..23b383c6276c6 100644 --- a/packages/kbn-search-api-panels/components/install_client.tsx +++ b/packages/kbn-search-api-panels/components/install_client.tsx @@ -78,8 +78,7 @@ export const InstallClientPanel: React.FC = ({ return ( = ({

{i18n.translate('searchApiPanels.welcomeBanner.selectClient.callout.description', { defaultMessage: - 'With Console, you can get started right away with our REST API’s. No installation required. ', + 'With Console, you can get started right away with our REST APIs. No installation required.', })} diff --git a/x-pack/plugins/serverless_search/public/application/components/overview.tsx b/x-pack/plugins/serverless_search/public/application/components/overview.tsx index fb2307b474af0..056a13384dbfb 100644 --- a/x-pack/plugins/serverless_search/public/application/components/overview.tsx +++ b/x-pack/plugins/serverless_search/public/application/components/overview.tsx @@ -124,7 +124,7 @@ export const ElasticsearchOverview = () => { From 01ef8d95bd9b4f40cd77fbc5b1b50fe918aee6e6 Mon Sep 17 00:00:00 2001 From: Chris Cressman Date: Tue, 10 Oct 2023 15:28:18 -0400 Subject: [PATCH 44/48] [Enterprise Search] Update doc link for Search landing page (#168523) ## Summary For 8.11 and later, we had planned to use the `search-your-data` doc within the Elasticsearch docs as a new Search landing page. However, we've since decided to create a new doc with id `search-with-elasticsearch`. We have one Kibana doc link pointing to the "old" URL. Update that link. ### For maintainers - [x] 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) --- packages/kbn-doc-links/src/get_doc_links.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index 074e0f1c921c6..a0670dc657056 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -177,7 +177,7 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { elser: `${ELASTICSEARCH_DOCS}semantic-search-elser.html`, engines: `${ENTERPRISE_SEARCH_DOCS}engines.html`, indexApi: `${ELASTICSEARCH_DOCS}docs-index_.html`, - ingestionApis: `${ELASTICSEARCH_DOCS}search-your-data.html`, + ingestionApis: `${ELASTICSEARCH_DOCS}search-with-elasticsearch.html`, ingestPipelines: `${ELASTICSEARCH_DOCS}ingest-pipeline-search.html`, knnSearch: `${ELASTICSEARCH_DOCS}knn-search.html`, knnSearchCombine: `${ELASTICSEARCH_DOCS}knn-search.html#_combine_approximate_knn_with_other_features`, From e52e6ee92fe06f5d3b12e7f6bd400f636537a437 Mon Sep 17 00:00:00 2001 From: Dima Arnautov Date: Tue, 10 Oct 2023 22:36:50 +0200 Subject: [PATCH 45/48] [ML] AIOps: Fix flaky change point detection test (#168512) ## Summary Closes #160986 ### 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 --- x-pack/test/functional/apps/aiops/change_point_detection.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/test/functional/apps/aiops/change_point_detection.ts b/x-pack/test/functional/apps/aiops/change_point_detection.ts index 9a25a649170c4..0cbff0642aa3c 100644 --- a/x-pack/test/functional/apps/aiops/change_point_detection.ts +++ b/x-pack/test/functional/apps/aiops/change_point_detection.ts @@ -16,8 +16,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { // aiops lives in the ML UI so we need some related services. const ml = getService('ml'); - // Failing: See https://github.com/elastic/kibana/issues/160986 - describe.skip('change point detection', async function () { + describe('change point detection', async function () { before(async () => { await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/ml/ecommerce'); await ml.testResources.createIndexPatternIfNeeded('ft_ecommerce', 'order_date'); @@ -85,6 +84,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { await aiops.changePointDetectionPage .getTable(0) .invokeAction(0, 'aiopsChangePointFilterForValue'); + await aiops.changePointDetectionPage.getTable(0).waitForTableToLoad(); const resultFor = await aiops.changePointDetectionPage.getTable(0).parseTable(); expect(resultFor.length).to.eql(1); }); From 7776ac42c84d92ad58a4c8b12f916f9d569ef647 Mon Sep 17 00:00:00 2001 From: Steph Milovic Date: Tue, 10 Oct 2023 14:37:15 -0600 Subject: [PATCH 46/48] [Security solution] Stops page from crashing when there is a fields error in the stackBy component (#168411) --- .../alerts_count_panel/index.test.tsx | 2 +- .../alerts_kpis/common/components.tsx | 10 +++++-- .../alerts_kpis/common/hooks.test.tsx | 14 ++++----- .../components/alerts_kpis/common/hooks.ts | 30 ++++++++++++------- 4 files changed, 36 insertions(+), 20 deletions(-) diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.test.tsx index 80e5867aadc0c..6b0b0ed9a0e08 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.test.tsx @@ -60,7 +60,7 @@ jest.mock('../../../../common/components/visualization_actions/lens_embeddable') jest.mock('../../../../common/components/page/use_refetch_by_session'); jest.mock('../common/hooks', () => ({ useInspectButton: jest.fn(), - useStackByFields: jest.fn(), + useStackByFields: jest.fn().mockReturnValue(() => []), })); const mockUseIsExperimentalFeatureEnabled = useIsExperimentalFeatureEnabled as jest.Mock; const getMockUseIsExperimentalFeatureEnabled = diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/common/components.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/common/components.tsx index 085b66f249104..bf050c2eedab9 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/common/components.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/common/components.tsx @@ -98,7 +98,13 @@ export const StackByComboBox = React.forwardRef( return [{ label: selected, value: selected }]; }, [selected]); - const stackOptions = useStackByFields(useLensCompatibleFields); + const getExpensiveFields = useStackByFields(useLensCompatibleFields); + + const options = useMemo( + () => dropDownoptions ?? getExpensiveFields(), + [dropDownoptions, getExpensiveFields] + ); + const singleSelection = useMemo(() => { return { asPlainText: true }; }, []); @@ -115,7 +121,7 @@ export const StackByComboBox = React.forwardRef( singleSelection={singleSelection} isClearable={false} sortMatchesBy="startsWith" - options={dropDownoptions ?? stackOptions} + options={options} selectedOptions={selectedOptions} compressed onChange={onChange} diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/common/hooks.test.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/common/hooks.test.tsx index b0c75e5831ad2..fdbc2108e4d33 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/common/hooks.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/common/hooks.test.tsx @@ -124,11 +124,11 @@ describe('hooks', () => { {children} ); const { result, unmount } = renderHook(() => useStackByFields(), { wrapper }); - const aggregateableFields = result.current; + const aggregateableFields = result.current(); unmount(); - expect(aggregateableFields?.find((field) => field.label === 'agent.id')).toBeTruthy(); + expect(aggregateableFields!.find((field) => field.label === 'agent.id')).toBeTruthy(); expect( - aggregateableFields?.find((field) => field.label === 'nestedField.firstAttributes') + aggregateableFields!.find((field) => field.label === 'nestedField.firstAttributes') ).toBe(undefined); }); @@ -144,10 +144,10 @@ describe('hooks', () => { const { result, unmount } = renderHook(() => useStackByFields(useLensCompatibleFields), { wrapper, }); - const aggregateableFields = result.current; + const aggregateableFields = result.current(); unmount(); - expect(aggregateableFields?.find((field) => field.label === '@timestamp')).toBeUndefined(); - expect(aggregateableFields?.find((field) => field.label === '_id')).toBeUndefined(); + expect(aggregateableFields!.find((field) => field.label === '@timestamp')).toBeUndefined(); + expect(aggregateableFields!.find((field) => field.label === '_id')).toBeUndefined(); }); it('returns only Lens compatible fields (check if it is a nested field)', () => { @@ -162,7 +162,7 @@ describe('hooks', () => { const { result, unmount } = renderHook(() => useStackByFields(useLensCompatibleFields), { wrapper, }); - const aggregateableFields = result.current; + const aggregateableFields = result.current(); unmount(); expect(aggregateableFields).toHaveLength(0); }); diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/common/hooks.ts b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/common/hooks.ts index 86c8719053c81..9dbace9881c25 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/common/hooks.ts +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/common/hooks.ts @@ -5,12 +5,14 @@ * 2.0. */ -import { useEffect, useState, useMemo } from 'react'; +import { useCallback, useEffect } from 'react'; import { useLocation } from 'react-router-dom'; import type { EuiComboBoxOptionOption } from '@elastic/eui'; import type { IFieldSubTypeNested } from '@kbn/es-query'; import type { BrowserField } from '@kbn/timelines-plugin/common'; +import { i18n } from '@kbn/i18n'; +import { useAppToasts } from '../../../../common/hooks/use_app_toasts'; import type { GlobalTimeArgs } from '../../../../common/containers/use_global_time'; import { getScopeFromPath, useSourcererDataView } from '../../../../common/containers/sourcerer'; import { getAllFieldsByName } from '../../../../common/containers/source'; @@ -95,14 +97,22 @@ export function getAggregatableFields( export const useStackByFields = (useLensCompatibleFields?: boolean) => { const { pathname } = useLocation(); - + const { addError } = useAppToasts(); const { browserFields } = useSourcererDataView(getScopeFromPath(pathname)); - const allFields = useMemo(() => getAllFieldsByName(browserFields), [browserFields]); - const [stackByFieldOptions, setStackByFieldOptions] = useState(() => - getAggregatableFields(allFields, useLensCompatibleFields) - ); - useEffect(() => { - setStackByFieldOptions(getAggregatableFields(allFields, useLensCompatibleFields)); - }, [allFields, useLensCompatibleFields]); - return useMemo(() => stackByFieldOptions, [stackByFieldOptions]); + + return useCallback(() => { + try { + return getAggregatableFields(getAllFieldsByName(browserFields), useLensCompatibleFields); + } catch (err) { + addError(err, { + title: i18n.translate('xpack.securitySolution.useStackByFields.error.title', { + defaultMessage: 'Error fetching fields', + }), + toastMessage: i18n.translate('xpack.securitySolution.useStackByFields.error.toastMessage', { + defaultMessage: 'This error indicates an exceedingly large number of fields in an index', + }), + }); + return []; + } + }, [addError, browserFields, useLensCompatibleFields]); }; From deabe637ef3e3634b2ea5cac3f4da81da42a65e1 Mon Sep 17 00:00:00 2001 From: Philippe Oberti Date: Tue, 10 Oct 2023 15:53:16 -0500 Subject: [PATCH 47/48] [Security Solution] expandable flyout - same source alert chage (#168395) --- .../flyout/shared/constants/field_names.ts | 1 - ...tch_related_alerts_by_same_source_event.ts | 4 +- .../use_show_related_alerts_by_ancestry.ts | 8 +-- ...how_related_alerts_by_same_source_event.ts | 4 +- ..._details_left_panel_correlations_tab.cy.ts | 59 +++++++++++-------- 5 files changed, 42 insertions(+), 34 deletions(-) diff --git a/x-pack/plugins/security_solution/public/flyout/shared/constants/field_names.ts b/x-pack/plugins/security_solution/public/flyout/shared/constants/field_names.ts index b663ea41e2069..fd6551394a5a2 100644 --- a/x-pack/plugins/security_solution/public/flyout/shared/constants/field_names.ts +++ b/x-pack/plugins/security_solution/public/flyout/shared/constants/field_names.ts @@ -8,7 +8,6 @@ export const ANCESTOR_ID = 'kibana.alert.ancestors.id'; export const RULE_PARAMETERS_INDEX = 'kibana.alert.rule.parameters.index'; export const RULE_INDICES = 'kibana.alert.rule.indices'; -export const ORIGINAL_EVENT_ID = 'kibana.alert.original_event.id'; export const ENTRY_LEADER_ENTITY_ID = 'process.entry_leader.entity_id'; export const ENTRY_LEADER_START = 'process.entry_leader.start'; export const ANCESTOR_INDEX = 'kibana.alert.ancestors.index'; diff --git a/x-pack/plugins/security_solution/public/flyout/shared/hooks/use_fetch_related_alerts_by_same_source_event.ts b/x-pack/plugins/security_solution/public/flyout/shared/hooks/use_fetch_related_alerts_by_same_source_event.ts index 7e3fde3796c94..990c25fed9f26 100644 --- a/x-pack/plugins/security_solution/public/flyout/shared/hooks/use_fetch_related_alerts_by_same_source_event.ts +++ b/x-pack/plugins/security_solution/public/flyout/shared/hooks/use_fetch_related_alerts_by_same_source_event.ts @@ -6,7 +6,7 @@ */ import { useMemo } from 'react'; -import { ORIGINAL_EVENT_ID } from '../constants/field_names'; +import { ANCESTOR_ID } from '../constants/field_names'; import { useAlertPrevalence } from '../../../common/containers/alerts/use_alert_prevalence'; import { isActiveTimeline } from '../../../helpers'; @@ -47,7 +47,7 @@ export const useFetchRelatedAlertsBySameSourceEvent = ({ scopeId, }: UseFetchRelatedAlertsBySameSourceEventParams): UseFetchRelatedAlertsBySameSourceEventResult => { const { loading, error, count, alertIds } = useAlertPrevalence({ - field: ORIGINAL_EVENT_ID, + field: ANCESTOR_ID, value: originalEventId, isActiveTimelines: isActiveTimeline(scopeId), signalIndexName: null, diff --git a/x-pack/plugins/security_solution/public/flyout/shared/hooks/use_show_related_alerts_by_ancestry.ts b/x-pack/plugins/security_solution/public/flyout/shared/hooks/use_show_related_alerts_by_ancestry.ts index fe2ccb518abe0..c87c93c833f14 100644 --- a/x-pack/plugins/security_solution/public/flyout/shared/hooks/use_show_related_alerts_by_ancestry.ts +++ b/x-pack/plugins/security_solution/public/flyout/shared/hooks/use_show_related_alerts_by_ancestry.ts @@ -14,7 +14,7 @@ import { isInvestigateInResolverActionEnabled } from '../../../detections/compon import { useIsExperimentalFeatureEnabled } from '../../../common/hooks/use_experimental_features'; import { useLicense } from '../../../common/hooks/use_license'; import { getField } from '../utils'; -import { ANCESTOR_ID } from '../constants/field_names'; +import { ANCESTOR_ID, RULE_PARAMETERS_INDEX } from '../constants/field_names'; export interface UseShowRelatedAlertsByAncestryParams { /** @@ -63,11 +63,7 @@ export const useShowRelatedAlertsByAncestry = ({ // can't use getFieldsData here as the kibana.alert.rule.parameters is different and can be nested const originalDocumentIndex = useMemo( - () => - find( - { category: 'kibana', field: 'kibana.alert.rule.parameters.index' }, - dataFormattedForFieldBrowser - ), + () => find({ category: 'kibana', field: RULE_PARAMETERS_INDEX }, dataFormattedForFieldBrowser), [dataFormattedForFieldBrowser] ); diff --git a/x-pack/plugins/security_solution/public/flyout/shared/hooks/use_show_related_alerts_by_same_source_event.ts b/x-pack/plugins/security_solution/public/flyout/shared/hooks/use_show_related_alerts_by_same_source_event.ts index 0de1af516aad4..7d24fd483482f 100644 --- a/x-pack/plugins/security_solution/public/flyout/shared/hooks/use_show_related_alerts_by_same_source_event.ts +++ b/x-pack/plugins/security_solution/public/flyout/shared/hooks/use_show_related_alerts_by_same_source_event.ts @@ -6,7 +6,7 @@ */ import type { GetFieldsData } from '../../../common/hooks/use_get_fields_data'; -import { ORIGINAL_EVENT_ID } from '../constants/field_names'; +import { ANCESTOR_ID } from '../constants/field_names'; import { getField } from '../utils'; export interface ShowRelatedAlertsBySameSourceEventParams { @@ -33,7 +33,7 @@ export interface ShowRelatedAlertsBySameSourceEventResult { export const useShowRelatedAlertsBySameSourceEvent = ({ getFieldsData, }: ShowRelatedAlertsBySameSourceEventParams): ShowRelatedAlertsBySameSourceEventResult => { - const originalEventId = getField(getFieldsData(ORIGINAL_EVENT_ID)); + const originalEventId = getField(getFieldsData(ANCESTOR_ID)); return { show: originalEventId != null, ...(originalEventId && { originalEventId }), diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_correlations_tab.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_correlations_tab.cy.ts index 7a63d5ec09e18..c7692f5703c73 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_correlations_tab.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/expandable_flyout/alert_details_left_panel_correlations_tab.cy.ts @@ -15,6 +15,9 @@ import { CORRELATIONS_SESSION_SECTION_INVESTIGATE_IN_TIMELINE_BUTTON, CORRELATIONS_SESSION_SECTION_TABLE, CORRELATIONS_SESSION_SECTION_TITLE, + CORRELATIONS_SOURCE_SECTION_INVESTIGATE_IN_TIMELINE_BUTTON, + CORRELATIONS_SOURCE_SECTION_TABLE, + CORRELATIONS_SOURCE_SECTION_TITLE, DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_CORRELATIONS_BUTTON, } from '../../../../screens/expandable_flyout/alert_details_left_panel_correlations_tab'; import { @@ -66,20 +69,33 @@ describe('Expandable flyout left panel correlations', { tags: ['@ess', '@serverl cy.log('should render all the correlations sections'); - cy.get(CORRELATIONS_ANCESTRY_SECTION_TITLE).scrollIntoView(); - cy.get(CORRELATIONS_ANCESTRY_SECTION_TITLE) - .should('be.visible') - .and('contain.text', '1 alert related by ancestry'); - cy.get(CORRELATIONS_ANCESTRY_SECTION_TABLE).should('be.visible'); - cy.get(CORRELATIONS_ANCESTRY_SECTION_INVESTIGATE_IN_TIMELINE_BUTTON).should('be.visible'); + cy.log('suppressed alerts'); - // TODO get proper data to test this section - // cy.get(CORRELATIONS_SOURCE_SECTION).scrollIntoView(); - // cy.get(CORRELATIONS_SOURCE_SECTION) + // TODO get proper data to test suppressed alerts + // cy.get(CORRELATIONS_SUPPRESSED_ALERTS_TITLE).scrollIntoView(); + // cy.get(CORRELATIONS_SUPPRESSED_ALERTS_TITLE) // .should('be.visible') - // .and('contain.text', '0 alerts related by source event'); - // cy.get(CORRELATIONS_SOURCE_SECTION_TABLE).should('be.visible'); - // cy.get(CORRELATIONS_SESSION_SECTION_INVESTIGATE_IN_TIMELINE_BUTTON).should('be.visible'); + // .and('contain.text', '1 suppressed alert'); + // cy.get(CORRELATIONS_SUPPRESSED_ALERTS_INVESTIGATE_IN_TIMELINE_BUTTON).should('be.visible'); + + cy.log('related cases'); + + cy.get(CORRELATIONS_CASES_SECTION_TITLE).scrollIntoView(); + cy.get(CORRELATIONS_CASES_SECTION_TITLE) + .should('be.visible') + .and('contain.text', '1 related case'); + cy.get(CORRELATIONS_CASES_SECTION_TABLE).should('be.visible'); + + cy.log('related alerts by source event'); + + cy.get(CORRELATIONS_SOURCE_SECTION_TITLE).scrollIntoView(); + cy.get(CORRELATIONS_SOURCE_SECTION_TITLE) + .should('be.visible') + .and('contain.text', '1 alert related by source event'); + cy.get(CORRELATIONS_SOURCE_SECTION_TABLE).should('be.visible'); + cy.get(CORRELATIONS_SOURCE_SECTION_INVESTIGATE_IN_TIMELINE_BUTTON).should('be.visible'); + + cy.log('related alerts by session'); cy.get(CORRELATIONS_SESSION_SECTION_TITLE).scrollIntoView(); cy.get(CORRELATIONS_SESSION_SECTION_TITLE) @@ -88,17 +104,14 @@ describe('Expandable flyout left panel correlations', { tags: ['@ess', '@serverl cy.get(CORRELATIONS_SESSION_SECTION_TABLE).should('be.visible'); cy.get(CORRELATIONS_SESSION_SECTION_INVESTIGATE_IN_TIMELINE_BUTTON).should('be.visible'); - cy.get(CORRELATIONS_CASES_SECTION_TITLE).scrollIntoView(); - cy.get(CORRELATIONS_CASES_SECTION_TITLE) - .should('be.visible') - .and('contain.text', '1 related case'); - cy.get(CORRELATIONS_CASES_SECTION_TABLE).should('be.visible'); + cy.log('related alerts by ancestry'); - // TODO get proper data to test suppressed alerts - // cy.get(CORRELATIONS_SUPPRESSED_ALERTS_TITLE).scrollIntoView(); - // cy.get(CORRELATIONS_SUPPRESSED_ALERTS_TITLE) - // .should('be.visible') - // .and('contain.text', '1 suppressed alert'); - // cy.get(CORRELATIONS_SUPPRESSED_ALERTS_INVESTIGATE_IN_TIMELINE_BUTTON).should('be.visible'); + cy.get(CORRELATIONS_ANCESTRY_SECTION_TITLE).scrollIntoView(); + cy.get(CORRELATIONS_ANCESTRY_SECTION_TITLE) + .should('be.visible') + .and('contain.text', '1 alert related by ancestry'); + cy.get(CORRELATIONS_ANCESTRY_SECTION_TABLE).scrollIntoView(); + cy.get(CORRELATIONS_ANCESTRY_SECTION_TABLE).should('be.visible'); + cy.get(CORRELATIONS_ANCESTRY_SECTION_INVESTIGATE_IN_TIMELINE_BUTTON).should('be.visible'); }); }); From 14585c1074541e3127427a00644357f9b90d870a Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Tue, 10 Oct 2023 22:11:47 +0100 Subject: [PATCH 48/48] skip flaky suite (#168296) --- .../cypress/e2e/response_actions/response_console.cy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console.cy.ts b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console.cy.ts index f1d6af17a3146..9690107c2d218 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console.cy.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/e2e/response_actions/response_console.cy.ts @@ -273,7 +273,8 @@ describe('Response console', { tags: ['@ess', '@serverless', '@brokenInServerles }); }); - describe('document signing', () => { + // FLAKY: https://github.com/elastic/kibana/issues/168296 + describe.skip('document signing', () => { let indexedPolicy: IndexedFleetEndpointPolicyResponse; let policy: PolicyData; let createdHost: CreateAndEnrollEndpointHostResponse;